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