home · contact · privacy
Moved initialization of map object definitions from defs file into map_objects library.
[plomrogue] / src / map_objects.h
1 #ifndef MAP_OBJECTS_H
2 #define MAP_OBJECTS_H
3
4 #include <stdio.h>
5 #include "yx_uint16.h"
6
7 struct World;
8
9 struct Player {
10   struct yx_uint16 pos;
11   unsigned char hitpoints; };
12
13 struct MapObj {
14   void * next;
15   char type;
16   struct yx_uint16 pos; };
17
18 struct MapObjDef {
19   struct MapObjDef * next;
20   char id;
21   char mapchar;
22   char * desc; };
23
24 struct Item {
25   struct MapObj map_obj; };
26
27 struct Monster {
28   struct MapObj map_obj;
29   unsigned char hitpoints; };
30
31 struct ItemDef {
32   struct MapObjDef map_obj_def; };
33
34 struct MonsterDef {
35   struct MapObjDef map_obj_def;
36   unsigned char hitpoints_start; };
37
38 extern void init_map_object_defs (struct World *, char *);
39 extern void readwrite_map_objects_dummy (void *, FILE *);
40 extern void write_map_objects_monsterdata (void *, FILE *);
41 extern void write_map_objects (void * start, FILE *, void (*) (void *, FILE *) );
42 extern void read_map_objects_monsterdata (void *, FILE *);
43 extern void read_map_objects (void *, FILE *, size_t, void (*) (void *, FILE *) );
44 extern void build_map_objects_monsterdata (struct MapObjDef *, void *);
45 extern void build_map_objects_itemdata (struct MapObjDef *, void *);
46 extern void * build_map_objects (struct World *, void *, char, unsigned char, size_t,
47                                  void (*) (struct MapObjDef *, void *));
48 extern struct MapObjDef * get_map_obj_def (struct World *, char);
49
50 #endif