… | |
… | |
267 | * almost certainly break various features. You may think |
267 | * almost certainly break various features. You may think |
268 | * it is safe to look at width and height values directly |
268 | * it is safe to look at width and height values directly |
269 | * (or even through the macros), but doing so will completely |
269 | * (or even through the macros), but doing so will completely |
270 | * break map tiling. |
270 | * break map tiling. |
271 | */ |
271 | */ |
272 | ACC_CLASS (maptile) |
272 | INTERFACE_CLASS (maptile) |
273 | struct maptile : zero_initialised, attachable<maptile> |
273 | struct maptile : zero_initialised, attachable |
274 | { |
274 | { |
275 | sint32 ACC (RO, width), ACC (RO, height); /* Width and height of map. */ |
275 | sint32 ACC (RO, width), ACC (RO, height); /* Width and height of map. */ |
276 | struct mapspace *spaces; /* Array of spaces on this map */ |
276 | struct mapspace *spaces; /* Array of spaces on this map */ |
277 | |
277 | |
278 | maptile *ACC (RW, next); /* Next map, linked list */ |
278 | maptile *ACC (RW, next); /* Next map, linked list */ |
… | |
… | |
321 | char *tile_path[4]; /* path to adjoining maps */ |
321 | char *tile_path[4]; /* path to adjoining maps */ |
322 | maptile *tile_map[4]; /* Next map, linked list */ |
322 | maptile *tile_map[4]; /* Next map, linked list */ |
323 | char ACC (RW, path)[HUGE_BUF]; /* Filename of the map */ |
323 | char ACC (RW, path)[HUGE_BUF]; /* Filename of the map */ |
324 | |
324 | |
325 | maptile (); |
325 | maptile (); |
|
|
326 | ~maptile (); |
|
|
327 | void do_destroy (); |
|
|
328 | void gather_callbacks (AV *&callbacks, event_type event) const; |
|
|
329 | |
326 | void allocate (); |
330 | void allocate (); |
327 | |
331 | |
328 | mapspace const &at (uint32 x, uint32 y) const { return spaces [x + width * y]; } |
332 | mapspace const &at (uint32 x, uint32 y) const { return spaces [x + width * y]; } |
329 | mapspace &at (uint32 x, uint32 y) { return spaces [x + width * y]; } |
333 | mapspace &at (uint32 x, uint32 y) { return spaces [x + width * y]; } |
330 | }; |
334 | }; |