Annotation of 43BSDTahoe/games/hack/def.monst.h, revision 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.