home · contact · privacy
Had forgotten to actually add the new library.
[plomrogue] / src / map_objects.h
index 6f3772e5272fd858760d6d4218032a6784c163ce..9ef7f3b3a86bf484651bb7601395011d92d5f1b8 100644 (file)
@@ -1,41 +1,49 @@
-#ifndef ACTORS_H
-#define ACTORS_H
+#ifndef MAP_OBJECTS_H
+#define MAP_OBJECTS_H
 
 #include <stdio.h>
 #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; };
 
+struct ItemDef {
+  struct MapObjDef map_obj_def; };
+
+struct MonsterDef {
+  struct MapObjDef map_obj_def;
+  unsigned char hitpoints_start; };
+
 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 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