Annotation of 43BSDTahoe/games/hack/hack.h, revision 1.1.1.1

1.1       root        1: /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
                      2: /* hack.h - version 1.0.3 */
                      3: 
                      4: #include "config.h"
                      5: 
                      6: #ifdef BSD
                      7: #include <strings.h>           /* declarations for strcat etc. */
                      8: #else
                      9: #include <string.h>            /* idem on System V */
                     10: #define        index   strchr
                     11: #define        rindex  strrchr
                     12: #endif BSD
                     13: 
                     14: #define        Null(type)      ((struct type *) 0)
                     15: 
                     16: #include       "def.objclass.h"
                     17: 
                     18: typedef struct {
                     19:        xchar x,y;
                     20: } coord;
                     21: 
                     22: #include       "def.monst.h"   /* uses coord */
                     23: #include       "def.gold.h"
                     24: #include       "def.trap.h"
                     25: #include       "def.obj.h"
                     26: #include       "def.flag.h"
                     27: 
                     28: #define        plur(x) (((x) == 1) ? "" : "s")
                     29: 
                     30: #define        BUFSZ   256     /* for getlin buffers */
                     31: #define        PL_NSIZ 32      /* name of player, ghost, shopkeeper */
                     32: 
                     33: #include       "def.rm.h"
                     34: #include       "def.permonst.h"
                     35: 
                     36: extern long *alloc();
                     37: 
                     38: extern xchar xdnstair, ydnstair, xupstair, yupstair; /* stairs up and down. */
                     39: 
                     40: extern xchar dlevel;
                     41: #define        newstring(x)    (char *) alloc((unsigned)(x))
                     42: #include "hack.onames.h"
                     43: 
                     44: #define ON 1
                     45: #define OFF 0
                     46: 
                     47: extern struct obj *invent, *uwep, *uarm, *uarm2, *uarmh, *uarms, *uarmg, 
                     48:        *uleft, *uright, *fcobj;
                     49: extern struct obj *uchain;     /* defined iff PUNISHED */
                     50: extern struct obj *uball;      /* defined if PUNISHED */
                     51: struct obj *o_at(), *getobj(), *sobj_at();
                     52: 
                     53: struct prop {
                     54: #define        TIMEOUT         007777  /* mask */
                     55: #define        LEFT_RING       W_RINGL /* 010000L */
                     56: #define        RIGHT_RING      W_RINGR /* 020000L */
                     57: #define        INTRINSIC       040000L
                     58: #define        LEFT_SIDE       LEFT_RING
                     59: #define        RIGHT_SIDE      RIGHT_RING
                     60: #define        BOTH_SIDES      (LEFT_SIDE | RIGHT_SIDE)
                     61:        long p_flgs;
                     62:        int (*p_tofn)();        /* called after timeout */
                     63: };
                     64: 
                     65: struct you {
                     66:        xchar ux, uy;
                     67:        schar dx, dy, dz;       /* direction of move (or zap or ... ) */
                     68: #ifdef QUEST
                     69:        schar di;               /* direction of FF */
                     70:        xchar ux0, uy0;         /* initial position FF */
                     71: #endif QUEST
                     72:        xchar udisx, udisy;     /* last display pos */
                     73:        char usym;              /* usually '@' */
                     74:        schar uluck;
                     75: #define        LUCKMAX         10      /* on moonlit nights 11 */
                     76: #define        LUCKMIN         (-10)
                     77:        int last_str_turn:3;    /* 0: none, 1: half turn, 2: full turn */
                     78:                                /* +: turn right, -: turn left */
                     79:        unsigned udispl:1;      /* @ on display */
                     80:        unsigned ulevel:4;      /* 1 - 14 */
                     81: #ifdef QUEST
                     82:        unsigned uhorizon:7;
                     83: #endif QUEST
                     84:        unsigned utrap:3;       /* trap timeout */
                     85:        unsigned utraptype:1;   /* defined if utrap nonzero */
                     86: #define        TT_BEARTRAP     0
                     87: #define        TT_PIT          1
                     88:        unsigned uinshop:6;     /* used only in shk.c - (roomno+1) of shop */
                     89: 
                     90: 
                     91: /* perhaps these #define's should also be generated by makedefs */
                     92: #define        TELEPAT         LAST_RING               /* not a ring */
                     93: #define        Telepat         u.uprops[TELEPAT].p_flgs
                     94: #define        FAST            (LAST_RING+1)           /* not a ring */
                     95: #define        Fast            u.uprops[FAST].p_flgs
                     96: #define        CONFUSION       (LAST_RING+2)           /* not a ring */
                     97: #define        Confusion       u.uprops[CONFUSION].p_flgs
                     98: #define        INVIS           (LAST_RING+3)           /* not a ring */
                     99: #define        Invis           u.uprops[INVIS].p_flgs
                    100: #define Invisible      (Invis && !See_invisible)
                    101: #define        GLIB            (LAST_RING+4)           /* not a ring */
                    102: #define        Glib            u.uprops[GLIB].p_flgs
                    103: #define        PUNISHED        (LAST_RING+5)           /* not a ring */
                    104: #define        Punished        u.uprops[PUNISHED].p_flgs
                    105: #define        SICK            (LAST_RING+6)           /* not a ring */
                    106: #define        Sick            u.uprops[SICK].p_flgs
                    107: #define        BLIND           (LAST_RING+7)           /* not a ring */
                    108: #define        Blind           u.uprops[BLIND].p_flgs
                    109: #define        WOUNDED_LEGS    (LAST_RING+8)           /* not a ring */
                    110: #define Wounded_legs   u.uprops[WOUNDED_LEGS].p_flgs
                    111: #define STONED         (LAST_RING+9)           /* not a ring */
                    112: #define Stoned         u.uprops[STONED].p_flgs
                    113: #define PROP(x) (x-RIN_ADORNMENT)       /* convert ring to index in uprops */
                    114:        unsigned umconf:1;
                    115:        char *usick_cause;
                    116:        struct prop uprops[LAST_RING+10];
                    117: 
                    118:        unsigned uswallow:1;            /* set if swallowed by a monster */
                    119:        unsigned uswldtim:4;            /* time you have been swallowed */
                    120:        unsigned uhs:3;                 /* hunger state - see hack.eat.c */
                    121:        schar ustr,ustrmax;
                    122:        schar udaminc;
                    123:        schar uac;
                    124:        int uhp,uhpmax;
                    125:        long int ugold,ugold0,uexp,urexp;
                    126:        int uhunger;                    /* refd only in eat.c and shk.c */
                    127:        int uinvault;
                    128:        struct monst *ustuck;
                    129:        int nr_killed[CMNUM+2];         /* used for experience bookkeeping */
                    130: };
                    131: 
                    132: extern struct you u;
                    133: 
                    134: extern char *traps[];
                    135: extern char *monnam(), *Monnam(), *amonnam(), *Amonnam(),
                    136:        *doname(), *aobjnam();
                    137: extern char readchar();
                    138: extern char vowels[];
                    139: 
                    140: extern xchar curx,cury;        /* cursor location on screen */
                    141: 
                    142: extern coord bhitpos;  /* place where thrown weapon falls to the ground */
                    143: 
                    144: extern xchar seehx,seelx,seehy,seely; /* where to see*/
                    145: extern char *save_cm,*killer;
                    146: 
                    147: extern xchar dlevel, maxdlevel; /* dungeon level */
                    148: 
                    149: extern long moves;
                    150: 
                    151: extern int multi;
                    152: 
                    153: 
                    154: extern char lock[];
                    155: 
                    156: 
                    157: #define DIST(x1,y1,x2,y2)       (((x1)-(x2))*((x1)-(x2)) + ((y1)-(y2))*((y1)-(y2)))
                    158: 
                    159: #define        PL_CSIZ         20      /* sizeof pl_character */
                    160: #define        MAX_CARR_CAP    120     /* so that boulders can be heavier */
                    161: #define        MAXLEVEL        40
                    162: #define        FAR     (COLNO+2)       /* position outside screen */

unix.superglobalmegacorp.com

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