X-Git-Url: https://plomlompom.com/repos/%7B%7B%20web_path%20%7D%7D/decks/%7B%7Bdeck_id%7D%7D/cards/%7B%7Bcard_id%7D%7D/form?a=blobdiff_plain;f=src%2Fobjects_on_map.h;h=0d56c018e28c9b0ee24b13754a2cf2ac2d3de316;hb=0e8033daabeddfea46bbb756280292df84cd61af;hp=ac3795dee4428d9b4ffefe74f5a15870b468f3e2;hpb=22f0a5223adddd1d6e1ea8f6f521279906b35ecd;p=plomrogue diff --git a/src/objects_on_map.h b/src/objects_on_map.h index ac3795d..0d56c01 100644 --- a/src/objects_on_map.h +++ b/src/objects_on_map.h @@ -1,6 +1,7 @@ #ifndef ACTORS_H #define ACTORS_H +#include #include "yx_uint16.h" struct World; @@ -9,18 +10,29 @@ struct Map; struct Player { struct yx_uint16 pos; }; -struct Item { - struct Item * next; - char name; +struct ChainMapObject { + void * next; + unsigned char name; struct yx_uint16 pos; }; +struct Item { + struct ChainMapObject cmo; }; + struct Monster { - struct Monster * next; - char name; - struct yx_uint16 pos; }; + struct ChainMapObject cmo; + unsigned char hitpoints; }; + +extern void readwrite_map_objects_dummy (void *, FILE *); +extern void write_map_objects_monsterdata (void *, FILE *); +extern void write_map_objects (void * start, FILE *, void (*) (void *, FILE *) ); +extern void read_map_objects_monsterdata (void *, FILE *); +extern void read_map_objects (void *, FILE *, size_t, void (*) (void *, FILE *) ); +extern void build_map_objects_monsterdata (void *); +extern void build_map_objects_itemdata (void *); +extern void build_map_objects (void *, unsigned char, size_t, void (*) (void *), struct Map *); -extern char is_passable (struct Map *, struct yx_uint16); extern struct yx_uint16 find_passable_pos (struct Map *); +extern char is_passable (struct Map *, struct yx_uint16); extern void move_monster (struct World *, struct Monster *); extern void move_player (struct World *, char); extern void player_wait(struct World *);