123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432 |
- #ifndef __MONSTER_H
- #define __MONSTER_H
- #include "dungeon.h"
- #define MAXMONST 57
- struct monst {
- char *name;
- char level;
- char armorclass;
- char damage;
- char attack;
- char intelligence;
- short gold;
- short hitpoints;
- long experience;
- long flags;
- };
- #define FL_NONE 0x00
- #define FL_GENOCIDED 0x01
- #define FL_HEAD 0x02
- #define FL_NOBEHEAD 0x04
- #define FL_SLOW 0x08
- #define FL_FLY 0x10
- #define FL_SPIRIT 0x20
- #define FL_UNDEAD 0x40
- #define FL_INFRAVIS 0x80
- typedef enum {
- MONST_NONE,
- LEMMING,
- GNOME,
- HOBGOBLIN,
- JACKAL,
- KOBOLD,
- ORC,
- SNAKE,
- CENTIPEDE,
- JACULI,
- TROGLODYTE,
- ANT,
- EYE,
- LEPRECHAUN,
- NYMPH,
- QUASIT,
- RUSTMONSTER,
- ZOMBIE,
- ASSASSINBUG,
- BUGBEAR,
- HELLHOUND,
- ICELIZARD,
- CENTAUR,
- TROLL,
- YETI,
- WHITEDRAGON,
- ELF,
- CUBE,
- METAMORPH,
- VORTEX,
- ZILLER,
- VIOLETFUNGI,
- WRAITH,
- FORVALAKA,
- LAMANOBE,
- OSEQUIP,
- ROTHE,
- XORN,
- VAMPIRE,
- INVISIBLESTALKER,
- POLTERGEIST,
- DISENCHANTRESS,
- SHAMBLINGMOUND,
- YELLOWMOLD,
- UMBERHULK,
- GNOMEKING,
- MIMIC,
- WATERLORD,
- BRONZEDRAGON,
- GREENDRAGON,
- PURPLEWORM,
- XVART,
- SPIRITNAGA,
- SILVERDRAGON,
- PLATINUMDRAGON,
- GREENURCHIN,
- REDDRAGON,
- DEMONLORD,
- DEMONLORD_II,
- DEMONLORD_III,
- DEMONLORD_IV,
- DEMONLORD_V,
- DEMONLORD_VI,
- DEMONLORD_VII,
- DEMONPRINCE,
- LUCIFER,
- MONST_COUNT
- } MonsterIdType;
- extern char monstnamelist[MONST_COUNT];
- extern int monsttilelist[MONST_COUNT];
- extern struct monst monster[MONST_COUNT];
- extern char lastmonst[40];
- extern MonsterIdType last_monst_id;
- extern int last_monst_hx;
- extern int last_monst_hy;
- extern char rmst;
- void createmonster(MonsterIdType mon);
- int mon_has_item(int x, int y, int Item);
- int fullhit(int xx);
- void ifblind(int x, int y);
- void hitmonster(int x, int y);
- int hitm(int x, int y, int amt, int SpellFlag);
- void hitplayer(int x, int y);
- int makemonst(int lev);
- void randmonst(void);
- void teleportmonst(int xx, int yy, int monst);
- void movemonst(void);
- void parse2(void);
- void write_monster_data(FILE *fp);
- void read_monster_data(FILE *fp);
- #endif
|