- void * next;
- char type; /* Map object type identifier (see MapObjDef.id). */
- struct yx_uint16 pos; /* Coordinate of object on map. */
-};
-
-struct Item
-{
- struct MapObj map_obj;
-};
-
-struct Monster
-{
- struct MapObj map_obj;
- unsigned char hitpoints;
+ struct MapObj * next; /* pointer to next one in map object chain */
+ struct MapObj * owns; /* chain of map objects owned / in inventory */
+ uint8_t id; /* individual map object's unique identifier */
+ uint8_t type; /* ID of appropriate map object definition */
+ uint8_t lifepoints; /* 0: object is inanimate; >0: hitpoints */
+ struct yx_uint16 pos; /* coordinate on map */
+ uint8_t command; /* command map object tries to realize now*/
+ uint8_t arg; /* optional field for command argument */
+ uint8_t progress; /* turns already passed to realize .command */