home · contact · privacy
Add basic food clock (but no consumables yet to re-set it).
[plomrogue] / src / server / things.h
index 0f20fd90b8a14031b42fc4e3deb3791cd079028e..494d1a5aade2461d07c723e9f10ab53c68abc0f5 100644 (file)
@@ -11,7 +11,7 @@
 #ifndef THINGS_H
 #define THINGS_H
 
-#include <stdint.h> /* uint8_t, int16_t */
+#include <stdint.h> /* uint8_t, int16_t, uint16_t */
 #include "../common/yx_uint8.h" /* yx_uint8 */
 
 
@@ -25,6 +25,8 @@ struct Thing
     struct yx_uint8 pos;          /* coordinate on map */
     char * fov_map;               /* thing's FOV map; 'v':visible, 'H':hidden */
     char * mem_map;               /* map knowledge of thing by FOV and memory */
+    char * mem_depth_map;         /* map of map memory up-to-dateness */
+    int16_t satiation;            /* negative: hungry; positive: over-fed */
     uint8_t type;                 /* ID of appropriate thing definition */
     uint8_t lifepoints;           /* 0: thing is inanimate; >0: hitpoints */
     uint8_t command;              /* thing's current action; 0 if none */
@@ -45,6 +47,7 @@ struct ThingType
     uint8_t id;          /* thing type identifier / sets .type */
     char char_on_map;    /* thing symbol to appear on map */
     char * name;         /* string to describe thing in game log */
+    uint16_t stomach;    /* if >0, defines onset & chance of hunger suffering */
     uint8_t corpse_id;   /* type to change thing into upon destruction */
     uint8_t lifepoints;  /* default start value for thing's .lifepoints */
     uint8_t consumable;  /* can be eaten if !0, for so much hitpoint win */
@@ -110,9 +113,9 @@ extern struct Thing * get_thing(struct Thing * ptr, uint8_t id, uint8_t deep);
  */
 extern struct Thing * get_player();
 
-/* Try to create "t" offspring on random passable neighbor cell if available (and,
- * if "t" is of animate thing type, not inhabited by animate thing) and "t"'s
- * type's .proliferation is >0, with a chance of 1/.proliferation.
+/* Try to create "t" offspring on random passable neighbor cell if available
+ * (and, if "t" is of animate thing type, not inhabited by animate thing) and
+ * "t"'s type's .proliferation is >0, with a chance of 1/.proliferation.
  */
 extern void try_thing_proliferation(struct Thing * t);