Annotation of 43BSD/games/battlestar/externs.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1983 Regents of the University of California,
                      3:  * All rights reserved.  Redistribution permitted subject to
                      4:  * the terms of the Berkeley Software License Agreement.
                      5:  */
                      6: 
                      7: /* @(#)externs.h       1.3 4/24/85 */
                      8: 
                      9: #include <sys/signal.h>
                     10: #include <stdio.h>
                     11: 
                     12: #define PATH(x)                "/usr/games/lib/x"
                     13: #define logfile                PATH(battlestar.log)
                     14: 
                     15: #define BITS (8 * sizeof (int))
                     16: 
                     17: #define OUTSIDE                (position > 68 && position < 246 && position != 218)
                     18: #define rnd(x)         (rand() % (x))
                     19: #define max(a,b)       ((a) < (b) ? (b) : (a))
                     20: #define testbit(array, index)  (array[index/BITS] & (1 << (index % BITS)))
                     21: #define setbit(array, index)   (array[index/BITS] |= (1 << (index % BITS)))
                     22: #define clearbit(array, index) (array[index/BITS] &= ~(1 << (index % BITS)))
                     23: 
                     24:        /* well known rooms */
                     25: #define FINAL  275
                     26: #define GARDEN 197
                     27: #define POOLS  126
                     28: #define DOCK   93
                     29: 
                     30:        /* word types */
                     31: #define VERB   0
                     32: #define OBJECT  1
                     33: #define NOUNS  2
                     34: #define PREPS  3
                     35: #define ADJS   4
                     36: #define CONJ   5
                     37: 
                     38:        /* words numbers */
                     39: #define KNIFE          0 
                     40: #define SWORD          1
                     41: #define LAND           2
                     42: #define WOODSMAN       3
                     43: #define TWO_HANDED     4
                     44: #define CLEAVER                5
                     45: #define BROAD          6
                     46: #define MAIL           7
                     47: #define HELM           8
                     48: #define SHIELD         9
                     49: #define MAID           10
                     50: #define BODY           10
                     51: #define VIPER          11
                     52: #define LAMPON         12
                     53: #define SHOES          13
                     54: #define CYLON          14
                     55: #define PAJAMAS                15
                     56: #define ROBE           16
                     57: #define AMULET         17
                     58: #define MEDALION       18
                     59: #define TALISMAN       19
                     60: #define DEADWOOD       20
                     61: #define MALLET         21
                     62: #define LASER          22
                     63: #define BATHGOD                23
                     64: #define NORMGOD                24
                     65: #define GRENADE                25
                     66: #define CHAIN          26
                     67: #define ROPE           27
                     68: #define LEVIS          28
                     69: #define MACE           29
                     70: #define SHOVEL         30
                     71: #define HALBERD                31
                     72: #define        COMPASS         32
                     73: #define        CRASH           33
                     74: #define ELF            34
                     75: #define FOOT           35
                     76: #define COINS          36
                     77: #define MATCHES                37
                     78: #define MAN            38
                     79: #define PAPAYAS                39
                     80: #define PINEAPPLE      40
                     81: #define KIWI           41
                     82: #define COCONUTS       42
                     83: #define MANGO          43
                     84: #define RING           44
                     85: #define POTION         45
                     86: #define BRACELET       46
                     87: #define GIRL           47
                     88: #define GIRLTALK       48
                     89: #define DARK           49
                     90: #define TIMER          50
                     91: #define CHAR           53
                     92: #define BOMB           54
                     93: #define DEADGOD                55
                     94: #define DEADTIME       56
                     95: #define DEADNATIVE     57
                     96: #define NATIVE         58
                     97: #define HORSE          59
                     98: #define CAR            60
                     99: #define POT            61
                    100: #define BAR            62
                    101: #define        BLOCK           63
                    102: #define NUMOFOBJECTS   64
                    103:        /* non-objects below */
                    104: #define UP     1000
                    105: #define DOWN   1001
                    106: #define AHEAD  1002
                    107: #define BACK   1003
                    108: #define RIGHT  1004
                    109: #define LEFT   1005
                    110: #define TAKE   1006
                    111: #define USE    1007
                    112: #define LOOK   1008
                    113: #define QUIT   1009
                    114: #define NORTH  1010
                    115: #define SOUTH  1011
                    116: #define EAST   1012
                    117: #define WEST   1013
                    118: #define SU      1014
                    119: #define DROP   1015
                    120: #define TAKEOFF        1016
                    121: #define DRAW   1017
                    122: #define PUTON  1018
                    123: #define WEARIT 1019
                    124: #define PUT    1020
                    125: #define INVEN  1021
                    126: #define EVERYTHING 1022
                    127: #define AND    1023
                    128: #define KILL   1024
                    129: #define RAVAGE 1025
                    130: #define UNDRESS        1026
                    131: #define THROW  1027
                    132: #define LAUNCH 1028
                    133: #define LANDIT 1029
                    134: #define LIGHT  1030
                    135: #define FOLLOW 1031
                    136: #define KISS   1032
                    137: #define LOVE   1033
                    138: #define GIVE   1034
                    139: #define SMITE  1035
                    140: #define SHOOT  1036
                    141: #define ON     1037
                    142: #define        OFF     1038
                    143: #define TIME   1039
                    144: #define SLEEP  1040
                    145: #define DIG    1041
                    146: #define EAT    1042
                    147: #define SWIM   1043
                    148: #define DRINK  1044
                    149: #define DOOR   1045
                    150: #define SAVE   1046
                    151: #define RIDE   1047
                    152: #define DRIVE  1048
                    153: #define SCORE  1049
                    154: #define BURY   1050 
                    155: #define JUMP   1051
                    156: #define KICK   1052
                    157: 
                    158:        /* injuries */
                    159: #define ARM    6               /* broken arm */
                    160: #define RIBS   7               /* broken ribs */
                    161: #define SPINE  9               /* broken back */
                    162: #define SKULL  11              /* fractured skull */
                    163: #define INCISE 10              /* deep incisions */
                    164: #define NECK   12              /* broken NECK */
                    165: #define NUMOFINJURIES 13
                    166: 
                    167:        /* notes */
                    168: #define        CANTLAUNCH      0
                    169: #define LAUNCHED       1
                    170: #define CANTSEE                2
                    171: #define CANTMOVE       3 
                    172: #define JINXED         4
                    173: #define DUG            5
                    174: #define NUMOFNOTES     6
                    175: 
                    176:        /* fundamental constants */
                    177: #define NUMOFROOMS     275
                    178: #define NUMOFWORDS     ((NUMOFOBJECTS + BITS - 1) / BITS)
                    179: #define LINELENGTH     81
                    180: 
                    181: #define TODAY          0
                    182: #define TONIGHT                1
                    183: #define CYCLE          100
                    184: 
                    185:        /* initial variable values */
                    186: #define TANKFULL       250
                    187: #define TORPEDOES      10
                    188: #define MAXWEIGHT      60
                    189: #define MAXCUMBER      10
                    190: 
                    191: struct room {
                    192:        char *name;
                    193:        int link[8];
                    194: #define north  link[0]
                    195: #define south  link[1]
                    196: #define east   link[2]
                    197: #define west   link[3]
                    198: #define up     link[4]
                    199: #define access link[5]
                    200: #define down   link[6]
                    201: #define flyhere        link[7]
                    202:        char *desc;
                    203:        unsigned int objects[NUMOFWORDS];
                    204: };
                    205: struct room dayfile[];
                    206: struct room nightfile[];
                    207: struct room *location;
                    208: 
                    209:        /* object characteristics */
                    210: char *objdes[NUMOFOBJECTS];
                    211: char *objsht[NUMOFOBJECTS];
                    212: char *ouch[NUMOFINJURIES];
                    213: int objwt[NUMOFOBJECTS];
                    214: int objcumber[NUMOFOBJECTS];
                    215: 
                    216:        /* current input line */
                    217: #define NWORD  20                      /* words per line */
                    218: char words[NWORD][15];
                    219: int wordvalue[NWORD];
                    220: int wordtype[NWORD];
                    221: int wordcount, wordnumber;
                    222: 
                    223: char *truedirec(), *rate();
                    224: char *getcom(), *getword();
                    225: 
                    226:        /* state of the game */
                    227: int time;
                    228: int position;
                    229: int direction;
                    230: int left, right, ahead, back;
                    231: int clock, fuel, torps;
                    232: int carrying, encumber;
                    233: int rythmn;
                    234: int followfight;
                    235: int ate;
                    236: int snooze;
                    237: int meetgirl;
                    238: int followgod;
                    239: int godready;
                    240: int win;
                    241: int wintime;
                    242: int wiz;
                    243: int tempwiz;
                    244: int matchlight, matchcount;
                    245: int loved;
                    246: int pleasure, power, ego;
                    247: int WEIGHT;
                    248: int CUMBER;
                    249: int notes[NUMOFNOTES];
                    250: unsigned int inven[NUMOFWORDS];
                    251: unsigned int wear[NUMOFWORDS];
                    252: char beenthere[NUMOFROOMS+1];
                    253: char injuries[NUMOFINJURIES];
                    254: 
                    255: char uname[9];
                    256: 
                    257: struct wlist {
                    258:        char *string;
                    259:        int value, article;
                    260:        struct wlist *next;
                    261: };
                    262: #define HASHSIZE       256
                    263: #define HASHMUL                81
                    264: #define HASHMASK       (HASHSIZE - 1)
                    265: struct wlist *hashtab[HASHSIZE];
                    266: struct wlist wlist[];
                    267: 
                    268: struct objs {
                    269:        short room;
                    270:        short obj;
                    271: };
                    272: struct objs dayobjs[];
                    273: struct objs nightobjs[];

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.