home · contact · privacy
8b58c101b05e130f8425a8e7c2b55511deca36e5
[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 struct Map;
9
10 struct Player {
11   struct yx_uint16 pos;
12   unsigned char hitpoints; };
13
14 struct ChainMapObject {
15   void * next;
16   unsigned char name;
17   struct yx_uint16 pos; };
18
19 struct Item {
20   struct ChainMapObject cmo; };
21
22 struct Monster {
23   struct ChainMapObject cmo;
24   unsigned char hitpoints; };
25
26 extern void readwrite_map_objects_dummy (void *, FILE *);
27 extern void write_map_objects_monsterdata (void *, FILE *);
28 extern void write_map_objects (void * start, FILE *, void (*) (void *, FILE *) );
29 extern void read_map_objects_monsterdata (void *, FILE *);
30 extern void read_map_objects (void *, FILE *, size_t, void (*) (void *, FILE *) );
31 extern void build_map_objects_monsterdata (void *);
32 extern void build_map_objects_itemdata (void *);
33 extern void build_map_objects (void *, unsigned char, size_t, void (*) (void *), struct Map *);
34
35 extern struct yx_uint16 find_passable_pos (struct Map *);
36 extern char is_passable (struct Map *, struct yx_uint16);
37 extern void move_monster (struct World *, struct Monster *);
38 extern void move_player (struct World *, char);
39 extern void player_wait(struct World *);
40
41 #endif