summaryrefslogtreecommitdiff
path: root/src/monster_type.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/monster_type.hpp')
-rw-r--r--src/monster_type.hpp60
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 ? */
+};