X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fmap_objects.h;h=f39df0daedf99ff059778a2f21cd035bb4c727d3;hb=27cee0624f3dc430199c99f000179a3385e4d7c5;hp=8b58c101b05e130f8425a8e7c2b55511deca36e5;hpb=610d7fa2782fe894981427a1e917e7b7905fff17;p=plomrogue diff --git a/src/map_objects.h b/src/map_objects.h index 8b58c10..f39df0d 100644 --- a/src/map_objects.h +++ b/src/map_objects.h @@ -5,37 +5,45 @@ #include "yx_uint16.h" struct World; -struct Map; struct Player { struct yx_uint16 pos; unsigned char hitpoints; }; -struct ChainMapObject { +struct MapObj { void * next; - unsigned char name; + char type; struct yx_uint16 pos; }; +struct MapObjDef { + struct MapObjDef * next; + char id; + char mapchar; + char * desc; }; + struct Item { - struct ChainMapObject cmo; }; + struct MapObj map_obj; }; struct Monster { - struct ChainMapObject cmo; + struct MapObj map_obj; unsigned char hitpoints; }; -extern void readwrite_map_objects_dummy (void *, FILE *); +struct ItemDef { + struct MapObjDef map_obj_def; }; + +struct MonsterDef { + struct MapObjDef map_obj_def; + unsigned char hitpoints_start; }; + +extern void init_map_object_defs (struct World *, char *); 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 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 *); +extern void build_map_objects_monsterdata (struct MapObjDef *, void *); +extern void build_map_objects_itemdata (struct MapObjDef *, void *); +extern void * build_map_objects (struct World *, void *, char, unsigned char, size_t, + void (*) (struct MapObjDef *, void *)); +extern struct MapObjDef * get_map_obj_def (struct World *, char); #endif