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

Defined struct's

prop defined in line 54; used 4 times
you defined in line 66; used 10 times

Defined macros

BLIND defined in line 108; used 1 times
BOTH_SIDES defined in line 61; used 2 times
CONFUSION defined in line 97; used 1 times
  • in line 98
FAST defined in line 95; used 1 times
  • in line 96
GLIB defined in line 102; used 1 times
Glib defined in line 103; used 3 times
INVIS defined in line 99; used 1 times
LEFT_RING defined in line 56; used 6 times
LEFT_SIDE defined in line 59; used 5 times
LUCKMAX defined in line 76; used 2 times
LUCKMIN defined in line 77; used 3 times
MAX_CARR_CAP defined in line 161; used 3 times
OFF defined in line 46; used 3 times
ON defined in line 45; used 3 times
PUNISHED defined in line 104; used 1 times
RIGHT_RING defined in line 57; used 6 times
SICK defined in line 106; used 1 times
STONED defined in line 112; used 1 times
Sick defined in line 107; used 7 times
TELEPAT defined in line 93; used 1 times
  • in line 94
TIMEOUT defined in line 55; used 3 times
TT_BEARTRAP defined in line 87; used 1 times
WOUNDED_LEGS defined in line 110; used 1 times
index defined in line 10; used 102 times
newstring defined in line 42; used 1 times

Usage of this include

hack.h used 50 times
Last modified: 1999-11-25
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 3754
Valid CSS Valid XHTML 1.0 Strict