Annotation of 43BSD/games/hunt/hunt.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  *  Hunt
                      3:  *  Copyright (c) 1985 Conrad C. Huang, Gregory S. Couch, Kenneth C.R.C. Arnold
                      4:  *  San Francisco, California
                      5:  *
                      6:  *  Copyright (c) 1985 Regents of the University of California.
                      7:  *  All rights reserved.  The Berkeley software License Agreement
                      8:  *  specifies the terms and conditions for redistribution.
                      9:  */
                     10: 
                     11: # include      <stdio.h>
                     12: # ifndef OLDIPC
                     13: # include      <sgtty.h>
                     14: # include      <sys/types.h>
                     15: # include      <sys/uio.h>
                     16: # else OLDIPC
                     17: # include      <sys/localopts.h>
                     18: # include      <sys/types.h>
                     19: # include      <sys/netltoshort.h>
                     20: # endif OLDIPC
                     21: # include      <sys/socket.h>
                     22: # ifdef        INTERNET
                     23: # include      <netinet/in.h>
                     24: # include      <netdb.h>
                     25: # ifndef OLDIPC
                     26: # include      <arpa/inet.h>
                     27: # endif !OLDIPC
                     28: # ifdef BROADCAST
                     29: # include      <net/if.h>
                     30: # endif BROADCAST
                     31: # else INTERNET
                     32: # include      <sys/un.h>
                     33: # endif        INTERNET
                     34: 
                     35: # ifdef        INTERNET
                     36: # define       SOCK_FAMILY     AF_INET
                     37: # else INTERNET
                     38: # define       SOCK_FAMILY     AF_UNIX
                     39: # define       AF_UNIX_HACK            /* 4.2 hack; leaves files around */
                     40: # endif        INTERNET
                     41: 
                     42: # define       ADDCH           ('a' | 0200)
                     43: # define       MOVE            ('m' | 0200)
                     44: # define       REFRESH         ('r' | 0200)
                     45: # define       CLRTOEOL        ('c' | 0200)
                     46: # define       ENDWIN          ('e' | 0200)
                     47: # define       CLEAR           ('C' | 0200)
                     48: # define       REDRAW          ('R' | 0200)
                     49: # define       LAST_PLAYER     ('l' | 0200)
                     50: # define       BELL            ('b' | 0200)
                     51: # define       READY           ('g' | 0200)
                     52: 
                     53: /*
                     54:  * Choose MAXPL and MAXMON carefully.  The screen is assumed to be
                     55:  * 23 lines high and will only tolerate (MAXPL == 12 && MAXMON == 0)
                     56:  * or (MAXPL + MAXMON <= 10).
                     57:  */
                     58: # define       MAXPL           9
                     59: # ifdef MONITOR
                     60: # define       MAXMON          1
                     61: # endif MONITOR
                     62: # define       NAMELEN         20
                     63: # define       MSGLEN          80
                     64: # define       DECAY           50.0
                     65: 
                     66: # define       NASCII          128
                     67: 
                     68: # ifndef REFLECT
                     69: # ifndef RANDOM
                     70: # define RANDOM
                     71: # endif RANDOM
                     72: # endif REFLECT
                     73: 
                     74: # define       WIDTH   59
                     75: # define       WIDTH2  64      /* Next power of 2 >= WIDTH (for fast access) */
                     76: # define       HEIGHT  23
                     77: # define       UBOUND  1
                     78: # define       DBOUND  22
                     79: # define       LBOUND  1
                     80: # define       RBOUND  (WIDTH - 1)
                     81: 
                     82: # define       STAT_LABEL_COL  60
                     83: # define       STAT_VALUE_COL  74
                     84: # define       STAT_NAME_COL   61
                     85: # define       STAT_SCAN_COL   (STAT_NAME_COL + 5)
                     86: # define       STAT_NAME_ROW   0
                     87: # define       STAT_AMMO_ROW   2
                     88: # define       STAT_SCAN_ROW   3
                     89: # define       STAT_CLOAK_ROW  4
                     90: # define       STAT_GUN_ROW    5
                     91: # define       STAT_DAM_ROW    7
                     92: # define       STAT_KILL_ROW   8
                     93: # define       STAT_PLAY_ROW   10
                     94: # ifdef MONITOR
                     95: # define       STAT_MON_ROW    (STAT_PLAY_ROW + MAXPL + 1)
                     96: # endif MONITOR
                     97: # define       STAT_NAME_LEN   16
                     98: 
                     99: # define       DOOR    '#'
                    100: # define       WALL1   '-'
                    101: # define       WALL2   '|'
                    102: # define       WALL3   '+'
                    103: # ifdef REFLECT
                    104: # define       WALL4   '/'
                    105: # define       WALL5   '\\'
                    106: # endif REFLECT
                    107: # define       KNIFE   'K'
                    108: # define       SHOT    ':'
                    109: # define       GRENADE 'o'
                    110: # define       SATCHEL 'O'
                    111: # define       BOMB    '@'
                    112: # define       MINE    ';'
                    113: # define       GMINE   'g'
                    114: # ifdef        OOZE
                    115: # define       SLIME   '$'
                    116: # endif        OOZE
                    117: # ifdef        VOLCANO
                    118: # define       LAVA    '~'
                    119: # endif        VOLCANO
                    120: # ifdef FLY
                    121: # define       FALL    'F'
                    122: # endif FLY
                    123: # define       SPACE   ' '
                    124: 
                    125: # define       ABOVE   'i'
                    126: # define       BELOW   '!'
                    127: # define       RIGHT   '}'
                    128: # define       LEFTS   '{'
                    129: # ifdef FLY
                    130: # define       FLYER   '&'
                    131: # endif FLY
                    132: 
                    133: # define       NORTH   01
                    134: # define       SOUTH   02
                    135: # define       EAST    010
                    136: # define       WEST    020
                    137: 
                    138: # ifndef TRUE
                    139: # define       TRUE    1
                    140: # define       FALSE   0
                    141: # endif TRUE
                    142: # ifndef CTRL
                    143: # define       CTRL(x) ('x' & 037)
                    144: # endif CTRL
                    145: 
                    146: # define       BULSPD          5               /* bullets movement speed */
                    147: # define       ISHOTS          15
                    148: # define       NSHOTS          5
                    149: # define       MAXNCSHOT       2
                    150: # define       MAXDAM          10
                    151: # define       MINDAM          5
                    152: # define       STABDAM         2
                    153: 
                    154: # define       BULREQ          1
                    155: # define       GRENREQ         9
                    156: # define       SATREQ          25
                    157: # define       BOMBREQ         49
                    158: # ifdef        OOZE
                    159: # define       SLIMEREQ        15
                    160: # define       SSLIMEREQ       30
                    161: # define       SLIMESPEED      5
                    162: # endif        OOZE
                    163: # ifdef        VOLCANO
                    164: # define       LAVASPEED       2
                    165: # endif VOLCANO
                    166: 
                    167: # define       CLOAKLEN        20
                    168: # define       SCANLEN         (Nplayer * 20)
                    169: # define       EXPLEN          4
                    170: 
                    171: # ifdef FLY
                    172: # define       _cloak_char(pp) (((pp)->p_cloak < 0) ? ' ' : '+')
                    173: # define       _scan_char(pp)  (((pp)->p_scan < 0) ? _cloak_char(pp) : '*')
                    174: # define       stat_char(pp)   (((pp)->p_flying < 0) ? _scan_char(pp) : FLYER)
                    175: # else FLY
                    176: # define       _cloak_char(pp) (((pp)->p_cloak < 0) ? ' ' : '+')
                    177: # define       stat_char(pp)   (((pp)->p_scan < 0) ? _cloak_char(pp) : '*')
                    178: # endif FLY
                    179: 
                    180: typedef int                    FLAG;
                    181: typedef struct bullet_def      BULLET;
                    182: typedef struct expl_def                EXPL;
                    183: typedef struct player_def      PLAYER;
                    184: typedef struct ident_def       IDENT;
                    185: typedef struct regen_def       REGEN;
                    186: # ifdef        INTERNET
                    187: typedef struct sockaddr_in     SOCKET;
                    188: # else INTERNET
                    189: typedef struct sockaddr_un     SOCKET;
                    190: # endif        INTERNET
                    191: typedef struct sgttyb          TTYB;
                    192: 
                    193: struct ident_def {
                    194:        char    i_name[NAMELEN];
                    195:        long    i_machine;
                    196:        long    i_uid;
                    197:        int     i_kills;
                    198:        int     i_entries;
                    199:        float   i_score;
                    200:        IDENT   *i_next;
                    201: };
                    202: 
                    203: struct player_def {
                    204:        IDENT   *p_ident;
                    205:        int     p_face;
                    206:        char    p_over;
                    207:        int     p_undershot;
                    208: # ifdef        FLY
                    209:        int     p_flying;
                    210:        int     p_flyx, p_flyy;
                    211: # endif FLY
                    212:        FILE    *p_output;
                    213:        int     p_fd;
                    214:        int     p_mask;
                    215:        int     p_damage;
                    216:        int     p_damcap;
                    217:        int     p_ammo;
                    218:        int     p_ncshot;
                    219:        int     p_scan;
                    220:        int     p_cloak;
                    221:        int     p_x, p_y;
                    222:        int     p_ncount;
                    223:        int     p_nexec;
                    224:        long    p_nchar;
                    225:        char    p_death[MSGLEN];
                    226:        char    p_maze[HEIGHT][WIDTH2];
                    227:        int     p_curx, p_cury;
                    228:        int     p_lastx, p_lasty;
                    229:        int     p_changed;
                    230:        char    p_cbuf[BUFSIZ];
                    231: };
                    232: 
                    233: struct bullet_def {
                    234:        int     b_x, b_y;
                    235:        int     b_face;
                    236:        int     b_charge;
                    237:        char    b_type;
                    238:        char    b_over;
                    239:        PLAYER  *b_owner;
                    240:        IDENT   *b_score;
                    241:        FLAG    b_expl;
                    242:        BULLET  *b_next;
                    243: };
                    244: 
                    245: struct expl_def {
                    246:        int     e_x, e_y;
                    247:        char    e_char;
                    248:        EXPL    *e_next;
                    249: };
                    250: 
                    251: struct regen_def {
                    252:        int     r_x, r_y;
                    253:        REGEN   *r_next;
                    254: };
                    255: 
                    256: /*
                    257:  * external variables
                    258:  */
                    259: 
                    260: extern FLAG    Last_player;
                    261: 
                    262: extern char    Buf[BUFSIZ], Maze[HEIGHT][WIDTH2], Orig_maze[HEIGHT][WIDTH2];
                    263: 
                    264: extern char    *Sock_name, *Driver;
                    265: 
                    266: extern int     errno, Have_inp, Nplayer, Num_fds, Socket;
                    267: extern long    Fds_mask, Sock_mask;
                    268: 
                    269: # ifdef INTERNET
                    270: extern int     Test_port;
                    271: extern int     Sock_port;
                    272: # else INTERNET
                    273: extern char    *Sock_name;
                    274: # endif INTERNET
                    275: 
                    276: # ifdef VOLCANO
                    277: extern int     volcano;
                    278: # endif        VOLCANO
                    279: 
                    280: extern int     See_over[NASCII];
                    281: 
                    282: extern BULLET  *Bullets;
                    283: 
                    284: extern EXPL    *Expl[EXPLEN];
                    285: 
                    286: extern IDENT   *Scores;
                    287: 
                    288: extern PLAYER  Player[MAXPL], *End_player;
                    289: 
                    290: # ifdef MONITOR
                    291: extern FLAG    Am_monitor;
                    292: extern PLAYER  Monitor[MAXMON], *End_monitor;
                    293: # endif MONITOR
                    294: 
                    295: /*
                    296:  * function types
                    297:  */
                    298: 
                    299: char   *getenv(), *malloc(), *sprintf(), *strcpy(), *strncpy();
                    300: 
                    301: IDENT  *get_ident();
                    302: 
                    303: int    moveshots();
                    304: 
                    305: BULLET *is_bullet(), *create_shot();
                    306: 
                    307: PLAYER *play_at();

unix.superglobalmegacorp.com

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