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

1.1       root        1: /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
                      2: /* def.monst.h - version 1.0.2 */
                      3: 
                      4: struct monst {
                      5:        struct monst *nmon;
                      6:        struct permonst *data;
                      7:        unsigned m_id;
                      8:        xchar mx,my;
                      9:        xchar mdx,mdy;          /* if mdispl then pos where last displayed */
                     10: #define        MTSZ    4
                     11:        coord mtrack[MTSZ];     /* monster track */
                     12:        schar mhp,mhpmax;
                     13:        char mappearance;       /* nonzero for undetected 'M's and for '1's */
                     14:        Bitfield(mimic,1);      /* undetected mimic */
                     15:        Bitfield(mdispl,1);     /* mdx,mdy valid */
                     16:        Bitfield(minvis,1);     /* invisible */
                     17:        Bitfield(cham,1);       /* shape-changer */
                     18:        Bitfield(mhide,1);      /* hides beneath objects */
                     19:        Bitfield(mundetected,1);        /* not seen in present hiding place */
                     20:        Bitfield(mspeed,2);
                     21:        Bitfield(msleep,1);
                     22:        Bitfield(mfroz,1);
                     23:        Bitfield(mconf,1);
                     24:        Bitfield(mflee,1);      /* fleeing */
                     25:        Bitfield(mfleetim,7);   /* timeout for mflee */
                     26:        Bitfield(mcan,1);       /* has been cancelled */
                     27:        Bitfield(mtame,1);              /* implies peaceful */
                     28:        Bitfield(mpeaceful,1);  /* does not attack unprovoked */
                     29:        Bitfield(isshk,1);      /* is shopkeeper */
                     30:        Bitfield(isgd,1);       /* is guard */
                     31:        Bitfield(mcansee,1);    /* cansee 1, temp.blinded 0, blind 0 */
                     32:        Bitfield(mblinded,7);   /* cansee 0, temp.blinded n, blind 0 */
                     33:        Bitfield(mtrapped,1);   /* trapped in a pit or bear trap */
                     34:        Bitfield(mnamelth,6);   /* length of name (following mxlth) */
                     35: #ifndef NOWORM
                     36:        Bitfield(wormno,5);     /* at most 31 worms on any level */
                     37: #endif NOWORM
                     38:        unsigned mtrapseen;     /* bitmap of traps we've been trapped in */
                     39:        long mlstmv;    /* prevent two moves at once */
                     40:        struct obj *minvent;
                     41:        long mgold;
                     42:        unsigned mxlth;         /* length of following data */
                     43:        /* in order to prevent alignment problems mextra should
                     44:           be (or follow) a long int */
                     45:        long mextra[1];         /* monster dependent info */
                     46: };
                     47: 
                     48: #define newmonst(xl)   (struct monst *) alloc((unsigned)(xl) + sizeof(struct monst))
                     49: 
                     50: extern struct monst *fmon;
                     51: extern struct monst *fallen_down;
                     52: struct monst *m_at();
                     53: 
                     54: /* these are in mspeed */
                     55: #define MSLOW 1 /* slow monster */
                     56: #define MFAST 2 /* speeded monster */
                     57: 
                     58: #define        NAME(mtmp)      (((char *) mtmp->mextra) + mtmp->mxlth)
                     59: #define        MREGEN          "TVi1"
                     60: #define        UNDEAD          "ZVW "

unix.superglobalmegacorp.com

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