diff options
Diffstat (limited to 'src/monster_type.hpp')
-rw-r--r-- | src/monster_type.hpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/monster_type.hpp b/src/monster_type.hpp new file mode 100644 index 00000000..ccb555d4 --- /dev/null +++ b/src/monster_type.hpp @@ -0,0 +1,60 @@ +#pragma once + +#include "h-basic.h" +#include "monster_blow.hpp" + +/** + * Monster information for a specific monster. + * + * Note: fy, fx constrain dungeon size to 256x256 + * + * The "hold_o_idx" field points to the first object of a stack + * of objects (if any) being carried by the monster (see above). + */ +struct monster_type +{ + s16b r_idx; /* Monster race index */ + + u16b ego; /* Ego monster type */ + + byte fy; /* Y location on map */ + byte fx; /* X location on map */ + + s32b hp; /* Current Hit points */ + s32b maxhp; /* Max Hit points */ + + monster_blow blow[4]; /* Up to four blows per round */ + + byte speed; /* Speed (normally 110) */ + byte level; /* Level of creature */ + s16b ac; /* Armour Class */ + s32b exp; /* Experience */ + + s16b csleep; /* Inactive counter */ + + byte mspeed; /* Monster "speed" */ + byte energy; /* Monster "energy" */ + + byte stunned; /* Monster is stunned */ + byte confused; /* Monster is confused */ + byte monfear; /* Monster is afraid */ + + s16b bleeding; /* Monster is bleeding */ + s16b poisoned; /* Monster is poisoned */ + + byte cdis; /* Current dis from player */ + + s32b mflag; /* Extra monster flags */ + + bool_ ml; /* Monster is "visible" */ + + s16b hold_o_idx; /* Object being held (if any) */ + + u32b smart; /* Field for "smart_learn" */ + + s16b status; /* Status(friendly, pet, companion, ..) */ + + s16b target; /* Monster target */ + + s16b possessor; /* Is it under the control of a possessor ? */ +}; |