… | |
… | |
50 | #define MAGIC_MAP_SIZE 50 |
50 | #define MAGIC_MAP_SIZE 50 |
51 | #define MAGIC_MAP_HALF MAGIC_MAP_SIZE/2 |
51 | #define MAGIC_MAP_HALF MAGIC_MAP_SIZE/2 |
52 | |
52 | |
53 | #define MAP_LAYERS 3 |
53 | #define MAP_LAYERS 3 |
54 | |
54 | |
55 | // tile map index |
55 | // tile map index - toggling the lowest bit reverses direction |
56 | enum |
56 | enum |
57 | { |
57 | { |
58 | TILE_NORTH, |
58 | TILE_NORTH, |
59 | TILE_EAST, |
|
|
60 | TILE_SOUTH, |
59 | TILE_SOUTH, |
|
|
60 | TILE_EAST , |
61 | TILE_WEST, |
61 | TILE_WEST, |
62 | TILE_UP, |
62 | TILE_UP, |
63 | TILE_DOWN, |
63 | TILE_DOWN, |
64 | TILE_NUM, |
64 | TILE_NUM |
65 | }; |
65 | }; |
|
|
66 | |
|
|
67 | #define REVERSE_TILE_DIR(dir) ((dir) ^ 1) |
66 | |
68 | |
67 | /* Values for state below */ |
69 | /* Values for state below */ |
68 | enum |
70 | enum |
69 | { |
71 | { |
70 | MAP_SWAPPED, // header loaded, nothing else |
72 | MAP_SWAPPED, // header loaded, nothing else |
… | |
… | |
172 | { |
174 | { |
173 | update (); |
175 | update (); |
174 | return flags_; |
176 | return flags_; |
175 | } |
177 | } |
176 | |
178 | |
|
|
179 | MTH void update_up (); |
|
|
180 | |
177 | MTH void invalidate () |
181 | MTH void invalidate () |
178 | { |
182 | { |
179 | flags_ = 0; |
183 | flags_ = 0; |
180 | } |
184 | |
|
|
185 | if (pflags) |
|
|
186 | update_up (); |
181 | |
187 | } |
|
|
188 | |
182 | MTH object *player () |
189 | MTH object *player () |
183 | { |
190 | { |
184 | object *op; |
191 | object *op; |
185 | |
192 | |
186 | if (flags () & P_PLAYER) |
193 | if (flags () & P_PLAYER) |