(svn r576) -newgrf: Cleanup horrible table/(station|unmovable)_land.h DrawTileSeqStruct hacks needed for custom station supports (pasky)
authordarkvater
Sun, 14 Nov 2004 01:25:05 +0000
changeset 384 bf1303e754ff
parent 383 eb6be25facd2
child 385 0c3dbfa4bd7c
(svn r576) -newgrf: Cleanup horrible table/(station|unmovable)_land.h DrawTileSeqStruct hacks needed for custom station supports (pasky)
station.h
station_cmd.c
table/station_land.h
table/unmovable_land.h
unmovable_cmd.c
--- a/station.h	Sun Nov 14 00:19:48 2004 +0000
+++ b/station.h	Sun Nov 14 01:25:05 2004 +0000
@@ -89,4 +89,22 @@
 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 */
--- a/station_cmd.c	Sun Nov 14 00:19:48 2004 +0000
+++ b/station_cmd.c	Sun Nov 14 01:25:05 2004 +0000
@@ -1717,22 +1717,13 @@
 #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 @@
 	if (ti->tileh != 0 && (ti->map5 < 0x4C || ti->map5 > 0x51))
 		DrawFoundation(ti, ti->tileh);
 
-	t = _station_display_datas[ti->map5];
-
-	image = *(const uint32*)t;
-	t += sizeof(uint32);
+	t = &_station_display_datas[ti->map5];
+
+	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++) {
+	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) {
-			image =	dtss->image + base_img;
-			if (_display_opt & DO_TRANS_BUILDINGS) {
-				if (image&0x8000) image |= image_or_modificator;
-			} else {
-				image = (image & 0x3FFF) | 0x03224000;
-			}
-
 			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 @@
 {
 	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];
-
-	img = *(const uint32*)t;
-	t += sizeof(uint32);
+	t = &_station_display_datas[image];
+
+	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);
 	}
--- a/table/station_land.h	Sun Nov 14 00:19:48 2004 +0000
+++ b/table/station_land.h	Sun Nov 14 01:25:05 2004 +0000
@@ -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
-
-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)
-	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)
-	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)
-	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)
-	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)
-	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)
-	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)
-	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)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_8[] = {
-	TILE_SEQ_BEGIN(0xA4A)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_9[] = {
-	TILE_SEQ_BEGIN(0xA4A)
-	TILE_SEQ_LINE(  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)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_11[] = {
-	TILE_SEQ_BEGIN(0xA4B)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_12[] = {
-	TILE_SEQ_BEGIN(0xA4C)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_13[] = {
-	TILE_SEQ_BEGIN(0xA4D)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_14[] = {
-	TILE_SEQ_BEGIN(0xA4E)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_15[] = {
-	TILE_SEQ_BEGIN(0xA4F)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_16[] = {
-	TILE_SEQ_BEGIN(0xA50)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_17[] = {
-	TILE_SEQ_BEGIN(0xA51)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_18[] = {
-	TILE_SEQ_BEGIN(0xA52)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_19[] = {
-	TILE_SEQ_BEGIN(0xA53)
-	TILE_SEQ_END()
-};
+#define TILE_SEQ_END()	{ 0x80 }
 
-static const byte _station_display_datas_20[] = {
-	TILE_SEQ_BEGIN(0xA54)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_21[] = {
-	TILE_SEQ_BEGIN(0xA53)
-	TILE_SEQ_LINE( 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)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_23[] = {
-	TILE_SEQ_BEGIN(0xA56)
-	TILE_SEQ_LINE(  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)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_25[] = {
-	TILE_SEQ_BEGIN(0xA58)
-	TILE_SEQ_LINE(  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)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_27[] = {
-	TILE_SEQ_BEGIN(0xA4A)
-	TILE_SEQ_LINE(  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)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_29[] = {
-	TILE_SEQ_BEGIN(0xA4A)
-	TILE_SEQ_LINE(  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)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_31[] = {
-	TILE_SEQ_BEGIN(0xA4A)
-	TILE_SEQ_LINE(  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)
-	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)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_34[] = {
-	TILE_SEQ_BEGIN(0xA4B)
-	TILE_SEQ_LINE(  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)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_36[] = {
-	TILE_SEQ_BEGIN(0xA4A)
-	TILE_SEQ_LINE(  0,  8,  0, 14,  3, 14, 0xA66)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_37[] = {
-	TILE_SEQ_BEGIN(0xF8D)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_38[] = {
-	TILE_SEQ_BEGIN(0xF8D)
-	TILE_SEQ_LINE(  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)
-	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)
-	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_0[] = {
+	{ 0,  0,  0, 16,  5,  2, 0x842E },
+	{ 0, 11,  0, 16,  5,  2, 0x8430 },
 	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)
-	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)
-	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)
-	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)
-	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)
-	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)
-	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)
-	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)
-	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)
-	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)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_52[] = {
-	TILE_SEQ_BEGIN(0xA69)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_53[] = {
-	TILE_SEQ_BEGIN(0xA6A)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_54[] = {
-	TILE_SEQ_BEGIN(0x8A6B)
-	TILE_SEQ_LINE(  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)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_56[] = {
-	TILE_SEQ_BEGIN(0xA6E)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_57[] = {
-	TILE_SEQ_BEGIN(0xA6F)
-	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)
-	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)
-	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)
-	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_1[] = {
+	{ 0,  0,  0,  5, 16,  2, 0x842F },
+	{ 11,  0,  0,  5, 16,  2, 0x842D },
 	TILE_SEQ_END()
 };
 
-static const byte _station_display_datas_62[] = {
-	TILE_SEQ_BEGIN(0xA71)
-	TILE_SEQ_LINE(  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)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_64[] = {
-	TILE_SEQ_BEGIN(0xA73)
-	TILE_SEQ_LINE(  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)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_66[] = {
-	TILE_SEQ_BEGIN(0xF8D)
-	TILE_SEQ_LINE(  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)
-	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)
-	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)
-	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_2[] = {
+	{ 0,  0,  0, 16,  5,  2, 0x8431 },
+	{ 0, 11,  0, 16,  5,  2, 0x8430 },
 	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)
-	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)
-	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)
-	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)
-	TILE_SEQ_END()
-};
-
-static const byte _station_display_datas_75[] = {
-	TILE_SEQ_BEGIN(0xFDD)
+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_76[] = {
-	TILE_SEQ_BEGIN(0xFE4)
-	TILE_SEQ_LINE(  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)
-	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_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_79[] = {
-	TILE_SEQ_BEGIN(0xFE2)
-	TILE_SEQ_LINE(  4,  0,  0,  8, 16,  8, 0xAAA)
+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_80[] = {
-	TILE_SEQ_BEGIN(0xFDD)
-	TILE_SEQ_LINE(  0,  4,  0, 16,  8,  8, 0xAAB)
+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_81[] = {
-	TILE_SEQ_BEGIN(0xFDD)
-	TILE_SEQ_LINE(  4,  0,  0,  8, 16,  8, 0xAAC)
+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_82[] = {
-	TILE_SEQ_BEGIN(0xFEC)
+static const DrawTileSeqStruct _station_display_datas_8[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_9[] = {
+	{ 0,  0,  0, 16,  1,  6, 0x8A68 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_10[] = {
+	{ 15,  0,  0,  1, 16,  6, 0x8A67 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_11[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_12[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_13[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_14[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_15[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_16[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_17[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_18[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_19[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_20[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_21[] = {
+	{ 15,  0,  0,  1, 16,  6, 0x8A67 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_22[] = {
+	{ 0, 15,  0, 16,  1,  6, 0x8A68 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_23[] = {
+	{ 0, 15,  0, 16,  1,  6, 0x8A68 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_24[] = {
+	{ 0, 15,  0, 16,  1,  6, 0x8A68 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_25[] = {
+	{ 0, 15,  0, 16,  1,  6, 0x8A68 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_26[] = {
+	{ 0, 15,  0, 16,  1,  6, 0x8A68 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_27[] = {
+	{ 2,  0,  0, 11, 16, 40, 0x8A5A },
+	TILE_SEQ_END()
+};
+
+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 DrawTileSeqStruct _station_display_datas_29[] = {
+	{ 0,  1,  0, 14, 14, 30, 0x8A5C },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_30[] = {
+	{ 3,  3,  0, 10, 11, 35, 0x8A5D },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_31[] = {
+	{ 0,  3,  0, 16, 11, 40, 0x8A5E },
+	TILE_SEQ_END()
+};
+
+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 DrawTileSeqStruct _station_display_datas_33[] = {
+	{ 7, 11,  0,  3,  3, 14, 0xA63 },
+	{ 0,  0,  0, 16,  1,  6, 0x8A68 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_34[] = {
+	{ 2,  7,  0,  3,  3, 14, 0xA64 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_35[] = {
+	{ 3,  2,  0,  3,  3, 14, 0xA65 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_36[] = {
+	{ 0,  8,  0, 14,  3, 14, 0xA66 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_37[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_38[] = {
+	{ 0,  0,  0,  1, 16,  6, 0x8A67 },
+	TILE_SEQ_END()
+};
+
+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 DrawTileSeqStruct _station_display_datas_40[] = {
+	{ 7,  7,  0,  2,  2,  8, 0xA79 },
+	{ 15,  0,  0,  1, 16,  6, 0x8A67 },
+	TILE_SEQ_END()
+};
+
+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 DrawTileSeqStruct _station_display_datas_42[] = {
+	{ 7,  7,  0,  2,  2,  8, 0xA7B },
+	{ 15,  0,  0,  1, 16,  6, 0x8A67 },
+	TILE_SEQ_END()
+};
+
+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 DrawTileSeqStruct _station_display_datas_44[] = {
+	{ 7,  7,  0,  2,  2,  8, 0xA7D },
+	{ 15,  0,  0,  1, 16,  6, 0x8A67 },
+	TILE_SEQ_END()
+};
+
+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 DrawTileSeqStruct _station_display_datas_46[] = {
+	{ 7,  7,  0,  2,  2,  8, 0xA7F },
+	{ 15,  0,  0,  1, 16,  6, 0x8A67 },
+	TILE_SEQ_END()
+};
+
+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 DrawTileSeqStruct _station_display_datas_48[] = {
+	{ 7,  7,  0,  2,  2,  8, 0xA81 },
+	{ 15,  0,  0,  1, 16,  6, 0x8A67 },
+	TILE_SEQ_END()
+};
+
+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 DrawTileSeqStruct _station_display_datas_50[] = {
+	{ 7,  7,  0,  2,  2,  8, 0xA83 },
+	{ 15,  0,  0,  1, 16,  6, 0x8A67 },
+	TILE_SEQ_END()
+};
+
+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 DrawTileSeqStruct _station_display_datas_52[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_53[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_54[] = {
+	{ 0,  0,  0, 15, 15, 30, 0x8A6C },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_55[] = {
+	{ 15,  0,  0,  1, 16,  6, 0x8A67 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_56[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_57[] = {
+	TILE_SEQ_END()
+};
+
+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 DrawTileSeqStruct _station_display_datas_59[] = {
+	{ 0,  0,  0,  1, 16,  6, 0x8A67 },
+	{ 4, 11,  0,  1,  1, 20, 0x8A75 },
+	TILE_SEQ_END()
+};
+
+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 DrawTileSeqStruct _station_display_datas_61[] = {
+	{ 0,  0,  0,  1, 16,  6, 0x8A67 },
+	{ 4, 11,  0,  1,  1, 20, 0x8A77 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_62[] = {
+	{ 0, 15,  0, 16,  1,  6, 0x8A68 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_63[] = {
+	{ 0, 15,  0, 16,  1,  6, 0x8A68 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_64[] = {
+	{ 0, 15,  0, 16,  1,  6, 0x8A68 },
+	TILE_SEQ_END()
+};
+
+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 DrawTileSeqStruct _station_display_datas_66[] = {
+	{ 0,  0,  0, 16, 16, 60, 0x8A49 },
+	TILE_SEQ_END()
+};
+
+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 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 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 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 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 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 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 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 DrawTileSeqStruct _station_display_datas_75[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_76[] = {
+	{ 0,  4,  0, 16,  8,  8, 0xAA7 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_77[] = {
+	{ 4,  0,  0,  8, 16,  8, 0xAA8 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_78[] = {
+	{ 0,  4,  0, 16,  8,  8, 0xAA9 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_79[] = {
+	{ 4,  0,  0,  8, 16,  8, 0xAAA },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_80[] = {
+	{ 0,  4,  0, 16,  8,  8, 0xAAB },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _station_display_datas_81[] = {
+	{ 4,  0,  0,  8, 16,  8, 0xAAC },
+	TILE_SEQ_END()
+};
+
+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
-	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)
-	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)
-	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)
-	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)
+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_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)
-	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)
-	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_091[] = {
+	{ 7,  7,  0,  2,  2,  8, 0xA79 },
+	{ 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_092[] = {
+	{ 7,  7,  0,  2,  2,  8, 0xA7A },
+	{ 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_093[] = {
+	{ 7,  7,  0,  2,  2,  8, 0xA7B },
+	{ 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_094[] = {
+	{ 7,  7,  0,  2,  2,  8, 0xA7C },
+	{ 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_095[] = {
+	{ 7,  7,  0,  2,  2,  8, 0xA7D },
+	{ 15,  0, 0,  1, 16,  6, 0x8A67 },
+	TILE_SEQ_END()
+};
+
+// 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()
+};
+
+// 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()
+};
+
+// 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()
+};
+
+// 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()
+};
+
+// 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()
+};
+
+// 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)
-	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)
-	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)
-	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)
-	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)
+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_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)
-	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)
-	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_0103[] = {
+	{ 7,  7,  0,  2,  2,  8, 0xA79 },
+	{ 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_0104[] = {
+	{ 7,  7,  0,  2,  2,  8, 0xA7A },
+	{ 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_0105[] = {
+	{ 7,  7,  0,  2,  2,  8, 0xA7B },
+	{ 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_0106[] = {
+	{ 7,  7,  0,  2,  2,  8, 0xA7C },
+	{ 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_0107[] = {
+	{ 7,  7,  0,  2,  2,  8, 0xA7D },
+	{ 0,  0, 0,  1, 16,  6, 0x8A67 },
+	TILE_SEQ_END()
+};
+
+// 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()
+};
+
+// 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()
+};
+
+// 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()
+};
+
+// 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()
+};
+
+// 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()
+};
+
+// 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
+// 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 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,
+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 },
 };
--- a/table/unmovable_land.h	Sun Nov 14 00:19:48 2004 +0000
+++ b/table/unmovable_land.h	Sun Nov 14 01:25:05 2004 +0000
@@ -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)
-	TILE_SEQ_END()
-};
-
-static const byte _unmovable_display_datas_1[] = {
-	TILE_SEQ_BEGIN(0x8A2C)
-	TILE_SEQ_END()
-};
-
-static const byte _unmovable_display_datas_2[] = {
-	TILE_SEQ_BEGIN(0x8A2D)
-	TILE_SEQ_END()
-};
-
-static const byte _unmovable_display_datas_3[] = {
-	TILE_SEQ_BEGIN(0x8A2E)
-	TILE_SEQ_END()
-};
-
-static const byte _unmovable_display_datas_4[] = {
-	TILE_SEQ_BEGIN(0x8A2F)
-	TILE_SEQ_END()
-};
-
-static const byte _unmovable_display_datas_5[] = {
-	TILE_SEQ_BEGIN(0x8A30)
-	TILE_SEQ_END()
-};
 
-static const byte _unmovable_display_datas_6[] = {
-	TILE_SEQ_BEGIN(0x8A31)
-	TILE_SEQ_END()
-};
-
-static const byte _unmovable_display_datas_7[] = {
-	TILE_SEQ_BEGIN(0x8A32)
-	TILE_SEQ_END()
-};
-
-static const byte _unmovable_display_datas_8[] = {
-	TILE_SEQ_BEGIN(0x8A33)
-	TILE_SEQ_LINE(  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)
-	TILE_SEQ_END()
-};
-
-static const byte _unmovable_display_datas_10[] = {
-	TILE_SEQ_BEGIN(0x8A37)
-	TILE_SEQ_LINE(  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_0[] = {
 	TILE_SEQ_END()
 };
 
-static const byte _unmovable_display_datas_12[] = {
-	TILE_SEQ_BEGIN(0x8A3A)
-	TILE_SEQ_LINE(  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)
-	TILE_SEQ_END()
-};
-
-static const byte _unmovable_display_datas_14[] = {
-	TILE_SEQ_BEGIN(0x8A3E)
-	TILE_SEQ_LINE(  0,  0,  0, 16, 16, 50, 0x8A3F)
-	TILE_SEQ_END()
-};
-
-static const byte _unmovable_display_datas_15[] = {
-	TILE_SEQ_BEGIN(0x8A40)
-	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_1[] = {
 	TILE_SEQ_END()
 };
 
-static const byte _unmovable_display_datas_17[] = {
-	TILE_SEQ_BEGIN(0x8A43)
-	TILE_SEQ_LINE(  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)
-	TILE_SEQ_END()
-};
-
-static const byte _unmovable_display_datas_19[] = {
-	TILE_SEQ_BEGIN(0x8A47)
+static const DrawTileSeqStruct _unmovable_display_datas_2[] = {
 	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 DrawTileSeqStruct _unmovable_display_datas_3[] = {
+	TILE_SEQ_END()
 };
 
+static const DrawTileSeqStruct _unmovable_display_datas_4[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _unmovable_display_datas_5[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _unmovable_display_datas_6[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _unmovable_display_datas_7[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _unmovable_display_datas_8[] = {
+	{   0,  0,  0, 16, 16, 20, 0x8A34 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _unmovable_display_datas_9[] = {
+	{   0,  0,  0, 16, 16, 20, 0x8A36 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _unmovable_display_datas_10[] = {
+	{   0,  0,  0, 16, 16, 20, 0x8A38 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _unmovable_display_datas_11[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _unmovable_display_datas_12[] = {
+	{   0,  0,  0, 16, 16, 50, 0x8A3B },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _unmovable_display_datas_13[] = {
+	{   0,  0,  0, 16, 16, 50, 0x8A3D },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _unmovable_display_datas_14[] = {
+	{   0,  0,  0, 16, 16, 50, 0x8A3F },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _unmovable_display_datas_15[] = {
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _unmovable_display_datas_16[] = {
+	{   0,  0,  0, 16, 16, 60, 0x8A42 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _unmovable_display_datas_17[] = {
+	{   0,  0,  0, 16, 16, 60, 0x8A44 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _unmovable_display_datas_18[] = {
+	{   0,  0,  0, 16, 16, 60, 0x8A46 },
+	TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _unmovable_display_datas_19[] = {
+	TILE_SEQ_END()
+};
+
+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 },
+};
--- a/unmovable_cmd.c	Sun Nov 14 00:19:48 2004 +0000
+++ b/unmovable_cmd.c	Sun Nov 14 01:25:05 2004 +0000
@@ -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 @@
 	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 @@
 		}
 	} 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 = &_unmovable_display_datas[ti->map5 & 0x7F];
+		DrawGroundSprite(t->ground_sprite | ormod);
 
-		t += sizeof(uint16);
-
-		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;