home · contact · privacy
Replaced dummy function by just passing NULL and checking for it.
[plomrogue] / src / map_objects.h
index 8b58c101b05e130f8425a8e7c2b55511deca36e5..f39df0daedf99ff059778a2f21cd035bb4c727d3 100644 (file)
@@ -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