Annotation of 43BSD/games/hunt/hunt.h, revision 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.