diff options
-rw-r--r-- | station.h | 18 | ||||
-rw-r--r-- | station_cmd.c | 48 | ||||
-rw-r--r-- | table/station_land.h | 964 | ||||
-rw-r--r-- | table/unmovable_land.h | 126 | ||||
-rw-r--r-- | unmovable_cmd.c | 20 |
5 files changed, 527 insertions, 649 deletions
@@ -89,4 +89,22 @@ VARDEF bool _global_station_sort_dirty; void GetProductionAroundTiles(uint *produced, uint tile, int w, int h); void GetAcceptanceAroundTiles(uint *accepts, uint tile, int w, int h); uint GetStationPlatforms(Station *st, uint tile); + + +typedef struct DrawTileSeqStruct { + int8 delta_x; + int8 delta_y; + int8 delta_z; + byte width,height; + byte unk; // 'depth', just z-size; TODO: rename + uint32 image; +} DrawTileSeqStruct; + +typedef struct DrawTileSprites { + SpriteID ground_sprite; + DrawTileSeqStruct const *seq; +} DrawTileSprites; + +#define foreach_draw_tile_seq(idx, list) for (idx = list; ((byte) idx->delta_x) != 0x80; idx++) + #endif /* STATION_H */ diff --git a/station_cmd.c b/station_cmd.c index 23f5b17cc..c28c2587e 100644 --- a/station_cmd.c +++ b/station_cmd.c @@ -1717,22 +1717,13 @@ static int32 RemoveDock(Station *st, uint32 flags) #include "table/station_land.h" -typedef struct DrawTileSeqStruct { - int8 delta_x; - int8 delta_y; - int8 delta_z; - byte width,height; - byte unk; - SpriteID image; -} DrawTileSeqStruct; - static void DrawTile_Station(TileInfo *ti) { uint32 image_or_modificator; uint32 base_img, image; const DrawTileSeqStruct *dtss; - const byte *t; + const DrawTileSprites *t; // station_land array has been increased from 82 elements to 114 // but this is something else. If AI builds station with 114 it looks all weird @@ -1749,32 +1740,24 @@ static void DrawTile_Station(TileInfo *ti) if (ti->tileh != 0 && (ti->map5 < 0x4C || ti->map5 > 0x51)) DrawFoundation(ti, ti->tileh); - t = _station_display_datas[ti->map5]; + t = &_station_display_datas[ti->map5]; - image = *(const uint32*)t; - t += sizeof(uint32); + image = t->ground_sprite; if (image & 0x8000) image |= image_or_modificator; DrawGroundSprite(image + base_img); - for(dtss = (const DrawTileSeqStruct *)t; (byte)dtss->delta_x != 0x80; dtss++) { - if ((byte)dtss->delta_z != 0x80) { - image = dtss->image + base_img; - if (_display_opt & DO_TRANS_BUILDINGS) { - if (image&0x8000) image |= image_or_modificator; - } else { - image = (image & 0x3FFF) | 0x03224000; - } + foreach_draw_tile_seq(dtss, t->seq) { + image = dtss->image + base_img; + if (_display_opt & DO_TRANS_BUILDINGS) { + if (image&0x8000) image |= image_or_modificator; + } else { + image = (image & 0x3FFF) | 0x03224000; + } + if ((byte)dtss->delta_z != 0x80) { AddSortableSpriteToDraw(image, ti->x + dtss->delta_x, ti->y + dtss->delta_y, dtss->width, dtss->height, dtss->unk, ti->z + dtss->delta_z); } else { - image = *(const uint32*)&dtss->height + base_img; /* endian ok */ - - if (_display_opt & DO_TRANS_BUILDINGS) { - if (image&0x8000) image |= image_or_modificator; - } else { - image = (image & 0x3FFF) | 0x03224000; - } AddChildSpriteScreen(image, dtss->delta_x, dtss->delta_y); } } @@ -1784,22 +1767,21 @@ void StationPickerDrawSprite(int x, int y, int railtype, int image) { uint32 ormod, img; const DrawTileSeqStruct *dtss; - const byte *t; + const DrawTileSprites *t; /* baseimage */ railtype *= TRACKTYPE_SPRITE_PITCH; ormod = PLAYER_SPRITE_COLOR(_local_player); - t = _station_display_datas[image]; + t = &_station_display_datas[image]; - img = *(const uint32*)t; - t += sizeof(uint32); + img = t->ground_sprite; if (img & 0x8000) img |= ormod; DrawSprite(img + railtype, x, y); - for(dtss = (const DrawTileSeqStruct *)t; (byte)dtss->delta_x != 0x80; dtss++) { + foreach_draw_tile_seq(dtss, t->seq) { Point pt = RemapCoords(dtss->delta_x, dtss->delta_y, dtss->delta_z); DrawSprite((dtss->image | ormod) + railtype, x + pt.x, y + pt.y); } diff --git a/table/station_land.h b/table/station_land.h index 6042b6c0a..05b2dbcfa 100644 --- a/table/station_land.h +++ b/table/station_land.h @@ -1,885 +1,795 @@ -#define TILE_SEQ_BEGIN(x) ADD_DWORD(x), -#define TILE_SEQ_LINE(a,b,c,d,e,f,g) a,b,c,d,e,f,ADD_WORD(g), -#define TILE_SEQ_SPEC(a,b,g) a,b,0x80,0,ADD_DWORD(g), -#define TILE_SEQ_END() 0x80 +#define TILE_SEQ_END() { 0x80 } -static const byte _station_display_datas_0[] = { - TILE_SEQ_BEGIN(0x3F4) - TILE_SEQ_LINE( 0, 0, 0, 16, 5, 2, 0x842E) - TILE_SEQ_LINE( 0, 11, 0, 16, 5, 2, 0x8430) +static const DrawTileSeqStruct _station_display_datas_0[] = { + { 0, 0, 0, 16, 5, 2, 0x842E }, + { 0, 11, 0, 16, 5, 2, 0x8430 }, TILE_SEQ_END() }; -static const byte _station_display_datas_1[] = { - TILE_SEQ_BEGIN(0x3F3) - TILE_SEQ_LINE( 0, 0, 0, 5, 16, 2, 0x842F) - TILE_SEQ_LINE( 11, 0, 0, 5, 16, 2, 0x842D) +static const DrawTileSeqStruct _station_display_datas_1[] = { + { 0, 0, 0, 5, 16, 2, 0x842F }, + { 11, 0, 0, 5, 16, 2, 0x842D }, TILE_SEQ_END() }; -static const byte _station_display_datas_2[] = { - TILE_SEQ_BEGIN(0x3F4) - TILE_SEQ_LINE( 0, 0, 0, 16, 5, 2, 0x8431) - TILE_SEQ_LINE( 0, 11, 0, 16, 5, 2, 0x8430) +static const DrawTileSeqStruct _station_display_datas_2[] = { + { 0, 0, 0, 16, 5, 2, 0x8431 }, + { 0, 11, 0, 16, 5, 2, 0x8430 }, TILE_SEQ_END() }; -static const byte _station_display_datas_3[] = { - TILE_SEQ_BEGIN(0x3F3) - TILE_SEQ_LINE( 0, 0, 0, 5, 16, 2, 0x8432) - TILE_SEQ_LINE( 11, 0, 0, 5, 16, 2, 0x842D) +static const DrawTileSeqStruct _station_display_datas_3[] = { + { 0, 0, 0, 5, 16, 2, 0x8432 }, + { 11, 0, 0, 5, 16, 2, 0x842D }, TILE_SEQ_END() }; -static const byte _station_display_datas_4[] = { - TILE_SEQ_BEGIN(0x3F4) - TILE_SEQ_LINE( 0, 0, 0, 16, 5, 7, 0x8434) - TILE_SEQ_LINE( 0, 11, 0, 16, 5, 2, 0x8430) - TILE_SEQ_LINE( 0, 0, 16, 16, 16, 10, 0x8437) - TILE_SEQ_SPEC( 0, 0, 0x322443B) +static const DrawTileSeqStruct _station_display_datas_4[] = { + { 0, 0, 0, 16, 5, 7, 0x8434 }, + { 0, 11, 0, 16, 5, 2, 0x8430 }, + { 0, 0, 16, 16, 16, 10, 0x8437 }, + { 0, 0,0x80, 0, 0, 0, 0x322443B }, TILE_SEQ_END() }; -static const byte _station_display_datas_5[] = { - TILE_SEQ_BEGIN(0x3F3) - TILE_SEQ_LINE( 0, 0, 0, 5, 16, 2, 0x8435) - TILE_SEQ_LINE( 11, 0, 0, 5, 16, 2, 0x842D) - TILE_SEQ_LINE( 0, 0, 16, 16, 16, 10, 0x8438) - TILE_SEQ_SPEC( 0, 0, 0x322443C) +static const DrawTileSeqStruct _station_display_datas_5[] = { + { 0, 0, 0, 5, 16, 2, 0x8435 }, + { 11, 0, 0, 5, 16, 2, 0x842D }, + { 0, 0, 16, 16, 16, 10, 0x8438 }, + { 0, 0,0x80, 0, 0, 0, 0x322443C }, TILE_SEQ_END() }; -static const byte _station_display_datas_6[] = { - TILE_SEQ_BEGIN(0x3F4) - TILE_SEQ_LINE( 0, 0, 0, 16, 5, 2, 0x842E) - TILE_SEQ_LINE( 0, 11, 0, 16, 5, 2, 0x8436) - TILE_SEQ_LINE( 0, 0, 16, 16, 16, 10, 0x8439) - TILE_SEQ_SPEC( 0, 0, 0x322443D) +static const DrawTileSeqStruct _station_display_datas_6[] = { + { 0, 0, 0, 16, 5, 2, 0x842E }, + { 0, 11, 0, 16, 5, 2, 0x8436 }, + { 0, 0, 16, 16, 16, 10, 0x8439 }, + { 0, 0,0x80, 0, 0, 0, 0x322443D }, TILE_SEQ_END() }; -static const byte _station_display_datas_7[] = { - TILE_SEQ_BEGIN(0x3F3) - TILE_SEQ_LINE( 0, 0, 0, 5, 16, 2, 0x842F) - TILE_SEQ_LINE( 11, 0, 0, 5, 16, 2, 0x8433) - TILE_SEQ_LINE( 0, 0, 16, 16, 16, 10, 0x843A) - TILE_SEQ_SPEC( 0, 0, 0x322443E) +static const DrawTileSeqStruct _station_display_datas_7[] = { + { 0, 0, 0, 5, 16, 2, 0x842F }, + { 11, 0, 0, 5, 16, 2, 0x8433 }, + { 0, 0, 16, 16, 16, 10, 0x843A }, + { 0, 0,0x80, 0, 0, 0, 0x322443E }, TILE_SEQ_END() }; -static const byte _station_display_datas_8[] = { - TILE_SEQ_BEGIN(0xA4A) +static const DrawTileSeqStruct _station_display_datas_8[] = { TILE_SEQ_END() }; -static const byte _station_display_datas_9[] = { - TILE_SEQ_BEGIN(0xA4A) - TILE_SEQ_LINE( 0, 0, 0, 16, 1, 6, 0x8A68) +static const DrawTileSeqStruct _station_display_datas_9[] = { + { 0, 0, 0, 16, 1, 6, 0x8A68 }, TILE_SEQ_END() }; -static const byte _station_display_datas_10[] = { - TILE_SEQ_BEGIN(0xA4A) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_10[] = { + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_11[] = { - TILE_SEQ_BEGIN(0xA4B) +static const DrawTileSeqStruct _station_display_datas_11[] = { TILE_SEQ_END() }; -static const byte _station_display_datas_12[] = { - TILE_SEQ_BEGIN(0xA4C) +static const DrawTileSeqStruct _station_display_datas_12[] = { TILE_SEQ_END() }; -static const byte _station_display_datas_13[] = { - TILE_SEQ_BEGIN(0xA4D) +static const DrawTileSeqStruct _station_display_datas_13[] = { TILE_SEQ_END() }; -static const byte _station_display_datas_14[] = { - TILE_SEQ_BEGIN(0xA4E) +static const DrawTileSeqStruct _station_display_datas_14[] = { TILE_SEQ_END() }; -static const byte _station_display_datas_15[] = { - TILE_SEQ_BEGIN(0xA4F) +static const DrawTileSeqStruct _station_display_datas_15[] = { TILE_SEQ_END() }; -static const byte _station_display_datas_16[] = { - TILE_SEQ_BEGIN(0xA50) +static const DrawTileSeqStruct _station_display_datas_16[] = { TILE_SEQ_END() }; -static const byte _station_display_datas_17[] = { - TILE_SEQ_BEGIN(0xA51) +static const DrawTileSeqStruct _station_display_datas_17[] = { TILE_SEQ_END() }; -static const byte _station_display_datas_18[] = { - TILE_SEQ_BEGIN(0xA52) +static const DrawTileSeqStruct _station_display_datas_18[] = { TILE_SEQ_END() }; -static const byte _station_display_datas_19[] = { - TILE_SEQ_BEGIN(0xA53) +static const DrawTileSeqStruct _station_display_datas_19[] = { TILE_SEQ_END() }; -static const byte _station_display_datas_20[] = { - TILE_SEQ_BEGIN(0xA54) +static const DrawTileSeqStruct _station_display_datas_20[] = { TILE_SEQ_END() }; -static const byte _station_display_datas_21[] = { - TILE_SEQ_BEGIN(0xA53) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_21[] = { + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_22[] = { - TILE_SEQ_BEGIN(0xA55) - TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, 0x8A68) +static const DrawTileSeqStruct _station_display_datas_22[] = { + { 0, 15, 0, 16, 1, 6, 0x8A68 }, TILE_SEQ_END() }; -static const byte _station_display_datas_23[] = { - TILE_SEQ_BEGIN(0xA56) - TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, 0x8A68) +static const DrawTileSeqStruct _station_display_datas_23[] = { + { 0, 15, 0, 16, 1, 6, 0x8A68 }, TILE_SEQ_END() }; -static const byte _station_display_datas_24[] = { - TILE_SEQ_BEGIN(0xA57) - TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, 0x8A68) +static const DrawTileSeqStruct _station_display_datas_24[] = { + { 0, 15, 0, 16, 1, 6, 0x8A68 }, TILE_SEQ_END() }; -static const byte _station_display_datas_25[] = { - TILE_SEQ_BEGIN(0xA58) - TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, 0x8A68) +static const DrawTileSeqStruct _station_display_datas_25[] = { + { 0, 15, 0, 16, 1, 6, 0x8A68 }, TILE_SEQ_END() }; -static const byte _station_display_datas_26[] = { - TILE_SEQ_BEGIN(0xA59) - TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, 0x8A68) +static const DrawTileSeqStruct _station_display_datas_26[] = { + { 0, 15, 0, 16, 1, 6, 0x8A68 }, TILE_SEQ_END() }; -static const byte _station_display_datas_27[] = { - TILE_SEQ_BEGIN(0xA4A) - TILE_SEQ_LINE( 2, 0, 0, 11, 16, 40, 0x8A5A) +static const DrawTileSeqStruct _station_display_datas_27[] = { + { 2, 0, 0, 11, 16, 40, 0x8A5A }, TILE_SEQ_END() }; -static const byte _station_display_datas_28[] = { - TILE_SEQ_BEGIN(0xF8D) - TILE_SEQ_LINE( 3, 3, 0, 10, 10, 60, 0x8A5B) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_28[] = { + { 3, 3, 0, 10, 10, 60, 0x8A5B }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_29[] = { - TILE_SEQ_BEGIN(0xA4A) - TILE_SEQ_LINE( 0, 1, 0, 14, 14, 30, 0x8A5C) +static const DrawTileSeqStruct _station_display_datas_29[] = { + { 0, 1, 0, 14, 14, 30, 0x8A5C }, TILE_SEQ_END() }; -static const byte _station_display_datas_30[] = { - TILE_SEQ_BEGIN(0xA4A) - TILE_SEQ_LINE( 3, 3, 0, 10, 11, 35, 0x8A5D) +static const DrawTileSeqStruct _station_display_datas_30[] = { + { 3, 3, 0, 10, 11, 35, 0x8A5D }, TILE_SEQ_END() }; -static const byte _station_display_datas_31[] = { - TILE_SEQ_BEGIN(0xA4A) - TILE_SEQ_LINE( 0, 3, 0, 16, 11, 40, 0x8A5E) +static const DrawTileSeqStruct _station_display_datas_31[] = { + { 0, 3, 0, 16, 11, 40, 0x8A5E }, TILE_SEQ_END() }; -static const byte _station_display_datas_32[] = { - TILE_SEQ_BEGIN(0xA4A) - TILE_SEQ_LINE( 14, 0, 0, 2, 16, 28, 0x8A5F) - TILE_SEQ_LINE( 0, 0, 0, 2, 16, 28, 0xA60) +static const DrawTileSeqStruct _station_display_datas_32[] = { + { 14, 0, 0, 2, 16, 28, 0x8A5F }, + { 0, 0, 0, 2, 16, 28, 0xA60 }, TILE_SEQ_END() }; -static const byte _station_display_datas_33[] = { - TILE_SEQ_BEGIN(0xA4B) - TILE_SEQ_LINE( 7, 11, 0, 3, 3, 14, 0xA63) - TILE_SEQ_LINE( 0, 0, 0, 16, 1, 6, 0x8A68) +static const DrawTileSeqStruct _station_display_datas_33[] = { + { 7, 11, 0, 3, 3, 14, 0xA63 }, + { 0, 0, 0, 16, 1, 6, 0x8A68 }, TILE_SEQ_END() }; -static const byte _station_display_datas_34[] = { - TILE_SEQ_BEGIN(0xA4B) - TILE_SEQ_LINE( 2, 7, 0, 3, 3, 14, 0xA64) +static const DrawTileSeqStruct _station_display_datas_34[] = { + { 2, 7, 0, 3, 3, 14, 0xA64 }, TILE_SEQ_END() }; -static const byte _station_display_datas_35[] = { - TILE_SEQ_BEGIN(0xA4A) - TILE_SEQ_LINE( 3, 2, 0, 3, 3, 14, 0xA65) +static const DrawTileSeqStruct _station_display_datas_35[] = { + { 3, 2, 0, 3, 3, 14, 0xA65 }, TILE_SEQ_END() }; -static const byte _station_display_datas_36[] = { - TILE_SEQ_BEGIN(0xA4A) - TILE_SEQ_LINE( 0, 8, 0, 14, 3, 14, 0xA66) +static const DrawTileSeqStruct _station_display_datas_36[] = { + { 0, 8, 0, 14, 3, 14, 0xA66 }, TILE_SEQ_END() }; -static const byte _station_display_datas_37[] = { - TILE_SEQ_BEGIN(0xF8D) +static const DrawTileSeqStruct _station_display_datas_37[] = { TILE_SEQ_END() }; -static const byte _station_display_datas_38[] = { - TILE_SEQ_BEGIN(0xF8D) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_38[] = { + { 0, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_39[] = { - TILE_SEQ_BEGIN(0xF8D) - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA78) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_39[] = { + { 7, 7, 0, 2, 2, 8, 0xA78 }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_40[] = { - TILE_SEQ_BEGIN(0xF8D) - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA79) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_40[] = { + { 7, 7, 0, 2, 2, 8, 0xA79 }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_41[] = { - TILE_SEQ_BEGIN(0xF8D) - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7A) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_41[] = { + { 7, 7, 0, 2, 2, 8, 0xA7A }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_42[] = { - TILE_SEQ_BEGIN(0xF8D) - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7B) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_42[] = { + { 7, 7, 0, 2, 2, 8, 0xA7B }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_43[] = { - TILE_SEQ_BEGIN(0xF8D) - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7C) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_43[] = { + { 7, 7, 0, 2, 2, 8, 0xA7C }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_44[] = { - TILE_SEQ_BEGIN(0xF8D) - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7D) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_44[] = { + { 7, 7, 0, 2, 2, 8, 0xA7D }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_45[] = { - TILE_SEQ_BEGIN(0xF8D) - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7E) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_45[] = { + { 7, 7, 0, 2, 2, 8, 0xA7E }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_46[] = { - TILE_SEQ_BEGIN(0xF8D) - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7F) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_46[] = { + { 7, 7, 0, 2, 2, 8, 0xA7F }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_47[] = { - TILE_SEQ_BEGIN(0xF8D) - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA80) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_47[] = { + { 7, 7, 0, 2, 2, 8, 0xA80 }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_48[] = { - TILE_SEQ_BEGIN(0xF8D) - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA81) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_48[] = { + { 7, 7, 0, 2, 2, 8, 0xA81 }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_49[] = { - TILE_SEQ_BEGIN(0xF8D) - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA82) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_49[] = { + { 7, 7, 0, 2, 2, 8, 0xA82 }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_50[] = { - TILE_SEQ_BEGIN(0xF8D) - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA83) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_50[] = { + { 7, 7, 0, 2, 2, 8, 0xA83 }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_51[] = { - TILE_SEQ_BEGIN(0xF8D) - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 70, 0xA29) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_51[] = { + { 7, 7, 0, 2, 2, 70, 0xA29 }, + { 0, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_52[] = { - TILE_SEQ_BEGIN(0xA69) +static const DrawTileSeqStruct _station_display_datas_52[] = { TILE_SEQ_END() }; -static const byte _station_display_datas_53[] = { - TILE_SEQ_BEGIN(0xA6A) +static const DrawTileSeqStruct _station_display_datas_53[] = { TILE_SEQ_END() }; -static const byte _station_display_datas_54[] = { - TILE_SEQ_BEGIN(0x8A6B) - TILE_SEQ_LINE( 0, 0, 0, 15, 15, 30, 0x8A6C) +static const DrawTileSeqStruct _station_display_datas_54[] = { + { 0, 0, 0, 15, 15, 30, 0x8A6C }, TILE_SEQ_END() }; -static const byte _station_display_datas_55[] = { - TILE_SEQ_BEGIN(0xA6D) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +static const DrawTileSeqStruct _station_display_datas_55[] = { + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -static const byte _station_display_datas_56[] = { - TILE_SEQ_BEGIN(0xA6E) +static const DrawTileSeqStruct _station_display_datas_56[] = { TILE_SEQ_END() }; -static const byte _station_display_datas_57[] = { - TILE_SEQ_BEGIN(0xA6F) +static const DrawTileSeqStruct _station_display_datas_57[] = { TILE_SEQ_END() }; -static const byte _station_display_datas_58[] = { - TILE_SEQ_BEGIN(0xA70) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) - TILE_SEQ_LINE( 4, 11, 0, 1, 1, 20, 0x8A74) +static const DrawTileSeqStruct _station_display_datas_58[] = { + { 0, 0, 0, 1, 16, 6, 0x8A67 }, + { 4, 11, 0, 1, 1, 20, 0x8A74 }, TILE_SEQ_END() }; -static const byte _station_display_datas_59[] = { - TILE_SEQ_BEGIN(0xA70) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) - TILE_SEQ_LINE( 4, 11, 0, 1, 1, 20, 0x8A75) +static const DrawTileSeqStruct _station_display_datas_59[] = { + { 0, 0, 0, 1, 16, 6, 0x8A67 }, + { 4, 11, 0, 1, 1, 20, 0x8A75 }, TILE_SEQ_END() }; -static const byte _station_display_datas_60[] = { - TILE_SEQ_BEGIN(0xA70) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) - TILE_SEQ_LINE( 4, 11, 0, 1, 1, 20, 0x8A76) +static const DrawTileSeqStruct _station_display_datas_60[] = { + { 0, 0, 0, 1, 16, 6, 0x8A67 }, + { 4, 11, 0, 1, 1, 20, 0x8A76 }, TILE_SEQ_END() }; -static const byte _station_display_datas_61[] = { - TILE_SEQ_BEGIN(0xA70) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) - TILE_SEQ_LINE( 4, 11, 0, 1, 1, 20, 0x8A77) +static const DrawTileSeqStruct _station_display_datas_61[] = { + { 0, 0, 0, 1, 16, 6, 0x8A67 }, + { 4, 11, 0, 1, 1, 20, 0x8A77 }, TILE_SEQ_END() }; -static const byte _station_display_datas_62[] = { - TILE_SEQ_BEGIN(0xA71) - TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, 0x8A68) +static const DrawTileSeqStruct _station_display_datas_62[] = { + { 0, 15, 0, 16, 1, 6, 0x8A68 }, TILE_SEQ_END() }; -static const byte _station_display_datas_63[] = { - TILE_SEQ_BEGIN(0xA72) - TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, 0x8A68) +static const DrawTileSeqStruct _station_display_datas_63[] = { + { 0, 15, 0, 16, 1, 6, 0x8A68 }, TILE_SEQ_END() }; -static const byte _station_display_datas_64[] = { - TILE_SEQ_BEGIN(0xA73) - TILE_SEQ_LINE( 0, 15, 0, 16, 1, 6, 0x8A68) +static const DrawTileSeqStruct _station_display_datas_64[] = { + { 0, 15, 0, 16, 1, 6, 0x8A68 }, TILE_SEQ_END() }; -static const byte _station_display_datas_65[] = { - TILE_SEQ_BEGIN(0xA4A) - TILE_SEQ_LINE( 14, 0, 0, 2, 16, 28, 0x8A61) - TILE_SEQ_LINE( 0, 0, 0, 2, 16, 28, 0xA62) +static const DrawTileSeqStruct _station_display_datas_65[] = { + { 14, 0, 0, 2, 16, 28, 0x8A61 }, + { 0, 0, 0, 2, 16, 28, 0xA62 }, TILE_SEQ_END() }; -static const byte _station_display_datas_66[] = { - TILE_SEQ_BEGIN(0xF8D) - TILE_SEQ_LINE( 0, 0, 0, 16, 16, 60, 0x8A49) +static const DrawTileSeqStruct _station_display_datas_66[] = { + { 0, 0, 0, 16, 16, 60, 0x8A49 }, TILE_SEQ_END() }; -static const byte _station_display_datas_67[] = { - TILE_SEQ_BEGIN(0x8A94) - TILE_SEQ_LINE( 0, 15, 0, 13, 1, 10, 0x8A98) - TILE_SEQ_LINE( 13, 0, 0, 3, 16, 10, 0x8A9C) - TILE_SEQ_LINE( 2, 0, 0, 11, 1, 10, 0x8AA0) +static const DrawTileSeqStruct _station_display_datas_67[] = { + { 0, 15, 0, 13, 1, 10, 0x8A98 }, + { 13, 0, 0, 3, 16, 10, 0x8A9C }, + { 2, 0, 0, 11, 1, 10, 0x8AA0 }, TILE_SEQ_END() }; -static const byte _station_display_datas_68[] = { - TILE_SEQ_BEGIN(0x8A95) - TILE_SEQ_LINE( 15, 3, 0, 1, 13, 10, 0x8A99) - TILE_SEQ_LINE( 0, 0, 0, 16, 3, 10, 0x8A9D) - TILE_SEQ_LINE( 0, 3, 0, 1, 11, 10, 0x8AA1) +static const DrawTileSeqStruct _station_display_datas_68[] = { + { 15, 3, 0, 1, 13, 10, 0x8A99 }, + { 0, 0, 0, 16, 3, 10, 0x8A9D }, + { 0, 3, 0, 1, 11, 10, 0x8AA1 }, TILE_SEQ_END() }; -static const byte _station_display_datas_69[] = { - TILE_SEQ_BEGIN(0x8A96) - TILE_SEQ_LINE( 3, 0, 0, 13, 1, 10, 0x8A9A) - TILE_SEQ_LINE( 0, 0, 0, 3, 16, 10, 0x8A9E) - TILE_SEQ_LINE( 3, 15, 0, 11, 1, 10, 0x8AA2) +static const DrawTileSeqStruct _station_display_datas_69[] = { + { 3, 0, 0, 13, 1, 10, 0x8A9A }, + { 0, 0, 0, 3, 16, 10, 0x8A9E }, + { 3, 15, 0, 11, 1, 10, 0x8AA2 }, TILE_SEQ_END() }; -static const byte _station_display_datas_70[] = { - TILE_SEQ_BEGIN(0x8A97) - TILE_SEQ_LINE( 0, 0, 0, 1, 13, 10, 0x8A9B) - TILE_SEQ_LINE( 0, 13, 0, 16, 3, 10, 0x8A9F) - TILE_SEQ_LINE( 15, 2, 0, 1, 11, 10, 0x8AA3) +static const DrawTileSeqStruct _station_display_datas_70[] = { + { 0, 0, 0, 1, 13, 10, 0x8A9B }, + { 0, 13, 0, 16, 3, 10, 0x8A9F }, + { 15, 2, 0, 1, 11, 10, 0x8AA3 }, TILE_SEQ_END() }; -static const byte _station_display_datas_71[] = { - TILE_SEQ_BEGIN(0x8A84) - TILE_SEQ_LINE( 2, 0, 0, 11, 1, 10, 0x8A88) - TILE_SEQ_LINE( 13, 0, 0, 3, 16, 10, 0x8A8C) - TILE_SEQ_LINE( 0, 13, 0, 13, 3, 10, 0x8A90) +static const DrawTileSeqStruct _station_display_datas_71[] = { + { 2, 0, 0, 11, 1, 10, 0x8A88 }, + { 13, 0, 0, 3, 16, 10, 0x8A8C }, + { 0, 13, 0, 13, 3, 10, 0x8A90 }, TILE_SEQ_END() }; -static const byte _station_display_datas_72[] = { - TILE_SEQ_BEGIN(0x8A85) - TILE_SEQ_LINE( 0, 3, 0, 1, 11, 10, 0x8A89) - TILE_SEQ_LINE( 0, 0, 0, 16, 3, 10, 0x8A8D) - TILE_SEQ_LINE( 13, 3, 0, 3, 13, 10, 0x8A91) +static const DrawTileSeqStruct _station_display_datas_72[] = { + { 0, 3, 0, 1, 11, 10, 0x8A89 }, + { 0, 0, 0, 16, 3, 10, 0x8A8D }, + { 13, 3, 0, 3, 13, 10, 0x8A91 }, TILE_SEQ_END() }; -static const byte _station_display_datas_73[] = { - TILE_SEQ_BEGIN(0x8A86) - TILE_SEQ_LINE( 3, 15, 0, 11, 1, 10, 0x8A8A) - TILE_SEQ_LINE( 0, 0, 0, 3, 16, 10, 0x8A8E) - TILE_SEQ_LINE( 3, 0, 0, 13, 3, 10, 0x8A92) +static const DrawTileSeqStruct _station_display_datas_73[] = { + { 3, 15, 0, 11, 1, 10, 0x8A8A }, + { 0, 0, 0, 3, 16, 10, 0x8A8E }, + { 3, 0, 0, 13, 3, 10, 0x8A92 }, TILE_SEQ_END() }; -static const byte _station_display_datas_74[] = { - TILE_SEQ_BEGIN(0x8A87) - TILE_SEQ_LINE( 15, 2, 0, 1, 11, 10, 0x8A8B) - TILE_SEQ_LINE( 0, 13, 0, 16, 3, 10, 0x8A8F) - TILE_SEQ_LINE( 0, 0, 0, 3, 13, 10, 0x8A93) +static const DrawTileSeqStruct _station_display_datas_74[] = { + { 15, 2, 0, 1, 11, 10, 0x8A8B }, + { 0, 13, 0, 16, 3, 10, 0x8A8F }, + { 0, 0, 0, 3, 13, 10, 0x8A93 }, TILE_SEQ_END() }; -static const byte _station_display_datas_75[] = { - TILE_SEQ_BEGIN(0xFDD) +static const DrawTileSeqStruct _station_display_datas_75[] = { TILE_SEQ_END() }; -static const byte _station_display_datas_76[] = { - TILE_SEQ_BEGIN(0xFE4) - TILE_SEQ_LINE( 0, 4, 0, 16, 8, 8, 0xAA7) +static const DrawTileSeqStruct _station_display_datas_76[] = { + { 0, 4, 0, 16, 8, 8, 0xAA7 }, TILE_SEQ_END() }; -static const byte _station_display_datas_77[] = { - TILE_SEQ_BEGIN(0xFE5) - TILE_SEQ_LINE( 4, 0, 0, 8, 16, 8, 0xAA8) +static const DrawTileSeqStruct _station_display_datas_77[] = { + { 4, 0, 0, 8, 16, 8, 0xAA8 }, TILE_SEQ_END() }; -static const byte _station_display_datas_78[] = { - TILE_SEQ_BEGIN(0xFE3) - TILE_SEQ_LINE( 0, 4, 0, 16, 8, 8, 0xAA9) +static const DrawTileSeqStruct _station_display_datas_78[] = { + { 0, 4, 0, 16, 8, 8, 0xAA9 }, TILE_SEQ_END() }; -static const byte _station_display_datas_79[] = { - TILE_SEQ_BEGIN(0xFE2) - TILE_SEQ_LINE( 4, 0, 0, 8, 16, 8, 0xAAA) +static const DrawTileSeqStruct _station_display_datas_79[] = { + { 4, 0, 0, 8, 16, 8, 0xAAA }, TILE_SEQ_END() }; -static const byte _station_display_datas_80[] = { - TILE_SEQ_BEGIN(0xFDD) - TILE_SEQ_LINE( 0, 4, 0, 16, 8, 8, 0xAAB) +static const DrawTileSeqStruct _station_display_datas_80[] = { + { 0, 4, 0, 16, 8, 8, 0xAAB }, TILE_SEQ_END() }; -static const byte _station_display_datas_81[] = { - TILE_SEQ_BEGIN(0xFDD) - TILE_SEQ_LINE( 4, 0, 0, 8, 16, 8, 0xAAC) +static const DrawTileSeqStruct _station_display_datas_81[] = { + { 4, 0, 0, 8, 16, 8, 0xAAC }, TILE_SEQ_END() }; -static const byte _station_display_datas_82[] = { - TILE_SEQ_BEGIN(0xFEC) +static const DrawTileSeqStruct _station_display_datas_82[] = { TILE_SEQ_END() }; // end of runway -const byte _station_display_datas_083[] = { - TILE_SEQ_BEGIN(0xA59) +const DrawTileSeqStruct _station_display_datas_083[] = { TILE_SEQ_END() }; // runway tiles -const byte _station_display_datas_084[] = { - TILE_SEQ_BEGIN(0xA56) +const DrawTileSeqStruct _station_display_datas_084[] = { TILE_SEQ_END() }; // control tower with concrete underground and no fence -const byte _station_display_datas_085[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 3, 3, 0, 10, 10, 60, 0x8A5B) // control tower +// concrete underground +const DrawTileSeqStruct _station_display_datas_085[] = { + { 3, 3, 0, 10, 10, 60, 0x8A5B }, // control tower TILE_SEQ_END() }; // new airportdepot, facing west -const byte _station_display_datas_086[] = { - TILE_SEQ_BEGIN(0xA4A) - TILE_SEQ_LINE( 14, 0, 0, 2, 16, 28, 0x8A61) - TILE_SEQ_LINE( 0, 0, 0, 2, 16, 28, 0xA62) +// concrete underground +const DrawTileSeqStruct _station_display_datas_086[] = { + { 14, 0, 0, 2, 16, 28, 0x8A61 }, + { 0, 0, 0, 2, 16, 28, 0xA62 }, TILE_SEQ_END() }; // asphalt tile with fences in north -const byte _station_display_datas_087[] = { - TILE_SEQ_BEGIN(0xA4A) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_087[] = { + { 0, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; // end of runway -const byte _station_display_datas_088[] = { - TILE_SEQ_BEGIN(0xA59) - TILE_SEQ_LINE( 0, 0, 0, 16, 1, 6, 0x8A68) // fences +const DrawTileSeqStruct _station_display_datas_088[] = { + { 0, 0, 0, 16, 1, 6, 0x8A68 }, // fences TILE_SEQ_END() }; // runway tiles -const byte _station_display_datas_089[] = { - TILE_SEQ_BEGIN(0xA56) - TILE_SEQ_LINE( 0, 0, 0, 16, 1, 6, 0x8A68) // fences +const DrawTileSeqStruct _station_display_datas_089[] = { + { 0, 0, 0, 16, 1, 6, 0x8A68 }, // fences TILE_SEQ_END() }; // turning radar with concrete underground fences on south -- needs 12 tiles +// concrete underground //BEGIN -const byte _station_display_datas_090[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA78) // turning radar - TILE_SEQ_LINE(15, 0, 0, 1, 16, 6, 0x8A67) //fences +const DrawTileSeqStruct _station_display_datas_090[] = { + { 7, 7, 0, 2, 2, 8, 0xA78 }, // turning radar + { 15, 0, 0, 1, 16, 6, 0x8A67 }, //fences TILE_SEQ_END() }; -const byte _station_display_datas_091[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA79) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_091[] = { + { 7, 7, 0, 2, 2, 8, 0xA79 }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_092[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7A) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_092[] = { + { 7, 7, 0, 2, 2, 8, 0xA7A }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_093[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7B) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_093[] = { + { 7, 7, 0, 2, 2, 8, 0xA7B }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_094[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7C) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_094[] = { + { 7, 7, 0, 2, 2, 8, 0xA7C }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_095[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7D) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_095[] = { + { 7, 7, 0, 2, 2, 8, 0xA7D }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_096[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7E) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_096[] = { + { 7, 7, 0, 2, 2, 8, 0xA7E }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_097[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7F) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_097[] = { + { 7, 7, 0, 2, 2, 8, 0xA7F }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_098[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA80) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_098[] = { + { 7, 7, 0, 2, 2, 8, 0xA80 }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_099[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA81) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_099[] = { + { 7, 7, 0, 2, 2, 8, 0xA81 }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_0100[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA82) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_0100[] = { + { 7, 7, 0, 2, 2, 8, 0xA82 }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_0101[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA83) - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_0101[] = { + { 7, 7, 0, 2, 2, 8, 0xA83 }, + { 15, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; //END // turning radar with concrete underground fences on north -- needs 12 tiles +// concrete underground //BEGIN -const byte _station_display_datas_0102[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA78) // turning radar - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) +const DrawTileSeqStruct _station_display_datas_0102[] = { + { 7, 7, 0, 2, 2, 8, 0xA78 }, // turning radar + { 0, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_0103[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA79) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_0103[] = { + { 7, 7, 0, 2, 2, 8, 0xA79 }, + { 0, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_0104[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7A) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_0104[] = { + { 7, 7, 0, 2, 2, 8, 0xA7A }, + { 0, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_0105[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7B) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_0105[] = { + { 7, 7, 0, 2, 2, 8, 0xA7B }, + { 0, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_0106[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7C) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_0106[] = { + { 7, 7, 0, 2, 2, 8, 0xA7C }, + { 0, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_0107[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7D) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_0107[] = { + { 7, 7, 0, 2, 2, 8, 0xA7D }, + { 0, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_0108[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7E) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_0108[] = { + { 7, 7, 0, 2, 2, 8, 0xA7E }, + { 0, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_0109[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA7F) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_0109[] = { + { 7, 7, 0, 2, 2, 8, 0xA7F }, + { 0, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_0110[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA80) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_0110[] = { + { 7, 7, 0, 2, 2, 8, 0xA80 }, + { 0, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_0111[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA81) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_0111[] = { + { 7, 7, 0, 2, 2, 8, 0xA81 }, + { 0, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_0112[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA82) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_0112[] = { + { 7, 7, 0, 2, 2, 8, 0xA82 }, + { 0, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; -const byte _station_display_datas_0113[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE( 7, 7, 0, 2, 2, 8, 0xA83) - TILE_SEQ_LINE( 0, 0, 0, 1, 16, 6, 0x8A67) +// concrete underground +const DrawTileSeqStruct _station_display_datas_0113[] = { + { 7, 7, 0, 2, 2, 8, 0xA83 }, + { 0, 0, 0, 1, 16, 6, 0x8A67 }, TILE_SEQ_END() }; //END // helipad for international airport -const byte _station_display_datas_0114[] = { - TILE_SEQ_BEGIN(0xA4A) // concrete underground - TILE_SEQ_LINE(10, 6, 0, 0, 0, 0, SPR_OPENTTD_BASE + 31) // helipad - TILE_SEQ_LINE( 15, 0, 0, 1, 16, 6, 0x8A67) // fences bottom - TILE_SEQ_END() -}; - -static const byte * const _station_display_datas[] = { - _station_display_datas_0, - _station_display_datas_1, - _station_display_datas_2, - _station_display_datas_3, - _station_display_datas_4, - _station_display_datas_5, - _station_display_datas_6, - _station_display_datas_7, - _station_display_datas_8, - _station_display_datas_9, - _station_display_datas_10, - _station_display_datas_11, - _station_display_datas_12, - _station_display_datas_13, - _station_display_datas_14, - _station_display_datas_15, - _station_display_datas_16, - _station_display_datas_17, - _station_display_datas_18, - _station_display_datas_19, - _station_display_datas_20, - _station_display_datas_21, - _station_display_datas_22, - _station_display_datas_23, - _station_display_datas_24, - _station_display_datas_25, - _station_display_datas_26, - _station_display_datas_27, - _station_display_datas_28, - _station_display_datas_29, - _station_display_datas_30, - _station_display_datas_31, - _station_display_datas_32, - _station_display_datas_33, - _station_display_datas_34, - _station_display_datas_35, - _station_display_datas_36, - _station_display_datas_37, - _station_display_datas_38, - _station_display_datas_39, - _station_display_datas_40, - _station_display_datas_41, - _station_display_datas_42, - _station_display_datas_43, - _station_display_datas_44, - _station_display_datas_45, - _station_display_datas_46, - _station_display_datas_47, - _station_display_datas_48, - _station_display_datas_49, - _station_display_datas_50, - _station_display_datas_51, - _station_display_datas_52, - _station_display_datas_53, - _station_display_datas_54, - _station_display_datas_55, - _station_display_datas_56, - _station_display_datas_57, - _station_display_datas_58, - _station_display_datas_59, - _station_display_datas_60, - _station_display_datas_61, - _station_display_datas_62, - _station_display_datas_63, - _station_display_datas_64, - _station_display_datas_65, - _station_display_datas_66, - _station_display_datas_67, - _station_display_datas_68, - _station_display_datas_69, - _station_display_datas_70, - _station_display_datas_71, - _station_display_datas_72, - _station_display_datas_73, - _station_display_datas_74, - _station_display_datas_75, - _station_display_datas_76, - _station_display_datas_77, - _station_display_datas_78, - _station_display_datas_79, - _station_display_datas_80, - _station_display_datas_81, - _station_display_datas_82, - _station_display_datas_083, - _station_display_datas_084, - _station_display_datas_085, - _station_display_datas_086, - _station_display_datas_087, - _station_display_datas_088, - _station_display_datas_089, - _station_display_datas_090, - _station_display_datas_091, - _station_display_datas_092, - _station_display_datas_093, - _station_display_datas_094, - _station_display_datas_095, - _station_display_datas_096, - _station_display_datas_097, - _station_display_datas_098, - _station_display_datas_099, - _station_display_datas_0100, - _station_display_datas_0101, - _station_display_datas_0102, - _station_display_datas_0103, - _station_display_datas_0104, - _station_display_datas_0105, - _station_display_datas_0106, - _station_display_datas_0107, - _station_display_datas_0108, - _station_display_datas_0109, - _station_display_datas_0110, - _station_display_datas_0111, - _station_display_datas_0112, - _station_display_datas_0113, - _station_display_datas_0114, +// concrete underground +const DrawTileSeqStruct _station_display_datas_0114[] = { + { 10, 6, 0, 0, 0, 0, SPR_OPENTTD_BASE + 31 }, // helipad + { 15, 0, 0, 1, 16, 6, 0x8A67 }, // fences bottom + TILE_SEQ_END() +}; + +static const DrawTileSprites _station_display_datas[] = { + { 0x3F4, _station_display_datas_0 }, + { 0x3F3, _station_display_datas_1 }, + { 0x3F4, _station_display_datas_2 }, + { 0x3F3, _station_display_datas_3 }, + { 0x3F4, _station_display_datas_4 }, + { 0x3F3, _station_display_datas_5 }, + { 0x3F4, _station_display_datas_6 }, + { 0x3F3, _station_display_datas_7 }, + { 0xA4A, _station_display_datas_8 }, + { 0xA4A, _station_display_datas_9 }, + { 0xA4A, _station_display_datas_10 }, + { 0xA4B, _station_display_datas_11 }, + { 0xA4C, _station_display_datas_12 }, + { 0xA4D, _station_display_datas_13 }, + { 0xA4E, _station_display_datas_14 }, + { 0xA4F, _station_display_datas_15 }, + { 0xAF0, _station_display_datas_16 }, + { 0xAF1, _station_display_datas_17 }, + { 0xAF2, _station_display_datas_18 }, + { 0xAF3, _station_display_datas_19 }, + { 0xAF4, _station_display_datas_20 }, + { 0xA53, _station_display_datas_21 }, + { 0xA55, _station_display_datas_22 }, + { 0xA56, _station_display_datas_23 }, + { 0xA57, _station_display_datas_24 }, + { 0xA58, _station_display_datas_25 }, + { 0xA59, _station_display_datas_26 }, + { 0xA4A, _station_display_datas_27 }, + { 0xF8D, _station_display_datas_28 }, + { 0xA4A, _station_display_datas_29 }, + { 0xA4A, _station_display_datas_30 }, + { 0xA4A, _station_display_datas_31 }, + { 0xA4A, _station_display_datas_32 }, + { 0xA4B, _station_display_datas_33 }, + { 0xA4B, _station_display_datas_34 }, + { 0xA4A, _station_display_datas_35 }, + { 0xA4A, _station_display_datas_36 }, + { 0xF8D, _station_display_datas_37 }, + { 0xF8D, _station_display_datas_38 }, + { 0xF8D, _station_display_datas_39 }, + { 0xF8D, _station_display_datas_40 }, + { 0xF8D, _station_display_datas_41 }, + { 0xF8D, _station_display_datas_42 }, + { 0xF8D, _station_display_datas_43 }, + { 0xF8D, _station_display_datas_44 }, + { 0xF8D, _station_display_datas_45 }, + { 0xF8D, _station_display_datas_46 }, + { 0xF8D, _station_display_datas_47 }, + { 0xF8D, _station_display_datas_48 }, + { 0xF8D, _station_display_datas_49 }, + { 0xF8D, _station_display_datas_50 }, + { 0xF8D, _station_display_datas_51 }, + { 0xA69, _station_display_datas_52 }, + { 0xA6A, _station_display_datas_53 }, + { 0xA6B, _station_display_datas_54 }, + { 0xA6D, _station_display_datas_55 }, + { 0xA6E, _station_display_datas_56 }, + { 0xA6F, _station_display_datas_57 }, + { 0xA70, _station_display_datas_58 }, + { 0xA70, _station_display_datas_59 }, + { 0xA70, _station_display_datas_60 }, + { 0xA70, _station_display_datas_61 }, + { 0xA71, _station_display_datas_62 }, + { 0xA72, _station_display_datas_63 }, + { 0xA73, _station_display_datas_64 }, + { 0xA4A, _station_display_datas_65 }, + { 0xF8D, _station_display_datas_66 }, + { 0x8A94, _station_display_datas_67 }, + { 0x8A95, _station_display_datas_68 }, + { 0x8A96, _station_display_datas_69 }, + { 0x8A97, _station_display_datas_70 }, + { 0x8A84, _station_display_datas_71 }, + { 0x8A85, _station_display_datas_72 }, + { 0x8A86, _station_display_datas_73 }, + { 0x8A87, _station_display_datas_74 }, + { 0xFDD, _station_display_datas_75 }, + { 0xFE4, _station_display_datas_76 }, + { 0xFE5, _station_display_datas_77 }, + { 0xFE3, _station_display_datas_78 }, + { 0xFE2, _station_display_datas_79 }, + { 0xFDD, _station_display_datas_80 }, + { 0xFDD, _station_display_datas_81 }, + { 0xFEC, _station_display_datas_82 }, + { 0xA59, _station_display_datas_083 }, + { 0xA56, _station_display_datas_084 }, + { 0xA4A, _station_display_datas_085 }, + { 0xA4A, _station_display_datas_086 }, + { 0xA4A, _station_display_datas_087 }, + { 0xA59, _station_display_datas_088 }, + { 0xA56, _station_display_datas_089 }, + { 0xA4A, _station_display_datas_090 }, + { 0xA4A, _station_display_datas_091 }, + { 0xA4A, _station_display_datas_092 }, + { 0xA4A, _station_display_datas_093 }, + { 0xA4A, _station_display_datas_094 }, + { 0xA4A, _station_display_datas_095 }, + { 0xA4A, _station_display_datas_096 }, + { 0xA4A, _station_display_datas_097 }, + { 0xA4A, _station_display_datas_098 }, + { 0xA4A, _station_display_datas_099 }, + { 0xA4A, _station_display_datas_0100 }, + { 0xA4A, _station_display_datas_0101 }, + { 0xA4A, _station_display_datas_0102 }, + { 0xA4A, _station_display_datas_0103 }, + { 0xA4A, _station_display_datas_0104 }, + { 0xA4A, _station_display_datas_0105 }, + { 0xA4A, _station_display_datas_0106 }, + { 0xA4A, _station_display_datas_0107 }, + { 0xA4A, _station_display_datas_0108 }, + { 0xA4A, _station_display_datas_0109 }, + { 0xA4A, _station_display_datas_0110 }, + { 0xA4A, _station_display_datas_0111 }, + { 0xA4A, _station_display_datas_0112 }, + { 0xA4A, _station_display_datas_0113 }, + { 0xA4A, _station_display_datas_0114 }, }; diff --git a/table/unmovable_land.h b/table/unmovable_land.h index 5c31e53b4..7cedafbf3 100644 --- a/table/unmovable_land.h +++ b/table/unmovable_land.h @@ -1,141 +1,119 @@ -#define TILE_SEQ_BEGIN(x) ADD_WORD(x), -#define TILE_SEQ_LINE(a,b,c,d,e,f,g) a,b,c,d,e,f,ADD_WORD(g), -#define TILE_SEQ_END() 0x80 +#define TILE_SEQ_END() { 0x80 } static const DrawTileUnmovableStruct _draw_tile_unmovable_data[] = { {0xA29, 7,7, 2,2, 70}, {0xA2A, 4,4, 7,7, 61}, }; -static const byte _unmovable_display_datas_0[] = { - TILE_SEQ_BEGIN(0x8A2B) + +static const DrawTileSeqStruct _unmovable_display_datas_0[] = { TILE_SEQ_END() }; -static const byte _unmovable_display_datas_1[] = { - TILE_SEQ_BEGIN(0x8A2C) +static const DrawTileSeqStruct _unmovable_display_datas_1[] = { TILE_SEQ_END() }; -static const byte _unmovable_display_datas_2[] = { - TILE_SEQ_BEGIN(0x8A2D) +static const DrawTileSeqStruct _unmovable_display_datas_2[] = { TILE_SEQ_END() }; -static const byte _unmovable_display_datas_3[] = { - TILE_SEQ_BEGIN(0x8A2E) +static const DrawTileSeqStruct _unmovable_display_datas_3[] = { TILE_SEQ_END() }; -static const byte _unmovable_display_datas_4[] = { - TILE_SEQ_BEGIN(0x8A2F) +static const DrawTileSeqStruct _unmovable_display_datas_4[] = { TILE_SEQ_END() }; -static const byte _unmovable_display_datas_5[] = { - TILE_SEQ_BEGIN(0x8A30) +static const DrawTileSeqStruct _unmovable_display_datas_5[] = { TILE_SEQ_END() }; -static const byte _unmovable_display_datas_6[] = { - TILE_SEQ_BEGIN(0x8A31) +static const DrawTileSeqStruct _unmovable_display_datas_6[] = { TILE_SEQ_END() }; -static const byte _unmovable_display_datas_7[] = { - TILE_SEQ_BEGIN(0x8A32) +static const DrawTileSeqStruct _unmovable_display_datas_7[] = { TILE_SEQ_END() }; -static const byte _unmovable_display_datas_8[] = { - TILE_SEQ_BEGIN(0x8A33) - TILE_SEQ_LINE( 0, 0, 0, 16, 16, 20, 0x8A34) +static const DrawTileSeqStruct _unmovable_display_datas_8[] = { + { 0, 0, 0, 16, 16, 20, 0x8A34 }, TILE_SEQ_END() }; -static const byte _unmovable_display_datas_9[] = { - TILE_SEQ_BEGIN(0x8A35) - TILE_SEQ_LINE( 0, 0, 0, 16, 16, 20, 0x8A36) +static const DrawTileSeqStruct _unmovable_display_datas_9[] = { + { 0, 0, 0, 16, 16, 20, 0x8A36 }, TILE_SEQ_END() }; -static const byte _unmovable_display_datas_10[] = { - TILE_SEQ_BEGIN(0x8A37) - TILE_SEQ_LINE( 0, 0, 0, 16, 16, 20, 0x8A38) +static const DrawTileSeqStruct _unmovable_display_datas_10[] = { + { 0, 0, 0, 16, 16, 20, 0x8A38 }, TILE_SEQ_END() }; -static const byte _unmovable_display_datas_11[] = { - TILE_SEQ_BEGIN(0x8A39) +static const DrawTileSeqStruct _unmovable_display_datas_11[] = { TILE_SEQ_END() }; -static const byte _unmovable_display_datas_12[] = { - TILE_SEQ_BEGIN(0x8A3A) - TILE_SEQ_LINE( 0, 0, 0, 16, 16, 50, 0x8A3B) +static const DrawTileSeqStruct _unmovable_display_datas_12[] = { + { 0, 0, 0, 16, 16, 50, 0x8A3B }, TILE_SEQ_END() }; -static const byte _unmovable_display_datas_13[] = { - TILE_SEQ_BEGIN(0x8A3C) - TILE_SEQ_LINE( 0, 0, 0, 16, 16, 50, 0x8A3D) +static const DrawTileSeqStruct _unmovable_display_datas_13[] = { + { 0, 0, 0, 16, 16, 50, 0x8A3D }, TILE_SEQ_END() }; -static const byte _unmovable_display_datas_14[] = { - TILE_SEQ_BEGIN(0x8A3E) - TILE_SEQ_LINE( 0, 0, 0, 16, 16, 50, 0x8A3F) +static const DrawTileSeqStruct _unmovable_display_datas_14[] = { + { 0, 0, 0, 16, 16, 50, 0x8A3F }, TILE_SEQ_END() }; -static const byte _unmovable_display_datas_15[] = { - TILE_SEQ_BEGIN(0x8A40) +static const DrawTileSeqStruct _unmovable_display_datas_15[] = { TILE_SEQ_END() }; -static const byte _unmovable_display_datas_16[] = { - TILE_SEQ_BEGIN(0x8A41) - TILE_SEQ_LINE( 0, 0, 0, 16, 16, 60, 0x8A42) +static const DrawTileSeqStruct _unmovable_display_datas_16[] = { + { 0, 0, 0, 16, 16, 60, 0x8A42 }, TILE_SEQ_END() }; -static const byte _unmovable_display_datas_17[] = { - TILE_SEQ_BEGIN(0x8A43) - TILE_SEQ_LINE( 0, 0, 0, 16, 16, 60, 0x8A44) +static const DrawTileSeqStruct _unmovable_display_datas_17[] = { + { 0, 0, 0, 16, 16, 60, 0x8A44 }, TILE_SEQ_END() }; -static const byte _unmovable_display_datas_18[] = { - TILE_SEQ_BEGIN(0x8A45) - TILE_SEQ_LINE( 0, 0, 0, 16, 16, 60, 0x8A46) +static const DrawTileSeqStruct _unmovable_display_datas_18[] = { + { 0, 0, 0, 16, 16, 60, 0x8A46 }, TILE_SEQ_END() }; -static const byte _unmovable_display_datas_19[] = { - TILE_SEQ_BEGIN(0x8A47) +static const DrawTileSeqStruct _unmovable_display_datas_19[] = { TILE_SEQ_END() }; -static const byte * const _unmovable_display_datas[] = { - _unmovable_display_datas_0, - _unmovable_display_datas_1, - _unmovable_display_datas_2, - _unmovable_display_datas_3, - _unmovable_display_datas_4, - _unmovable_display_datas_5, - _unmovable_display_datas_6, - _unmovable_display_datas_7, - _unmovable_display_datas_8, - _unmovable_display_datas_9, - _unmovable_display_datas_10, - _unmovable_display_datas_11, - _unmovable_display_datas_12, - _unmovable_display_datas_13, - _unmovable_display_datas_14, - _unmovable_display_datas_15, - _unmovable_display_datas_16, - _unmovable_display_datas_17, - _unmovable_display_datas_18, - _unmovable_display_datas_19, +static const DrawTileSprites _unmovable_display_datas[] = { + { 0x8A2B, _unmovable_display_datas_0 }, + { 0x8A2C, _unmovable_display_datas_1 }, + { 0x8A2D, _unmovable_display_datas_2 }, + { 0x8A2E, _unmovable_display_datas_3 }, + { 0x8A2F, _unmovable_display_datas_4 }, + { 0x8A30, _unmovable_display_datas_5 }, + { 0x8A31, _unmovable_display_datas_6 }, + { 0x8A32, _unmovable_display_datas_7 }, + { 0x8A33, _unmovable_display_datas_8 }, + { 0x8A35, _unmovable_display_datas_9 }, + { 0x8A37, _unmovable_display_datas_10 }, + { 0x8A39, _unmovable_display_datas_11 }, + { 0x8A3A, _unmovable_display_datas_12 }, + { 0x8A3C, _unmovable_display_datas_13 }, + { 0x8A3E, _unmovable_display_datas_14 }, + { 0x8A40, _unmovable_display_datas_15 }, + { 0x8A41, _unmovable_display_datas_16 }, + { 0x8A43, _unmovable_display_datas_17 }, + { 0x8A45, _unmovable_display_datas_18 }, + { 0x8A47, _unmovable_display_datas_19 }, }; - diff --git a/unmovable_cmd.c b/unmovable_cmd.c index ebcecdacf..ec40f2663 100644 --- a/unmovable_cmd.c +++ b/unmovable_cmd.c @@ -4,6 +4,7 @@ #include "viewport.h" #include "player.h" #include "gui.h" +#include "station.h" #include "economy.h" #include "town.h" @@ -17,15 +18,6 @@ typedef struct DrawTileUnmovableStruct { byte unused; } DrawTileUnmovableStruct; -typedef struct DrawTileSeqStruct { - int8 delta_x; - int8 delta_y; - int8 delta_z; - byte width,height; - byte unk; - SpriteID image; -} DrawTileSeqStruct; - #include "table/unmovable_land.h" static void DrawTile_Unmovable(TileInfo *ti) @@ -77,18 +69,16 @@ static void DrawTile_Unmovable(TileInfo *ti) } } else { const DrawTileSeqStruct *dtss; - const byte *t; + const DrawTileSprites *t; if (ti->tileh) DrawFoundation(ti, ti->tileh); ormod = PLAYER_SPRITE_COLOR(_map_owner[ti->tile]); - t = _unmovable_display_datas[ti->map5 & 0x7F]; - DrawGroundSprite(*(const uint16*)t | ormod); - - t += sizeof(uint16); + t = &_unmovable_display_datas[ti->map5 & 0x7F]; + DrawGroundSprite(t->ground_sprite | ormod); - for(dtss = (const DrawTileSeqStruct *)t; (byte)dtss->delta_x != 0x80; dtss++) { + foreach_draw_tile_seq(dtss, t->seq) { image = dtss->image; if (_display_opt & DO_TRANS_BUILDINGS) { image |= ormod; |