1 #define CLIPMAP 0
2 #define MAP 1
3 
4 /* Dimensions of a tile in pixels */
5 #define TILE_W 64
6 #define TILE_H 64
7 
8 #define L_BASE      1
9 #define L_OBJECT    2
10 #define L_TOPLEVEL  4
11 #define L_EVENT     8
12 #define L_TEXT     16
13 
14 typedef enum {
15     BASE,
16     OBJECT,
17     TOPLEVEL,
18     EVENT,
19     TEXT,
20     EVENTMETA,
21     ENTITY,
22     MAP_LAYERS
23 } maplayer_t;
24 
25 enum {
26     NOCLIP,
27     AICLIP,
28     GROUNDCLIP,
29     ALLCLIP,
30     NUM_CLIPLEVELS
31 };
32 
33 struct maptext_struct {
34     int x, y;
35     int height, width; /* Worked out by the client using X calls */
36     int font;
37     char color[16];
38     char *string;
39     struct maptext_struct *next;
40 };
41 
42 typedef struct maptext_struct maptext_t;
43 
44 typedef struct {
45     /* Map header info */
46     char name[32];
47     char tileset[32];
48     char author[32];
49     int width, height;
50     int dirty; /* Something's changed and map needs to be redrawn */
51     int map_type;
52     /* map data, size if allocated = width * height */
53     char *base;
54     char *object;
55     char *toplevel; /* Only used on client */
56     char *event; /* Only used on server */
57     /* text drawn on the map in the client */
58     maptext_t *text_root;
59 } map_t;
60 
61 
62 map_t *map_load(char *filename, int layers, int map_type);
63 void map_close(map_t **map);
64 string_node *map_make_filename_list(void);
65 
66