From efaeb275f78e18d594d9ee8ff04eccd2dc59512c Mon Sep 17 00:00:00 2001 From: truelight Date: Mon, 9 Aug 2004 17:04:08 +0000 Subject: (svn r1) Import of revision 975 of old (crashed) SVN --- table/ai_rail.h | 480 ++++++++++ table/animcursors.h | 45 + table/build_industry.h | 1258 +++++++++++++++++++++++++++ table/clear_land.h | 61 ++ table/engines.h | 404 +++++++++ table/genland.h | 159 ++++ table/industry_land.h | 939 ++++++++++++++++++++ table/landscape_const.h | 215 +++++ table/landscape_sprite.h | 134 +++ table/palettes.h | 96 ++ table/road_land.h | 278 ++++++ table/roadveh.h | 1075 +++++++++++++++++++++++ table/station_land.h | 885 +++++++++++++++++++ table/town_land.h | 2169 ++++++++++++++++++++++++++++++++++++++++++++++ table/track_land.h | 61 ++ table/train_cmd.h | 55 ++ table/tree_land.h | 213 +++++ table/tunnel_land.h | 755 ++++++++++++++++ table/unmovable_land.h | 141 +++ table/water_land.h | 147 ++++ 20 files changed, 9570 insertions(+) create mode 100644 table/ai_rail.h create mode 100644 table/animcursors.h create mode 100644 table/build_industry.h create mode 100644 table/clear_land.h create mode 100644 table/engines.h create mode 100644 table/genland.h create mode 100644 table/industry_land.h create mode 100644 table/landscape_const.h create mode 100644 table/landscape_sprite.h create mode 100644 table/palettes.h create mode 100644 table/road_land.h create mode 100644 table/roadveh.h create mode 100644 table/station_land.h create mode 100644 table/town_land.h create mode 100644 table/track_land.h create mode 100644 table/train_cmd.h create mode 100644 table/tree_land.h create mode 100644 table/tunnel_land.h create mode 100644 table/unmovable_land.h create mode 100644 table/water_land.h (limited to 'table') diff --git a/table/ai_rail.h b/table/ai_rail.h new file mode 100644 index 000000000..daf70fe44 --- /dev/null +++ b/table/ai_rail.h @@ -0,0 +1,480 @@ +typedef struct { + byte mode; + byte attr; + TileIndexDiff tileoffs; +} AiDefaultBlockData; + +typedef struct { + byte p0; + byte p1; + byte p2; + byte p3; + byte dir; + AiDefaultBlockData data[VARARRAY_SIZE]; +} AiDefaultRailBlock; + +typedef struct { + byte dir; + AiDefaultBlockData data[VARARRAY_SIZE]; +} AiDefaultRoadBlock; + + +#define MKHDR(a,b,c,d,e) a,b,c,d,e,{ +#define MKDEPOT(a,b) {0,a,b} +#define MKSTATION(a,b) {1,a,b} +#define MKRAIL(a,b) {2,a,b} +#define MKCLRRAIL(a,b) {3,a,b} +#define MKEND {4}} + +static const AiDefaultRailBlock _raildata_ai_0 = { + MKHDR(1,2,1,0,1) + MKDEPOT(2,TILE_XY(-1,1)), + MKSTATION(0x15,TILE_XY(0,-1)), + MKRAIL(0x26,TILE_XY(0,1)), + MKCLRRAIL(1,TILE_XY(0,2)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_1 = { + MKHDR(1,2,1,0,3) + MKDEPOT(2,TILE_XY(-1,-1)), + MKRAIL(0x26,TILE_XY(0,-1)), + MKSTATION(0x15,TILE_XY(0,0)), + MKCLRRAIL(3,TILE_XY(0,-2)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_2 = { + MKHDR(1,2,1,0,0) + MKDEPOT(1,TILE_XY(-1,-1)), + MKRAIL(0x15,TILE_XY(-1,0)), + MKSTATION(0x14,TILE_XY(0,0)), + MKCLRRAIL(0,TILE_XY(-2,0)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_3 = { + MKHDR(1,2,1,0,2) + MKDEPOT(1,TILE_XY(1,-1)), + MKRAIL(0x15,TILE_XY(1,0)), + MKSTATION(0x14,TILE_XY(-1,0)), + MKCLRRAIL(2,TILE_XY(2,0)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_4 = { + MKHDR(1,2,2,0,255) + MKSTATION(0x15,TILE_XY(0,0)), + MKCLRRAIL(3,TILE_XY(0,-1)), + MKCLRRAIL(1,TILE_XY(0,2)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_5 = { + MKHDR(1,2,2,0,255) + MKSTATION(0x14,TILE_XY(0,0)), + MKCLRRAIL(0,TILE_XY(-1,0)), + MKCLRRAIL(2,TILE_XY(2,0)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_6 = { + MKHDR(2,3,1,0,1) + MKSTATION(0x27,TILE_XY(0,-2)), + MKRAIL(0xC2,TILE_XY(0,1)), + MKRAIL(0xC2,TILE_XY(1,1)), + MKRAIL(0x1A,TILE_XY(0,2)), + MKRAIL(0x26,TILE_XY(1,2)), + MKDEPOT(3,TILE_XY(1,3)), + MKCLRRAIL(1,TILE_XY(0,3)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_7 = { + MKHDR(2,3,1,0,3) + MKDEPOT(1,TILE_XY(0,-3)), + MKRAIL(0x1A,TILE_XY(0,-2)), + MKRAIL(0x26,TILE_XY(1,-2)), + MKRAIL(0xC2,TILE_XY(0,-1)), + MKRAIL(0xC2,TILE_XY(1,-1)), + MKSTATION(0x27,TILE_XY(0,0)), + MKCLRRAIL(3,TILE_XY(1,-3)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_8 = { + MKHDR(2,3,1,0,2) + MKSTATION(0x26,TILE_XY(-2,0)), + MKRAIL(0xC1,TILE_XY(1,0)), + MKRAIL(0xC1,TILE_XY(1,1)), + MKRAIL(0x29,TILE_XY(2,0)), + MKRAIL(0x15,TILE_XY(2,1)), + MKDEPOT(0,TILE_XY(3,0)), + MKCLRRAIL(2,TILE_XY(3,1)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_9 = { + MKHDR(2,3,1,0,0) + MKDEPOT(2,TILE_XY(-3,-1)), + MKRAIL(0x29,TILE_XY(-2,-1)), + MKRAIL(0x15,TILE_XY(-2,0)), + MKRAIL(0xC1,TILE_XY(-1,-1)), + MKRAIL(0xC1,TILE_XY(-1,0)), + MKSTATION(0x26,TILE_XY(0,-1)), + MKCLRRAIL(0,TILE_XY(-3,0)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_10 = { + MKHDR(2,3,2,0,255) + MKRAIL(0x1A,TILE_XY(0,-3)), + MKRAIL(0x20,TILE_XY(1,-3)), + MKRAIL(0xC2,TILE_XY(0,-2)), + MKRAIL(0xC2,TILE_XY(1,-2)), + MKSTATION(0x27,TILE_XY(0,-1)), + MKRAIL(0xC2,TILE_XY(0,2)), + MKRAIL(0xC2,TILE_XY(1,2)), + MKRAIL(0x1A,TILE_XY(0,3)), + MKRAIL(0x4,TILE_XY(1,3)), + MKCLRRAIL(3,TILE_XY(0,-4)), + MKCLRRAIL(1,TILE_XY(0,4)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_11 = { + MKHDR(2,3,2,0,255) + MKRAIL(0x29,TILE_XY(-3,0)), + MKRAIL(0x10,TILE_XY(-3,1)), + MKRAIL(0xC1,TILE_XY(-2,0)), + MKRAIL(0xC1,TILE_XY(-2,1)), + MKSTATION(0x26,TILE_XY(-1,0)), + MKRAIL(0xC1,TILE_XY(2,0)), + MKRAIL(0xC1,TILE_XY(2,1)), + MKRAIL(0x29,TILE_XY(3,0)), + MKRAIL(0x4,TILE_XY(3,1)), + MKCLRRAIL(0,TILE_XY(-4,0)), + MKCLRRAIL(2,TILE_XY(4,0)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_12 = { + MKHDR(2,3,2,1,3) + MKRAIL(0x88,TILE_XY(-1,-3)), + MKRAIL(0x6,TILE_XY(0,-3)), + MKRAIL(0x2,TILE_XY(-1,-2)), + MKRAIL(0x42,TILE_XY(0,-2)), + MKRAIL(0x2,TILE_XY(-1,-1)), + MKRAIL(0x2,TILE_XY(0,-1)), + MKRAIL(0x2,TILE_XY(-1,0)), + MKRAIL(0x2,TILE_XY(0,0)), + MKRAIL(0x82,TILE_XY(-1,1)), + MKRAIL(0x2,TILE_XY(0,1)), + MKRAIL(0xA,TILE_XY(-1,2)), + MKRAIL(0x44,TILE_XY(0,2)), + MKCLRRAIL(3,TILE_XY(0,-4)), + MKCLRRAIL(1,TILE_XY(-1,3)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_13 = { + MKHDR(2,3,2,1,0) + MKRAIL(0x21,TILE_XY(-3,0)), + MKRAIL(0x90,TILE_XY(-3,1)), + MKRAIL(0x81,TILE_XY(-2,0)), + MKRAIL(0x1,TILE_XY(-2,1)), + MKRAIL(0x1,TILE_XY(-1,0)), + MKRAIL(0x1,TILE_XY(-1,1)), + MKRAIL(0x1,TILE_XY(0,0)), + MKRAIL(0x1,TILE_XY(0,1)), + MKRAIL(0x1,TILE_XY(1,0)), + MKRAIL(0x41,TILE_XY(1,1)), + MKRAIL(0x60,TILE_XY(2,0)), + MKRAIL(0x11,TILE_XY(2,1)), + MKCLRRAIL(0,TILE_XY(-4,0)), + MKCLRRAIL(2,TILE_XY(3,1)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_14 = { + MKHDR(2,3,2,1,1) + MKRAIL(0x88,TILE_XY(-1,-3)), + MKRAIL(0x6,TILE_XY(0,-3)), + MKRAIL(0x2,TILE_XY(-1,-2)), + MKRAIL(0x42,TILE_XY(0,-2)), + MKRAIL(0x2,TILE_XY(-1,-1)), + MKRAIL(0x2,TILE_XY(0,-1)), + MKRAIL(0x2,TILE_XY(-1,0)), + MKRAIL(0x2,TILE_XY(0,0)), + MKRAIL(0x82,TILE_XY(-1,1)), + MKRAIL(0x2,TILE_XY(0,1)), + MKRAIL(0xA,TILE_XY(-1,2)), + MKRAIL(0x44,TILE_XY(0,2)), + MKCLRRAIL(1,TILE_XY(-1,3)), + MKCLRRAIL(3,TILE_XY(0,-4)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_15 = { + MKHDR(2,3,2,1,2) + MKRAIL(0x21,TILE_XY(-3,0)), + MKRAIL(0x90,TILE_XY(-3,1)), + MKRAIL(0x81,TILE_XY(-2,0)), + MKRAIL(0x1,TILE_XY(-2,1)), + MKRAIL(0x1,TILE_XY(-1,0)), + MKRAIL(0x1,TILE_XY(-1,1)), + MKRAIL(0x1,TILE_XY(0,0)), + MKRAIL(0x1,TILE_XY(0,1)), + MKRAIL(0x1,TILE_XY(1,0)), + MKRAIL(0x41,TILE_XY(1,1)), + MKRAIL(0x60,TILE_XY(2,0)), + MKRAIL(0x11,TILE_XY(2,1)), + MKCLRRAIL(2,TILE_XY(3,1)), + MKCLRRAIL(0,TILE_XY(-4,0)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_16 = { + MKHDR(1,3,1,0,1) + MKSTATION(0x17,TILE_XY(0,-2)), + MKRAIL(0x1A,TILE_XY(0,1)), + MKCLRRAIL(1,TILE_XY(0,2)), + MKDEPOT(0,TILE_XY(1,1)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_17 = { + MKHDR(1,3,1,0,3) + MKCLRRAIL(3,TILE_XY(0,-2)), + MKRAIL(0x26,TILE_XY(0,-1)), + MKDEPOT(2,TILE_XY(-1,-1)), + MKSTATION(0x17,TILE_XY(0,0)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_18 = { + MKHDR(1,3,1,0,0) + MKCLRRAIL(0,TILE_XY(-2,0)), + MKRAIL(0x29,TILE_XY(-1,0)), + MKDEPOT(3,TILE_XY(-1,1)), + MKSTATION(0x16,TILE_XY(0,0)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_19 = { + MKHDR(1,3,1,0,2) + MKSTATION(0x16,TILE_XY(-2,0)), + MKDEPOT(2,TILE_XY(0,-1)), + MKRAIL(0x20,TILE_XY(1,-1)), + MKRAIL(0x15,TILE_XY(1,0)), + MKCLRRAIL(2,TILE_XY(2,0)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_20 = { + MKHDR(2,3,1,0,1) + MKSTATION(0x26,TILE_XY(-2,0)), + MKRAIL(0xC1,TILE_XY(1,0)), + MKRAIL(0xC1,TILE_XY(1,1)), + MKRAIL(0x26,TILE_XY(2,0)), + MKRAIL(0x26,TILE_XY(2,1)), + MKDEPOT(1,TILE_XY(2,-1)), + MKCLRRAIL(1,TILE_XY(2,2)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_21 = { + MKHDR(2,3,1,0,3) + MKDEPOT(2,TILE_XY(-3,-1)), + MKRAIL(0x3F,TILE_XY(-2,-1)), + MKRAIL(0x10,TILE_XY(-2,0)), + MKRAIL(0xC1,TILE_XY(-1,-1)), + MKRAIL(0xC1,TILE_XY(-1,0)), + MKSTATION(0x26,TILE_XY(0,-1)), + MKCLRRAIL(3,TILE_XY(-2,-2)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_22 = { + MKHDR(2,3,1,0,0) + MKSTATION(0x27,TILE_XY(0,-2)), + MKRAIL(0xC2,TILE_XY(0,1)), + MKRAIL(0xC2,TILE_XY(1,1)), + MKRAIL(0x15,TILE_XY(0,2)), + MKRAIL(0x4,TILE_XY(1,2)), + MKRAIL(0x15,TILE_XY(-1,2)), + MKDEPOT(1,TILE_XY(-1,1)), + MKCLRRAIL(0,TILE_XY(-2,2)), + MKEND +}; + +static const AiDefaultRailBlock _raildata_ai_23 = { + MKHDR(2,3,1,0,2) + MKDEPOT(1,TILE_XY(0,-3)), + MKRAIL(0x1A,TILE_XY(0,-2)), + MKRAIL(0x29,TILE_XY(1,-2)), + MKRAIL(0xC2,TILE_XY(0,-1)), + MKRAIL(0xC2,TILE_XY(1,-1)), + MKSTATION(0x27,TILE_XY(0,0)), + MKCLRRAIL(2,TILE_XY(2,-2)), + MKEND +}; + + + +static const AiDefaultRailBlock * const _default_rail_track_data[] = { + &_raildata_ai_0, + &_raildata_ai_1, + &_raildata_ai_2, + &_raildata_ai_3, + &_raildata_ai_4, + &_raildata_ai_5, + &_raildata_ai_6, + &_raildata_ai_7, + &_raildata_ai_8, + &_raildata_ai_9, + &_raildata_ai_10, + &_raildata_ai_11, + &_raildata_ai_12, + &_raildata_ai_13, + &_raildata_ai_14, + &_raildata_ai_15, + &_raildata_ai_16, + &_raildata_ai_17, + &_raildata_ai_18, + &_raildata_ai_19, + &_raildata_ai_20, + &_raildata_ai_21, + &_raildata_ai_22, + &_raildata_ai_23, + NULL +}; + +#undef MKHDR + +#define MKHDR(a) a,{ + +static const AiDefaultRoadBlock _roaddata_ai_0 = { + MKHDR(0) + MKDEPOT(2,TILE_XY(-1,1)), + MKSTATION(0x2,TILE_XY(-1,0)), + MKRAIL(0xC,TILE_XY(0,0)), + MKRAIL(0x9,TILE_XY(0,1)), + MKCLRRAIL(0,TILE_XY(0,-1)), + MKCLRRAIL(0,TILE_XY(1,0)), + MKCLRRAIL(0,TILE_XY(1,1)), + MKCLRRAIL(0,TILE_XY(0,2)), + MKEND +}; + +static const AiDefaultRoadBlock _roaddata_ai_1 = { + MKHDR(0) + MKDEPOT(1,TILE_XY(0,-1)), + MKSTATION(0x1,TILE_XY(1,-1)), + MKRAIL(0x3,TILE_XY(0,0)), + MKRAIL(0x9,TILE_XY(1,0)), + MKCLRRAIL(0,TILE_XY(-1,0)), + MKCLRRAIL(0,TILE_XY(0,1)), + MKCLRRAIL(0,TILE_XY(1,1)), + MKCLRRAIL(0,TILE_XY(2,0)), + MKEND +}; + +static const AiDefaultRoadBlock _roaddata_ai_2 = { + MKHDR(0) + MKDEPOT(3,TILE_XY(1,1)), + MKSTATION(0x3,TILE_XY(0,1)), + MKRAIL(0x6,TILE_XY(0,0)), + MKRAIL(0xC,TILE_XY(1,0)), + MKCLRRAIL(0,TILE_XY(-1,0)), + MKCLRRAIL(0,TILE_XY(0,-1)), + MKCLRRAIL(0,TILE_XY(1,-1)), + MKCLRRAIL(0,TILE_XY(2,0)), + MKEND +}; + +static const AiDefaultRoadBlock _roaddata_ai_3 = { + MKHDR(0) + MKDEPOT(0,TILE_XY(1,0)), + MKSTATION(0x0,TILE_XY(1,1)), + MKRAIL(0x6,TILE_XY(0,0)), + MKRAIL(0x3,TILE_XY(0,1)), + MKCLRRAIL(0,TILE_XY(0,-1)), + MKCLRRAIL(0,TILE_XY(-1,0)), + MKCLRRAIL(0,TILE_XY(-1,1)), + MKCLRRAIL(0,TILE_XY(0,2)), + MKEND +}; + +static const AiDefaultRoadBlock _roaddata_ai_4 = { + MKHDR(1) + MKSTATION(0x2,TILE_XY(-1,0)), + MKRAIL(0x8,TILE_XY(0,0)), + MKCLRRAIL(0,TILE_XY(0,-1)), + MKCLRRAIL(0,TILE_XY(1,0)), + MKCLRRAIL(0,TILE_XY(0,1)), + MKEND +}; + +static const AiDefaultRoadBlock _roaddata_ai_5 = { + MKHDR(1) + MKSTATION(0x3,TILE_XY(0,1)), + MKRAIL(0x4,TILE_XY(0,0)), + MKCLRRAIL(0,TILE_XY(-1,0)), + MKCLRRAIL(0,TILE_XY(0,-1)), + MKCLRRAIL(0,TILE_XY(1,0)), + MKEND +}; + +static const AiDefaultRoadBlock _roaddata_ai_6 = { + MKHDR(1) + MKSTATION(0x0,TILE_XY(1,1)), + MKRAIL(0x2,TILE_XY(0,1)), + MKCLRRAIL(0,TILE_XY(0,0)), + MKCLRRAIL(0,TILE_XY(-1,0)), + MKCLRRAIL(0,TILE_XY(0,2)), + MKEND +}; + +static const AiDefaultRoadBlock _roaddata_ai_7 = { + MKHDR(1) + MKSTATION(0x1,TILE_XY(1,-1)), + MKRAIL(0x1,TILE_XY(1,0)), + MKCLRRAIL(0,TILE_XY(0,0)), + MKCLRRAIL(0,TILE_XY(1,1)), + MKCLRRAIL(0,TILE_XY(2,0)), + MKEND +}; + + +static const AiDefaultRoadBlock * const _road_default_block_data[] = { + &_roaddata_ai_0, + &_roaddata_ai_1, + &_roaddata_ai_2, + &_roaddata_ai_3, + &_roaddata_ai_4, + &_roaddata_ai_5, + &_roaddata_ai_6, + &_roaddata_ai_7, + NULL +}; + +#define MKAIR(a,b) {0,a,b} + +static const AiDefaultBlockData _airportdata_ai_0[] = { + MKAIR(1, 0), + {1}, +}; + +static const AiDefaultBlockData _airportdata_ai_1[] = { + MKAIR(0, 0), + {1} +}; + +static const AiDefaultBlockData * const _airport_default_block_data[] = { + _airportdata_ai_0, // city airport + _airportdata_ai_1, // country airport + NULL +}; + + diff --git a/table/animcursors.h b/table/animcursors.h new file mode 100644 index 000000000..e43dfc1c8 --- /dev/null +++ b/table/animcursors.h @@ -0,0 +1,45 @@ +#define ANIM_CURSOR_LINE(a,b) a,b, +#define ANIM_CURSOR_END() 0xFFFF + +static const uint16 _demolish_animcursor[] = { + ANIM_CURSOR_LINE(0x2C0, 29) + ANIM_CURSOR_LINE(0x2C1, 29) + ANIM_CURSOR_LINE(0x2C2, 29) + ANIM_CURSOR_LINE(0x2C3, 29) + ANIM_CURSOR_END() +}; + +static const uint16 _lower_land_animcursor[] = { + ANIM_CURSOR_LINE(0x2BB, 29) + ANIM_CURSOR_LINE(0x2BC, 29) + ANIM_CURSOR_LINE(0x2BD, 98) + ANIM_CURSOR_END() +}; + +static const uint16 _raise_land_animcursor[] = { + ANIM_CURSOR_LINE(0x2B8, 29) + ANIM_CURSOR_LINE(0x2B9, 29) + ANIM_CURSOR_LINE(0x2BA, 98) + ANIM_CURSOR_END() +}; + +static const uint16 _pick_station_animcursor[] = { + ANIM_CURSOR_LINE(0x2CC, 29) + ANIM_CURSOR_LINE(0x2CD, 29) + ANIM_CURSOR_LINE(0x2CE, 98) + ANIM_CURSOR_END() +}; + +static const uint16 _build_signals_animcursor[] = { + ANIM_CURSOR_LINE(0x50C, 148) + ANIM_CURSOR_LINE(0x50D, 148) + ANIM_CURSOR_END() +}; + +static const uint16 * const _animcursors[] = { + _demolish_animcursor, + _lower_land_animcursor, + _raise_land_animcursor, + _pick_station_animcursor, + _build_signals_animcursor +}; diff --git a/table/build_industry.h b/table/build_industry.h new file mode 100644 index 000000000..88b02e822 --- /dev/null +++ b/table/build_industry.h @@ -0,0 +1,1258 @@ +#define MK(x,y, m) {TILE_XY(x,y), m} + +#define MKEND {-0x8000, 0} + +static const IndustryTileTable _tile_table_coal_mine_0[] = { + MK(1,1, 0), + MK(1,2, 2), + MK(0,0, 5), + MK(1,0, 6), + MK(2,0, 3), + MK(2,2, 3), + MKEND +}; + +static const IndustryTileTable _tile_table_coal_mine_1[] = { + MK(1,1, 0), + MK(1,2, 2), + MK(2,0, 0), + MK(2,1, 2), + MK(1,0, 3), + MK(0,0, 3), + MK(0,1, 4), + MK(0,2, 4), + MK(2,2, 4), + MKEND +}; + +static const IndustryTileTable _tile_table_coal_mine_2[] = { + MK(0,0, 0), + MK(0,1, 2), + MK(0,2, 5), + MK(1,0, 3), + MK(1,1, 3), + MK(1,2, 6), + MKEND +}; + +static const IndustryTileTable _tile_table_coal_mine_3[] = { + MK(0,1, 0), + MK(0,2, 2), + MK(0,3, 4), + MK(1,0, 5), + MK(1,1, 0), + MK(1,2, 2), + MK(1,3, 3), + MK(2,0, 6), + MK(2,1, 4), + MK(2,2, 3), + MKEND +}; + +static const IndustryTileTable * const _tile_table_coal_mine[] = { + _tile_table_coal_mine_0, + _tile_table_coal_mine_1, + _tile_table_coal_mine_2, + _tile_table_coal_mine_3, +}; + +static const IndustryTileTable _tile_table_power_station_0[] = { + MK(0,0, 7), + MK(0,1, 9), + MK(1,0, 7), + MK(1,1, 8), + MK(2,0, 7), + MK(2,1, 8), + MK(3,0, 10), + MK(3,1, 10), + MKEND +}; + +static const IndustryTileTable _tile_table_power_station_1[] = { + MK(0,1, 7), + MK(0,2, 7), + MK(1,0, 8), + MK(1,1, 8), + MK(1,2, 7), + MK(2,0, 9), + MK(2,1, 10), + MK(2,2, 9), + MKEND +}; + +static const IndustryTileTable _tile_table_power_station_2[] = { + MK(0,0, 7), + MK(0,1, 7), + MK(1,0, 9), + MK(1,1, 8), + MK(2,0, 10), + MK(2,1, 9), + MKEND +}; + +static const IndustryTileTable * const _tile_table_power_station[] = { + _tile_table_power_station_0, + _tile_table_power_station_1, + _tile_table_power_station_2, +}; + +static const IndustryTileTable _tile_table_sawmill_0[] = { + MK(1,0, 14), + MK(1,1, 12), + MK(1,2, 11), + MK(2,0, 14), + MK(2,1, 13), + MK(0,0, 15), + MK(0,1, 15), + MK(0,2, 12), + MKEND +}; + +static const IndustryTileTable _tile_table_sawmill_1[] = { + MK(0,0, 15), + MK(0,1, 11), + MK(0,2, 14), + MK(1,0, 15), + MK(1,1, 13), + MK(1,2, 12), + MK(2,0, 11), + MK(2,1, 13), + MKEND +}; + +static const IndustryTileTable * const _tile_table_sawmill[] = { + _tile_table_sawmill_0, + _tile_table_sawmill_1, +}; + +static const IndustryTileTable _tile_table_forest_0[] = { + MK(0,0, 16), + MK(0,1, 16), + MK(0,2, 16), + MK(0,3, 16), + MK(1,0, 16), + MK(1,1, 16), + MK(1,2, 16), + MK(1,3, 16), + MK(2,0, 16), + MK(2,1, 16), + MK(2,2, 16), + MK(2,3, 16), + MK(3,0, 16), + MK(3,1, 16), + MK(3,2, 16), + MK(3,3, 16), + MK(1,4, 16), + MK(2,4, 16), + MKEND +}; + +static const IndustryTileTable _tile_table_forest_1[] = { + MK(0,0, 16), + MK(1,0, 16), + MK(2,0, 16), + MK(3,0, 16), + MK(4,0, 16), + MK(0,1, 16), + MK(1,1, 16), + MK(2,1, 16), + MK(3,1, 16), + MK(4,1, 16), + MK(0,2, 16), + MK(1,2, 16), + MK(2,2, 16), + MK(3,2, 16), + MK(4,2, 16), + MK(0,3, 16), + MK(1,3, 16), + MK(2,3, 16), + MK(3,3, 16), + MK(4,3, 16), + MK(1,4, 16), + MK(2,4, 16), + MK(3,4, 16), + MKEND +}; + +static const IndustryTileTable * const _tile_table_forest[] = { + _tile_table_forest_0, + _tile_table_forest_1, +}; + +static const IndustryTileTable _tile_table_oil_refinery_0[] = { + MK(0,0, 20), + MK(0,1, 21), + MK(0,2, 22), + MK(0,3, 21), + MK(1,0, 20), + MK(1,1, 19), + MK(1,2, 22), + MK(1,3, 20), + MK(2,1, 18), + MK(2,2, 18), + MK(2,3, 18), + MK(3,2, 18), + MK(3,3, 18), + MK(2,0, 23), + MK(3,1, 23), + MKEND +}; + +static const IndustryTileTable _tile_table_oil_refinery_1[] = { + MK(0,0, 18), + MK(0,1, 18), + MK(0,2, 21), + MK(0,3, 22), + MK(0,4, 20), + MK(1,0, 18), + MK(1,1, 18), + MK(1,2, 19), + MK(1,3, 20), + MK(2,0, 18), + MK(2,1, 18), + MK(2,2, 19), + MK(2,3, 22), + MK(1,4, 23), + MK(2,4, 23), + MKEND +}; + +static const IndustryTileTable * const _tile_table_oil_refinery[] = { + _tile_table_oil_refinery_0, + _tile_table_oil_refinery_1, +}; + +static const IndustryTileTable _tile_table_oil_rig_0[] = { + MK(0,0, 24), + MK(0,1, 24), + MK(0,2, 25), + MK(1,0, 26), + MK(1,1, 27), + MK(1,2, 28), + MK(-4,-5, 255), + MK(-4,-4, 255), + MK(-4,-3, 255), + MK(-4,-2, 255), + MK(-4,-1, 255), + MK(-4,0, 255), + MK(-4,1, 255), + MK(-4,2, 255), + MK(-4,3, 255), + MK(-4,4, 255), + MK(-4,5, 255), + MK(-3,5, 255), + MK(-2,5, 255), + MK(-1,5, 255), + MK(0,6, 255), + MK(1,6, 255), + MK(2,6, 255), + MK(3,6, 255), + MK(4,6, 255), + MK(5,6, 255), + MK(5,5, 255), + MK(5,4, 255), + MK(5,3, 255), + MK(5,2, 255), + MK(5,1, 255), + MK(5,0, 255), + MK(5,-1, 255), + MK(5,-2, 255), + MK(5,-3, 255), + MK(5,-4, 255), + MK(4,-4, 255), + MK(3,-4, 255), + MK(2,-4, 255), + MK(1,-4, 255), + MK(0,-4, 255), + MK(-1,-5, 255), + MK(-2,-5, 255), + MK(-3,-5, 255), + MK(2,0, 255), + MKEND +}; + +static const IndustryTileTable * const _tile_table_oil_rig[] = { + _tile_table_oil_rig_0, +}; + +static const IndustryTileTable _tile_table_factory_0[] = { + MK(0,0, 39), + MK(0,1, 40), + MK(1,0, 41), + MK(1,1, 42), + MK(0,2, 39), + MK(0,3, 40), + MK(1,2, 41), + MK(1,3, 42), + MK(2,1, 39), + MK(2,2, 40), + MK(3,1, 41), + MK(3,2, 42), + MKEND +}; + +static const IndustryTileTable _tile_table_factory_1[] = { + MK(0,0, 39), + MK(0,1, 40), + MK(1,0, 41), + MK(1,1, 42), + MK(2,0, 39), + MK(2,1, 40), + MK(3,0, 41), + MK(3,1, 42), + MK(1,2, 39), + MK(1,3, 40), + MK(2,2, 41), + MK(2,3, 42), + MKEND +}; + +static const IndustryTileTable * const _tile_table_factory[] = { + _tile_table_factory_0, + _tile_table_factory_1, +}; + +static const IndustryTileTable _tile_table_printing_works_0[] = { + MK(0,0, 43), + MK(0,1, 44), + MK(1,0, 45), + MK(1,1, 46), + MK(0,2, 43), + MK(0,3, 44), + MK(1,2, 45), + MK(1,3, 46), + MK(2,1, 43), + MK(2,2, 44), + MK(3,1, 45), + MK(3,2, 46), + MKEND +}; + +static const IndustryTileTable _tile_table_printing_works_1[] = { + MK(0,0, 43), + MK(0,1, 44), + MK(1,0, 45), + MK(1,1, 46), + MK(2,0, 43), + MK(2,1, 44), + MK(3,0, 45), + MK(3,1, 46), + MK(1,2, 43), + MK(1,3, 44), + MK(2,2, 45), + MK(2,3, 46), + MKEND +}; + +static const IndustryTileTable * const _tile_table_printing_works[] = { + _tile_table_printing_works_0, + _tile_table_printing_works_1, +}; + +static const IndustryTileTable _tile_table_steel_mill_0[] = { + MK(2,1, 52), + MK(2,2, 53), + MK(3,1, 54), + MK(3,2, 55), + MK(0,0, 56), + MK(1,0, 57), + MK(0,1, 56), + MK(1,1, 57), + MK(0,2, 56), + MK(1,2, 57), + MK(2,0, 56), + MK(3,0, 57), + MKEND +}; + +static const IndustryTileTable _tile_table_steel_mill_1[] = { + MK(0,0, 52), + MK(0,1, 53), + MK(1,0, 54), + MK(1,1, 55), + MK(2,0, 52), + MK(2,1, 53), + MK(3,0, 54), + MK(3,1, 55), + MK(0,2, 56), + MK(1,2, 57), + MK(2,2, 56), + MK(3,2, 57), + MK(1,3, 56), + MK(2,3, 57), + MKEND +}; + +static const IndustryTileTable * const _tile_table_steel_mill[] = { + _tile_table_steel_mill_0, + _tile_table_steel_mill_1, +}; + +static const IndustryTileTable _tile_table_farm_0[] = { + MK(1,0, 33), + MK(1,1, 34), + MK(1,2, 36), + MK(0,0, 37), + MK(0,1, 37), + MK(0,2, 36), + MK(2,0, 35), + MK(2,1, 38), + MK(2,2, 38), + MKEND +}; + +static const IndustryTileTable _tile_table_farm_1[] = { + MK(1,1, 33), + MK(1,2, 34), + MK(0,0, 35), + MK(0,1, 36), + MK(0,2, 36), + MK(0,3, 35), + MK(1,0, 37), + MK(1,3, 38), + MK(2,0, 37), + MK(2,1, 37), + MK(2,2, 38), + MK(2,3, 38), + MKEND +}; + +static const IndustryTileTable _tile_table_farm_2[] = { + MK(2,0, 33), + MK(2,1, 34), + MK(0,0, 36), + MK(0,1, 36), + MK(0,2, 37), + MK(0,3, 37), + MK(1,0, 35), + MK(1,1, 38), + MK(1,2, 38), + MK(1,3, 37), + MK(2,2, 37), + MK(2,3, 35), + MKEND +}; + +static const IndustryTileTable * const _tile_table_farm[] = { + _tile_table_farm_0, + _tile_table_farm_1, + _tile_table_farm_2, +}; + +static const IndustryTileTable _tile_table_copper_mine_0[] = { + MK(0,0, 47), + MK(0,1, 49), + MK(0,2, 51), + MK(1,0, 47), + MK(1,1, 49), + MK(1,2, 50), + MK(2,0, 51), + MK(2,1, 51), + MKEND +}; + +static const IndustryTileTable _tile_table_copper_mine_1[] = { + MK(0,0, 50), + MK(0,1, 47), + MK(0,2, 49), + MK(1,0, 47), + MK(1,1, 49), + MK(1,2, 51), + MK(2,0, 51), + MK(2,1, 47), + MK(2,2, 49), + MKEND +}; + +static const IndustryTileTable * const _tile_table_copper_mine[] = { + _tile_table_copper_mine_0, + _tile_table_copper_mine_1, +}; + +static const IndustryTileTable _tile_table_oil_well_0[] = { + MK(0,0, 29), + MK(1,0, 29), + MK(2,0, 29), + MK(0,1, 29), + MK(0,2, 29), + MKEND +}; + +static const IndustryTileTable _tile_table_oil_well_1[] = { + MK(0,0, 29), + MK(1,0, 29), + MK(1,1, 29), + MK(2,2, 29), + MK(2,3, 29), + MKEND +}; + +static const IndustryTileTable * const _tile_table_oil_well[] = { + _tile_table_oil_well_0, + _tile_table_oil_well_1, +}; + +static const IndustryTileTable _tile_table_bank_0[] = { + MK(0,0, 58), + MK(1,0, 59), + MKEND +}; + +static const IndustryTileTable * const _tile_table_bank[] = { + _tile_table_bank_0, +}; + +static const IndustryTileTable _tile_table_food_process_0[] = { + MK(0,0, 60), + MK(1,0, 60), + MK(2,0, 60), + MK(0,1, 60), + MK(1,1, 60), + MK(2,1, 60), + MK(0,2, 61), + MK(1,2, 61), + MK(2,2, 63), + MK(0,3, 62), + MK(1,3, 62), + MK(2,3, 63), + MKEND +}; + +static const IndustryTileTable _tile_table_food_process_1[] = { + MK(0,0, 61), + MK(1,0, 60), + MK(2,0, 61), + MK(3,0, 61), + MK(0,1, 62), + MK(1,1, 63), + MK(2,1, 63), + MK(3,1, 63), + MK(0,2, 60), + MK(1,2, 60), + MK(2,2, 60), + MK(3,2, 60), + MK(0,3, 62), + MK(1,3, 62), + MKEND +}; + +static const IndustryTileTable * const _tile_table_food_process[] = { + _tile_table_food_process_0, + _tile_table_food_process_1, +}; + +static const IndustryTileTable _tile_table_paper_mill_0[] = { + MK(0,0, 64), + MK(1,0, 65), + MK(2,0, 66), + MK(3,0, 67), + MK(0,1, 68), + MK(1,1, 69), + MK(2,1, 67), + MK(3,1, 67), + MK(0,2, 66), + MK(1,2, 71), + MK(2,2, 71), + MK(3,2, 70), + MKEND +}; + +static const IndustryTileTable * const _tile_table_paper_mill[] = { + _tile_table_paper_mill_0, +}; + +static const IndustryTileTable _tile_table_gold_mine_0[] = { + MK(0,0, 72), + MK(0,1, 73), + MK(0,2, 74), + MK(0,3, 75), + MK(1,0, 76), + MK(1,1, 77), + MK(1,2, 78), + MK(1,3, 79), + MK(2,0, 80), + MK(2,1, 81), + MK(2,2, 82), + MK(2,3, 83), + MK(3,0, 84), + MK(3,1, 85), + MK(3,2, 86), + MK(3,3, 87), + MKEND +}; + +static const IndustryTileTable * const _tile_table_gold_mine[] = { + _tile_table_gold_mine_0, +}; + +static const IndustryTileTable _tile_table_bank2_0[] = { + MK(0,0, 89), + MK(1,0, 90), + MKEND +}; + +static const IndustryTileTable * const _tile_table_bank2[] = { + _tile_table_bank2_0, +}; + +static const IndustryTileTable _tile_table_diamond_mine_0[] = { + MK(0,0, 91), + MK(0,1, 92), + MK(0,2, 93), + MK(1,0, 94), + MK(1,1, 95), + MK(1,2, 96), + MK(2,0, 97), + MK(2,1, 98), + MK(2,2, 99), + MKEND +}; + +static const IndustryTileTable * const _tile_table_diamond_mine[] = { + _tile_table_diamond_mine_0, +}; + +static const IndustryTileTable _tile_table_iron_mine_0[] = { + MK(0,0, 100), + MK(0,1, 101), + MK(0,2, 102), + MK(0,3, 103), + MK(1,0, 104), + MK(1,1, 105), + MK(1,2, 106), + MK(1,3, 107), + MK(2,0, 108), + MK(2,1, 109), + MK(2,2, 110), + MK(2,3, 111), + MK(3,0, 112), + MK(3,1, 113), + MK(3,2, 114), + MK(3,3, 115), + MKEND +}; + +static const IndustryTileTable * const _tile_table_iron_mine[] = { + _tile_table_iron_mine_0, +}; + +static const IndustryTileTable _tile_table_fruit_plantation_0[] = { + MK(0,0, 116), + MK(0,1, 116), + MK(0,2, 116), + MK(0,3, 116), + MK(1,0, 116), + MK(1,1, 116), + MK(1,2, 116), + MK(1,3, 116), + MK(2,0, 116), + MK(2,1, 116), + MK(2,2, 116), + MK(2,3, 116), + MK(3,0, 116), + MK(3,1, 116), + MK(3,2, 116), + MK(3,3, 116), + MK(4,0, 116), + MK(4,1, 116), + MK(4,2, 116), + MK(4,3, 116), + MKEND +}; + +static const IndustryTileTable * const _tile_table_fruit_plantation[] = { + _tile_table_fruit_plantation_0, +}; + +static const IndustryTileTable _tile_table_rubber_plantation_0[] = { + MK(0,0, 117), + MK(0,1, 117), + MK(0,2, 117), + MK(0,3, 117), + MK(1,0, 117), + MK(1,1, 117), + MK(1,2, 117), + MK(1,3, 117), + MK(2,0, 117), + MK(2,1, 117), + MK(2,2, 117), + MK(2,3, 117), + MK(3,0, 117), + MK(3,1, 117), + MK(3,2, 117), + MK(3,3, 117), + MK(4,0, 117), + MK(4,1, 117), + MK(4,2, 117), + MK(4,3, 117), + MKEND +}; + +static const IndustryTileTable * const _tile_table_rubber_plantation[] = { + _tile_table_rubber_plantation_0, +}; + +static const IndustryTileTable _tile_table_water_supply_0[] = { + MK(0,0, 118), + MK(0,1, 119), + MK(1,0, 118), + MK(1,1, 119), + MKEND +}; + +static const IndustryTileTable * const _tile_table_water_supply[] = { + _tile_table_water_supply_0, +}; + +static const IndustryTileTable _tile_table_water_tower_0[] = { + MK(0,0, 120), + MKEND +}; + +static const IndustryTileTable * const _tile_table_water_tower[] = { + _tile_table_water_tower_0, +}; + +static const IndustryTileTable _tile_table_factory2_0[] = { + MK(0,0, 121), + MK(0,1, 122), + MK(1,0, 123), + MK(1,1, 124), + MK(0,2, 121), + MK(0,3, 122), + MK(1,2, 123), + MK(1,3, 124), + MKEND +}; + +static const IndustryTileTable _tile_table_factory2_1[] = { + MK(0,0, 121), + MK(0,1, 122), + MK(1,0, 123), + MK(1,1, 124), + MK(2,0, 121), + MK(2,1, 122), + MK(3,0, 123), + MK(3,1, 124), + MKEND +}; + +static const IndustryTileTable * const _tile_table_factory2[] = { + _tile_table_factory2_0, + _tile_table_factory2_1, +}; + +static const IndustryTileTable _tile_table_farm2_0[] = { + MK(1,0, 33), + MK(1,1, 34), + MK(1,2, 36), + MK(0,0, 37), + MK(0,1, 37), + MK(0,2, 36), + MK(2,0, 35), + MK(2,1, 38), + MK(2,2, 38), + MKEND +}; + +static const IndustryTileTable _tile_table_farm2_1[] = { + MK(1,1, 33), + MK(1,2, 34), + MK(0,0, 35), + MK(0,1, 36), + MK(0,2, 36), + MK(0,3, 35), + MK(1,0, 37), + MK(1,3, 38), + MK(2,0, 37), + MK(2,1, 37), + MK(2,2, 38), + MK(2,3, 38), + MKEND +}; + +static const IndustryTileTable _tile_table_farm2_2[] = { + MK(2,0, 33), + MK(2,1, 34), + MK(0,0, 36), + MK(0,1, 36), + MK(0,2, 37), + MK(0,3, 37), + MK(1,0, 35), + MK(1,1, 38), + MK(1,2, 38), + MK(1,3, 37), + MK(2,2, 37), + MK(2,3, 35), + MKEND +}; + +static const IndustryTileTable * const _tile_table_farm2[] = { + _tile_table_farm2_0, + _tile_table_farm2_1, + _tile_table_farm2_2, +}; + +static const IndustryTileTable _tile_table_lumber_mill_0[] = { + MK(0,0, 125), + MK(0,1, 126), + MK(1,0, 127), + MK(1,1, 128), + MKEND +}; + +static const IndustryTileTable * const _tile_table_lumber_mill[] = { + _tile_table_lumber_mill_0, +}; + +static const IndustryTileTable _tile_table_cotton_candy_0[] = { + MK(0,0, 129), + MK(0,1, 129), + MK(0,2, 129), + MK(0,3, 129), + MK(1,0, 129), + MK(1,1, 129), + MK(1,2, 129), + MK(1,3, 129), + MK(2,0, 129), + MK(2,1, 129), + MK(2,2, 129), + MK(2,3, 129), + MK(3,0, 129), + MK(3,1, 129), + MK(3,2, 129), + MK(3,3, 129), + MK(1,4, 129), + MK(2,4, 129), + MKEND +}; + +static const IndustryTileTable _tile_table_cotton_candy_1[] = { + MK(0,0, 129), + MK(1,0, 129), + MK(2,0, 129), + MK(3,0, 129), + MK(4,0, 129), + MK(0,1, 129), + MK(1,1, 129), + MK(2,1, 129), + MK(3,1, 129), + MK(4,1, 129), + MK(0,2, 129), + MK(1,2, 129), + MK(2,2, 129), + MK(3,2, 129), + MK(4,2, 129), + MK(0,3, 129), + MK(1,3, 129), + MK(2,3, 129), + MK(3,3, 129), + MK(4,3, 129), + MK(1,4, 129), + MK(2,4, 129), + MK(3,4, 129), + MKEND +}; + +static const IndustryTileTable * const _tile_table_cotton_candy[] = { + _tile_table_cotton_candy_0, + _tile_table_cotton_candy_1, +}; + +static const IndustryTileTable _tile_table_candy_factory_0[] = { + MK(0,0, 131), + MK(0,1, 132), + MK(1,0, 133), + MK(1,1, 134), + MK(0,2, 131), + MK(0,3, 132), + MK(1,2, 133), + MK(1,3, 134), + MK(2,1, 131), + MK(2,2, 132), + MK(3,1, 133), + MK(3,2, 134), + MKEND +}; + +static const IndustryTileTable _tile_table_candy_factory_1[] = { + MK(0,0, 131), + MK(0,1, 132), + MK(1,0, 133), + MK(1,1, 134), + MK(2,0, 131), + MK(2,1, 132), + MK(3,0, 133), + MK(3,1, 134), + MK(1,2, 131), + MK(1,3, 132), + MK(2,2, 133), + MK(2,3, 134), + MKEND +}; + +static const IndustryTileTable * const _tile_table_candy_factory[] = { + _tile_table_candy_factory_0, + _tile_table_candy_factory_1, +}; + +static const IndustryTileTable _tile_table_battery_farm_0[] = { + MK(0,0, 135), + MK(0,1, 135), + MK(0,2, 135), + MK(0,3, 135), + MK(1,0, 135), + MK(1,1, 135), + MK(1,2, 135), + MK(1,3, 135), + MK(2,0, 135), + MK(2,1, 135), + MK(2,2, 135), + MK(2,3, 135), + MK(3,0, 135), + MK(3,1, 135), + MK(3,2, 135), + MK(3,3, 135), + MK(4,0, 135), + MK(4,1, 135), + MK(4,2, 135), + MK(4,3, 135), + MKEND +}; + +static const IndustryTileTable * const _tile_table_battery_farm[] = { + _tile_table_battery_farm_0, +}; + +static const IndustryTileTable _tile_table_cola_wells_0[] = { + MK(0,0, 137), + MK(0,1, 137), + MK(0,2, 137), + MK(1,0, 137), + MK(1,1, 137), + MK(1,2, 137), + MK(2,1, 137), + MK(2,2, 137), + MKEND +}; + +static const IndustryTileTable _tile_table_cola_wells_1[] = { + MK(0,1, 137), + MK(0,2, 137), + MK(0,3, 137), + MK(1,0, 137), + MK(1,1, 137), + MK(1,2, 137), + MK(2,1, 137), + MKEND +}; + +static const IndustryTileTable * const _tile_table_cola_wells[] = { + _tile_table_cola_wells_0, + _tile_table_cola_wells_1, +}; + +static const IndustryTileTable _tile_table_toy_shop_0[] = { + MK(0,0, 138), + MK(0,1, 139), + MK(1,0, 140), + MK(1,1, 141), + MKEND +}; + +static const IndustryTileTable * const _tile_table_toy_shop[] = { + _tile_table_toy_shop_0, +}; + +static const IndustryTileTable _tile_table_toy_factory_0[] = { + MK(0,0, 147), + MK(0,1, 142), + MK(1,0, 147), + MK(1,1, 143), + MK(2,0, 147), + MK(2,1, 144), + MK(3,0, 146), + MK(3,1, 145), + MKEND +}; + +static const IndustryTileTable * const _tile_table_toy_factory[] = { + _tile_table_toy_factory_0, +}; + +static const IndustryTileTable _tile_table_plastic_fountain_0[] = { + MK(0,0, 148), + MK(0,1, 151), + MK(0,2, 154), + MKEND +}; + +static const IndustryTileTable _tile_table_plastic_fountain_1[] = { + MK(0,0, 148), + MK(1,0, 151), + MK(2,0, 154), + MKEND +}; + +static const IndustryTileTable * const _tile_table_plastic_fountain[] = { + _tile_table_plastic_fountain_0, + _tile_table_plastic_fountain_1, +}; + +static const IndustryTileTable _tile_table_fizzy_drink_0[] = { + MK(0,0, 156), + MK(0,1, 157), + MK(1,0, 158), + MK(1,1, 159), + MKEND +}; + +static const IndustryTileTable * const _tile_table_fizzy_drink[] = { + _tile_table_fizzy_drink_0, +}; + +static const IndustryTileTable _tile_table_bubble_generator_0[] = { + MK(0,0, 163), + MK(0,1, 160), + MK(1,0, 163), + MK(1,1, 161), + MK(2,0, 163), + MK(2,1, 162), + MK(0,2, 163), + MK(0,3, 160), + MK(1,2, 163), + MK(1,3, 161), + MK(2,2, 163), + MK(2,3, 162), + MKEND +}; + +static const IndustryTileTable * const _tile_table_bubble_generator[] = { + _tile_table_bubble_generator_0, +}; + +static const IndustryTileTable _tile_table_toffee_quarry_0[] = { + MK(0,0, 164), + MK(1,0, 165), + MK(2,0, 166), + MKEND +}; + +static const IndustryTileTable * const _tile_table_toffee_quarry[] = { + _tile_table_toffee_quarry_0, +}; + +static const IndustryTileTable _tile_table_sugar_mine_0[] = { + MK(0,0, 167), + MK(0,1, 168), + MK(1,0, 169), + MK(1,1, 170), + MK(2,0, 171), + MK(2,1, 172), + MK(3,0, 173), + MK(3,1, 174), + MKEND +}; + +static const IndustryTileTable * const _tile_table_sugar_mine[] = { + _tile_table_sugar_mine_0, +}; + +#undef MK +#undef MKEND + +#define MK(tbl, a,b,c, p1,p2, r1,r2, a1,a2,a3, proc) {tbl,lengthof(tbl),a,b,c,{p1,p2},{r1,r2},{a1,a2,a3},proc} + +static const IndustrySpec _industry_spec[37] = { +/* name not close to produce prodrate accepts checkproc */ + MK(_tile_table_coal_mine, 1,255,255, 1,255, 15, 0, 255,255,255, 0), + MK(_tile_table_power_station, 0,255,255, 255,255, 0, 0, 1,255,255, 0), + MK(_tile_table_sawmill, 3,255,255, 5,255, 0, 0, 7,255,255, 0), + MK(_tile_table_forest, 2, 14,255, 7,255, 13, 0, 255,255,255, 1), + MK(_tile_table_oil_refinery, 5,255,255, 5,255, 0, 0, 3,255,255, 2), + MK(_tile_table_oil_rig, 4,255,255, 3, 0, 15, 2, 255,255,255, 2), + MK(_tile_table_factory, 9, 8,255, 5,255, 0, 0, 4, 6, 9, 0), + MK(_tile_table_printing_works, 14,255,255, 5,255, 0, 0, 9,255,255, 0), + MK(_tile_table_steel_mill, 18, 6,255, 9,255, 0, 0, 8,255,255, 0), + MK(_tile_table_farm, 6, 13,255, 6, 4, 10,10, 255,255,255, 3), + MK(_tile_table_copper_mine, 23,255,255, 8,255, 10, 0, 255,255,255, 0), + MK(_tile_table_oil_well, 4,255,255, 3,255, 12, 0, 255,255,255, 0), + MK(_tile_table_bank, 12,255,255, 10,255, 6, 0, 10,255,255, 0), + MK(_tile_table_food_process, 9, 19, 24, 11,255, 0, 0, 4, 6,255, 0), + MK(_tile_table_paper_mill, 3, 7,255, 9,255, 0, 0, 7,255,255, 0), + MK(_tile_table_gold_mine, 16,255,255, 10,255, 7, 0, 255,255,255, 0), + MK(_tile_table_bank2, 15, 17,255, 255,255, 0, 0, 10,255,255, 0), + MK(_tile_table_diamond_mine, 16,255,255, 10,255, 7, 0, 255,255,255, 0), + MK(_tile_table_iron_mine, 8,255,255, 8,255, 10, 0, 255,255,255, 0), + MK(_tile_table_fruit_plantation, 13,255,255, 4,255, 10, 0, 255,255,255, 4), + MK(_tile_table_rubber_plantation,23,255,255, 1,255, 10, 0, 255,255,255, 4), + MK(_tile_table_water_supply, 22,255,255, 9,255, 12, 0, 255,255,255, 5), + MK(_tile_table_water_tower, 21,255,255, 255,255, 0, 0, 9,255,255, 5), + MK(_tile_table_factory2, 10, 20, 25, 5,255, 0, 0, 1, 8, 7, 4), + MK(_tile_table_farm2, 13,255,255, 6,255, 11, 0, 255,255,255, 4), + MK(_tile_table_lumber_mill, 23,255,255, 7,255, 0, 0, 255,255,255, 6), + MK(_tile_table_cotton_candy, 27,255,255, 8,255, 13, 0, 255,255,255, 0), + MK(_tile_table_candy_factory, 26, 35, 36, 5,255, 0, 0, 1, 6, 8, 0), + MK(_tile_table_battery_farm, 31,255,255, 4,255, 11, 0, 255,255,255, 0), + MK(_tile_table_cola_wells, 33,255,255, 7,255, 12, 0, 255,255,255, 0), + MK(_tile_table_toy_shop, 31,255,255, 255,255, 0, 0, 3,255,255, 0), + MK(_tile_table_toy_factory, 30, 28, 32, 3,255, 0, 0, 10, 4,255, 0), + MK(_tile_table_plastic_fountain, 31,255,255, 10,255, 14, 0, 255,255,255, 0), + MK(_tile_table_fizzy_drink, 29, 34,255, 11,255, 0, 0, 7, 9,255, 0), + MK(_tile_table_bubble_generator, 33,255,255, 9,255, 13, 0, 255,255,255, 7), + MK(_tile_table_toffee_quarry, 27,255,255, 6,255, 10, 0, 255,255,255, 0), + MK(_tile_table_sugar_mine, 27,255,255, 1,255, 11, 0, 255,255,255, 0), +}; +#undef MK + +const byte _industry_type_costs[37] = { + 210, 30, 28, 200, 31, 240, 26, 26, 27, 250, 205, 220, 193, 26, + 28, 208, 19, 213, 220, 225, 218, 199, 14, 26, 250, 17, 195, 26, + 187, 193, 17, 20, 192, 22, 203, 213, 210 +}; + + +static const byte _industry_create_table_0[] = { + 4, 4, + 5, 3, + 5, 2, + 8, 0, + 5, 1, + 4, 11, + 5, 18, + 9, 9, + 5, 8, + 5, 6, + 0 +}; + +static const byte _industry_create_table_1[] = { + 4, 4, + 5, 3, + 5, 14, + 8, 0, + 5, 1, + 5, 11, + 5, 13, + 9, 9, + 4, 15, + 5, 7, + 6, 16, + 0 +}; + +static const byte _industry_create_table_2[] = { + 4, 4, + 5, 11, + 5, 16, + 4, 13, + 4, 17, + 4, 10, + 4, 19, + 4, 20, + 4, 21, + 8, 22, + 4, 13, + 4, 23, + 2, 24, + 0 +}; + +static const byte _industry_create_table_3[] = { + 5, 26, + 5, 27, + 4, 28, + 5, 29, + 4, 30, + 5, 31, + 5, 32, + 4, 33, + 5, 34, + 5, 35, + 4, 36, + 0 +}; + +static const byte * const _industry_create_table[4] = { + _industry_create_table_0, + _industry_create_table_1, + _industry_create_table_2, + _industry_create_table_3, +}; + + +static const int8 _industry_map5_accepts_1[] = { + -1, -1, -1, 0, -1, -1, -1, -1, + 0, -1, -1, 0, 0, 0, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 0, 0, -1, -1, -1, -1, 6, + 6, 6, 6, -1, -1, -1, -1, -1, + -1, -1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 6, 6, 6, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 8, 8, 8, 8, -1, -1, -1, + -1, -1, -1, 8, 8, 8, 8, -1, + -1, -1, -1, -1, -1, -1, 4, 4, + 4, 4, 4, 4, -1, -1, -1, -1, + -1, -1, -1, -1, 9, 9, 9, 9, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, +}; + + +static const int8 _industry_map5_accepts_2[] = { + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 9, + 9, 9, 9, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 7, 7, 7, 7, -1, -1, -1, + -1, -1, -1, 6, 6, 6, 6, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, +}; + +static const int8 _industry_map5_accepts_3[] = { + -1, -1, -1, -1, -1, -1, -1, -1, + 1, -1, -1, -1, -1, 7, -1, -1, + -1, -1, -1, -1, 3, -1, -1, -1, + 0, 2, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4, + 4, 4, 4, 9, 9, 9, 9, -1, + -1, -1, -1, -1, 8, 8, 8, 8, + 8, 8, 10, 10, 4, 4, 4, 4, + 7, 7, 7, 7, 7, 7, 7, 7, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 10, 10, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 9, 1, 1, 1, 1, -1, -1, -1, + -1, -1, -1, 1, 1, 1, 1, -1, + -1, -1, 3, 3, 3, 3, 10, 10, + 10, 10, 10, 10, -1, -1, -1, -1, + -1, -1, -1, -1, 7, 7, 7, 7, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, +}; diff --git a/table/clear_land.h b/table/clear_land.h new file mode 100644 index 000000000..e441639ff --- /dev/null +++ b/table/clear_land.h @@ -0,0 +1,61 @@ +static const SpriteID _landscape_clear_sprites[8] = { + 0xFA0, + 0xFB3, + 0xFB4, + 0xFB5, + 0xFB6, + 0xFA0, + 0xFB3, + 0xFB4, +}; + +static const byte _fence_mod_by_tileh[32] = { + 0,2,4,0,0,2,4,0, + 0,2,4,0,0,2,4,0, + 0,2,4,0,0,2,4,4, + 0,2,4,2,0,2,4,0, +}; + +static const byte _fence_mod_by_tileh_2[32] = { + 1,1,5,5,3,3,1,1, + 1,1,5,5,3,3,1,1, + 1,1,5,5,3,3,1,5, + 1,1,5,5,3,3,3,1, +}; + + +static const SpriteID _clear_land_fence_sprites_1[7] = { + 0xFFA, + 0x1000, + 0x1006, + 0x100C, + 0x1012, + 0x1018, +}; + +static const SpriteID _clear_land_sprites_1[16] = { + 0x101E, + 0x1031, + 0x1044, + 0x1057, + 0x106A, + 0x107D, + 0x1090, + 0x10A3, + 0x10B6, +}; + +static const SpriteID _clear_land_sprites_2[8] = { + 0x118D, + 0x11A0, + 0x11B3, + 0x11C6, +}; + +static const SpriteID _clear_land_sprites_3[8] = { + 0x118D, + 0x11A0, + 0x11B3, + 0x11C6, +}; + diff --git a/table/engines.h b/table/engines.h new file mode 100644 index 000000000..70339af35 --- /dev/null +++ b/table/engines.h @@ -0,0 +1,404 @@ +#define MK(a,b,c,d,e,f) {a,b,c,d,((e)<<4)|(f)} +#define MW(a,b,c,d,e,f) {a,b|0x80,c,d,((e)<<4)|(f)} + +EngineInfo _engine_info[TOTAL_NUM_ENGINES] = { + MK( 4809, 20, 15, 30, 0, 1), /* 0 */ + MK( 12784, 20, 22, 30, 0, 6), /* 1 */ + MK( 9497, 20, 20, 50, 0, 8), /* 2 */ + MK( 11688, 20, 20, 30, 0, 8), /* 3 */ + MK( 16802, 20, 20, 30, 0, 8), /* 4 */ + MK( 18993, 20, 20, 30, 0, 8), /* 5 */ + MK( 20820, 20, 20, 30, 0, 8), /* 6 */ + MK( 8766, 20, 20, 30, 0, 6), /* 7 */ + MK( 5114, 20, 21, 30, 0, 1), /* 8 */ + MK( 5479, 20, 20, 30, 0, 1), /* 9 */ + MK( 12419, 20, 23, 25, 0, 1), /* 10 */ + MK( 13149, 20, 12, 30, 0, 1), /* 11 */ + MK( 23376, 20, 15, 35, 0, 1), /* 12 */ + MK( 14976, 20, 18, 28, 0, 1), /* 13 */ + MK( 14245, 20, 20, 30, 0, 1), /* 14 */ + MK( 15341, 20, 22, 33, 0, 1), /* 15 */ + MK( 14976, 20, 20, 25, 0, 6), /* 16 */ + MK( 16437, 20, 20, 30, 0, 6), /* 17 */ + MK( 18993, 20, 22, 30, 0, 6), /* 18 */ + MK( 13880, 20, 22, 30, 0, 6), /* 19 */ + MK( 20454, 20, 22, 30, 0, 6), /* 20 */ + MK( 16071, 20, 22, 30, 0, 6), /* 21 */ + MK( 20820, 20, 20, 25, 0, 1), /* 22 */ + MK( 16437, 20, 23, 30, 0, 1), /* 23 */ + MK( 19359, 20, 23, 80, 0, 1), /* 24 */ + MK( 23376, 20, 25, 30, 0, 1), /* 25 */ + MK( 26298, 20, 25, 50, 0, 1), /* 26 */ + MW( 1827, 20, 20, 50, 0, 15), /* 27 */ + MW( 1827, 20, 20, 50, 0, 15), /* 28 */ + MW( 1827, 20, 20, 50, 0, 3), /* 29 */ + MW( 1827, 20, 20, 50, 0, 7), /* 30 */ + MW( 1827, 20, 20, 50, 0, 3), /* 31 */ + MW( 1827, 20, 20, 50, 0, 7), /* 32 */ + MW( 1827, 20, 20, 50, 0, 7), /* 33 */ + MW( 1827, 20, 20, 50, 0, 7), /* 34 */ + MW( 1827, 20, 20, 50, 0, 1), /* 35 */ + MW( 1827, 20, 20, 50, 0, 1), /* 36 */ + MW( 1827, 20, 20, 50, 0, 7), /* 37 */ + MW( 1827, 20, 20, 50, 0, 6), /* 38 */ + MW( 1827, 20, 20, 50, 0, 2), /* 39 */ + MW( 1827, 20, 20, 50, 0, 4), /* 40 */ + MW( 1827, 20, 20, 50, 0, 4), /* 41 */ + MW( 1827, 20, 20, 50, 0, 4), /* 42 */ + MW( 1827, 20, 20, 50, 0, 4), /* 43 */ + MW( 1827, 20, 20, 50, 0, 8), /* 44 */ + MW( 1827, 20, 20, 50, 0, 8), /* 45 */ + MW( 1827, 20, 20, 50, 0, 8), /* 46 */ + MW( 1827, 20, 20, 50, 0, 8), /* 47 */ + MW( 1827, 20, 20, 50, 0, 8), /* 48 */ + MW( 1827, 20, 20, 50, 0, 8), /* 49 */ + MW( 1827, 20, 20, 50, 0, 8), /* 50 */ + MW( 1827, 20, 20, 50, 0, 8), /* 51 */ + MW( 1827, 20, 20, 50, 0, 8), /* 52 */ + MW( 1827, 20, 20, 50, 0, 8), /* 53 */ + MK( 28490, 20, 20, 50, 1, 7), /* 54 */ + MK( 31047, 20, 20, 50, 1, 7), /* 55 */ + MK( 28855, 20, 20, 50, 1, 8), /* 56 */ + MW( 1827, 20, 20, 50, 1, 15), /* 57 */ + MW( 1827, 20, 20, 50, 1, 15), /* 58 */ + MW( 1827, 20, 20, 50, 1, 3), /* 59 */ + MW( 1827, 20, 20, 50, 1, 7), /* 60 */ + MW( 1827, 20, 20, 50, 1, 3), /* 61 */ + MW( 1827, 20, 20, 50, 1, 7), /* 62 */ + MW( 1827, 20, 20, 50, 1, 7), /* 63 */ + MW( 1827, 20, 20, 50, 1, 7), /* 64 */ + MW( 1827, 20, 20, 50, 1, 1), /* 65 */ + MW( 1827, 20, 20, 50, 1, 1), /* 66 */ + MW( 1827, 20, 20, 50, 1, 7), /* 67 */ + MW( 1827, 20, 20, 50, 1, 6), /* 68 */ + MW( 1827, 20, 20, 50, 1, 2), /* 69 */ + MW( 1827, 20, 20, 50, 1, 4), /* 70 */ + MW( 1827, 20, 20, 50, 1, 4), /* 71 */ + MW( 1827, 20, 20, 50, 1, 4), /* 72 */ + MW( 1827, 20, 20, 50, 1, 4), /* 73 */ + MW( 1827, 20, 20, 50, 1, 8), /* 74 */ + MW( 1827, 20, 20, 50, 1, 8), /* 75 */ + MW( 1827, 20, 20, 50, 1, 8), /* 76 */ + MW( 1827, 20, 20, 50, 1, 8), /* 77 */ + MW( 1827, 20, 20, 50, 1, 8), /* 78 */ + MW( 1827, 20, 20, 50, 1, 8), /* 79 */ + MW( 1827, 20, 20, 50, 1, 8), /* 80 */ + MW( 1827, 20, 20, 50, 1, 8), /* 81 */ + MW( 1827, 20, 20, 50, 1, 8), /* 82 */ + MW( 1827, 20, 20, 50, 1, 8), /* 83 */ + MK( 36525, 20, 20, 50, 2, 7), /* 84 */ + MK( 39447, 20, 20, 50, 2, 7), /* 85 */ + MK( 42004, 20, 20, 50, 2, 7), /* 86 */ + MK( 42735, 20, 20, 50, 2, 7), /* 87 */ + MK( 36891, 20, 20, 60, 2, 8), /* 88 */ + MW( 1827, 20, 20, 50, 2, 15), /* 89 */ + MW( 1827, 20, 20, 50, 2, 15), /* 90 */ + MW( 1827, 20, 20, 50, 2, 3), /* 91 */ + MW( 1827, 20, 20, 50, 2, 7), /* 92 */ + MW( 1827, 20, 20, 50, 2, 3), /* 93 */ + MW( 1827, 20, 20, 50, 2, 7), /* 94 */ + MW( 1827, 20, 20, 50, 2, 7), /* 95 */ + MW( 1827, 20, 20, 50, 2, 7), /* 96 */ + MW( 1827, 20, 20, 50, 2, 1), /* 97 */ + MW( 1827, 20, 20, 50, 2, 1), /* 98 */ + MW( 1827, 20, 20, 50, 2, 7), /* 99 */ + MW( 1827, 20, 20, 50, 2, 6), /* 100 */ + MW( 1827, 20, 20, 50, 2, 2), /* 101 */ + MW( 1827, 20, 20, 50, 2, 4), /* 102 */ + MW( 1827, 20, 20, 50, 2, 4), /* 103 */ + MW( 1827, 20, 20, 50, 2, 4), /* 104 */ + MW( 1827, 20, 20, 50, 2, 4), /* 105 */ + MW( 1827, 20, 20, 50, 2, 8), /* 106 */ + MW( 1827, 20, 20, 50, 2, 8), /* 107 */ + MW( 1827, 20, 20, 50, 2, 8), /* 108 */ + MW( 1827, 20, 20, 50, 2, 8), /* 109 */ + MW( 1827, 20, 20, 50, 2, 8), /* 110 */ + MW( 1827, 20, 20, 50, 2, 8), /* 111 */ + MW( 1827, 20, 20, 50, 2, 8), /* 112 */ + MW( 1827, 20, 20, 50, 2, 8), /* 113 */ + MW( 1827, 20, 20, 50, 2, 8), /* 114 */ + MW( 1827, 20, 20, 50, 2, 8), /* 115 */ + MK( 3378, 20, 12, 40, 0, 7), /* 116 */ + MK( 16071, 20, 15, 30, 0, 7), /* 117 */ + MK( 24107, 20, 15, 40, 0, 7), /* 118 */ + MK( 32142, 20, 15, 80, 0, 7), /* 119 */ + MK( 9132, 20, 15, 40, 0, 8), /* 120 */ + MK( 18993, 20, 15, 40, 0, 8), /* 121 */ + MK( 32873, 20, 15, 80, 0, 8), /* 122 */ + MK( 5479, 20, 15, 55, 0, 3), /* 123 */ + MK( 20089, 20, 15, 55, 0, 3), /* 124 */ + MK( 33969, 20, 15, 85, 0, 3), /* 125 */ + MK( 5479, 20, 15, 55, 0, 7), /* 126 */ + MK( 21550, 20, 15, 55, 0, 7), /* 127 */ + MK( 35795, 20, 15, 85, 0, 7), /* 128 */ + MK( 5479, 20, 15, 55, 0, 8), /* 129 */ + MK( 21550, 20, 15, 55, 0, 8), /* 130 */ + MK( 35795, 20, 15, 85, 0, 8), /* 131 */ + MK( 5479, 20, 15, 55, 0, 7), /* 132 */ + MK( 19359, 20, 15, 55, 0, 7), /* 133 */ + MK( 31047, 20, 15, 85, 0, 7), /* 134 */ + MK( 5479, 20, 15, 55, 0, 3), /* 135 */ + MK( 21915, 20, 15, 55, 0, 3), /* 136 */ + MK( 37256, 20, 15, 85, 0, 3), /* 137 */ + MK( 5479, 20, 15, 55, 0, 7), /* 138 */ + MK( 19724, 20, 15, 55, 0, 7), /* 139 */ + MK( 31047, 20, 15, 85, 0, 7), /* 140 */ + MK( 5479, 20, 15, 55, 0, 7), /* 141 */ + MK( 21185, 20, 15, 55, 0, 7), /* 142 */ + MK( 32873, 20, 15, 85, 0, 7), /* 143 */ + MK( 5479, 20, 15, 55, 0, 7), /* 144 */ + MK( 19724, 20, 15, 55, 0, 7), /* 145 */ + MK( 35430, 20, 15, 85, 0, 7), /* 146 */ + MK( 5479, 20, 15, 55, 0, 1), /* 147 */ + MK( 20820, 20, 15, 55, 0, 1), /* 148 */ + MK( 33238, 20, 15, 85, 0, 1), /* 149 */ + MK( 5479, 20, 15, 55, 0, 1), /* 150 */ + MK( 21185, 20, 15, 55, 0, 1), /* 151 */ + MK( 31777, 20, 15, 85, 0, 1), /* 152 */ + MK( 5479, 20, 15, 55, 0, 7), /* 153 */ + MK( 22281, 20, 15, 55, 0, 7), /* 154 */ + MK( 33603, 20, 15, 85, 0, 7), /* 155 */ + MK( 5479, 20, 15, 55, 0, 6), /* 156 */ + MK( 18628, 20, 15, 55, 0, 6), /* 157 */ + MK( 30681, 20, 15, 85, 0, 6), /* 158 */ + MK( 5479, 20, 15, 55, 0, 2), /* 159 */ + MK( 21185, 20, 15, 55, 0, 2), /* 160 */ + MK( 31777, 20, 15, 85, 0, 2), /* 161 */ + MK( 5479, 20, 15, 55, 0, 4), /* 162 */ + MK( 20820, 20, 15, 55, 0, 4), /* 163 */ + MK( 33238, 20, 15, 85, 0, 4), /* 164 */ + MK( 5479, 20, 15, 55, 0, 4), /* 165 */ + MK( 20970, 20, 15, 55, 0, 4), /* 166 */ + MK( 33388, 20, 15, 85, 0, 4), /* 167 */ + MK( 5479, 20, 15, 55, 0, 4), /* 168 */ + MK( 21335, 20, 15, 55, 0, 4), /* 169 */ + MK( 33753, 20, 15, 85, 0, 4), /* 170 */ + MK( 5479, 20, 15, 55, 0, 4), /* 171 */ + MK( 20604, 20, 15, 55, 0, 4), /* 172 */ + MK( 33023, 20, 15, 85, 0, 4), /* 173 */ + MK( 5479, 20, 15, 55, 0, 8), /* 174 */ + MK( 19724, 20, 15, 55, 0, 8), /* 175 */ + MK( 33238, 20, 15, 85, 0, 8), /* 176 */ + MK( 5479, 20, 15, 55, 0, 8), /* 177 */ + MK( 20089, 20, 15, 55, 0, 8), /* 178 */ + MK( 33603, 20, 15, 85, 0, 8), /* 179 */ + MK( 5479, 20, 15, 55, 0, 8), /* 180 */ + MK( 20454, 20, 15, 55, 0, 8), /* 181 */ + MK( 33969, 20, 15, 85, 0, 8), /* 182 */ + MK( 5479, 20, 15, 55, 0, 8), /* 183 */ + MK( 20820, 20, 15, 55, 0, 8), /* 184 */ + MK( 34334, 20, 15, 85, 0, 8), /* 185 */ + MK( 5479, 20, 15, 55, 0, 8), /* 186 */ + MK( 21185, 20, 15, 55, 0, 8), /* 187 */ + MK( 34699, 20, 15, 85, 0, 8), /* 188 */ + MK( 5479, 20, 15, 55, 0, 8), /* 189 */ + MK( 21550, 20, 15, 55, 0, 8), /* 190 */ + MK( 35064, 20, 15, 85, 0, 8), /* 191 */ + MK( 5479, 20, 15, 55, 0, 8), /* 192 */ + MK( 19874, 20, 15, 55, 0, 8), /* 193 */ + MK( 35430, 20, 15, 85, 0, 8), /* 194 */ + MK( 5479, 20, 15, 55, 0, 8), /* 195 */ + MK( 20239, 20, 15, 55, 0, 8), /* 196 */ + MK( 35795, 20, 15, 85, 0, 8), /* 197 */ + MK( 5479, 20, 15, 55, 0, 8), /* 198 */ + MK( 20604, 20, 15, 55, 0, 8), /* 199 */ + MK( 32873, 20, 15, 85, 0, 8), /* 200 */ + MK( 5479, 20, 15, 55, 0, 8), /* 201 */ + MK( 20970, 20, 15, 55, 0, 8), /* 202 */ + MK( 33023, 20, 15, 85, 0, 8), /* 203 */ + MK( 2922, 5, 30, 50, 0, 7), /* 204 */ + MK( 17167, 5, 30, 90, 0, 7), /* 205 */ + MK( 2192, 5, 30, 55, 0, 7), /* 206 */ + MK( 18628, 5, 30, 90, 0, 7), /* 207 */ + MK( 17257, 10, 25, 90, 0, 7), /* 208 */ + MK( 9587, 5, 30, 40, 0, 8), /* 209 */ + MK( 20544, 5, 30, 90, 0, 8), /* 210 */ + MK( 2557, 5, 30, 55, 0, 7), /* 211 */ + MK( 19724, 5, 30, 98, 0, 7), /* 212 */ + MK( 9587, 5, 30, 45, 0, 8), /* 213 */ + MK( 22371, 5, 30, 90, 0, 8), /* 214 */ + MK( 2922, 20, 20, 20, 0, 7), /* 215 */ + MK( 9922, 20, 24, 20, 0, 7), /* 216 */ + MK( 12659, 20, 18, 20, 0, 7), /* 217 */ + MK( 17652, 20, 25, 35, 0, 7), /* 218 */ + MK( 4929, 20, 30, 30, 0, 7), /* 219 */ + MK( 13695, 20, 23, 25, 0, 7), /* 220 */ + MK( 16341, 20, 26, 30, 0, 7), /* 221 */ + MK( 21395, 20, 25, 30, 0, 7), /* 222 */ + MK( 18263, 20, 20, 30, 0, 7), /* 223 */ + MK( 25233, 20, 25, 30, 0, 7), /* 224 */ + MK( 15371, 20, 22, 25, 0, 7), /* 225 */ + MK( 15461, 20, 25, 25, 0, 7), /* 226 */ + MK( 16952, 20, 22, 25, 0, 7), /* 227 */ + MK( 17227, 20, 25, 30, 0, 7), /* 228 */ + MK( 22371, 20, 25, 35, 0, 7), /* 229 */ + MK( 22341, 20, 25, 30, 0, 7), /* 230 */ + MK( 27209, 20, 25, 30, 0, 7), /* 231 */ + MK( 17988, 20, 20, 30, 0, 7), /* 232 */ + MK( 18993, 20, 24, 35, 0, 7), /* 233 */ + MK( 22401, 20, 24, 30, 0, 7), /* 234 */ + MK( 24472, 20, 24, 30, 0, 7), /* 235 */ + MK( 26724, 20, 24, 30, 0, 7), /* 236 */ + MK( 22005, 20, 25, 30, 0, 7), /* 237 */ + MK( 24107, 20, 20, 35, 0, 7), /* 238 */ + MK( 29310, 20, 25, 60, 0, 7), /* 239 */ + MK( 35520, 20, 22, 30, 0, 7), /* 240 */ + MK( 36981, 20, 22, 30, 0, 7), /* 241 */ + MK( 38807, 20, 22, 50, 0, 7), /* 242 */ + MK( 42094, 20, 25, 30, 0, 7), /* 243 */ + MK( 44651, 20, 23, 30, 0, 7), /* 244 */ + MK( 40268, 20, 25, 30, 0, 7), /* 245 */ + MK( 33693, 20, 25, 50, 0, 7), /* 246 */ + MK( 32963, 20, 20, 60, 0, 7), /* 247 */ + MK( 9222, 20, 20, 35, 0, 8), /* 248 */ + MK( 12874, 20, 20, 35, 0, 8), /* 249 */ + MK( 16892, 20, 20, 35, 0, 8), /* 250 */ + MK( 21275, 20, 20, 99, 0, 8), /* 251 */ + MK( 23832, 20, 20, 99, 0, 8), /* 252 */ + MK( 13575, 20, 20, 40, 0, 7), /* 253 */ + MK( 28215, 20, 20, 30, 0, 7), /* 254 */ + MK( 13575, 20, 20, 99, 0, 8), /* 255 */ +}; + +RailVehicleInfo _rail_vehicle_info[] = { + // image_index max_speed (kph) running_cost_base + // | flags | power (hp)| running_cost_class + // | | base_cost | weight | capacity + // | | | | | | | | | cargo_type + // | | | | | | | | | | + { 2, 0, 7, 64, 300, 47, 50, 0, 0, 0}, /* 0 */ + { 19, 0, 8, 80, 600, 65, 65, 1, 0, 0}, /* 1 */ + { 2, 0, 10, 72, 400, 85, 90, 0, 0, 0}, /* 2 */ + { 0, 0, 15, 96, 900, 130, 130, 0, 0, 0}, /* 3 */ + { 1, 0, 19, 112, 1000, 140, 145, 0, 0, 0}, /* 4 */ + { 12, 0, 16, 120, 1400, 95, 125, 1, 0, 0}, /* 5 */ + { 14, 0, 20, 152, 2000, 120, 135, 1, 0, 0}, /* 6 */ + { 3, 0, 14, 88, 1100, 145, 130, 0, 0, 0}, /* 7 */ + { 0, 0, 13, 112, 1000, 131, 120, 0, 0, 0}, /* 8 */ + { 1, 0, 19, 128, 1200, 162, 140, 0, 0, 0}, /* 9 */ + { 0, 0, 22, 144, 1600, 170, 130, 0, 0, 0}, /* 10 */ + { 8, 1, 11, 112, 600/2, 32,85/2, 1, 38, CT_PASSENGERS}, /* 11 */ + { 10, 1, 14, 120, 700/2, 38,70/2, 1, 40, CT_PASSENGERS}, /* 12 */ + { 4, 0, 15, 128, 1250, 72, 95, 1, 0, 0}, /* 13 */ + { 5, 0, 17, 144, 1750, 101, 120, 1, 0, 0}, /* 14 */ + { 4, 0, 18, 160, 2580, 112, 140, 1, 0, 0}, /* 15 */ + { 14, 0, 23, 96, 4000, 150, 135, 1, 0, 0}, /* 16 */ + { 12, 0, 16, 112, 2400, 120, 105, 1, 0, 0}, /* 17 */ + { 13, 0, 30, 112, 6600, 207, 155, 1, 0, 0}, /* 18 */ + { 15, 0, 18, 104, 1500, 110, 105, 1, 0, 0}, /* 19 */ + { 16, 1, 35, 160,3500/2, 95, 205/2, 1, 0, 0}, /* 20 */ + { 18, 0, 21, 104, 2200, 120, 145, 1, 0, 0}, /* 21 */ + { 6, 1, 20, 200,4500/2, 70, 190/2, 1, 4, CT_MAIL}, /* 22 */ + { 20, 0, 26, 160, 3600, 84, 180, 2, 0, 0}, /* 23 */ + { 20, 0, 30, 176, 5000, 82, 205, 2, 0, 0}, /* 24 */ + { 21, 1, 40, 240,7000/2, 90, 240/2, 2, 0, 0}, /* 25 */ + { 23, 1, 43, 264,8000/2, 95, 250/2, 2, 0, 0}, /* 26 */ + { 33, 2, 247, 0, 0, 25, 0, 0, 40, CT_PASSENGERS}, /* 27 */ + { 35, 2, 228, 0, 0, 21, 0, 0, 30, CT_MAIL}, /* 28 */ + { 34, 2, 176, 0, 0, 18, 0, 0, 30, CT_COAL}, /* 29 */ + { 36, 2, 200, 0, 0, 24, 0, 0, 30, CT_OIL}, /* 30 */ + { 37, 2, 192, 0, 0, 20, 0, 0, 25, CT_LIVESTOCK}, /* 31 */ + { 38, 2, 190, 0, 0, 21, 0, 0, 25, CT_GOODS}, /* 32 */ + { 39, 2, 182, 0, 0, 19, 0, 0, 30, CT_GRAIN}, /* 33 */ + { 40, 2, 181, 0, 0, 16, 0, 0, 30, CT_WOOD}, /* 34 */ + { 41, 2, 179, 0, 0, 19, 0, 0, 30, CT_IRON_ORE}, /* 35 */ + { 42, 2, 196, 0, 0, 18, 0, 0, 20, CT_STEEL}, /* 36 */ + { 43, 2, 255, 0, 0, 30, 0, 0, 20, CT_VALUABLES}, /* 37 */ + { 44, 2, 191, 0, 0, 22, 0, 0, 25, CT_FOOD}, /* 38 */ + { 45, 2, 196, 0, 0, 18, 0, 0, 20, CT_PAPER}, /* 39 */ + { 46, 2, 179, 0, 0, 19, 0, 0, 30, CT_COPPER_ORE}, /* 40 */ + { 47, 2, 199, 0, 0, 25, 0, 0, 25, CT_WATER}, /* 41 */ + { 48, 2, 182, 0, 0, 18, 0, 0, 25, CT_FRUIT}, /* 42 */ + { 49, 2, 185, 0, 0, 19, 0, 0, 21, CT_RUBBER}, /* 43 */ + { 50, 2, 176, 0, 0, 19, 0, 0, 30, CT_SUGAR}, /* 44 */ + { 51, 2, 178, 0, 0, 20, 0, 0, 30, CT_COTTON_CANDY}, /* 45 */ + { 52, 2, 192, 0, 0, 20, 0, 0, 30, CT_TOFFEE}, /* 46 */ + { 53, 2, 190, 0, 0, 21, 0, 0, 20, CT_BUBBLES}, /* 47 */ + { 54, 2, 182, 0, 0, 24, 0, 0, 25, CT_COLA}, /* 48 */ + { 55, 2, 181, 0, 0, 21, 0, 0, 25, CT_CANDY}, /* 49 */ + { 56, 2, 183, 0, 0, 21, 0, 0, 20, CT_TOYS}, /* 50 */ + { 57, 2, 196, 0, 0, 18, 0, 0, 22, CT_BATTERIES}, /* 51 */ + { 58, 2, 193, 0, 0, 18, 0, 0, 25, CT_FIZZY_DRINKS}, /* 52 */ + { 59, 2, 191, 0, 0, 18, 0, 0, 30, CT_PLASTIC}, /* 53 */ + { 25, 0, 52, 304, 9000, 95, 230, 2, 0, 0}, /* 54 */ + { 26, 1, 60, 336,10000/2, 85, 240/2, 2, 25, CT_PASSENGERS}, /* 55 */ + { 26, 0, 53, 320, 5000, 95, 230, 2, 0, 0}, /* 56 */ + { 60, 2, 247, 0, 0, 25, 0, 0, 45, CT_PASSENGERS}, /* 57 */ + { 62, 2, 228, 0, 0, 21, 0, 0, 35, CT_MAIL}, /* 58 */ + { 61, 2, 176, 0, 0, 18, 0, 0, 35, CT_COAL}, /* 59 */ + { 63, 2, 200, 0, 0, 24, 0, 0, 35, CT_OIL}, /* 60 */ + { 64, 2, 192, 0, 0, 20, 0, 0, 30, CT_LIVESTOCK}, /* 61 */ + { 65, 2, 190, 0, 0, 21, 0, 0, 30, CT_GOODS}, /* 62 */ + { 66, 2, 182, 0, 0, 19, 0, 0, 35, CT_GRAIN}, /* 63 */ + { 67, 2, 181, 0, 0, 16, 0, 0, 35, CT_WOOD}, /* 64 */ + { 68, 2, 179, 0, 0, 19, 0, 0, 35, CT_IRON_ORE}, /* 65 */ + { 69, 2, 196, 0, 0, 18, 0, 0, 25, CT_STEEL}, /* 66 */ + { 70, 2, 255, 0, 0, 30, 0, 0, 25, CT_VALUABLES}, /* 67 */ + { 71, 2, 191, 0, 0, 22, 0, 0, 30, CT_FOOD}, /* 68 */ + { 72, 2, 196, 0, 0, 18, 0, 0, 25, CT_PAPER}, /* 69 */ + { 73, 2, 179, 0, 0, 19, 0, 0, 35, CT_COPPER_ORE}, /* 70 */ + { 47, 2, 199, 0, 0, 25, 0, 0, 30, CT_WATER}, /* 71 */ + { 48, 2, 182, 0, 0, 18, 0, 0, 30, CT_FRUIT}, /* 72 */ + { 49, 2, 185, 0, 0, 19, 0, 0, 26, CT_RUBBER}, /* 73 */ + { 50, 2, 176, 0, 0, 19, 0, 0, 35, CT_SUGAR}, /* 74 */ + { 51, 2, 178, 0, 0, 20, 0, 0, 35, CT_COTTON_CANDY}, /* 75 */ + { 52, 2, 192, 0, 0, 20, 0, 0, 35, CT_TOFFEE}, /* 76 */ + { 53, 2, 190, 0, 0, 21, 0, 0, 25, CT_BUBBLES}, /* 77 */ + { 54, 2, 182, 0, 0, 24, 0, 0, 30, CT_COLA}, /* 78 */ + { 55, 2, 181, 0, 0, 21, 0, 0, 30, CT_CANDY}, /* 79 */ + { 56, 2, 183, 0, 0, 21, 0, 0, 25, CT_TOYS}, /* 80 */ + { 57, 2, 196, 0, 0, 18, 0, 0, 27, CT_BATTERIES}, /* 81 */ + { 58, 2, 193, 0, 0, 18, 0, 0, 30, CT_FIZZY_DRINKS}, /* 82 */ + { 59, 2, 191, 0, 0, 18, 0, 0, 35, CT_PLASTIC}, /* 83 */ + { 28, 0, 70, 400, 10000, 105, 250, 2, 0, 0}, /* 84 */ + { 29, 0, 74, 448, 12000, 120, 253, 2, 0, 0}, /* 85 */ + { 30, 0, 82, 480, 15000, 130, 254, 2, 0, 0}, /* 86 */ + { 31, 1, 95, 640,20000/2,150, 255/2, 2, 0, 0}, /* 87 */ + { 28, 0, 70, 480, 10000, 120, 250, 2, 0, 0}, /* 88 */ + { 60, 2, 247, 0, 0, 25, 0, 0, 47, CT_PASSENGERS}, /* 89 */ + { 62, 2, 228, 0, 0, 21, 0, 0, 37, CT_MAIL}, /* 90 */ + { 61, 2, 176, 0, 0, 18, 0, 0, 37, CT_COAL}, /* 91 */ + { 63, 2, 200, 0, 0, 24, 0, 0, 37, CT_OIL}, /* 92 */ + { 64, 2, 192, 0, 0, 20, 0, 0, 32, CT_LIVESTOCK}, /* 93 */ + { 65, 2, 190, 0, 0, 21, 0, 0, 32, CT_GOODS}, /* 94 */ + { 66, 2, 182, 0, 0, 19, 0, 0, 37, CT_GRAIN}, /* 95 */ + { 67, 2, 181, 0, 0, 16, 0, 0, 37, CT_WOOD}, /* 96 */ + { 68, 2, 179, 0, 0, 19, 0, 0, 37, CT_IRON_ORE}, /* 97 */ + { 69, 2, 196, 0, 0, 18, 0, 0, 27, CT_STEEL}, /* 98 */ + { 70, 2, 255, 0, 0, 30, 0, 0, 27, CT_VALUABLES}, /* 99 */ + { 71, 2, 191, 0, 0, 22, 0, 0, 32, CT_FOOD}, /* 100 */ + { 72, 2, 196, 0, 0, 18, 0, 0, 27, CT_PAPER}, /* 101 */ + { 73, 2, 179, 0, 0, 19, 0, 0, 37, CT_COPPER_ORE}, /* 102 */ + { 47, 2, 199, 0, 0, 25, 0, 0, 32, CT_WATER}, /* 103 */ + { 48, 2, 182, 0, 0, 18, 0, 0, 32, CT_FRUIT}, /* 104 */ + { 49, 2, 185, 0, 0, 19, 0, 0, 28, CT_RUBBER}, /* 105 */ + { 50, 2, 176, 0, 0, 19, 0, 0, 37, CT_SUGAR}, /* 106 */ + { 51, 2, 178, 0, 0, 20, 0, 0, 37, CT_COTTON_CANDY}, /* 107 */ + { 52, 2, 192, 0, 0, 20, 0, 0, 37, CT_TOFFEE}, /* 108 */ + { 53, 2, 190, 0, 0, 21, 0, 0, 27, CT_BUBBLES}, /* 109 */ + { 54, 2, 182, 0, 0, 24, 0, 0, 32, CT_COLA}, /* 110 */ + { 55, 2, 181, 0, 0, 21, 0, 0, 32, CT_CANDY}, /* 111 */ + { 56, 2, 183, 0, 0, 21, 0, 0, 27, CT_TOYS}, /* 112 */ + { 57, 2, 196, 0, 0, 18, 0, 0, 29, CT_BATTERIES}, /* 113 */ + { 58, 2, 193, 0, 0, 18, 0, 0, 32, CT_FIZZY_DRINKS}, /* 114 */ + { 59, 2, 191, 0, 0, 18, 0, 0, 37, CT_PLASTIC}, /* 115 */ +}; + + +ShipVehicleInfo _ship_vehicle_info[] = { + // image_index cargo_type cargo_amount refittable + // | base_cost | | running_cost + // | | max_speed | | sfx | + // | | | | | | | | + { 1, 160, 48, CT_OIL, 220, 140, 4, 0 }, /* 0 */ + { 1, 176, 80, CT_OIL, 350, 125, 4, 0 }, /* 1 */ + { 2, 96, 64, CT_PASSENGERS, 100, 90, 5, 0 }, /* 2 */ + { 2, 112, 128, CT_PASSENGERS, 130, 80, 5, 0 }, /* 3 */ + { 3, 148, 224, CT_PASSENGERS, 100, 190, 5, 0 }, /* 4 */ + { 2, 96, 64, CT_PASSENGERS, 100, 90, 5, 0 }, /* 5 */ + { 2, 112, 128, CT_PASSENGERS, 130, 80, 5, 0 }, /* 6 */ + { 0, 128, 48, CT_GOODS, 160, 150, 4, 1 }, /* 7 */ + { 0, 144, 80, CT_GOODS, 190, 113, 4, 1 }, /* 8 */ + { 0, 128, 48, CT_GOODS, 160, 150, 4, 1 }, /* 9 */ + { 0, 144, 80, CT_GOODS, 190, 113, 4, 1 }, /* 10 */ +}; diff --git a/table/genland.h b/table/genland.h new file mode 100644 index 000000000..719e5e6b4 --- /dev/null +++ b/table/genland.h @@ -0,0 +1,159 @@ +#define M(x,y) TILE_XY(x,y) + +#define MDORD_LAST 99 +static const TileIndexDiff _make_desert_or_rainforest_data[150] = { + M(-5,-6), + M(-4,-6), + M(-3,-6), + M(-2,-6), + M(-1,-6), + M(0,-5), + M(1,-5), + M(2,-5), + M(3,-5), + M(4,-5), + M(5,-5), + M(-5,-5), + M(-4,-5), + M(-3,-5), + M(-2,-5), + M(-1,-5), + M(0,-4), + M(1,-4), + M(2,-4), + M(3,-4), + M(4,-4), + M(5,-4), + M(-5,-4), + M(-4,-4), + M(-3,-4), + M(-2,-4), + M(-1,-4), + M(0,-3), + M(1,-3), + M(2,-3), + M(3,-3), + M(4,-3), + M(5,-3), + M(-5,-3), + M(-4,-3), + M(-3,-3), + M(-2,-3), + M(-1,-3), + M(0,-2), + M(1,-2), + M(2,-2), + M(3,-2), + M(4,-2), + M(5,-2), + M(-5,-2), + M(-4,-2), + M(-3,-2), + M(-2,-2), + M(-1,-2), + M(0,-1), + M(1,-1), + M(2,-1), + M(3,-1), + M(4,-1), + M(5,-1), + M(-5,-1), + M(-4,-1), + M(-3,-1), + M(-2,-1), + M(-1,-1), + M(0,0), + M(1,0), + M(2,0), + M(3,0), + M(4,0), + M(5,0), + M(-5,0), + M(-4,0), + M(-3,0), + M(-2,0), + M(-1,0), + M(0,1), + M(1,1), + M(2,1), + M(3,1), + M(4,1), + M(5,1), + M(-5,1), + M(-4,1), + M(-3,1), + M(-2,1), + M(-1,1), + M(0,2), + M(1,2), + M(2,2), + M(3,2), + M(4,2), + M(5,2), + M(-5,2), + M(-4,2), + M(-3,2), + M(-2,2), + M(-1,2), + M(0,3), + M(1,3), + M(2,3), + M(3,3), + M(4,3), + M(5,3), + M(-5,3), + M(-4,3), + M(-3,3), + M(-2,3), + M(-1,3), + M(0,4), + M(1,4), + M(2,4), + M(3,4), + M(4,4), + M(5,4), + M(-5,4), + M(-4,4), + M(-3,4), + M(-2,4), + M(-1,4), + M(0,5), + M(1,5), + M(2,5), + M(3,5), + M(4,5), + M(5,5), + M(6,-3), + M(-6,-4), + M(-3,5), + M(-3,-7), + M(6,-2), + M(-6,-3), + M(-2,5), + M(-2,-7), + M(6,-1), + M(-6,-2), + M(-1,5), + M(-1,-7), + M(6,0), + M(-6,-1), + M(0,6), + M(0,-6), + M(6,1), + M(-6,0), + M(1,6), + M(1,-6), + M(6,2), + M(-6,1), + M(2,6), + M(2,-6), + M(6,3), + M(-6,2), + M(3,6), + M(3,-6), + MDORD_LAST, +}; + + + +#undef M diff --git a/table/industry_land.h b/table/industry_land.h new file mode 100644 index 000000000..e5f84eec5 --- /dev/null +++ b/table/industry_land.h @@ -0,0 +1,939 @@ +#define M(s1,s2,sx,sy,w,h,dz,p) {s1,s2,(sx<<4)|sy,((w-1)<<4)|(h-1),dz,p} + +static const DrawIndustryTileStruct _industry_draw_tile_data[700] = { + M( 0xf54, 0x7db, 7, 0, 9, 9, 10, 0), + M( 0xf54, 0x7dc, 7, 0, 9, 9, 30, 0), + M( 0xf54, 0x7dd, 7, 0, 9, 9, 30, 0), + M( 0x7e6, 0x7dd, 7, 0, 9, 9, 30, 0), + M( 0x7e6, 0x7dd, 7, 0, 9, 9, 30, 0), + M( 0x7e6, 0x7de, 7, 0, 9, 9, 30, 0), + M( 0x7e6, 0x7df, 7, 0, 9, 9, 30, 0), + M( 0x7e6, 0x7df, 7, 0, 9, 9, 30, 0), + M( 0xf54, 0x7e0, 1, 2, 15, 9, 30, 0), + M( 0xf54, 0x7e1, 1, 2, 15, 9, 30, 0), + M( 0xf54, 0x7e2, 1, 2, 15, 9, 30, 0), + M( 0x7e6, 0x7e2, 1, 2, 15, 9, 30, 0), + M( 0xf54, 0x7e3, 4, 4, 9, 9, 30, 0), + M( 0xf54, 0x7e4, 4, 4, 9, 9, 30, 0), + M( 0xf54, 0x7e5, 4, 4, 9, 9, 30, 0), + M( 0x7e6, 0x7e5, 4, 4, 9, 9, 30, 0), + M( 0xf54, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xf54, 0x0, 0, 0, 1, 1, 0, 0), + M( 0x7e6, 0x0, 0, 0, 1, 1, 0, 0), + M( 0x7e9, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xf54, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xf54, 0x0, 0, 0, 1, 1, 0, 0), + M( 0x7e6, 0x0, 0, 0, 1, 1, 0, 0), + M( 0x7e7, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xf54, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xf54, 0x0, 0, 0, 1, 1, 0, 0), + M( 0x7e6, 0x0, 0, 0, 1, 1, 0, 0), + M( 0x7e8, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xf54, 0x7fd, 1, 1, 14, 14, 5, 0), + M( 0xf54, 0x7fe, 1, 1, 14, 14, 44, 0), + M( 0xf54, 0x7ff, 1, 1, 14, 14, 44, 0), + M( 0xf54, 0x7ff, 1, 1, 14, 14, 44, 0), + M( 0xf54, 0x800, 0, 2, 16, 12, 6, 0), + M( 0xf54, 0x801, 0, 2, 16, 12, 47, 0), + M( 0xf54, 0x802, 0, 2, 16, 12, 50, 0), + M( 0xf54, 0x802, 0, 2, 16, 12, 50, 0), + M( 0xf54, 0x803, 1, 0, 14, 15, 5, 0), + M( 0xf54, 0x804, 1, 0, 14, 15, 19, 0), + M( 0xf54, 0x805, 1, 0, 14, 15, 21, 0), + M( 0xf54, 0x805, 1, 0, 14, 15, 21, 0), + M( 0xf54, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xf54, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xf54, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xf54, 0x806, 1, 2, 14, 11, 32, 5), + M( 0xf54, 0x80d, 1, 0, 13, 16, 8, 0), + M( 0xf54, 0x80e, 1, 0, 13, 16, 20, 0), + M( 0xf54, 0x80f, 1, 0, 13, 16, 20, 0), + M( 0xf54, 0x80f, 1, 0, 13, 16, 20, 0), + M( 0xf54, 0x810, 0, 1, 16, 14, 8, 0), + M( 0xf54, 0x811, 0, 1, 16, 14, 21, 0), + M( 0xf54, 0x812, 0, 1, 16, 14, 21, 0), + M( 0xf54, 0x812, 0, 1, 16, 14, 21, 0), + M( 0xf54, 0x813, 1, 1, 14, 14, 12, 0), + M( 0xf54, 0x814, 1, 1, 14, 14, 15, 0), + M( 0xf54, 0x815, 1, 1, 14, 14, 22, 0), + M( 0xf54, 0x815, 1, 1, 14, 14, 22, 0), + M( 0xf54, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xf54, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xf54, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xf54, 0x816, 0, 0, 16, 15, 20, 0), + M( 0xf54, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xf54, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xf54, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xf54, 0x817, 0, 1, 16, 13, 19, 0), + M( 0x81d, 0x818, 0, 0, 16, 16, 10, 0), + M( 0x81d, 0x819, 0, 0, 16, 16, 15, 0), + M( 0x81d, 0x81a, 0, 0, 16, 16, 31, 0), + M( 0x81d, 0x81b, 0, 0, 16, 16, 39, 0), + M( 0x81d, 0x81c, 0, 0, 16, 16, 7, 0), + M( 0x81d, 0x81c, 0, 0, 16, 16, 7, 0), + M( 0x81d, 0x81c, 0, 0, 16, 16, 7, 0), + M( 0x81d, 0x81c, 0, 0, 16, 16, 7, 0), + M( 0xf54, 0x881e, 1, 1, 14, 14, 4, 0), + M( 0xf54, 0x881f, 1, 1, 14, 14, 24, 0), + M( 0xf54, 0x8820, 1, 1, 14, 14, 27, 0), + M( 0x58c, 0x8820, 1, 1, 14, 14, 27, 0), + M( 0xf54, 0x8821, 3, 3, 10, 9, 3, 0), + M( 0xf54, 0x8822, 3, 3, 10, 9, 63, 0), + M( 0xf54, 0x8823, 3, 3, 10, 9, 62, 0), + M( 0x58c, 0x8823, 3, 3, 10, 9, 62, 0), + M( 0xf54, 0x8824, 4, 4, 7, 7, 3, 0), + M( 0xf54, 0x8825, 4, 4, 7, 7, 72, 0), + M( 0xf54, 0x8825, 4, 4, 7, 7, 72, 0), + M( 0x58c, 0x8826, 4, 4, 7, 7, 80, 0), + M( 0xf54, 0x8827, 2, 0, 12, 16, 51, 0), + M( 0xf54, 0x8828, 2, 0, 12, 16, 51, 0), + M( 0xf54, 0x8829, 2, 0, 12, 16, 51, 0), + M( 0x58c, 0x8829, 2, 0, 12, 16, 51, 0), + M( 0xf54, 0x882a, 0, 0, 16, 16, 26, 0), + M( 0xf54, 0x882b, 0, 0, 16, 16, 44, 0), + M( 0xf54, 0x882c, 0, 0, 16, 16, 46, 0), + M( 0x58c, 0x882c, 0, 0, 16, 16, 46, 0), + M( 0xf54, 0x82d, 3, 1, 10, 13, 2, 0), + M( 0xf54, 0x82e, 3, 1, 10, 13, 11, 0), + M( 0xf54, 0x82f, 3, 1, 10, 13, 11, 0), + M( 0x58c, 0x82f, 3, 1, 10, 13, 11, 0), + M( 0xfdd, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xfdd, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xfdd, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xfdd, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xfdd, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xfdd, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xfdd, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xfdd, 0x833, 0, 0, 16, 16, 20, 0), + M( 0xfdd, 0x837, 0, 0, 16, 16, 20, 0), + M( 0xfdd, 0x834, 0, 0, 16, 16, 20, 0), + M( 0xfdd, 0x834, 0, 0, 16, 16, 20, 0), + M( 0xfdd, 0x830, 0, 0, 16, 16, 20, 0), + M( 0xfdd, 0x838, 0, 0, 16, 16, 20, 0), + M( 0xfdd, 0x835, 0, 0, 16, 16, 20, 0), + M( 0xfdd, 0x835, 0, 0, 16, 16, 20, 0), + M( 0xfdd, 0x831, 0, 0, 16, 16, 20, 0), + M( 0xfdd, 0x839, 0, 0, 16, 16, 20, 0), + M( 0xfdd, 0x836, 0, 0, 16, 16, 20, 0), + M( 0xfdd, 0x836, 0, 0, 16, 16, 20, 0), + M( 0xfdd, 0x832, 0, 0, 16, 16, 20, 0), + M( 0x7e6, 0x0, 0, 0, 1, 1, 0, 0), + M( 0x87d, 0x87e, 0, 0, 16, 16, 20, 0), + M( 0x87d, 0x87e, 0, 0, 16, 16, 20, 0), + M( 0x87d, 0x87e, 0, 0, 16, 16, 20, 0), + M( 0x87d, 0x87e, 0, 0, 16, 16, 20, 0), + M( 0x87d, 0x87f, 0, 0, 16, 16, 20, 0), + M( 0x87d, 0x880, 0, 0, 16, 16, 20, 0), + M( 0x87d, 0x881, 0, 0, 16, 16, 20, 0), + M( 0x87d, 0x882, 0, 0, 16, 16, 20, 0), + M( 0x87d, 0x883, 0, 0, 16, 16, 20, 0), + M( 0x87d, 0x883, 0, 0, 16, 16, 20, 0), + M( 0x87d, 0x882, 0, 0, 16, 16, 20, 0), + M( 0x87d, 0x881, 0, 0, 16, 16, 20, 0), + M( 0x87d, 0x880, 0, 0, 16, 16, 20, 0), + M( 0x87d, 0x87f, 0, 0, 16, 16, 20, 0), + M( 0x87d, 0x87e, 0, 0, 16, 16, 20, 0), + M( 0x83a, 0x883c, 0, 0, 16, 16, 18, 0), + M( 0x83a, 0x883c, 0, 0, 16, 16, 18, 0), + M( 0x83a, 0x883c, 0, 0, 16, 16, 18, 0), + M( 0x83a, 0x883c, 0, 0, 16, 16, 18, 0), + M( 0x83b, 0x883d, 0, 0, 16, 16, 18, 0), + M( 0x83b, 0x883d, 0, 0, 16, 16, 18, 0), + M( 0x83b, 0x883d, 0, 0, 16, 16, 18, 0), + M( 0x83b, 0x883d, 0, 0, 16, 16, 18, 0), + M( 0x7e6, 0x0, 0, 0, 1, 1, 0, 0), + M( 0x83e, 0x883f, 0, 0, 16, 16, 18, 0), + M( 0x83e, 0x883f, 0, 0, 16, 16, 18, 0), + M( 0x83e, 0x883f, 0, 0, 16, 16, 18, 0), + M( 0x7e6, 0x0, 0, 0, 1, 1, 0, 0), + M( 0x840, 0x841, 0, 0, 16, 16, 18, 0), + M( 0x840, 0x841, 0, 0, 16, 16, 18, 0), + M( 0x840, 0x841, 0, 0, 16, 16, 18, 0), + M( 0x7e6, 0x0, 0, 0, 1, 1, 0, 0), + M( 0x842, 0x843, 0, 0, 16, 16, 30, 0), + M( 0x842, 0x843, 0, 0, 16, 16, 30, 0), + M( 0x842, 0x843, 0, 0, 16, 16, 30, 0), + M( 0x7e6, 0x0, 0, 0, 1, 1, 0, 0), + M( 0x844, 0x845, 0, 0, 16, 16, 16, 0), + M( 0x844, 0x845, 0, 0, 16, 16, 16, 0), + M( 0x844, 0x845, 0, 0, 16, 16, 16, 0), + M( 0x7e6, 0x869, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86d, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86d, 0, 0, 16, 16, 50, 0), + M( 0x8862, 0x8866, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86a, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86e, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86e, 0, 0, 16, 16, 50, 0), + M( 0x8863, 0x8867, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86b, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86f, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86f, 0, 0, 16, 16, 50, 0), + M( 0x8864, 0x8868, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86c, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x870, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x870, 0, 0, 16, 16, 50, 0), + M( 0x8865, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xf54, 0x8871, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x8875, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x8875, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x8879, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x8872, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x8876, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x8876, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x887a, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x8873, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x8877, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x8877, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x887b, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x8874, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x8878, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x8878, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x887c, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x7ea, 3, 2, 8, 8, 18, 0), + M( 0xf54, 0x7eb, 3, 2, 8, 8, 37, 0), + M( 0xf54, 0x7ec, 3, 2, 8, 8, 49, 0), + M( 0x7e6, 0x7ec, 3, 2, 8, 8, 49, 0), + M( 0x7e6, 0x7ec, 3, 2, 8, 8, 49, 0), + M( 0x7e6, 0x7ed, 3, 2, 8, 8, 49, 0), + M( 0x7e6, 0x7ee, 3, 2, 8, 8, 49, 0), + M( 0x7e6, 0x7ee, 3, 2, 8, 8, 49, 0), + M( 0xf54, 0x7ef, 3, 2, 10, 7, 20, 0), + M( 0xf54, 0x7f0, 3, 2, 10, 7, 40, 0), + M( 0xf54, 0x7f1, 3, 2, 10, 7, 40, 0), + M( 0x7e6, 0x7f1, 3, 2, 10, 7, 40, 0), + M( 0xf54, 0x7f2, 4, 4, 7, 8, 22, 0), + M( 0xf54, 0x7f3, 4, 4, 7, 8, 22, 0), + M( 0xf54, 0x7f4, 4, 4, 7, 8, 22, 0), + M( 0x7e6, 0x7f4, 4, 4, 7, 8, 22, 0), + M( 0xf54, 0x7f5, 2, 1, 11, 13, 12, 0), + M( 0xf54, 0x7f6, 2, 1, 11, 13, 12, 0), + M( 0xf54, 0x7f7, 2, 1, 11, 13, 12, 0), + M( 0x7e6, 0x7f7, 2, 1, 11, 13, 12, 0), + M( 0x7e6, 0x85c, 0, 0, 1, 1, 1, 0), + M( 0x851, 0x852, 0, 0, 16, 16, 20, 0), + M( 0x851, 0x852, 0, 0, 16, 16, 20, 0), + M( 0x8846, 0x8847, 0, 0, 16, 16, 20, 0), + M( 0x7e6, 0x85d, 0, 0, 1, 1, 1, 0), + M( 0x853, 0x854, 0, 0, 16, 16, 20, 0), + M( 0x853, 0x854, 0, 0, 16, 16, 20, 0), + M( 0x8848, 0x8849, 0, 0, 16, 16, 20, 0), + M( 0x7e6, 0x85e, 0, 0, 1, 1, 1, 0), + M( 0x855, 0x856, 0, 0, 16, 16, 20, 0), + M( 0x855, 0x856, 0, 0, 16, 16, 20, 0), + M( 0x884a, 0x884b, 0, 0, 16, 16, 20, 0), + M( 0x7e6, 0x85f, 0, 0, 1, 1, 1, 0), + M( 0x857, 0x0, 0, 0, 1, 1, 0, 0), + M( 0x857, 0x0, 0, 0, 1, 1, 0, 0), + M( 0x884c, 0x0, 0, 0, 1, 1, 0, 0), + M( 0x7e6, 0x860, 0, 0, 1, 1, 1, 0), + M( 0x858, 0x859, 0, 0, 16, 16, 20, 0), + M( 0x858, 0x859, 0, 0, 16, 16, 20, 0), + M( 0x884d, 0x884e, 0, 0, 16, 16, 20, 0), + M( 0x7e6, 0x861, 0, 0, 1, 1, 1, 0), + M( 0x85a, 0x85b, 0, 0, 16, 16, 20, 0), + M( 0x85a, 0x85b, 0, 0, 16, 16, 20, 0), + M( 0x884f, 0x8850, 0, 0, 16, 16, 20, 0), + M( 0x7e6, 0x884, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x884, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x884, 0, 0, 16, 16, 25, 0), + M( 0x886, 0x884, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x885, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x885, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x885, 0, 0, 16, 16, 25, 0), + M( 0x887, 0x885, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x888c, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x888d, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x888d, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x888e, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x888f, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8890, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8890, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8891, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8892, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8893, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8893, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8894, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8895, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8896, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8896, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8897, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x898, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x899, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x899, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x89a, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8a6, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x89b, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x89c, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x89c, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x89d, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x89e, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x89f, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8a0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8a0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x89f, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8a0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8a1, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8a2, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8a3, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8a4, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8a2, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8a3, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8a5, 0, 0, 16, 16, 25, 0), + M( 0x8a7, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8b7, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8b7, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8c7, 0, 0, 16, 16, 25, 0), + M( 0x8a8, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8b8, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8b8, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8c8, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8a9, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8b9, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8b9, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8c9, 0, 0, 16, 16, 25, 0), + M( 0x8aa, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8ba, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8ba, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8ca, 0, 0, 16, 16, 25, 0), + M( 0x8ab, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8bb, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8bb, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8cb, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8ac, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8bc, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8bc, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8cc, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8ad, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8bd, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8bd, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8cd, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8ae, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8be, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8be, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8ce, 0x8d7, 0, 0, 16, 16, 35, 0), + M( 0x8af, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8bf, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8bf, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8cf, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8b0, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8c0, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8c0, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8d0, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8b1, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8c1, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8c1, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8d1, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8b2, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8c2, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8c2, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8d2, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8b3, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8c3, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8c3, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8d3, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8b4, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8c4, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8c4, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8d4, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8b5, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8c5, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8c5, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8d5, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8b6, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8c6, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8c6, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8d6, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8ce, 0x8d7, 0, 0, 16, 16, 35, 0), + M( 0x8ce, 0x8d8, 0, 0, 16, 16, 35, 0), + M( 0x8ce, 0x8d9, 0, 0, 16, 16, 35, 0), + M( 0x8ce, 0x8d9, 0, 0, 16, 16, 35, 0), + M( 0x7e6, 0x88a, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x88a, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x88a, 0, 0, 16, 16, 25, 0), + M( 0x888, 0x88a, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x88b, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x88b, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x88b, 0, 0, 16, 16, 25, 0), + M( 0x889, 0x88b, 0, 0, 16, 16, 25, 0), + M( 0x8da, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8e3, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8e3, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8ec, 0, 0, 16, 16, 25, 0), + M( 0x8db, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8e4, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8e4, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8ed, 0, 0, 16, 16, 25, 0), + M( 0x8dc, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8e5, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8e5, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8ee, 0, 0, 16, 16, 25, 0), + M( 0x8dd, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8e6, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8e6, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8ef, 0, 0, 16, 16, 25, 0), + M( 0x8de, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8e7, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8e7, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8f0, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8df, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8e8, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8e8, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8f1, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8e0, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8e9, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8e9, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x8f2, 0, 0, 16, 16, 25, 0), + M( 0x8e1, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8ea, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8ea, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8f3, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8e2, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8eb, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8eb, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8f4, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8f5, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x905, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x905, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x915, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8f6, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x906, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x906, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x916, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8f7, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x907, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x907, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x917, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8f8, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x908, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x908, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x918, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8f9, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x909, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x909, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x919, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8fa, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x90a, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x90a, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x91a, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8fb, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x90b, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x90b, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x91b, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8fc, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x90c, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x90c, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x91c, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8fd, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x90d, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x90d, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x91d, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8fe, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x90e, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x90e, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x91e, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x8ff, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x90f, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x90f, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x91f, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x900, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x910, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x910, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x920, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x901, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x911, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x911, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x921, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x902, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x912, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x912, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x922, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x903, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x913, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x913, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x923, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x904, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x914, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x914, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x924, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x925, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x925, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x925, 0x926, 0, 0, 16, 16, 30, 0), + M( 0x925, 0x926, 0, 0, 16, 16, 30, 0), + M( 0x925, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x925, 0x0, 0, 0, 16, 16, 25, 0), + M( 0x925, 0x927, 0, 0, 16, 16, 30, 0), + M( 0x925, 0x927, 0, 0, 16, 16, 30, 0), + M( 0x11c6, 0x892b, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x892c, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x892c, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x892d, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x892e, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x892f, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x892f, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x8930, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x8928, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x8929, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x8929, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x892a, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x869, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86d, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86d, 0, 0, 16, 16, 50, 0), + M( 0x8862, 0x8866, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86a, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86e, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86e, 0, 0, 16, 16, 50, 0), + M( 0x8863, 0x8867, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86b, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86f, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86f, 0, 0, 16, 16, 50, 0), + M( 0x8864, 0x8868, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x86c, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x870, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x870, 0, 0, 16, 16, 50, 0), + M( 0x8865, 0x0, 0, 0, 1, 1, 0, 0), + M( 0x7e6, 0x931, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x935, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x935, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x939, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x932, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x936, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x936, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x93a, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x933, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x937, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x937, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x93b, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x934, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x938, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x938, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x93c, 0, 0, 16, 16, 50, 0), + M( 0x81d, 0x818, 0, 0, 16, 16, 10, 0), + M( 0x81d, 0x819, 0, 0, 16, 16, 15, 0), + M( 0x81d, 0x81a, 0, 0, 16, 16, 31, 0), + M( 0x81d, 0x81b, 0, 0, 16, 16, 39, 0), + M( 0x81d, 0x81c, 0, 0, 16, 16, 7, 0), + M( 0x81d, 0x81c, 0, 0, 16, 16, 7, 0), + M( 0x81d, 0x81c, 0, 0, 16, 16, 7, 0), + M( 0x81d, 0x81c, 0, 0, 16, 16, 7, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x9245, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x9248, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x9248, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x924b, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x9247, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x924a, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x924a, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x924d, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x9246, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x9249, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x9249, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x924c, 0, 0, 16, 16, 50, 0), + M( 0x81d, 0x124e, 0, 0, 16, 16, 10, 0), + M( 0x81d, 0x124f, 0, 0, 16, 16, 10, 0), + M( 0x81d, 0x1250, 0, 0, 16, 16, 10, 0), + M( 0x81d, 0x1251, 0, 0, 16, 16, 10, 0), + M( 0x81d, 0x1252, 0, 0, 16, 16, 10, 0), + M( 0x81d, 0x1252, 0, 0, 16, 16, 10, 0), + M( 0x81d, 0x1252, 0, 0, 16, 16, 10, 0), + M( 0x81d, 0x1252, 0, 0, 16, 16, 10, 0), + M( 0x81d, 0x1253, 0, 0, 16, 16, 10, 0), + M( 0x81d, 0x1254, 0, 0, 16, 16, 10, 0), + M( 0x81d, 0x1254, 0, 0, 16, 16, 10, 0), + M( 0x81d, 0x1255, 0, 0, 16, 16, 10, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x125b, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x125e, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x125e, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x1261, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x125c, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x125f, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x125f, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x1262, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x125d, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x1260, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x1260, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x1263, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1264, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1264, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1268, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1265, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1265, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1269, 0, 0, 16, 16, 50, 4), + M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1266, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1266, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x126a, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1267, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1267, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x126b, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x126c, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1271, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1271, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1271, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1271, 0x1279, 0, 0, 16, 16, 50, 0), + M( 0x1272, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1272, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1272, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1272, 0x127a, 0, 0, 16, 16, 50, 0), + M( 0x1273, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1273, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1273, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1273, 0x127b, 0, 0, 16, 16, 50, 0), + M( 0x1274, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1274, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1274, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1274, 0x127c, 0, 0, 16, 16, 50, 0), + M( 0x1275, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1275, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1275, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1275, 0x127d, 0, 0, 16, 16, 50, 0), + M( 0x1276, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1276, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1276, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1276, 0x127e, 0, 0, 16, 16, 50, 0), + M( 0x1277, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1277, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1277, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1277, 0x127f, 0, 0, 16, 16, 50, 0), + M( 0x1278, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1278, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1278, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1278, 0x1280, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x9284, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x9283, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x9283, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x9286, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x9281, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x9282, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x9282, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x9285, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x30b9287, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x30b9287, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x30b9287, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x30b9288, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x30b9288, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x30b9288, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x30b9289, 0, 0, 16, 16, 50, 3), + M( 0x1243, 0x30b9289, 0, 0, 16, 16, 50, 3), + M( 0x1243, 0x30b9289, 0, 0, 16, 16, 50, 3), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x129b, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x129b, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x129b, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x129b, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x129c, 0, 0, 16, 16, 50, 2), + M( 0xf8d, 0x129c, 0, 0, 16, 16, 50, 2), + M( 0xf8d, 0x129c, 0, 0, 16, 16, 50, 2), + M( 0xf8d, 0x129c, 0, 0, 16, 16, 50, 2), + M( 0xf8d, 0x129d, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x129d, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x129d, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x129d, 0, 0, 16, 16, 50, 0), + M( 0x92a0, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x92a0, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x92a0, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x92a0, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x92a1, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x92a1, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x92a1, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x92a1, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x92a2, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x92a2, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x92a2, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x92a2, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x92a3, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x92a3, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x92a3, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x92a3, 0x0, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x0, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x0, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x0, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x0, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x92a4, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x92a4, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x92a4, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x92a4, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x92a6, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x92a6, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x92a6, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x92a6, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x92a5, 0, 0, 16, 16, 50, 1), + M( 0xf8d, 0x92a5, 0, 0, 16, 16, 50, 1), + M( 0xf8d, 0x92a5, 0, 0, 16, 16, 50, 1), + M( 0xf8d, 0x92a5, 0, 0, 16, 16, 50, 1), +}; + +static const DrawIndustrySpec1Struct _draw_industry_spec1[96] = { + { 8, 4, 0, 0}, + { 6, 0, 1, 0}, + { 4, 0, 2, 0}, + { 6, 0, 3, 0}, + { 8, 0, 4, 0}, + { 10, 0, 5, 0}, + { 12, 0, 6, 0}, + { 10, 0, 1, 0}, + { 8, 0, 2, 0}, + { 6, 0, 3, 0}, + { 4, 0, 4, 0}, + { 6, 0, 5, 1}, + { 8, 0, 6, 1}, + { 10, 0, 1, 1}, + { 12, 0, 2, 1}, + { 10, 0, 3, 1}, + { 8, 1, 4, 1}, + { 6, 1, 5, 1}, + { 4, 1, 6, 1}, + { 6, 1, 1, 1}, + { 8, 1, 2, 1}, + { 10, 1, 3, 1}, + { 12, 1, 4, 1}, + { 10, 1, 5, 2}, + { 8, 1, 6, 2}, + { 6, 1, 1, 2}, + { 4, 1, 2, 2}, + { 6, 1, 3, 2}, + { 8, 1, 4, 2}, + { 10, 1, 5, 2}, + { 12, 1, 6, 2}, + { 10, 1, 1, 2}, + { 8, 2, 2, 2}, + { 6, 2, 3, 2}, + { 4, 2, 4, 3}, + { 6, 2, 5, 3}, + { 8, 2, 6, 3}, + { 10, 2, 1, 3}, + { 12, 2, 2, 3}, + { 10, 2, 3, 3}, + { 8, 2, 4, 3}, + { 6, 2, 5, 3}, + { 4, 2, 6, 3}, + { 6, 2, 1, 3}, + { 8, 2, 2, 3}, + { 10, 2, 3, 4}, + { 12, 2, 4, 4}, + { 10, 2, 5, 4}, + { 8, 3, 6, 4}, + { 6, 3, 1, 4}, + { 4, 3, 2, 4}, + { 6, 3, 3, 4}, + { 8, 3, 4, 4}, + { 10, 3, 5, 4}, + { 12, 3, 6, 4}, + { 10, 3, 1, 4}, + { 8, 3, 2, 4}, + { 6, 3, 3, 4}, + { 4, 3, 4, 4}, + { 6, 3, 5, 4}, + { 8, 3, 6, 4}, + { 10, 3, 1, 4}, + { 12, 3, 2, 4}, + { 10, 3, 3, 4}, + { 8, 4, 4, 4}, + { 6, 4, 5, 4}, + { 4, 4, 6, 4}, + { 6, 4, 0, 4}, + { 8, 4, 0, 4}, + { 10, 4, 0, 4}, + { 12, 4, 0, 4}, + { 10, 4, 0, 4}, + { 8, 4, 0, 4}, + { 6, 4, 0, 4}, + { 4, 4, 0, 4}, + { 6, 4, 0, 4}, + { 8, 4, 0, 4}, + { 10, 4, 0, 4}, + { 12, 4, 0, 4}, + { 10, 4, 0, 4}, + { 8, 4, 0, 4}, + { 6, 4, 0, 4}, + { 4, 4, 0, 4}, + { 6, 4, 0, 4}, + { 8, 4, 0, 4}, + { 10, 4, 0, 4}, + { 12, 4, 0, 4}, + { 10, 4, 0, 4}, + { 8, 4, 0, 4}, + { 6, 4, 0, 4}, + { 4, 4, 0, 4}, + { 6, 4, 0, 4}, + { 8, 4, 0, 4}, + { 10, 4, 0, 4}, + { 12, 4, 0, 4}, + { 10, 4, 0, 4}, +}; + +static const byte _drawtile_proc1_x[5] = { + 22, 17, 14, 10, 8 +}; + +static const byte _drawtile_proc1_y[5] = { + 73, 70, 69, 66, 41 +}; + +static const DrawIndustrySpec4Struct _industry_anim_offs_3[] = { + {255, 255, 0}, + { 0, 255, 0}, + { 1, 255, 0}, + { 2, 255, 0}, + { 3, 255, 0}, + { 4, 255, 0}, + { 5, 255, 0}, + { 6, 255, 0}, + { 7, 255, 0}, + { 8, 255, 0}, + { 9, 255, 0}, + { 10, 255, 0}, + { 11, 255, 0}, + { 12, 255, 0}, + { 13, 255, 0}, + { 14, 255, 0}, + { 15, 255, 0}, + { 16, 255, 0}, + { 17, 255, 0}, + { 18, 255, 0}, + { 18, 255, 1}, + { 18, 255, 2}, + { 18, 255, 4}, + { 18, 255, 6}, + { 18, 255, 8}, + { 18, 255, 11}, + { 18, 255, 14}, + { 18, 255, 17}, + { 18, 255, 20}, + { 18, 255, 24}, + {255, 0, 29}, + {255, 0, 24}, + {255, 0, 20}, + {255, 0, 17}, + {255, 0, 14}, + {255, 0, 11}, + {255, 0, 8}, + {255, 0, 6}, + {255, 0, 4}, + {255, 0, 2}, + {255, 0, 1}, + {255, 1, 0}, + {255, 2, 0}, + {255, 3, 0}, + {255, 4, 0}, + {255, 5, 0}, + {255, 6, 0}, + {255, 7, 0}, + {255, 8, 0}, + {255, 255, 0}, +}; + +static const byte _industry_anim_offs[] = { + 255, 0, 0, 0, 2, 4, 6, 8, 10, 9, + 7, 5, 3, 1, 255, 0, 0, 0, 2, 4, + 6, 8, 10, 9, 7, 5, 3, 1, 255, 0, + 0, 0, 2, 4, 6, 8, 10, 9, 7, 5, + 3, 1, 255, 0, 0, 0, 2, 4, 6, 8, + 10, 9, 7, 5, 3, 1, 255, 0, 0, 0, + 2, 4, 6, 8, 10, 9, 7, 5, 3, 1 +}; + +static const byte _industry_anim_offs_2[] = { + 68, 69, 71, 74, 77, 80, 83, 85, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, + 86, 86, 85, 84, 83, 82, 81, 80, 79, 78, + 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, +}; + +static const byte _coal_plant_sparkles_x[] = {11, 11, 14, 13, 18, 15}; +static const byte _coal_plant_sparkles_y[] = {23, 11, 6, 3, 1, 0}; + +/* next frame in an animation */ +#define N 255 +static const byte _industry_map5_animation_next[] = { +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, 16, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, 129, N, N, N, N, N, +135, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, +}; + +/* animation to start when goods is produced */ +static const byte _industry_produce_map5[] = { +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +17, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, 130, N, N, N, N, N, 136, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, N, +N, N, N, N, N, N, N, +}; + +#undef N diff --git a/table/landscape_const.h b/table/landscape_const.h new file mode 100644 index 000000000..a438670ef --- /dev/null +++ b/table/landscape_const.h @@ -0,0 +1,215 @@ +static const LandscapePredefVar _landscape_predef_var[4] = { + { + /* normal names */ + { + STR_000F_PASSENGERS, + STR_0010_COAL, + STR_0011_MAIL, + STR_0012_OIL, + STR_0013_LIVESTOCK, + STR_0014_GOODS, + STR_0015_GRAIN, + STR_0016_WOOD, + STR_0017_IRON_ORE, + STR_0018_STEEL, + STR_0019_VALUABLES, + STR_000E, + }, + /* normal weights */ + { + 1, 16, 4, 16, 3, 8, 16, 16, 16, 16, 2, 0, + }, + + /* normal sprites */ + { + 0x10C9, 0x10CA, 0x10CB, 0x10CC, 0x10CD, 0x10CE, 0x10CF, 0x10D0, 0x10D1, 0x10D2, 0x10D3, + }, + + /* normal initial cargo payment */ + { + 3185, 5916, 4550, 4437, 4322, 6144, 4778, 5005, 5120, 5688, 7509, 5688 + }, + + /* normal transit days table 1 */ + { + 0, 7, 20, 25, 4, 5, 4, 15, 9, 7, 1, 0, + }, + + /* normal transit days table 2 */ + { + 24, 255, 90, 255, 18, 28, 40, 255, 255, 255, 32, 30, + }, + + /* normal railveh by cargo */ + { + {27, 29, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38}, + {57, 59, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68}, + {89, 91, 90, 92, 93, 94, 95, 96, 97, 98, 99, 100} + }, + + /* normal road veh by cargo start & count */ + {116, 123, 126, 132, 135, 138, 141, 144, 147, 150, 153, 156}, + {7, 3, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3} + }, + + { + /* hilly names */ + { + STR_000F_PASSENGERS, + STR_0010_COAL, + STR_0011_MAIL, + STR_0012_OIL, + STR_0013_LIVESTOCK, + STR_0014_GOODS, + STR_0022_WHEAT, + STR_0016_WOOD, + STR_000E, + STR_001F_PAPER, + STR_0020_GOLD, + STR_001E_FOOD, + }, + /* hilly weights */ + { + 1, 16, 4, 16, 3, 8, 16, 16, 0, 16, 8, 16 + }, + + /* hilly sprites */ + { + 0x10C9, 0x10CA, 0x10CB, 0x10CC, 0x10CD, 0x10CE, 0x10CF, 0x10D0, 0x2, 0x10D9, 0x10D3, 0x10D8 + }, + + /* hilly initial cargo payment */ + { + 3185, 5916, 4550, 4437, 4322, 6144, 4778, 5005, 5120, 5461, 5802, 5688 + }, + + /* hilly transit days table 1 */ + { + 0, 7, 20, 25, 4, 5, 4, 15, 9, 7, 10, 0, + }, + + /* hilly transit days table 2 */ + { + 24, 255, 90, 255, 18, 28, 40, 255, 255, 60, 40, 30 + }, + + /* hilly railveh by cargo */ + { + {27, 29, 28, 30, 31, 32, 33, 34, 35, 39, 37, 38}, + {57, 59, 58, 60, 61, 62, 63, 64, 65, 69, 67, 68}, + {89, 91, 90, 92, 93, 94, 95, 96, 97, 101, 99, 100} + }, + + + /* hilly road veh by cargo start & count */ + {116, 123, 126, 132, 135, 138, 141, 144, 147, 159, 153, 156}, + {7, 3, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3}, + }, + + + { + /* desert names */ + { + STR_000F_PASSENGERS, + STR_0023_RUBBER, + STR_0011_MAIL, + STR_0012_OIL, + STR_001C_FRUIT, + STR_0014_GOODS, + STR_001B_MAIZE, + STR_0016_WOOD, + STR_001A_COPPER_ORE, + STR_0021_WATER, + STR_001D_DIAMONDS, + STR_001E_FOOD + }, + /* desert weights */ + { + 1, 16, 4, 16, 16, 8, 16, 16, 16, 16, 2, 16, + }, + + /* desert sprites */ + { + 0x10C9, 0x10DA, 0x10CB, 0x10CC, 0x10D4, 0x10CE, 0x10CF, 0x10D0, 0x10D5, 0x10D6, 0x10D7, 0x10D8 + }, + + /* desert initial cargo payment */ + { + 3185, 4437, 4550, 4892, 4209, 6144, 4322, 7964, 4892, 4664, 5802, 5688 + }, + + /* desert transit days table 1 */ + { + 0, 2, 20, 25, 0, 5, 4, 15, 12, 20, 10, 0 + }, + + /* desert transit days table 2 */ + { + 24, 20, 90, 255, 15, 28, 40, 255, 255, 80, 255, 30 + }, + + /* desert railveh by cargo */ + { + {27, 43, 28, 30, 42, 32, 33, 34, 40, 41, 37, 38}, + {57, 73, 58, 60, 72, 62, 63, 64, 70, 71, 67, 68}, + {89, 105, 90, 92, 104, 94, 95, 96, 102, 103, 99, 100} + }, + + /* desert road veh by cargo start & count */ + {116, 171, 126, 132, 168, 138, 141, 144, 162, 165, 153, 156}, + {7, 3, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3} + }, + + { + /* candy names */ + { + STR_000F_PASSENGERS, + STR_0024_SUGAR, + STR_0011_MAIL, + STR_0025_TOYS, + STR_002B_BATTERIES, + STR_0026_CANDY, + STR_002A_TOFFEE, + STR_0027_COLA, + STR_0028_COTTON_CANDY, + STR_0029_BUBBLES, + STR_002C_PLASTIC, + STR_002D_FIZZY_DRINKS, + }, + /* candy weights */ + { + 1, 16, 4, 2, 4, 5, 16, 16, 16, 1, 16, 2 + }, + + /* candy sprites */ + { + 0x10C9, 0x10DC, 0x10CB, 0x10DD, 0x10E3, 0x10DB, 0x10E0, 0x10D6, 0x10DE, 0x10E1, 0x10E2, 0x10DF + }, + + /* candy initial cargo payment */ + { + 3185, 4437, 4550, 5574, 4322, 6144, 4778, 4892, 5005, 5077, 4664, 6250 + }, + + /* candy transit days table 1 */ + { + 0, 20, 20, 25, 2, 8, 14, 5, 10, 20, 30, 30, + }, + + /* candy transit days table 2 */ + { + 24, 255, 90, 255, 30, 40, 60, 75, 25, 80, 255, 50 + }, + + /* candy railveh by cargo */ + { + {27, 44, 28, 50, 51, 49, 46, 48, 45, 47, 53, 52}, + {57, 74, 58, 80, 81, 79, 76, 78, 75, 77, 83, 82}, + {89, 106, 90, 112, 113, 111, 108, 110, 107, 109, 115, 114} + }, + + /* candy road veh by cargo start & count */ + {116, 174, 126, 186, 192, 189, 183, 177, 180, 201, 198, 195}, + {7, 3, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3} + } +}; diff --git a/table/landscape_sprite.h b/table/landscape_sprite.h new file mode 100644 index 000000000..dfd9e84c8 --- /dev/null +++ b/table/landscape_sprite.h @@ -0,0 +1,134 @@ +static const SpriteID _landscape_spriteindexes_1[] = { + 0xF67, 0xF9F, + 0xAAD, 0xAB0, + 0x83A, 0x845, + 0xFA0, 0xFC9, + 0x43F, 0x45E, + 0x566, 0x56D, + 0x945, 0x94C, + 0x3ED, 0x40C, + 0x515, 0x51C, + 0x55A, 0x561, + 0x534, 0x546, + 0x93D, 0x944, + 0x955, 0x95C, + 0xFDD, 0xFEC, + 0x87D, 0x883, + 0xA2B, 0xA39, + 0x497, 0x4B0, + 0x572, 0x575, + 0x94D, 0x954, + 0x818, 0x81D, + 0x3DE, 0x3EB, +0x1212, 0x1212, +0xffff, +}; + +static const SpriteID _landscape_spriteindexes_2[] = { + 0xF67, 0xF9F, + 0xAAD, 0xAB0, + 0xFA0, 0xFC9, + 0x43F, 0x45E, + 0x566, 0x56D, + 0x945, 0x94C, + 0x3ED, 0x40C, + 0x515, 0x51C, + 0x55A, 0x561, + 0x547, 0x559, + 0x93D, 0x944, + 0x955, 0x95C, + 0xFDD, 0xFEC, + 0x87D, 0x883, + 0xA2B, 0xA39, + 0x497, 0x4B0, + 0x572, 0x575, + 0x94D, 0x954, + 0x5AE, 0x5AF, +0x118D, 0x11D8, + 0x534, 0x546, + 0x40D, 0x426, + 0x45F, 0x478, + 0x4B1, 0x4CA, + 0x95D, 0x97C, + 0x3DE, 0x3EB, + 0x562, 0x565, + 0x56E, 0x571, + 0x57A, 0x57D, + 0x83A, 0x845, + 0xFF5, 0xFF5, + 0xFF8, 0xFF8, +0x1212, 0x1212, +0xffff, +}; + +static const SpriteID _landscape_spriteindexes_3[] = { + 0xF54, 0xF9F, + 0xFDD, 0xFE5, + 0xFEC, 0xFEC, + 0xFA0, 0xFC9, + 0x818, 0x81D, + 0x521, 0x546, + 0x57E, 0x57F, + 0x3ED, 0x40C, + 0x43F, 0x45E, + 0x491, 0x4B0, + 0xA48, 0xA48, + 0x4FB, 0x50A, + 0x55A, 0x561, + 0x566, 0x56D, + 0x572, 0x579, + 0x427, 0x42C, + 0x479, 0x47E, + 0x4CB, 0x4D0, + 0x4EF, 0x4FA, + 0xE9D, 0xECC, + 0xF3D, 0xF40, + 0xB59, 0xB60, + 0xE5D, 0xE6C, + 0xA49, 0xA59, + 0xA63, 0xA68, + 0xA5A, 0xA62, + 0xA78, 0xA83, + 0xA69, 0xA77, + 0xA84, 0xAA3, + 0xAA7, 0xAAC, + 0xA2B, 0xA47, + 0x3DE, 0x3EB, + 0x47F, 0x488, + 0x4D1, 0x4DA, + 0x42D, 0x436, + 0x515, 0x51C, + 0x580, 0x585, + 0xC14, 0xCB3, + 0xAAD, 0xAB0, + 0xAB5, 0xB00, + 0xB69, 0xB70, + 0xB61, 0xB68, + 0xBC9, 0xBD0, + 0xBD9, 0xBE0, + 0xBA9, 0xBB0, + 0xBC1, 0xBC4, + 0x2D0, 0x2D0, + 0xAA5, 0xAA6, + 0x50F, 0x50F, + 0x2EA, 0x2EA, + 0x2ED, 0x2EE, + 0x512, 0x513, + 0x4EB, 0x4EE, + 0x4E7, 0x4EA, + 0x985, 0xA28, +0x10E4, 0x1133, + 0x93D, 0x95C, + 0x97D, 0x984, + 0x7DA, 0x7DA, + 0x2E6, 0x2E6, + 0x1, 0x1, + 0xE54, 0xE54, + 0x51F, 0x520, + 0x514, 0x514, + 0x511, 0x511, + 0x322, 0x322, + 0xffff, +}; + + diff --git a/table/palettes.h b/table/palettes.h new file mode 100644 index 000000000..f6ee1409b --- /dev/null +++ b/table/palettes.h @@ -0,0 +1,96 @@ +byte _palettes[4][256 * 3] = { +/* palette 1 */ +{ +0, 0, 0, 212, 0, 212, 212, 0, 212, 212, 0, 212, +212, 0, 212, 212, 0, 212, 212, 0, 212, 212, 0, 212, +212, 0, 212, 212, 0, 212, 168, 168, 168, 184, 184, 184, +200, 200, 200, 216, 216, 216, 232, 232, 232, 252, 252, 252, + 52, 60, 72, 68, 76, 92, 88, 96, 112, 108, 116, 132, +132, 140, 152, 156, 160, 172, 176, 184, 196, 204, 208, 220, + 48, 44, 4, 64, 60, 12, 80, 76, 20, 96, 92, 28, +120, 120, 64, 148, 148, 100, 176, 176, 132, 204, 204, 168, +100, 100, 100, 116, 116, 116, 104, 80, 44, 124, 104, 72, +152, 132, 92, 184, 160, 120, 212, 188, 148, 244, 220, 176, +132, 132, 132, 88, 4, 16, 112, 16, 32, 136, 32, 52, +160, 56, 76, 188, 84, 108, 204, 104, 124, 220, 132, 144, +236, 156, 164, 252, 188, 192, 252, 212, 0, 252, 232, 60, +252, 248, 128, 76, 40, 0, 96, 60, 8, 116, 88, 28, +136, 116, 56, 156, 136, 80, 176, 156, 108, 196, 180, 136, + 68, 24, 0, 96, 44, 4, 128, 68, 8, 156, 96, 16, +184, 120, 24, 212, 156, 32, 232, 184, 16, 252, 212, 0, +252, 248, 128, 252, 252, 192, 32, 4, 0, 64, 20, 8, + 84, 28, 16, 108, 44, 28, 128, 56, 40, 148, 72, 56, +168, 92, 76, 184, 108, 88, 196, 128, 108, 212, 148, 128, + 8, 52, 0, 16, 64, 0, 32, 80, 4, 48, 96, 4, + 64, 112, 12, 84, 132, 20, 104, 148, 28, 128, 168, 44, + 64, 64, 64, 44, 68, 32, 60, 88, 48, 80, 104, 60, +104, 124, 76, 128, 148, 92, 152, 176, 108, 180, 204, 124, + 16, 52, 24, 32, 72, 44, 56, 96, 72, 76, 116, 88, + 96, 136, 108, 120, 164, 136, 152, 192, 168, 184, 220, 200, + 32, 24, 0, 56, 28, 0, 80, 80, 80, 88, 52, 12, +104, 64, 24, 124, 84, 44, 140, 108, 64, 160, 128, 88, + 76, 40, 16, 96, 52, 24, 116, 68, 40, 136, 84, 56, +164, 96, 64, 184, 112, 80, 204, 128, 96, 212, 148, 112, +224, 168, 128, 236, 188, 148, 80, 28, 4, 100, 40, 20, +120, 56, 40, 140, 76, 64, 160, 100, 96, 184, 136, 136, + 36, 40, 68, 48, 52, 84, 64, 64, 100, 80, 80, 116, +100, 100, 136, 132, 132, 164, 172, 172, 192, 212, 212, 224, + 48, 48, 48, 64, 44, 144, 88, 64, 172, 104, 76, 196, +120, 88, 224, 140, 104, 252, 160, 136, 252, 188, 168, 252, + 0, 24, 108, 0, 36, 132, 0, 52, 160, 0, 72, 184, + 0, 96, 212, 24, 120, 220, 56, 144, 232, 88, 168, 240, +128, 196, 252, 188, 224, 252, 16, 64, 96, 24, 80, 108, + 40, 96, 120, 52, 112, 132, 80, 140, 160, 116, 172, 192, +156, 204, 220, 204, 240, 252, 172, 52, 52, 212, 52, 52, +252, 52, 52, 252, 100, 88, 252, 144, 124, 252, 184, 160, +252, 216, 200, 252, 244, 236, 72, 20, 112, 92, 44, 140, +112, 68, 168, 140, 100, 196, 168, 136, 224, 204, 180, 252, +204, 180, 252, 232, 208, 252, 60, 0, 0, 92, 0, 0, +128, 0, 0, 160, 0, 0, 196, 0, 0, 224, 0, 0, +252, 0, 0, 252, 80, 0, 252, 108, 0, 252, 136, 0, +252, 164, 0, 252, 192, 0, 252, 220, 0, 252, 252, 0, +204, 136, 8, 228, 144, 4, 252, 156, 0, 252, 176, 48, +252, 196, 100, 252, 216, 152, 8, 24, 88, 12, 36, 104, + 20, 52, 124, 28, 68, 140, 40, 92, 164, 56, 120, 188, + 72, 152, 216, 100, 172, 224, 92, 156, 52, 108, 176, 64, +124, 200, 76, 144, 224, 92, 224, 244, 252, 204, 240, 252, +180, 220, 236, 132, 188, 216, 88, 152, 172, 16, 16, 16, + 32, 32, 32, 8, 92, 104, 16, 100, 112, 24, 108, 120, + 32, 116, 128, 44, 124, 140, 92, 164, 184, 116, 180, 196, +148, 200, 216, 180, 220, 232, 216, 244, 252, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +252, 60, 0, 252, 80, 0, 252, 104, 0, 252, 128, 0, +252, 148, 0, 252, 172, 0, 252, 196, 0, 252, 0, 0, +252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +252, 228, 0, 148, 148, 148, 212, 0, 212, 212, 0, 212, +212, 0, 212, 212, 0, 212, 212, 0, 212, 212, 0, 212, +212, 0, 212, 212, 0, 212, 212, 0, 212, 252, 252, 252, +}}; + +#define GET_PALETTE(x) _palettes[x] + +typedef struct { + byte a[15]; + byte ac[15]; + byte lighthouse[12]; + byte oil_ref[21]; + byte e[15]; + byte b[45]; + byte bc[45]; +} ExtraPaletteValues; + +static const ExtraPaletteValues _extra_palette_values = { + {32, 68,112, 36, 72,116, 40, 76,120, 44, 80,124, 48, 84,128}, + {28,108,124, 32,112,128, 36,116,132, 40,120,136, 44,124,140}, + {240,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {252, 60, 0,252, 84, 0,252,108, 0,252,124, 0,252,148, 0, + 252,172, 0,252,196, 0}, + { 76, 24, 8,108, 44, 24,144, 72, 52,176,108, 84,212,148,128}, + {216,244,252,172,208,224,132,172,196,100,132,168, 72,100,144, + 72,100,144, 72,100,144, 72,100,144, 72,100,144, 72,100,144, + 72,100,144, 72,100,144,100,132,168,132,172,196,172,208,224}, + {216,244,252,180,220,232,148,200,216,116,180,196, 92,164,184, + 92,164,184, 92,164,184, 92,164,184, 92,164,184, 92,164,184, + 92,164,184, 92,164,184,116,180,196,148,200,216,180,220,232}, +}; + diff --git a/table/road_land.h b/table/road_land.h new file mode 100644 index 000000000..4c5ce66b8 --- /dev/null +++ b/table/road_land.h @@ -0,0 +1,278 @@ +#define TILE_SEQ_BEGIN(x) ADD_DWORD(x), +#define TILE_SEQ_LINE(a,b,c,d,e) ADD_DWORD(a), b,c,d,e, +#define TILE_SEQ_END() 0,0,0,0 + +static const byte _road_display_datas_0[] = { + TILE_SEQ_BEGIN(0xA4A) + TILE_SEQ_LINE(0x8584, 0, 15, 16, 1) + TILE_SEQ_END() +}; + +static const byte _road_display_datas_1[] = { + TILE_SEQ_BEGIN(0xA4A) + TILE_SEQ_LINE(0x580, 0, 0, 1, 16) + TILE_SEQ_LINE(0x8581, 15, 0, 1, 16) + TILE_SEQ_END() +}; + +static const byte _road_display_datas_2[] = { + TILE_SEQ_BEGIN(0xA4A) + TILE_SEQ_LINE(0x582, 0, 0, 16, 1) + TILE_SEQ_LINE(0x8583, 0, 15, 16, 1) + TILE_SEQ_END() +}; + +static const byte _road_display_datas_3[] = { + TILE_SEQ_BEGIN(0xA4A) + TILE_SEQ_LINE(0x8585, 15, 0, 1, 16) + TILE_SEQ_END() +}; + +static const byte * const _road_display_datas[4] = { + _road_display_datas_0, + _road_display_datas_1, + _road_display_datas_2, + _road_display_datas_3, +}; + + +static const SpriteID _road_tile_sprites_1[16] = { + 0, 0x546, 0x545, 0x53B, 0x544, 0x534, 0x53E, 0x539, + 0x543, 0x53C, 0x535, 0x538, 0x53D, 0x537, 0x53A, 0x536 +}; + + + +#define MAKELINE(a,b,c) ADD_WORD(a), b, c, +static const byte _road_display_datas2_0[] = { + 0,0 +}; + +static const byte _road_display_datas2_1[] = { + 0,0 +}; + +static const byte _road_display_datas2_2[] = { + 0,0 +}; + +static const byte _road_display_datas2_3[] = { + MAKELINE(0x57f,1,8) + 0,0 +}; + +static const byte _road_display_datas2_4[] = { + 0,0 +}; + +static const byte _road_display_datas2_5[] = { + MAKELINE(0x57f,1,8) + MAKELINE(0x57e,14,8) + 0,0 +}; + +static const byte _road_display_datas2_6[] = { + MAKELINE(0x57e,8,1) + 0,0 +}; + +static const byte _road_display_datas2_7[] = { + MAKELINE(0x57f,1,8) + 0,0 +}; + +static const byte _road_display_datas2_8[] = { + 0,0 +}; + +static const byte _road_display_datas2_9[] = { + MAKELINE(0x57f,8,14) + 0,0 +}; + +static const byte _road_display_datas2_10[] = { + MAKELINE(0x57f,8,14) + MAKELINE(0x57e,8,1) + 0,0 +}; + +static const byte _road_display_datas2_11[] = { + MAKELINE(0x57f,8,14) + 0,0 +}; + +static const byte _road_display_datas2_12[] = { + MAKELINE(0x57e,8,1) + 0,0 +}; + +static const byte _road_display_datas2_13[] = { + MAKELINE(0x57e,14,8) + 0,0 +}; + +static const byte _road_display_datas2_14[] = { + MAKELINE(0x57e,8,1) + 0,0 +}; + +static const byte _road_display_datas2_15[] = { + 0,0 +}; + +static const byte _road_display_datas2_16[] = { + 0,0 +}; + +static const byte _road_display_datas2_17[] = { + 0,0 +}; + +static const byte _road_display_datas2_18[] = { + 0,0 +}; + +static const byte _road_display_datas2_19[] = { + MAKELINE(0x1212,0,2) + MAKELINE(0x1212,3,9) + MAKELINE(0x1212,10,12) + 0,0 +}; + +static const byte _road_display_datas2_20[] = { + 0,0 +}; + +static const byte _road_display_datas2_21[] = { + MAKELINE(0x1212,0,2) + MAKELINE(0x1212,0,10) + MAKELINE(0x1212,12,2) + MAKELINE(0x1212,12,10) + 0,0 +}; + +static const byte _road_display_datas2_22[] = { + MAKELINE(0x1212,10,0) + MAKELINE(0x1212,3,3) + MAKELINE(0x1212,0,10) + 0,0 +}; + +static const byte _road_display_datas2_23[] = { + MAKELINE(0x1212,0,2) + MAKELINE(0x1212,0,10) + 0,0 +}; + +static const byte _road_display_datas2_24[] = { + 0,0 +}; + +static const byte _road_display_datas2_25[] = { + MAKELINE(0x1212,12,2) + MAKELINE(0x1212,9,9) + MAKELINE(0x1212,2,12) + 0,0 +}; + +static const byte _road_display_datas2_26[] = { + MAKELINE(0x1212,2,0) + MAKELINE(0x1212,10,0) + MAKELINE(0x1212,2,12) + MAKELINE(0x1212,10,12) + 0,0 +}; + +static const byte _road_display_datas2_27[] = { + MAKELINE(0x1212,2,12) + MAKELINE(0x1212,10,12) + 0,0 +}; + +static const byte _road_display_datas2_28[] = { + MAKELINE(0x1212,2,0) + MAKELINE(0x1212,9,3) + MAKELINE(0x1212,12,10) + 0,0 +}; + +static const byte _road_display_datas2_29[] = { + MAKELINE(0x1212,12,2) + MAKELINE(0x1212,12,10) + 0,0 +}; + +static const byte _road_display_datas2_30[] = { + MAKELINE(0x1212,2,0) + MAKELINE(0x1212,10,0) + 0,0 +}; + +static const byte _road_display_datas2_31[] = { + 0,0 +}; + +static const byte _road_display_datas2_32[] = { + 0,0 +}; + +#undef MAKELINE + +static const byte * const _road_display_table_1[16] = { + _road_display_datas2_32,_road_display_datas2_32, + _road_display_datas2_32,_road_display_datas2_32, + _road_display_datas2_32,_road_display_datas2_32, + _road_display_datas2_32,_road_display_datas2_32, + _road_display_datas2_32,_road_display_datas2_32, + _road_display_datas2_32,_road_display_datas2_32, + _road_display_datas2_32,_road_display_datas2_32, + _road_display_datas2_32,_road_display_datas2_32, +}; + +static const byte * const _road_display_table_2[16] = { + _road_display_datas2_0, + _road_display_datas2_1, + _road_display_datas2_2, + _road_display_datas2_3, + _road_display_datas2_4, + _road_display_datas2_5, + _road_display_datas2_6, + _road_display_datas2_7, + _road_display_datas2_8, + _road_display_datas2_9, + _road_display_datas2_10, + _road_display_datas2_11, + _road_display_datas2_12, + _road_display_datas2_13, + _road_display_datas2_14, + _road_display_datas2_15, +}; + +static const byte * const _road_display_table_3[16] = { + _road_display_datas2_16, + _road_display_datas2_17, + _road_display_datas2_18, + _road_display_datas2_19, + _road_display_datas2_20, + _road_display_datas2_21, + _road_display_datas2_22, + _road_display_datas2_23, + + _road_display_datas2_24, + _road_display_datas2_25, + _road_display_datas2_26, + _road_display_datas2_27, + _road_display_datas2_28, + _road_display_datas2_29, + _road_display_datas2_30, + _road_display_datas2_31, +}; + +static const byte* const * const _road_display_table[6] = { + _road_display_table_1, + _road_display_table_1, + _road_display_table_1, + _road_display_table_2, + _road_display_table_1, + _road_display_table_3, +}; diff --git a/table/roadveh.h b/table/roadveh.h new file mode 100644 index 000000000..8e2ac4cda --- /dev/null +++ b/table/roadveh.h @@ -0,0 +1,1075 @@ +static const RoadDriveEntry _roadveh_drive_data_0[] = { + {15,5}, + {14,5}, + {13,5}, + {12,5}, + {11,5}, + {10,5}, + {9,5}, + {8,5}, + {7,5}, + {6,5}, + {5,5}, + {4,5}, + {3,5}, + {2,5}, + {1,5}, + {0,5}, + {0x80,0} +}; +static const RoadDriveEntry _roadveh_drive_data_1[] = { + {5,0}, + {5,1}, + {5,2}, + {5,3}, + {5,4}, + {5,5}, + {5,6}, + {5,7}, + {5,8}, + {5,9}, + {5,10}, + {5,11}, + {5,12}, + {5,13}, + {5,14}, + {5,15}, + {0x81,0} +}; +static const RoadDriveEntry _roadveh_drive_data_2[] = { + {5,0}, + {5,1}, + {5,2}, + {4,3}, + {3,4}, + {2,5}, + {1,5}, + {0,5}, + {0x80,0} +}; +static const RoadDriveEntry _roadveh_drive_data_3[] = { + {15,5}, + {14,5}, + {13,5}, + {12,5}, + {11,5}, + {10,5}, + {9,6}, + {8,7}, + {7,8}, + {6,9}, + {5,10}, + {5,11}, + {5,12}, + {5,13}, + {5,14}, + {5,15}, + {0x81,0} +}; +static const RoadDriveEntry _roadveh_drive_data_4[] = { + {5,0}, + {5,1}, + {5,2}, + {5,3}, + {5,4}, + {5,5}, + {6,6}, + {7,7}, + {8,8}, + {9,9}, + {10,9}, + {11,9}, + {12,9}, + {13,9}, + {14,9}, + {15,9}, + {0x82,0} +}; +static const RoadDriveEntry _roadveh_drive_data_5[] = { + {0,9}, + {1,9}, + {2,9}, + {3,10}, + {4,11}, + {5,12}, + {5,13}, + {5,14}, + {5,15}, + {0x81,0} +}; +static const RoadDriveEntry _roadveh_drive_data_6[] = { + {0,6}, + {0,7}, + {0,8}, + {0,9}, + {0x42,0} +}; +static const RoadDriveEntry _roadveh_drive_data_7[] = { + {6,15}, + {7,15}, + {8,15}, + {9,15}, + {0x43,0} +}; +static const RoadDriveEntry _roadveh_drive_data_8[] = { + {0,9}, + {1,9}, + {2,9}, + {3,9}, + {4,9}, + {5,9}, + {6,9}, + {7,9}, + {8,9}, + {9,9}, + {10,9}, + {11,9}, + {12,9}, + {13,9}, + {14,9}, + {15,9}, + {0x82,0} +}; +static const RoadDriveEntry _roadveh_drive_data_9[] = { + {9,15}, + {9,14}, + {9,13}, + {9,12}, + {9,11}, + {9,10}, + {9,9}, + {9,8}, + {9,7}, + {9,6}, + {9,5}, + {9,4}, + {9,3}, + {9,2}, + {9,1}, + {9,0}, + {0x83,0} +}; +static const RoadDriveEntry _roadveh_drive_data_10[] = { + {0,9}, + {1,9}, + {2,9}, + {3,9}, + {4,9}, + {5,9}, + {6,8}, + {7,7}, + {8,6}, + {9,5}, + {9,4}, + {9,3}, + {9,2}, + {9,1}, + {9,0}, + {0x83,0} +}; +static const RoadDriveEntry _roadveh_drive_data_11[] = { + {9,15}, + {9,14}, + {9,13}, + {10,12}, + {11,11}, + {12,10}, + {13,9}, + {14,9}, + {15,9}, + {0x82,0} +}; +static const RoadDriveEntry _roadveh_drive_data_12[] = { + {15,5}, + {14,5}, + {13,5}, + {12,4}, + {11,3}, + {10,2}, + {9,1}, + {9,0}, + {0x83,0} +}; +static const RoadDriveEntry _roadveh_drive_data_13[] = { + {9,15}, + {9,14}, + {9,13}, + {9,12}, + {9,11}, + {9,10}, + {8,9}, + {7,8}, + {6,7}, + {5,6}, + {4,5}, + {3,5}, + {2,5}, + {1,5}, + {0,5}, + {0x80,0} +}; +static const RoadDriveEntry _roadveh_drive_data_14[] = { + {15,8}, + {15,7}, + {15,6}, + {15,5}, + {0x40,0} +}; +static const RoadDriveEntry _roadveh_drive_data_15[] = { + {8,0}, + {7,0}, + {6,0}, + {5,0}, + {0x41,0} +}; +static const RoadDriveEntry _roadveh_drive_data_16[] = { + {15,9}, + {14,9}, + {13,9}, + {12,9}, + {11,9}, + {10,9}, + {9,9}, + {8,9}, + {7,9}, + {6,9}, + {5,9}, + {4,9}, + {3,9}, + {2,9}, + {1,9}, + {0,9}, + {0x80,0} +}; +static const RoadDriveEntry _roadveh_drive_data_17[] = { + {9,0}, + {9,1}, + {9,2}, + {9,3}, + {9,4}, + {9,5}, + {9,6}, + {9,7}, + {9,8}, + {9,9}, + {9,10}, + {9,11}, + {9,12}, + {9,13}, + {9,14}, + {9,15}, + {0x81,0} +}; +static const RoadDriveEntry _roadveh_drive_data_18[] = { + {9,0}, + {9,1}, + {9,2}, + {9,3}, + {9,4}, + {9,5}, + {8,6}, + {7,7}, + {6,8}, + {5,9}, + {4,9}, + {3,9}, + {2,9}, + {1,9}, + {0,9}, + {0x80,0} +}; +static const RoadDriveEntry _roadveh_drive_data_19[] = { + {15,9}, + {14,9}, + {13,9}, + {12,10}, + {11,11}, + {10,12}, + {9,13}, + {9,14}, + {9,15}, + {0x81,0} +}; +static const RoadDriveEntry _roadveh_drive_data_20[] = { + {9,0}, + {9,1}, + {10,2}, + {11,3}, + {12,4}, + {13,5}, + {14,5}, + {15,5}, + {0x82,0} +}; +static const RoadDriveEntry _roadveh_drive_data_21[] = { + {0,5}, + {1,5}, + {2,5}, + {3,5}, + {4,5}, + {5,6}, + {6,7}, + {7,8}, + {8,9}, + {9,10}, + {9,11}, + {9,12}, + {9,13}, + {9,14}, + {9,15}, + {0x81,0} +}; +static const RoadDriveEntry _roadveh_drive_data_22[] = { + {0,8}, + {0,7}, + {0,6}, + {0,5}, + {0x42,0} +}; +static const RoadDriveEntry _roadveh_drive_data_23[] = { + {8,15}, + {7,15}, + {6,15}, + {5,15}, + {0x43,0} +}; +static const RoadDriveEntry _roadveh_drive_data_24[] = { + {0,5}, + {1,5}, + {2,5}, + {3,5}, + {4,5}, + {5,5}, + {6,5}, + {7,5}, + {8,5}, + {9,5}, + {10,5}, + {11,5}, + {12,5}, + {13,5}, + {14,5}, + {15,5}, + {0x82,0} +}; +static const RoadDriveEntry _roadveh_drive_data_25[] = { + {5,15}, + {5,14}, + {5,13}, + {5,12}, + {5,11}, + {5,10}, + {5,9}, + {5,8}, + {5,7}, + {5,6}, + {5,5}, + {5,4}, + {5,3}, + {5,2}, + {5,1}, + {5,0}, + {0x83,0} +}; +static const RoadDriveEntry _roadveh_drive_data_26[] = { + {0,5}, + {1,5}, + {2,5}, + {3,4}, + {4,3}, + {5,2}, + {5,1}, + {5,0}, + {0x83,0} +}; +static const RoadDriveEntry _roadveh_drive_data_27[] = { + {5,15}, + {5,14}, + {5,13}, + {5,12}, + {5,11}, + {5,10}, + {6,9}, + {7,8}, + {8,7}, + {9,6}, + {10,5}, + {11,5}, + {12,5}, + {13,5}, + {14,5}, + {15,5}, + {0x82,0} +}; +static const RoadDriveEntry _roadveh_drive_data_28[] = { + {15,9}, + {14,9}, + {13,9}, + {12,9}, + {11,9}, + {10,9}, + {9,9}, + {8,8}, + {7,7}, + {6,6}, + {5,5}, + {5,4}, + {5,3}, + {5,2}, + {5,1}, + {5,0}, + {0x83,0} +}; +static const RoadDriveEntry _roadveh_drive_data_29[] = { + {5,15}, + {5,14}, + {5,13}, + {5,12}, + {4,11}, + {3,10}, + {2,9}, + {1,9}, + {0,9}, + {0x80,0} +}; +static const RoadDriveEntry _roadveh_drive_data_30[] = { + {15,6}, + {15,7}, + {15,8}, + {15,9}, + {0x40,0} +}; +static const RoadDriveEntry _roadveh_drive_data_31[] = { + {6,0}, + {7,0}, + {8,0}, + {9,0}, + {0x41,0} +}; +static const RoadDriveEntry _roadveh_drive_data_32[] = { + {15,5}, + {14,5}, + {13,6}, + {13,7}, + {13,8}, + {13,9}, + {13,10}, + {13,11}, + {12,12}, + {11,12}, + {10,12}, + {9,12}, + {8,12}, + {7,12}, + {6,12}, + {5,11}, + {5,10}, + {5,9}, + {5,8}, + {5,7}, + {5,6}, + {5,7}, + {5,8}, + {5,9}, + {5,10}, + {5,11}, + {6,12}, + {7,12}, + {8,12}, + {9,12}, + {10,12}, + {11,12}, + {12,12}, + {13,11}, + {13,10}, + {14,9}, + {15,9}, + {0x82,0} +}; +static const RoadDriveEntry _roadveh_drive_data_33[] = { + {5,0}, + {5,1}, + {6,2}, + {7,2}, + {8,2}, + {9,2}, + {10,2}, + {11,2}, + {12,3}, + {12,4}, + {12,5}, + {12,6}, + {12,7}, + {12,8}, + {12,9}, + {11,10}, + {10,10}, + {9,10}, + {8,10}, + {7,10}, + {6,10}, + {7,10}, + {8,10}, + {9,10}, + {10,10}, + {11,10}, + {12,9}, + {12,8}, + {12,7}, + {12,6}, + {12,5}, + {12,4}, + {12,3}, + {11,2}, + {10,2}, + {9,1}, + {9,0}, + {0x83,0} +}; +static const RoadDriveEntry _roadveh_drive_data_34[] = { + {15,5}, + {14,5}, + {13,6}, + {13,7}, + {13,8}, + {13,9}, + {13,10}, + {13,11}, + {12,12}, + {11,12}, + {10,12}, + {9,11}, + {9,10}, + {9,9}, + {9,8}, + {9,7}, + {9,6}, + {9,7}, + {9,8}, + {9,9}, + {9,10}, + {9,11}, + {10,12}, + {11,12}, + {12,12}, + {13,11}, + {13,10}, + {14,9}, + {15,9}, + {0x82,0} +}; +static const RoadDriveEntry _roadveh_drive_data_35[] = { + {5,0}, + {5,1}, + {6,2}, + {7,2}, + {8,2}, + {9,2}, + {10,2}, + {11,2}, + {12,3}, + {12,4}, + {12,5}, + {11,6}, + {10,6}, + {9,6}, + {8,6}, + {7,6}, + {6,6}, + {7,6}, + {8,6}, + {9,6}, + {10,6}, + {11,6}, + {12,5}, + {12,4}, + {12,3}, + {11,2}, + {10,2}, + {9,1}, + {9,0}, + {0x83,0} +}; +static const RoadDriveEntry _roadveh_drive_data_40[] = { + {0,9}, + {1,9}, + {2,8}, + {2,7}, + {2,6}, + {2,5}, + {2,4}, + {3,3}, + {4,3}, + {5,3}, + {6,3}, + {7,3}, + {8,3}, + {9,3}, + {10,4}, + {10,5}, + {10,6}, + {10,7}, + {10,8}, + {10,9}, + {10,8}, + {10,7}, + {10,6}, + {10,5}, + {10,4}, + {9,3}, + {8,3}, + {7,3}, + {6,3}, + {5,3}, + {4,3}, + {3,3}, + {2,4}, + {1,5}, + {0,5}, + {0x80,0} +}; +static const RoadDriveEntry _roadveh_drive_data_41[] = { + {9,15}, + {9,14}, + {8,13}, + {7,13}, + {6,13}, + {5,13}, + {4,13}, + {3,12}, + {3,11}, + {3,10}, + {3,9}, + {3,8}, + {3,7}, + {3,6}, + {4,5}, + {5,5}, + {6,5}, + {7,5}, + {8,5}, + {9,5}, + {8,5}, + {7,5}, + {6,5}, + {5,5}, + {4,5}, + {3,6}, + {3,7}, + {3,8}, + {3,9}, + {3,10}, + {3,11}, + {3,12}, + {4,13}, + {5,14}, + {5,15}, + {0x81,0} +}; +static const RoadDriveEntry _roadveh_drive_data_42[] = { + {0,9}, + {1,9}, + {2,8}, + {2,7}, + {2,6}, + {2,5}, + {2,4}, + {3,3}, + {4,3}, + {5,3}, + {6,4}, + {6,5}, + {6,6}, + {6,7}, + {6,8}, + {6,9}, + {6,8}, + {6,7}, + {6,6}, + {6,5}, + {6,4}, + {5,3}, + {4,3}, + {3,3}, + {2,4}, + {1,5}, + {0,5}, + {0x80,0} +}; +static const RoadDriveEntry _roadveh_drive_data_43[] = { + {9,15}, + {9,14}, + {8,13}, + {7,13}, + {6,13}, + {5,13}, + {4,13}, + {3,12}, + {3,11}, + {3,10}, + {4,9}, + {5,9}, + {6,9}, + {7,9}, + {8,9}, + {9,9}, + {8,9}, + {7,9}, + {6,9}, + {5,9}, + {4,9}, + {3,10}, + {3,11}, + {3,12}, + {4,13}, + {5,14}, + {5,15}, + {0x81,0} +}; +static const RoadDriveEntry _roadveh_drive_data_48[] = { + {15,9}, + {14,9}, + {13,10}, + {13,11}, + {12,12}, + {11,12}, + {10,12}, + {9,12}, + {8,12}, + {7,12}, + {6,12}, + {5,11}, + {5,10}, + {5,9}, + {5,8}, + {5,7}, + {5,6}, + {5,7}, + {5,8}, + {5,9}, + {5,10}, + {5,11}, + {6,12}, + {7,12}, + {8,12}, + {9,12}, + {10,12}, + {11,12}, + {12,12}, + {13,11}, + {13,10}, + {13,9}, + {13,8}, + {13,7}, + {13,6}, + {14,5}, + {15,5}, + {0x82,0} +}; +static const RoadDriveEntry _roadveh_drive_data_49[] = { + {9,0}, + {9,1}, + {10,2}, + {11,2}, + {12,3}, + {12,4}, + {12,5}, + {12,6}, + {12,7}, + {12,8}, + {12,9}, + {11,10}, + {10,10}, + {9,10}, + {8,10}, + {7,10}, + {6,10}, + {7,10}, + {8,10}, + {9,10}, + {10,10}, + {11,10}, + {12,9}, + {12,8}, + {12,7}, + {12,6}, + {12,5}, + {12,4}, + {12,3}, + {11,2}, + {10,2}, + {9,2}, + {8,2}, + {7,2}, + {6,2}, + {5,1}, + {5,0}, + {0x83,0} +}; +static const RoadDriveEntry _roadveh_drive_data_50[] = { + {15,9}, + {14,9}, + {13,10}, + {13,11}, + {12,12}, + {11,12}, + {10,12}, + {9,11}, + {9,10}, + {9,9}, + {9,8}, + {9,7}, + {9,6}, + {9,7}, + {9,8}, + {9,9}, + {9,10}, + {9,11}, + {10,12}, + {11,12}, + {12,12}, + {13,11}, + {13,10}, + {13,9}, + {13,8}, + {13,7}, + {13,6}, + {14,5}, + {15,5}, + {0x82,0} +}; +static const RoadDriveEntry _roadveh_drive_data_51[] = { + {9,0}, + {9,1}, + {10,2}, + {11,2}, + {12,3}, + {12,4}, + {12,5}, + {11,6}, + {10,6}, + {9,6}, + {8,6}, + {7,6}, + {6,6}, + {7,6}, + {8,6}, + {9,6}, + {10,6}, + {11,6}, + {12,5}, + {12,4}, + {12,3}, + {11,2}, + {10,2}, + {9,2}, + {8,2}, + {7,2}, + {6,2}, + {5,1}, + {5,0}, + {0x83,0} +}; +static const RoadDriveEntry _roadveh_drive_data_56[] = { + {0,5}, + {1,5}, + {2,4}, + {3,3}, + {4,3}, + {5,3}, + {6,3}, + {7,3}, + {8,3}, + {9,3}, + {10,4}, + {10,5}, + {10,6}, + {10,7}, + {10,8}, + {10,9}, + {10,8}, + {10,7}, + {10,6}, + {10,5}, + {10,4}, + {9,3}, + {8,3}, + {7,3}, + {6,3}, + {5,3}, + {4,3}, + {3,3}, + {2,4}, + {2,5}, + {2,6}, + {2,7}, + {2,8}, + {1,9}, + {0,9}, + {0x80,0} +}; +static const RoadDriveEntry _roadveh_drive_data_57[] = { + {5,15}, + {5,14}, + {4,13}, + {3,12}, + {3,11}, + {3,10}, + {3,9}, + {3,8}, + {3,7}, + {3,6}, + {4,5}, + {5,5}, + {6,5}, + {7,5}, + {8,5}, + {9,5}, + {8,5}, + {7,5}, + {6,5}, + {5,5}, + {4,5}, + {3,6}, + {3,7}, + {3,8}, + {3,9}, + {3,10}, + {3,11}, + {3,12}, + {4,13}, + {5,13}, + {6,13}, + {7,13}, + {8,13}, + {9,14}, + {9,15}, + {0x81,0} +}; +static const RoadDriveEntry _roadveh_drive_data_58[] = { + {0,5}, + {1,5}, + {2,4}, + {3,3}, + {4,3}, + {5,3}, + {6,4}, + {6,5}, + {6,6}, + {6,7}, + {6,8}, + {6,9}, + {6,8}, + {6,7}, + {6,6}, + {6,5}, + {6,4}, + {5,3}, + {4,3}, + {3,3}, + {2,4}, + {2,5}, + {2,6}, + {2,7}, + {2,8}, + {1,9}, + {0,9}, + {0x80,0} +}; +static const RoadDriveEntry _roadveh_drive_data_59[] = { + {5,15}, + {5,14}, + {4,13}, + {3,12}, + {3,11}, + {3,10}, + {4,9}, + {5,9}, + {6,9}, + {7,9}, + {8,9}, + {9,9}, + {8,9}, + {7,9}, + {6,9}, + {5,9}, + {4,9}, + {3,10}, + {3,11}, + {3,12}, + {4,13}, + {5,13}, + {6,13}, + {7,13}, + {8,13}, + {9,14}, + {9,15}, + {0x81,0} +}; + +static const RoadDriveEntry * const _road_drive_data[] = { + _roadveh_drive_data_0, + _roadveh_drive_data_1, + _roadveh_drive_data_2, + _roadveh_drive_data_3, + _roadveh_drive_data_4, + _roadveh_drive_data_5, + _roadveh_drive_data_6, + _roadveh_drive_data_7, + _roadveh_drive_data_8, + _roadveh_drive_data_9, + _roadveh_drive_data_10, + _roadveh_drive_data_11, + _roadveh_drive_data_12, + _roadveh_drive_data_13, + _roadveh_drive_data_14, + _roadveh_drive_data_15, + _roadveh_drive_data_16, + _roadveh_drive_data_17, + _roadveh_drive_data_18, + _roadveh_drive_data_19, + _roadveh_drive_data_20, + _roadveh_drive_data_21, + _roadveh_drive_data_22, + _roadveh_drive_data_23, + _roadveh_drive_data_24, + _roadveh_drive_data_25, + _roadveh_drive_data_26, + _roadveh_drive_data_27, + _roadveh_drive_data_28, + _roadveh_drive_data_29, + _roadveh_drive_data_30, + _roadveh_drive_data_31, + _roadveh_drive_data_32, + _roadveh_drive_data_33, + _roadveh_drive_data_34, + _roadveh_drive_data_35, + NULL, + NULL, + NULL, + NULL, + _roadveh_drive_data_40, + _roadveh_drive_data_41, + _roadveh_drive_data_42, + _roadveh_drive_data_43, + NULL, + NULL, + NULL, + NULL, + _roadveh_drive_data_48, + _roadveh_drive_data_49, + _roadveh_drive_data_50, + _roadveh_drive_data_51, + NULL, + NULL, + NULL, + NULL, + _roadveh_drive_data_56, + _roadveh_drive_data_57, + _roadveh_drive_data_58, + _roadveh_drive_data_59, + NULL, + NULL, + NULL, + NULL, +}; diff --git a/table/station_land.h b/table/station_land.h new file mode 100644 index 000000000..772d9cf48 --- /dev/null +++ b/table/station_land.h @@ -0,0 +1,885 @@ +#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() +}; + +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) + 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) + 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) + 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) + 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) + TILE_SEQ_END() +}; + +static const byte _station_display_datas_79[] = { + TILE_SEQ_BEGIN(0xFE2) + TILE_SEQ_LINE( 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) + TILE_SEQ_END() +}; + +static const byte _station_display_datas_81[] = { + TILE_SEQ_BEGIN(0xFDD) + TILE_SEQ_LINE( 4, 0, 0, 8, 16, 8, 0xAAC) + TILE_SEQ_END() +}; + +static const byte _station_display_datas_82[] = { + TILE_SEQ_BEGIN(0xFEC) + TILE_SEQ_END() +}; + +// end of runway +const byte _station_display_datas_083[] = { + TILE_SEQ_BEGIN(0xA59) + TILE_SEQ_END() +}; + +// runway tiles +const byte _station_display_datas_084[] = { + TILE_SEQ_BEGIN(0xA56) + 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 + 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) + 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) + 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 + 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 + TILE_SEQ_END() +}; + +// turning radar with concrete underground fences on south -- needs 12 tiles +//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) + 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) + 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) + 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) + 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) + 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) + TILE_SEQ_END() +}; +//END + +// turning radar with concrete underground fences on north -- needs 12 tiles +//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) + 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) + 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) + 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) + 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) + 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) + 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, +}; diff --git a/table/town_land.h b/table/town_land.h new file mode 100644 index 000000000..f7c28accc --- /dev/null +++ b/table/town_land.h @@ -0,0 +1,2169 @@ +#define M(s1,s2,sx,sy,w,h,dz,p) {s1,s2,(sx<<4)|sy,((w-1)<<4)|(h-1),dz,p} + +static const DrawTownTileStruct _town_draw_tile_data[] = { + M( 0xf54, 0x58d, 0, 0, 14, 14, 8, 0), + M( 0xf54, 0x58e, 0, 0, 14, 14, 60, 0), + M( 0xf54, 0x58f, 0, 0, 14, 14, 60, 0), + M( 0x590, 0x58f, 0, 0, 14, 14, 60, 0), + M( 0xf54, 0x58d, 0, 0, 14, 14, 8, 0), + M( 0xf54, 0x58e, 0, 0, 14, 14, 60, 0), + M( 0xf54, 0x591, 0, 0, 14, 14, 60, 0), + M( 0x590, 0x591, 0, 0, 14, 14, 60, 0), + M( 0xf54, 0x31d858d, 0, 0, 14, 14, 8, 0), + M( 0xf54, 0x31d858e, 0, 0, 14, 14, 60, 0), + M( 0xf54, 0x31d8591, 0, 0, 14, 14, 60, 0), + M( 0x590, 0x31d8591, 0, 0, 14, 14, 60, 0), + M( 0xf54, 0x320858d, 0, 0, 14, 14, 8, 0), + M( 0xf54, 0x320858e, 0, 0, 14, 14, 60, 0), + M( 0xf54, 0x3208591, 0, 0, 14, 14, 60, 0), + M( 0x590, 0x3208591, 0, 0, 14, 14, 60, 0), + M( 0xf54, 0x592, 0, 0, 14, 16, 11, 0), + M( 0xf54, 0x593, 0, 0, 14, 16, 33, 0), + M( 0xf54, 0x594, 0, 0, 14, 16, 33, 0), + M( 0x595, 0x594, 0, 0, 14, 16, 33, 0), + M( 0xf54, 0x31d8592, 0, 0, 16, 16, 11, 0), + M( 0xf54, 0x31d8593, 0, 0, 16, 16, 33, 0), + M( 0xf54, 0x31d8594, 0, 0, 16, 16, 33, 0), + M( 0x595, 0x31d8594, 0, 0, 16, 16, 33, 0), + M( 0xf54, 0x3208592, 0, 0, 16, 16, 11, 0), + M( 0xf54, 0x3208593, 0, 0, 16, 16, 33, 0), + M( 0xf54, 0x3208594, 0, 0, 16, 16, 33, 0), + M( 0x595, 0x3208594, 0, 0, 16, 16, 33, 0), + M( 0xf54, 0x31c8592, 0, 0, 16, 16, 11, 0), + M( 0xf54, 0x31c8593, 0, 0, 16, 16, 33, 0), + M( 0xf54, 0x31c8594, 0, 0, 16, 16, 33, 0), + M( 0x595, 0x31c8594, 0, 0, 16, 16, 33, 0), + M( 0xf54, 0x596, 0, 0, 12, 12, 6, 0), + M( 0xf54, 0x597, 0, 0, 12, 12, 17, 0), + M( 0xf54, 0x598, 0, 0, 12, 12, 17, 0), + M( 0x599, 0x598, 0, 0, 12, 12, 17, 0), + M( 0xf54, 0x596, 0, 0, 12, 12, 6, 0), + M( 0xf54, 0x597, 0, 0, 12, 12, 17, 0), + M( 0xf54, 0x598, 0, 0, 12, 12, 17, 0), + M( 0x599, 0x598, 0, 0, 12, 12, 17, 0), + M( 0xf54, 0x596, 0, 0, 12, 12, 6, 0), + M( 0xf54, 0x597, 0, 0, 12, 12, 17, 0), + M( 0xf54, 0x598, 0, 0, 12, 12, 17, 0), + M( 0x599, 0x598, 0, 0, 12, 12, 17, 0), + M( 0xf54, 0x596, 0, 0, 12, 12, 6, 0), + M( 0xf54, 0x597, 0, 0, 12, 12, 17, 0), + M( 0xf54, 0x598, 0, 0, 12, 12, 17, 0), + M( 0x599, 0x598, 0, 0, 12, 12, 17, 0), + M( 0xf54, 0x59a, 0, 0, 14, 16, 16, 0), + M( 0xf54, 0x59b, 0, 0, 14, 16, 22, 0), + M( 0xf54, 0x59c, 0, 0, 14, 16, 35, 0), + M( 0x59d, 0x59c, 0, 0, 14, 16, 35, 0), + M( 0xf54, 0x59e859a, 0, 0, 14, 16, 16, 0), + M( 0xf54, 0x59e859b, 0, 0, 14, 16, 22, 0), + M( 0xf54, 0x59e859c, 0, 0, 14, 16, 35, 0), + M( 0x59d, 0x59e859c, 0, 0, 14, 16, 35, 0), + M( 0xf54, 0x59f859a, 0, 0, 14, 16, 16, 0), + M( 0xf54, 0x59f859b, 0, 0, 14, 16, 22, 0), + M( 0xf54, 0x59f859c, 0, 0, 14, 16, 35, 0), + M( 0x59d, 0x59f859c, 0, 0, 14, 16, 35, 0), + M( 0xf54, 0x59f859a, 0, 0, 14, 16, 16, 0), + M( 0xf54, 0x59f859b, 0, 0, 14, 16, 22, 0), + M( 0xf54, 0x59f859c, 0, 0, 14, 16, 35, 0), + M( 0x59d, 0x59f859c, 0, 0, 14, 16, 35, 0), + M( 0xf54, 0x5a0, 0, 0, 15, 15, 5, 0), + M( 0xf54, 0x5a1, 0, 0, 15, 15, 53, 0), + M( 0xf54, 0x5a2, 0, 0, 15, 15, 53, 0), + M( 0x58c, 0x5a2, 0, 0, 15, 15, 53, 1), + M( 0xf54, 0x5a0, 0, 0, 15, 15, 5, 0), + M( 0xf54, 0x5a1, 0, 0, 15, 15, 53, 0), + M( 0xf54, 0x5a2, 0, 0, 15, 15, 53, 0), + M( 0x58c, 0x5a2, 0, 0, 15, 15, 53, 1), + M( 0xf54, 0x5a0, 0, 0, 15, 15, 5, 0), + M( 0xf54, 0x5a1, 0, 0, 15, 15, 53, 0), + M( 0xf54, 0x5a2, 0, 0, 15, 15, 53, 0), + M( 0x58c, 0x5a2, 0, 0, 15, 15, 53, 1), + M( 0xf54, 0x5a0, 0, 0, 15, 15, 5, 0), + M( 0xf54, 0x5a1, 0, 0, 15, 15, 53, 0), + M( 0xf54, 0x5a2, 0, 0, 15, 15, 53, 0), + M( 0x58c, 0x5a2, 0, 0, 15, 15, 53, 1), + M( 0xf54, 0x5a0, 0, 0, 15, 15, 5, 0), + M( 0xf54, 0x5a1, 0, 0, 15, 15, 53, 0), + M( 0xf54, 0x11d9, 0, 0, 15, 15, 53, 0), + M( 0x58c, 0x11d9, 0, 0, 15, 15, 53, 1), + M( 0xf54, 0x5a0, 0, 0, 15, 15, 5, 0), + M( 0xf54, 0x5a1, 0, 0, 15, 15, 53, 0), + M( 0xf54, 0x11d9, 0, 0, 15, 15, 53, 0), + M( 0x58c, 0x11d9, 0, 0, 15, 15, 53, 1), + M( 0xf54, 0x5a0, 0, 0, 15, 15, 5, 0), + M( 0xf54, 0x5a1, 0, 0, 15, 15, 53, 0), + M( 0xf54, 0x11d9, 0, 0, 15, 15, 53, 0), + M( 0x58c, 0x11d9, 0, 0, 15, 15, 53, 1), + M( 0xf54, 0x5a0, 0, 0, 15, 15, 5, 0), + M( 0xf54, 0x5a1, 0, 0, 15, 15, 53, 0), + M( 0xf54, 0x11d9, 0, 0, 15, 15, 53, 0), + M( 0x58c, 0x11d9, 0, 0, 15, 15, 53, 1), + M( 0xf54, 0x5a4, 0, 0, 16, 16, 16, 0), + M( 0xf54, 0x5a5, 0, 0, 16, 16, 16, 0), + M( 0xf54, 0x5a6, 0, 0, 16, 16, 16, 0), + M( 0x5a7, 0x5a6, 0, 0, 16, 16, 16, 0), + M( 0xf54, 0x5a4, 0, 0, 16, 16, 16, 0), + M( 0xf54, 0x5a5, 0, 0, 16, 16, 16, 0), + M( 0xf54, 0x5a6, 0, 0, 16, 16, 16, 0), + M( 0x5a7, 0x5a6, 0, 0, 16, 16, 16, 0), + M( 0x5dd, 0x5de, 0, 0, 16, 16, 16, 0), + M( 0x5df, 0x5e0, 0, 0, 16, 16, 16, 0), + M( 0x5e1, 0x5e2, 0, 0, 16, 16, 16, 0), + M( 0x5e1, 0x5e2, 0, 0, 16, 16, 16, 0), + M( 0x5dd, 0x5de, 0, 0, 16, 16, 16, 0), + M( 0x5df, 0x5e0, 0, 0, 16, 16, 16, 0), + M( 0x5e1, 0x5e2, 0, 0, 16, 16, 16, 0), + M( 0x5e1, 0x5e2, 0, 0, 16, 16, 16, 0), + M( 0xf54, 0x5a8, 0, 0, 16, 16, 15, 0), + M( 0xf54, 0x5a9, 0, 0, 16, 16, 38, 0), + M( 0xf54, 0x5aa, 0, 0, 16, 16, 45, 0), + M( 0x58c, 0x5aa, 0, 0, 16, 16, 45, 0), + M( 0xf54, 0x5a8, 0, 0, 16, 16, 15, 0), + M( 0xf54, 0x5a9, 0, 0, 16, 16, 38, 0), + M( 0xf54, 0x5aa, 0, 0, 16, 16, 45, 0), + M( 0x58c, 0x5aa, 0, 0, 16, 16, 45, 0), + M( 0xf54, 0x5a8, 0, 0, 16, 16, 15, 0), + M( 0xf54, 0x5a9, 0, 0, 16, 16, 38, 0), + M( 0xf54, 0x5aa, 0, 0, 16, 16, 45, 0), + M( 0x58c, 0x5aa, 0, 0, 16, 16, 45, 0), + M( 0xf54, 0x5a8, 0, 0, 16, 16, 15, 0), + M( 0xf54, 0x5a9, 0, 0, 16, 16, 38, 0), + M( 0xf54, 0x5aa, 0, 0, 16, 16, 45, 0), + M( 0x58c, 0x5aa, 0, 0, 16, 16, 45, 0), + M( 0xf54, 0x5ab, 0, 0, 16, 16, 15, 0), + M( 0xf54, 0x5ac, 0, 0, 16, 16, 38, 0), + M( 0xf54, 0x5ad, 0, 0, 16, 16, 45, 0), + M( 0x58c, 0x5ad, 0, 0, 16, 16, 45, 0), + M( 0xf54, 0x5ab, 0, 0, 16, 16, 15, 0), + M( 0xf54, 0x5ac, 0, 0, 16, 16, 38, 0), + M( 0xf54, 0x5ad, 0, 0, 16, 16, 45, 0), + M( 0x58c, 0x5ad, 0, 0, 16, 16, 45, 0), + M( 0xf54, 0x5ab, 0, 0, 16, 16, 15, 0), + M( 0xf54, 0x5ac, 0, 0, 16, 16, 38, 0), + M( 0xf54, 0x5ad, 0, 0, 16, 16, 45, 0), + M( 0x58c, 0x5ad, 0, 0, 16, 16, 45, 0), + M( 0xf54, 0x5ab, 0, 0, 16, 16, 15, 0), + M( 0xf54, 0x5ac, 0, 0, 16, 16, 38, 0), + M( 0xf54, 0x5ad, 0, 0, 16, 16, 45, 0), + M( 0x58c, 0x5ad, 0, 0, 16, 16, 45, 0), + M( 0xf54, 0x0, 6, 5, 3, 6, 8, 0), + M( 0x58c, 0x0, 6, 5, 3, 6, 8, 0), + M( 0x58c, 0x5ae, 6, 5, 3, 6, 8, 0), + M( 0x58c, 0x5ae, 6, 5, 3, 6, 8, 0), + M( 0xf54, 0x0, 6, 5, 3, 6, 8, 0), + M( 0x58c, 0x0, 6, 5, 3, 6, 8, 0), + M( 0x58c, 0x5ae, 6, 5, 3, 6, 8, 0), + M( 0x58c, 0x5ae, 6, 5, 3, 6, 8, 0), + M( 0xf54, 0x0, 6, 5, 3, 6, 8, 0), + M( 0x58c, 0x0, 6, 5, 3, 6, 8, 0), + M( 0x58c, 0x5ae, 6, 5, 3, 6, 8, 0), + M( 0x58c, 0x5ae, 6, 5, 3, 6, 8, 0), + M( 0xf54, 0x0, 6, 5, 3, 6, 8, 0), + M( 0x58c, 0x0, 6, 5, 3, 6, 8, 0), + M( 0x58c, 0x5ae, 6, 5, 3, 6, 8, 0), + M( 0x58c, 0x5ae, 6, 5, 3, 6, 8, 0), + M( 0xf54, 0x0, 3, 3, 9, 9, 8, 0), + M( 0x58c, 0x0, 3, 3, 9, 9, 8, 0), + M( 0x58c, 0x5af, 3, 3, 9, 9, 8, 0), + M( 0x58c, 0x5af, 3, 3, 9, 9, 8, 0), + M( 0xf54, 0x0, 3, 3, 9, 9, 8, 0), + M( 0x58c, 0x0, 3, 3, 9, 9, 8, 0), + M( 0x58c, 0x5af, 3, 3, 9, 9, 8, 0), + M( 0x58c, 0x5af, 3, 3, 9, 9, 8, 0), + M( 0xf54, 0x0, 3, 3, 9, 9, 8, 0), + M( 0x58c, 0x0, 3, 3, 9, 9, 8, 0), + M( 0x58c, 0x5af, 3, 3, 9, 9, 8, 0), + M( 0x58c, 0x5af, 3, 3, 9, 9, 8, 0), + M( 0xf54, 0x0, 3, 3, 9, 9, 8, 0), + M( 0x58c, 0x0, 3, 3, 9, 9, 8, 0), + M( 0x58c, 0x5af, 3, 3, 9, 9, 8, 0), + M( 0x58c, 0x5af, 3, 3, 9, 9, 8, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b0, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b0, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b0, 0, 0, 16, 16, 15, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b0, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b0, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b0, 0, 0, 16, 16, 15, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b0, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b0, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b0, 0, 0, 16, 16, 15, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b0, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b0, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b0, 0, 0, 16, 16, 15, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b1, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b1, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b1, 0, 0, 16, 16, 15, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b1, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b1, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b1, 0, 0, 16, 16, 15, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b1, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b1, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b1, 0, 0, 16, 16, 15, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b1, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b1, 0, 0, 16, 16, 15, 0), + M( 0xf8d, 0x5b1, 0, 0, 16, 16, 15, 0), + M( 0xf54, 0x5b2, 0, 0, 16, 16, 8, 0), + M( 0xf54, 0x5b3, 0, 0, 16, 16, 42, 0), + M( 0xf54, 0x5b4, 0, 0, 16, 16, 42, 0), + M( 0x58c, 0x5b4, 0, 0, 16, 16, 42, 0), + M( 0xf54, 0x31d85b2, 0, 0, 16, 16, 8, 0), + M( 0xf54, 0x31d85b3, 0, 0, 16, 16, 42, 0), + M( 0xf54, 0x31d85b4, 0, 0, 16, 16, 42, 0), + M( 0x58c, 0x31d85b4, 0, 0, 16, 16, 42, 0), + M( 0xf54, 0x31e85b2, 0, 0, 16, 16, 8, 0), + M( 0xf54, 0x31e85b3, 0, 0, 16, 16, 42, 0), + M( 0xf54, 0x31e85b4, 0, 0, 16, 16, 42, 0), + M( 0x58c, 0x31e85b4, 0, 0, 16, 16, 42, 0), + M( 0xf54, 0x31c85b2, 0, 0, 16, 16, 8, 0), + M( 0xf54, 0x31c85b3, 0, 0, 16, 16, 42, 0), + M( 0xf54, 0x31c85b4, 0, 0, 16, 16, 42, 0), + M( 0x58c, 0x31c85b4, 0, 0, 16, 16, 42, 0), + M( 0xf54, 0x5b5, 1, 3, 14, 11, 7, 0), + M( 0xf54, 0x5b6, 1, 3, 14, 11, 53, 0), + M( 0xf54, 0x5b7, 1, 3, 14, 11, 53, 0), + M( 0x58c, 0x5b7, 1, 3, 14, 11, 53, 0), + M( 0xf54, 0x5b5, 1, 3, 14, 11, 7, 0), + M( 0xf54, 0x5b6, 1, 3, 14, 11, 53, 0), + M( 0xf54, 0x5b7, 1, 3, 14, 11, 53, 0), + M( 0x58c, 0x5b7, 1, 3, 14, 11, 53, 0), + M( 0xf54, 0x5b5, 1, 3, 14, 11, 7, 0), + M( 0xf54, 0x5b6, 1, 3, 14, 11, 53, 0), + M( 0xf54, 0x5b7, 1, 3, 14, 11, 53, 0), + M( 0x58c, 0x5b7, 1, 3, 14, 11, 53, 0), + M( 0xf54, 0x5b5, 1, 3, 14, 11, 7, 0), + M( 0xf54, 0x5b6, 1, 3, 14, 11, 53, 0), + M( 0xf54, 0x5b7, 1, 3, 14, 11, 53, 0), + M( 0x58c, 0x5b7, 1, 3, 14, 11, 53, 0), + M( 0xf54, 0x5b8, 3, 1, 11, 14, 6, 0), + M( 0xf54, 0x5b9, 3, 1, 11, 14, 28, 0), + M( 0xf54, 0x5ba, 3, 1, 11, 14, 28, 0), + M( 0x58c, 0x5ba, 3, 1, 11, 14, 28, 0), + M( 0xf54, 0x5b8, 3, 1, 11, 14, 6, 0), + M( 0xf54, 0x5b9, 3, 1, 11, 14, 28, 0), + M( 0xf54, 0x5ba, 3, 1, 11, 14, 28, 0), + M( 0x58c, 0x5ba, 3, 1, 11, 14, 28, 0), + M( 0xf54, 0x5b8, 3, 1, 11, 14, 6, 0), + M( 0xf54, 0x5b9, 3, 1, 11, 14, 28, 0), + M( 0xf54, 0x5ba, 3, 1, 11, 14, 28, 0), + M( 0x58c, 0x5ba, 3, 1, 11, 14, 28, 0), + M( 0xf54, 0x5b8, 3, 1, 11, 14, 6, 0), + M( 0xf54, 0x5b9, 3, 1, 11, 14, 28, 0), + M( 0xf54, 0x5ba, 3, 1, 11, 14, 28, 0), + M( 0x58c, 0x5ba, 3, 1, 11, 14, 28, 0), + M( 0xf54, 0x5bb, 2, 0, 13, 16, 6, 0), + M( 0xf54, 0x5bc, 2, 0, 13, 16, 45, 0), + M( 0xf54, 0x5bd, 2, 0, 13, 16, 46, 0), + M( 0x58c, 0x5bd, 2, 0, 13, 16, 46, 0), + M( 0xf54, 0x5bb, 2, 0, 13, 16, 6, 0), + M( 0xf54, 0x5bc, 2, 0, 13, 16, 45, 0), + M( 0xf54, 0x5bd, 2, 0, 13, 16, 46, 0), + M( 0x58c, 0x5bd, 2, 0, 13, 16, 46, 0), + M( 0xf54, 0x31b85bb, 2, 0, 13, 16, 6, 0), + M( 0xf54, 0x31b85bc, 2, 0, 13, 16, 45, 0), + M( 0xf54, 0x31b85bd, 2, 0, 13, 16, 46, 0), + M( 0x58c, 0x31b85bd, 2, 0, 13, 16, 46, 0), + M( 0xf54, 0x31d85bb, 2, 0, 13, 16, 6, 0), + M( 0xf54, 0x31d85bc, 2, 0, 13, 16, 45, 0), + M( 0xf54, 0x31d85bd, 2, 0, 13, 16, 46, 0), + M( 0x58c, 0x31d85bd, 2, 0, 13, 16, 46, 0), + M( 0xf54, 0x30b85be, 2, 0, 13, 16, 13, 0), + M( 0xf54, 0x30b85bf, 2, 0, 13, 16, 110, 0), + M( 0xf54, 0x30b85c0, 2, 0, 13, 16, 110, 0), + M( 0x58c, 0x30b85c0, 2, 0, 13, 16, 110, 0), + M( 0xf54, 0x30f85be, 2, 0, 13, 16, 13, 0), + M( 0xf54, 0x30f85bf, 2, 0, 13, 16, 110, 0), + M( 0xf54, 0x30f85c0, 2, 0, 13, 16, 110, 0), + M( 0x58c, 0x30f85c0, 2, 0, 13, 16, 110, 0), + M( 0xf54, 0x31385be, 2, 0, 13, 16, 13, 0), + M( 0xf54, 0x31385bf, 2, 0, 13, 16, 110, 0), + M( 0xf54, 0x31385c0, 2, 0, 13, 16, 110, 0), + M( 0x58c, 0x31385c0, 2, 0, 13, 16, 110, 0), + M( 0xf54, 0x30d85be, 2, 0, 13, 16, 13, 0), + M( 0xf54, 0x30d85bf, 2, 0, 13, 16, 110, 0), + M( 0xf54, 0x30d85c0, 2, 0, 13, 16, 110, 0), + M( 0x58c, 0x30d85c0, 2, 0, 13, 16, 110, 0), + M( 0xf54, 0x5c1, 1, 2, 15, 12, 4, 0), + M( 0xf54, 0x5c2, 1, 2, 15, 12, 24, 0), + M( 0xf54, 0x5c3, 1, 2, 15, 12, 31, 0), + M( 0x58c, 0x5c3, 1, 2, 15, 12, 31, 0), + M( 0xf54, 0x5c1, 1, 2, 15, 12, 4, 0), + M( 0xf54, 0x5c2, 1, 2, 15, 12, 24, 0), + M( 0xf54, 0x5c3, 1, 2, 15, 12, 31, 0), + M( 0x58c, 0x5c3, 1, 2, 15, 12, 31, 0), + M( 0xf54, 0x5c1, 1, 2, 15, 12, 4, 0), + M( 0xf54, 0x5c2, 1, 2, 15, 12, 24, 0), + M( 0xf54, 0x5c3, 1, 2, 15, 12, 31, 0), + M( 0x58c, 0x5c3, 1, 2, 15, 12, 31, 0), + M( 0xf54, 0x5c1, 1, 2, 15, 12, 4, 0), + M( 0xf54, 0x5c2, 1, 2, 15, 12, 24, 0), + M( 0xf54, 0x5c3, 1, 2, 15, 12, 31, 0), + M( 0x58c, 0x5c3, 1, 2, 15, 12, 31, 0), + M( 0xf54, 0x5c4, 1, 0, 14, 15, 20, 0), + M( 0xf54, 0x5c5, 1, 0, 14, 15, 42, 0), + M( 0xf54, 0x5c6, 1, 0, 14, 15, 42, 0), + M( 0x58c, 0x5c6, 1, 0, 14, 15, 42, 0), + M( 0xf54, 0x5c4, 1, 0, 14, 15, 20, 0), + M( 0xf54, 0x5c5, 1, 0, 14, 15, 42, 0), + M( 0xf54, 0x5c6, 1, 0, 14, 15, 42, 0), + M( 0x58c, 0x5c6, 1, 0, 14, 15, 42, 0), + M( 0xf54, 0x5c4, 1, 0, 14, 15, 20, 0), + M( 0xf54, 0x5c5, 1, 0, 14, 15, 42, 0), + M( 0xf54, 0x5c6, 1, 0, 14, 15, 42, 0), + M( 0x58c, 0x5c6, 1, 0, 14, 15, 42, 0), + M( 0xf54, 0x5c4, 1, 0, 14, 15, 20, 0), + M( 0xf54, 0x5c5, 1, 0, 14, 15, 42, 0), + M( 0xf54, 0x5c6, 1, 0, 14, 15, 42, 0), + M( 0x58c, 0x5c6, 1, 0, 14, 15, 42, 0), + M( 0x5c7, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x5c7, 0x5cb, 0, 0, 16, 16, 20, 0), + M( 0x5c7, 0x5cb, 0, 0, 16, 16, 20, 0), + M( 0x5c7, 0x5cb, 0, 0, 16, 16, 20, 0), + M( 0x5c7, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x5c7, 0x5cb, 0, 0, 16, 16, 20, 0), + M( 0x5c7, 0x5cb, 0, 0, 16, 16, 20, 0), + M( 0x5c7, 0x5cb, 0, 0, 16, 16, 20, 0), + M( 0x5c7, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x5c7, 0x5cb, 0, 0, 16, 16, 20, 0), + M( 0x5c7, 0x5cb, 0, 0, 16, 16, 20, 0), + M( 0x5c7, 0x5cb, 0, 0, 16, 16, 20, 0), + M( 0x5c7, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x5c7, 0x5cb, 0, 0, 16, 16, 20, 0), + M( 0x5c7, 0x5cb, 0, 0, 16, 16, 20, 0), + M( 0x5c7, 0x5cb, 0, 0, 16, 16, 20, 0), + M( 0x5c8, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x5c8, 0x5cc, 0, 0, 16, 16, 20, 0), + M( 0x5c8, 0x5cc, 0, 0, 16, 16, 20, 0), + M( 0x5c8, 0x5cc, 0, 0, 16, 16, 20, 0), + M( 0x5c8, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x5c8, 0x5cc, 0, 0, 16, 16, 20, 0), + M( 0x5c8, 0x5cc, 0, 0, 16, 16, 20, 0), + M( 0x5c8, 0x5cc, 0, 0, 16, 16, 20, 0), + M( 0x5c8, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x5c8, 0x5cc, 0, 0, 16, 16, 20, 0), + M( 0x5c8, 0x5cc, 0, 0, 16, 16, 20, 0), + M( 0x5c8, 0x5cc, 0, 0, 16, 16, 20, 0), + M( 0x5c8, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x5c8, 0x5cc, 0, 0, 16, 16, 20, 0), + M( 0x5c8, 0x5cc, 0, 0, 16, 16, 20, 0), + M( 0x5c8, 0x5cc, 0, 0, 16, 16, 20, 0), + M( 0x5c9, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x5c9, 0x5cd, 0, 0, 16, 16, 20, 0), + M( 0x5c9, 0x5cd, 0, 0, 16, 16, 20, 0), + M( 0x5c9, 0x5cd, 0, 0, 16, 16, 20, 0), + M( 0x5c9, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x5c9, 0x5cd, 0, 0, 16, 16, 20, 0), + M( 0x5c9, 0x5cd, 0, 0, 16, 16, 20, 0), + M( 0x5c9, 0x5cd, 0, 0, 16, 16, 20, 0), + M( 0x5c9, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x5c9, 0x5cd, 0, 0, 16, 16, 20, 0), + M( 0x5c9, 0x5cd, 0, 0, 16, 16, 20, 0), + M( 0x5c9, 0x5cd, 0, 0, 16, 16, 20, 0), + M( 0x5c9, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x5c9, 0x5cd, 0, 0, 16, 16, 20, 0), + M( 0x5c9, 0x5cd, 0, 0, 16, 16, 20, 0), + M( 0x5c9, 0x5cd, 0, 0, 16, 16, 20, 0), + M( 0x5ca, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x5ca, 0x5ce, 0, 0, 16, 16, 20, 0), + M( 0x5ca, 0x5ce, 0, 0, 16, 16, 20, 0), + M( 0x5ca, 0x5ce, 0, 0, 16, 16, 20, 0), + M( 0x5ca, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x5ca, 0x5ce, 0, 0, 16, 16, 20, 0), + M( 0x5ca, 0x5ce, 0, 0, 16, 16, 20, 0), + M( 0x5ca, 0x5ce, 0, 0, 16, 16, 20, 0), + M( 0x5ca, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x5ca, 0x5ce, 0, 0, 16, 16, 20, 0), + M( 0x5ca, 0x5ce, 0, 0, 16, 16, 20, 0), + M( 0x5ca, 0x5ce, 0, 0, 16, 16, 20, 0), + M( 0x5ca, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x5ca, 0x5ce, 0, 0, 16, 16, 20, 0), + M( 0x5ca, 0x5ce, 0, 0, 16, 16, 20, 0), + M( 0x5ca, 0x5ce, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x5d4, 0, 0, 16, 16, 22, 0), + M( 0x5d3, 0x5d4, 0, 0, 16, 16, 22, 0), + M( 0x5d3, 0x5d4, 0, 0, 16, 16, 22, 0), + M( 0x5d3, 0x5d4, 0, 0, 16, 16, 22, 0), + M( 0xf54, 0x5d6, 0, 0, 16, 16, 22, 0), + M( 0x5d5, 0x5d6, 0, 0, 16, 16, 22, 0), + M( 0x5d5, 0x5d6, 0, 0, 16, 16, 22, 0), + M( 0x5d5, 0x5d6, 0, 0, 16, 16, 22, 0), + M( 0xf54, 0x5d0, 0, 0, 16, 16, 21, 0), + M( 0x5cf, 0x5d0, 0, 0, 16, 16, 21, 0), + M( 0x5cf, 0x5d0, 0, 0, 16, 16, 21, 0), + M( 0x5cf, 0x5d0, 0, 0, 16, 16, 21, 0), + M( 0xf54, 0x5d2, 0, 0, 16, 16, 11, 0), + M( 0x5d1, 0x5d2, 0, 0, 16, 16, 11, 0), + M( 0x5d1, 0x5d2, 0, 0, 16, 16, 11, 0), + M( 0x5d1, 0x5d2, 0, 0, 16, 16, 11, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x5d7, 0x5d8, 0, 0, 16, 16, 22, 0), + M( 0x5d7, 0x5d8, 0, 0, 16, 16, 22, 0), + M( 0x5d7, 0x5d8, 0, 0, 16, 16, 22, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x5d7, 0x5d8, 0, 0, 16, 16, 22, 0), + M( 0x5d7, 0x5d8, 0, 0, 16, 16, 22, 0), + M( 0x5d7, 0x5d8, 0, 0, 16, 16, 22, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x5d7, 0x5d8, 0, 0, 16, 16, 22, 0), + M( 0x5d7, 0x5d8, 0, 0, 16, 16, 22, 0), + M( 0x5d7, 0x5d8, 0, 0, 16, 16, 22, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x5d7, 0x5d8, 0, 0, 16, 16, 22, 0), + M( 0x5d7, 0x5d8, 0, 0, 16, 16, 22, 0), + M( 0x5d7, 0x5d8, 0, 0, 16, 16, 22, 0), + M( 0x5d9, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x5da, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x5db, 0x5dc, 0, 0, 16, 16, 22, 0), + M( 0x5db, 0x5dc, 0, 0, 16, 16, 22, 0), + M( 0x622, 0x623, 0, 0, 16, 16, 22, 0), + M( 0x624, 0x625, 0, 0, 16, 16, 22, 0), + M( 0x626, 0x627, 0, 0, 16, 16, 22, 0), + M( 0x626, 0x627, 0, 0, 16, 16, 22, 0), + M( 0x5e3, 0x5e4, 0, 0, 16, 16, 22, 0), + M( 0x5e5, 0x5e6, 0, 0, 16, 16, 22, 0), + M( 0x5e7, 0x5e8, 0, 0, 16, 16, 22, 0), + M( 0x5e7, 0x5e8, 0, 0, 16, 16, 22, 0), + M( 0x5e9, 0x5ea, 0, 0, 16, 16, 22, 0), + M( 0x5eb, 0x5ec, 0, 0, 16, 16, 22, 0), + M( 0x5ed, 0x5ee, 0, 0, 16, 16, 22, 0), + M( 0x5ed, 0x5ee, 0, 0, 16, 16, 22, 0), + M( 0x5ef, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x5f0, 0x5f1, 0, 0, 16, 16, 22, 0), + M( 0x5f2, 0x5f3, 0, 0, 16, 16, 22, 0), + M( 0x5f2, 0x5f3, 0, 0, 16, 16, 22, 0), + M( 0x5ef, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x5f0, 0x5f1, 0, 0, 16, 16, 22, 0), + M( 0x5f2, 0x5f3, 0, 0, 16, 16, 22, 0), + M( 0x5f2, 0x5f3, 0, 0, 16, 16, 22, 0), + M( 0x5f4, 0x5f5, 0, 0, 16, 16, 22, 0), + M( 0x5f6, 0x5f7, 0, 0, 16, 16, 22, 0), + M( 0x5f8, 0x5f9, 0, 0, 16, 16, 22, 0), + M( 0x5f8, 0x5f9, 0, 0, 16, 16, 22, 0), + M( 0x5f4, 0x5f5, 0, 0, 16, 16, 22, 0), + M( 0x5f6, 0x5f7, 0, 0, 16, 16, 22, 0), + M( 0x5f8, 0x5f9, 0, 0, 16, 16, 22, 0), + M( 0x5f8, 0x5f9, 0, 0, 16, 16, 22, 0), + M( 0x5fa, 0x5fb, 0, 0, 16, 16, 85, 0), + M( 0x5fc, 0x5fd, 0, 0, 16, 16, 85, 0), + M( 0x5fe, 0x5ff, 0, 0, 16, 16, 85, 0), + M( 0x5fe, 0x5ff, 0, 0, 16, 16, 85, 0), + M( 0x5fa, 0x5fb, 0, 0, 16, 16, 85, 0), + M( 0x5fc, 0x5fd, 0, 0, 16, 16, 85, 0), + M( 0x5fe, 0x5ff, 0, 0, 16, 16, 85, 0), + M( 0x5fe, 0x5ff, 0, 0, 16, 16, 85, 0), + M( 0x60a, 0x60b, 0, 0, 16, 16, 95, 0), + M( 0x60c, 0x60d, 0, 0, 16, 16, 95, 0), + M( 0x60e, 0x60f, 0, 0, 16, 16, 95, 0), + M( 0x60e, 0x60f, 0, 0, 16, 16, 95, 0), + M( 0x60a, 0x60b, 0, 0, 16, 16, 95, 0), + M( 0x60c, 0x60d, 0, 0, 16, 16, 95, 0), + M( 0x60e, 0x60f, 0, 0, 16, 16, 95, 0), + M( 0x60e, 0x60f, 0, 0, 16, 16, 95, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x600, 0x601, 0, 0, 16, 16, 55, 0), + M( 0x600, 0x601, 0, 0, 16, 16, 55, 0), + M( 0x600, 0x601, 0, 0, 16, 16, 55, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x31d8600, 0x31d8601, 0, 0, 16, 16, 55, 0), + M( 0x31d8600, 0x31d8601, 0, 0, 16, 16, 55, 0), + M( 0x31d8600, 0x31d8601, 0, 0, 16, 16, 55, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x602, 0x603, 0, 0, 16, 16, 42, 0), + M( 0x602, 0x603, 0, 0, 16, 16, 42, 0), + M( 0x602, 0x603, 0, 0, 16, 16, 42, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x3208602, 0x3208603, 0, 0, 16, 16, 42, 0), + M( 0x3208602, 0x3208603, 0, 0, 16, 16, 42, 0), + M( 0x3208602, 0x3208603, 0, 0, 16, 16, 42, 0), + M( 0x604, 0x605, 0, 0, 16, 16, 88, 0), + M( 0x606, 0x607, 0, 0, 16, 16, 88, 0), + M( 0x608, 0x609, 0, 0, 16, 16, 88, 0), + M( 0x608, 0x609, 0, 0, 16, 16, 88, 0), + M( 0x604, 0x605, 0, 0, 16, 16, 88, 0), + M( 0x606, 0x607, 0, 0, 16, 16, 88, 0), + M( 0x608, 0x609, 0, 0, 16, 16, 88, 0), + M( 0x608, 0x609, 0, 0, 16, 16, 88, 0), + M( 0x604, 0x605, 0, 0, 16, 16, 88, 0), + M( 0x606, 0x607, 0, 0, 16, 16, 88, 0), + M( 0x608, 0x609, 0, 0, 16, 16, 88, 0), + M( 0x608, 0x609, 0, 0, 16, 16, 88, 0), + M( 0x604, 0x605, 0, 0, 16, 16, 88, 0), + M( 0x606, 0x607, 0, 0, 16, 16, 88, 0), + M( 0x608, 0x609, 0, 0, 16, 16, 88, 0), + M( 0x608, 0x609, 0, 0, 16, 16, 88, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x610, 0x611, 0, 0, 16, 16, 40, 0), + M( 0x610, 0x611, 0, 0, 16, 16, 40, 0), + M( 0x610, 0x611, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x610, 0x611, 0, 0, 16, 16, 40, 0), + M( 0x610, 0x611, 0, 0, 16, 16, 40, 0), + M( 0x610, 0x611, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x610, 0x611, 0, 0, 16, 16, 40, 0), + M( 0x610, 0x611, 0, 0, 16, 16, 40, 0), + M( 0x610, 0x611, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x610, 0x611, 0, 0, 16, 16, 40, 0), + M( 0x610, 0x611, 0, 0, 16, 16, 40, 0), + M( 0x610, 0x611, 0, 0, 16, 16, 40, 0), + M( 0x612, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x612, 0x616, 0, 0, 16, 16, 20, 0), + M( 0x612, 0x616, 0, 0, 16, 16, 20, 0), + M( 0x612, 0x616, 0, 0, 16, 16, 20, 0), + M( 0x612, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x612, 0x616, 0, 0, 16, 16, 20, 0), + M( 0x612, 0x616, 0, 0, 16, 16, 20, 0), + M( 0x612, 0x616, 0, 0, 16, 16, 20, 0), + M( 0x612, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x612, 0x616, 0, 0, 16, 16, 20, 0), + M( 0x612, 0x616, 0, 0, 16, 16, 20, 0), + M( 0x612, 0x616, 0, 0, 16, 16, 20, 0), + M( 0x612, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x612, 0x616, 0, 0, 16, 16, 20, 0), + M( 0x612, 0x616, 0, 0, 16, 16, 20, 0), + M( 0x612, 0x616, 0, 0, 16, 16, 20, 0), + M( 0x613, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x613, 0x617, 0, 0, 16, 16, 20, 0), + M( 0x613, 0x617, 0, 0, 16, 16, 20, 0), + M( 0x613, 0x617, 0, 0, 16, 16, 20, 0), + M( 0x613, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x613, 0x617, 0, 0, 16, 16, 20, 0), + M( 0x613, 0x617, 0, 0, 16, 16, 20, 0), + M( 0x613, 0x617, 0, 0, 16, 16, 20, 0), + M( 0x613, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x613, 0x617, 0, 0, 16, 16, 20, 0), + M( 0x613, 0x617, 0, 0, 16, 16, 20, 0), + M( 0x613, 0x617, 0, 0, 16, 16, 20, 0), + M( 0x613, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x613, 0x617, 0, 0, 16, 16, 20, 0), + M( 0x613, 0x617, 0, 0, 16, 16, 20, 0), + M( 0x613, 0x617, 0, 0, 16, 16, 20, 0), + M( 0x614, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x614, 0x618, 0, 0, 16, 16, 20, 0), + M( 0x614, 0x618, 0, 0, 16, 16, 20, 0), + M( 0x614, 0x618, 0, 0, 16, 16, 20, 0), + M( 0x614, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x614, 0x618, 0, 0, 16, 16, 20, 0), + M( 0x614, 0x618, 0, 0, 16, 16, 20, 0), + M( 0x614, 0x618, 0, 0, 16, 16, 20, 0), + M( 0x614, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x614, 0x618, 0, 0, 16, 16, 20, 0), + M( 0x614, 0x618, 0, 0, 16, 16, 20, 0), + M( 0x614, 0x618, 0, 0, 16, 16, 20, 0), + M( 0x614, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x614, 0x618, 0, 0, 16, 16, 20, 0), + M( 0x614, 0x618, 0, 0, 16, 16, 20, 0), + M( 0x614, 0x618, 0, 0, 16, 16, 20, 0), + M( 0x615, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x615, 0x619, 0, 0, 16, 16, 20, 0), + M( 0x615, 0x619, 0, 0, 16, 16, 20, 0), + M( 0x615, 0x619, 0, 0, 16, 16, 20, 0), + M( 0x615, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x615, 0x619, 0, 0, 16, 16, 20, 0), + M( 0x615, 0x619, 0, 0, 16, 16, 20, 0), + M( 0x615, 0x619, 0, 0, 16, 16, 20, 0), + M( 0x615, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x615, 0x619, 0, 0, 16, 16, 20, 0), + M( 0x615, 0x619, 0, 0, 16, 16, 20, 0), + M( 0x615, 0x619, 0, 0, 16, 16, 20, 0), + M( 0x615, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x615, 0x619, 0, 0, 16, 16, 20, 0), + M( 0x615, 0x619, 0, 0, 16, 16, 20, 0), + M( 0x615, 0x619, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x61a, 0x61b, 0, 0, 16, 16, 100, 0), + M( 0x61a, 0x61b, 0, 0, 16, 16, 100, 0), + M( 0x61c, 0x61d, 0, 0, 16, 16, 100, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x61a, 0x61b, 0, 0, 16, 16, 100, 0), + M( 0x61a, 0x61b, 0, 0, 16, 16, 100, 0), + M( 0x61c, 0x61d, 0, 0, 16, 16, 100, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x61a, 0x61b, 0, 0, 16, 16, 100, 0), + M( 0x61a, 0x61b, 0, 0, 16, 16, 100, 0), + M( 0x61c, 0x61d, 0, 0, 16, 16, 100, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x61a, 0x61b, 0, 0, 16, 16, 100, 0), + M( 0x61a, 0x61b, 0, 0, 16, 16, 100, 0), + M( 0x61c, 0x61d, 0, 0, 16, 16, 100, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x61e, 0x61f, 0, 0, 16, 16, 25, 0), + M( 0x61e, 0x61f, 0, 0, 16, 16, 25, 0), + M( 0x61e, 0x61f, 0, 0, 16, 16, 25, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x31d861e, 0x31d861f, 0, 0, 16, 16, 25, 0), + M( 0x31d861e, 0x31d861f, 0, 0, 16, 16, 25, 0), + M( 0x31d861e, 0x31d861f, 0, 0, 16, 16, 25, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x620, 0x621, 0, 0, 16, 16, 25, 0), + M( 0x620, 0x621, 0, 0, 16, 16, 25, 0), + M( 0x620, 0x621, 0, 0, 16, 16, 25, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x3108620, 0x3108621, 0, 0, 16, 16, 25, 0), + M( 0x3108620, 0x3108621, 0, 0, 16, 16, 25, 0), + M( 0x3108620, 0x3108621, 0, 0, 16, 16, 25, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x11da, 0x11db, 0, 0, 16, 16, 25, 0), + M( 0x11da, 0x11db, 0, 0, 16, 16, 25, 0), + M( 0x11da, 0x11db, 0, 0, 16, 16, 25, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x31d91da, 0x31d91db, 0, 0, 16, 16, 25, 0), + M( 0x31d91da, 0x31d91db, 0, 0, 16, 16, 25, 0), + M( 0x31d91da, 0x31d91db, 0, 0, 16, 16, 25, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x11dc, 0x11dd, 0, 0, 16, 16, 25, 0), + M( 0x11dc, 0x11dd, 0, 0, 16, 16, 25, 0), + M( 0x11dc, 0x11dd, 0, 0, 16, 16, 25, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x31091dc, 0x31091dd, 0, 0, 16, 16, 25, 0), + M( 0x31091dc, 0x31091dd, 0, 0, 16, 16, 25, 0), + M( 0x31091dc, 0x31091dd, 0, 0, 16, 16, 25, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x1134, 0x1135, 0, 0, 16, 16, 40, 0), + M( 0x1134, 0x1135, 0, 0, 16, 16, 40, 0), + M( 0x1134, 0x1135, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x1134, 0x1135, 0, 0, 16, 16, 40, 0), + M( 0x1134, 0x1135, 0, 0, 16, 16, 40, 0), + M( 0x1134, 0x1135, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x1134, 0x1135, 0, 0, 16, 16, 40, 0), + M( 0x1134, 0x1135, 0, 0, 16, 16, 40, 0), + M( 0x1134, 0x1135, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 22, 0), + M( 0x1134, 0x1135, 0, 0, 16, 16, 40, 0), + M( 0x1134, 0x1135, 0, 0, 16, 16, 40, 0), + M( 0x1134, 0x1135, 0, 0, 16, 16, 40, 0), + M( 0x1136, 0x1137, 0, 0, 16, 16, 20, 0), + M( 0x1136, 0x1137, 0, 0, 16, 16, 20, 0), + M( 0x113b, 0x113c, 0, 0, 16, 16, 20, 0), + M( 0x113b, 0x113c, 0, 0, 16, 16, 20, 0), + M( 0x1136, 0x1137, 0, 0, 16, 16, 20, 0), + M( 0x1136, 0x1137, 0, 0, 16, 16, 20, 0), + M( 0x113b, 0x113c, 0, 0, 16, 16, 20, 0), + M( 0x113b, 0x113c, 0, 0, 16, 16, 20, 0), + M( 0x1136, 0x1137, 0, 0, 16, 16, 20, 0), + M( 0x1136, 0x1137, 0, 0, 16, 16, 20, 0), + M( 0x113b, 0x113c, 0, 0, 16, 16, 20, 0), + M( 0x113b, 0x113c, 0, 0, 16, 16, 20, 0), + M( 0x1136, 0x1137, 0, 0, 16, 16, 20, 0), + M( 0x1136, 0x1137, 0, 0, 16, 16, 20, 0), + M( 0x113b, 0x113c, 0, 0, 16, 16, 20, 0), + M( 0x113b, 0x113c, 0, 0, 16, 16, 20, 0), + M( 0x1138, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x1138, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x113d, 0x113e, 0, 0, 16, 16, 20, 0), + M( 0x113d, 0x113e, 0, 0, 16, 16, 20, 0), + M( 0x1138, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x1138, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x113d, 0x113e, 0, 0, 16, 16, 20, 0), + M( 0x113d, 0x113e, 0, 0, 16, 16, 20, 0), + M( 0x1138, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x1138, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x113d, 0x113e, 0, 0, 16, 16, 20, 0), + M( 0x113d, 0x113e, 0, 0, 16, 16, 20, 0), + M( 0x1138, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x1138, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x113d, 0x113e, 0, 0, 16, 16, 20, 0), + M( 0x113d, 0x113e, 0, 0, 16, 16, 20, 0), + M( 0x1139, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x1139, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x113f, 0x1140, 0, 0, 16, 16, 20, 0), + M( 0x113f, 0x1140, 0, 0, 16, 16, 20, 0), + M( 0x1139, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x1139, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x113f, 0x1140, 0, 0, 16, 16, 20, 0), + M( 0x113f, 0x1140, 0, 0, 16, 16, 20, 0), + M( 0x1139, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x1139, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x113f, 0x1140, 0, 0, 16, 16, 20, 0), + M( 0x113f, 0x1140, 0, 0, 16, 16, 20, 0), + M( 0x1139, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x1139, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x113f, 0x1140, 0, 0, 16, 16, 20, 0), + M( 0x113f, 0x1140, 0, 0, 16, 16, 20, 0), + M( 0x113a, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x113a, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x1141, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x1141, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x113a, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x113a, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x1141, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x1141, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x113a, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x113a, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x1141, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x1141, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x113a, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x113a, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x1141, 0x0, 0, 0, 16, 16, 20, 0), + M( 0x1141, 0x0, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1144, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1145, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1146, 0, 0, 16, 16, 40, 0), + M( 0x1142, 0x1146, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1144, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1145, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1146, 0, 0, 16, 16, 40, 0), + M( 0x1142, 0x1146, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1144, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1145, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1146, 0, 0, 16, 16, 40, 0), + M( 0x1142, 0x1146, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1144, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1145, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1146, 0, 0, 16, 16, 40, 0), + M( 0x1142, 0x1146, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1144, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1145, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1146, 0, 0, 16, 16, 40, 0), + M( 0x1143, 0x1147, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1144, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1145, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1146, 0, 0, 16, 16, 40, 0), + M( 0x1143, 0x1147, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1144, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1145, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1146, 0, 0, 16, 16, 40, 0), + M( 0x1143, 0x1147, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1144, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1145, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1146, 0, 0, 16, 16, 40, 0), + M( 0x1143, 0x1147, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1148, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1149, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x114a, 0, 0, 16, 16, 40, 0), + M( 0x1142, 0x114a, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1148, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1149, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x114a, 0, 0, 16, 16, 40, 0), + M( 0x1142, 0x114a, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1148, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1149, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x114a, 0, 0, 16, 16, 40, 0), + M( 0x1142, 0x114a, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1148, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1149, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x114a, 0, 0, 16, 16, 40, 0), + M( 0x1142, 0x114a, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1148, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1149, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x114a, 0, 0, 16, 16, 40, 0), + M( 0x1143, 0x114b, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1148, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1149, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x114a, 0, 0, 16, 16, 40, 0), + M( 0x1143, 0x114b, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1148, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1149, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x114a, 0, 0, 16, 16, 40, 0), + M( 0x1143, 0x114b, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1148, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1149, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x114a, 0, 0, 16, 16, 40, 0), + M( 0x1143, 0x114b, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x114e, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x114f, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1150, 0, 0, 16, 16, 40, 0), + M( 0x114c, 0x1150, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x309914e, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x309914f, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3099150, 0, 0, 16, 16, 40, 0), + M( 0x114c, 0x3099150, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x310914e, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x310914f, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3109150, 0, 0, 16, 16, 40, 0), + M( 0x114c, 0x3109150, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x30e914e, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x30e914f, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x30e9150, 0, 0, 16, 16, 40, 0), + M( 0x114c, 0x30e9150, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x114e, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x114f, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1150, 0, 0, 16, 16, 40, 0), + M( 0x114d, 0x1151, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x309914e, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x309914f, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3099150, 0, 0, 16, 16, 40, 0), + M( 0x114d, 0x3099151, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x310914e, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x310914f, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3109150, 0, 0, 16, 16, 40, 0), + M( 0x114d, 0x3109151, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x30e914e, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x30e914f, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x30e9150, 0, 0, 16, 16, 40, 0), + M( 0x114d, 0x30e9151, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1153, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1154, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1155, 0, 0, 16, 16, 60, 0), + M( 0x1152, 0x1155, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b9153, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b9154, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b9155, 0, 0, 16, 16, 60, 0), + M( 0x1152, 0x30b9155, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30e9153, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30e9154, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30e9155, 0, 0, 16, 16, 60, 0), + M( 0x1152, 0x30e9155, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3159153, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3159154, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3159155, 0, 0, 16, 16, 60, 0), + M( 0x1152, 0x3159155, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1153, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1154, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11de, 0, 0, 16, 16, 60, 0), + M( 0x1152, 0x11de, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b9153, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b9154, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b91de, 0, 0, 16, 16, 60, 0), + M( 0x1152, 0x30b91de, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30e9153, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30e9154, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30e91de, 0, 0, 16, 16, 60, 0), + M( 0x1152, 0x30e91de, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3159153, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3159154, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x31591de, 0, 0, 16, 16, 60, 0), + M( 0x1152, 0x31591de, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1157, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1158, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1159, 0, 0, 16, 16, 60, 0), + M( 0x1156, 0x1159, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30e9157, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30e9158, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30e9159, 0, 0, 16, 16, 60, 0), + M( 0x1156, 0x30e9159, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3109157, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3109158, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3109159, 0, 0, 16, 16, 60, 0), + M( 0x1156, 0x3109159, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30a9157, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30a9158, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30a9159, 0, 0, 16, 16, 60, 0), + M( 0x1156, 0x30a9159, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1157, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1158, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11df, 0, 0, 16, 16, 60, 0), + M( 0x1156, 0x11df, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30e9157, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30e9158, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30e91df, 0, 0, 16, 16, 60, 0), + M( 0x1156, 0x30e91df, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3109157, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3109158, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x31091df, 0, 0, 16, 16, 60, 0), + M( 0x1156, 0x31091df, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30a9157, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30a9158, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30a91df, 0, 0, 16, 16, 60, 0), + M( 0x1156, 0x30a91df, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x115b, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x115c, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x115d, 0, 0, 16, 16, 60, 0), + M( 0x115a, 0x115d, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b915b, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b915c, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b915d, 0, 0, 16, 16, 60, 0), + M( 0x115a, 0x30b915d, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x313915b, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x313915c, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x313915d, 0, 0, 16, 16, 60, 0), + M( 0x115a, 0x313915d, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x314915b, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x314915c, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x314915d, 0, 0, 16, 16, 60, 0), + M( 0x115a, 0x314915d, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x115b, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x115c, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11e0, 0, 0, 16, 16, 60, 0), + M( 0x115a, 0x11e0, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b915b, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b915c, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b91e0, 0, 0, 16, 16, 60, 0), + M( 0x115a, 0x30b91e0, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x313915b, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x313915c, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x31391e0, 0, 0, 16, 16, 60, 0), + M( 0x115a, 0x31391e0, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x314915b, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x314915c, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x31491e0, 0, 0, 16, 16, 60, 0), + M( 0x115a, 0x31491e0, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1160, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1161, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1162, 0, 0, 16, 16, 20, 0), + M( 0x115e, 0x1162, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1160, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1161, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1162, 0, 0, 16, 16, 20, 0), + M( 0x115e, 0x1162, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1166, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1167, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1168, 0, 0, 16, 16, 20, 0), + M( 0x1164, 0x1168, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1166, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1167, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1168, 0, 0, 16, 16, 20, 0), + M( 0x1164, 0x1168, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1160, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1161, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1162, 0, 0, 16, 16, 20, 0), + M( 0x115f, 0x1163, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1160, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1161, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1162, 0, 0, 16, 16, 20, 0), + M( 0x115f, 0x1163, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1166, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1167, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1168, 0, 0, 16, 16, 20, 0), + M( 0x1165, 0x1169, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1166, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1167, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x1168, 0, 0, 16, 16, 20, 0), + M( 0x1165, 0x1169, 0, 0, 16, 16, 20, 0), + M( 0x116b, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x116c, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x116d, 0, 0, 16, 16, 40, 0), + M( 0x116a, 0x116d, 0, 0, 16, 16, 40, 0), + M( 0x116b, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x116c, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x116d, 0, 0, 16, 16, 40, 0), + M( 0x116a, 0x116d, 0, 0, 16, 16, 40, 0), + M( 0x116b, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x116c, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x116d, 0, 0, 16, 16, 40, 0), + M( 0x116a, 0x116d, 0, 0, 16, 16, 40, 0), + M( 0x116b, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x116c, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x116d, 0, 0, 16, 16, 40, 0), + M( 0x116a, 0x116d, 0, 0, 16, 16, 40, 0), + M( 0x116b, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x116c, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e2, 0, 0, 16, 16, 40, 0), + M( 0x116a, 0x11e2, 0, 0, 16, 16, 40, 0), + M( 0x116b, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x116c, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e2, 0, 0, 16, 16, 40, 0), + M( 0x116a, 0x11e2, 0, 0, 16, 16, 40, 0), + M( 0x116b, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x116c, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e2, 0, 0, 16, 16, 40, 0), + M( 0x116a, 0x11e2, 0, 0, 16, 16, 40, 0), + M( 0x116b, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x116c, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e2, 0, 0, 16, 16, 40, 0), + M( 0x116a, 0x11e2, 0, 0, 16, 16, 40, 0), + M( 0x116f, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1170, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1171, 0, 0, 16, 16, 40, 0), + M( 0x116e, 0x1171, 0, 0, 16, 16, 40, 0), + M( 0x116f, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1170, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1171, 0, 0, 16, 16, 40, 0), + M( 0x116e, 0x1171, 0, 0, 16, 16, 40, 0), + M( 0x116f, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1170, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1171, 0, 0, 16, 16, 40, 0), + M( 0x116e, 0x1171, 0, 0, 16, 16, 40, 0), + M( 0x116f, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1170, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1171, 0, 0, 16, 16, 40, 0), + M( 0x116e, 0x1171, 0, 0, 16, 16, 40, 0), + M( 0x116f, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1170, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e3, 0, 0, 16, 16, 40, 0), + M( 0x116e, 0x11e3, 0, 0, 16, 16, 40, 0), + M( 0x116f, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1170, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e3, 0, 0, 16, 16, 40, 0), + M( 0x116e, 0x11e3, 0, 0, 16, 16, 40, 0), + M( 0x116f, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1170, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e3, 0, 0, 16, 16, 40, 0), + M( 0x116e, 0x11e3, 0, 0, 16, 16, 40, 0), + M( 0x116f, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1170, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e3, 0, 0, 16, 16, 40, 0), + M( 0x116e, 0x11e3, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1173, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1174, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1175, 0, 0, 16, 16, 40, 0), + M( 0x1172, 0x1175, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3149173, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3149174, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3149175, 0, 0, 16, 16, 40, 0), + M( 0x1172, 0x3149175, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3109173, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3109174, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3109175, 0, 0, 16, 16, 40, 0), + M( 0x1172, 0x3109175, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3159173, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3159174, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3159175, 0, 0, 16, 16, 40, 0), + M( 0x1172, 0x3159175, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1173, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1174, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1175, 0, 0, 16, 16, 40, 0), + M( 0x11e4, 0x11e5, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3149173, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3149174, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3149175, 0, 0, 16, 16, 40, 0), + M( 0x11e4, 0x31491e5, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3109173, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3109174, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3109175, 0, 0, 16, 16, 40, 0), + M( 0x11e4, 0x31091e5, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3159173, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3159174, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x3159175, 0, 0, 16, 16, 40, 0), + M( 0x11e4, 0x31591e5, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1176, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1176, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1176, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1176, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1176, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1176, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x31c9176, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x31c9176, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x31c9176, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x31c9176, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x31c9176, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x31c9176, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e6, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11e6, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11e6, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e6, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11e6, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11e6, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x31c91e6, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x31c91e6, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x31c91e6, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x31c91e6, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x31c91e6, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x31c91e6, 0, 0, 16, 16, 60, 0), + M( 0x1177, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1179, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117b, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117b, 0, 0, 16, 16, 40, 0), + M( 0x1177, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1179, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117b, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117b, 0, 0, 16, 16, 40, 0), + M( 0x1177, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1179, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117b, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117b, 0, 0, 16, 16, 40, 0), + M( 0x1177, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1179, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117b, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117b, 0, 0, 16, 16, 40, 0), + M( 0x1178, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117a, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117c, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117c, 0, 0, 16, 16, 40, 0), + M( 0x1178, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117a, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117c, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117c, 0, 0, 16, 16, 40, 0), + M( 0x1178, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117a, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117c, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117c, 0, 0, 16, 16, 40, 0), + M( 0x1178, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117a, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117c, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117c, 0, 0, 16, 16, 40, 0), + M( 0x1177, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1179, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e7, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e7, 0, 0, 16, 16, 40, 0), + M( 0x1177, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1179, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e7, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e7, 0, 0, 16, 16, 40, 0), + M( 0x1177, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1179, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e7, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e7, 0, 0, 16, 16, 40, 0), + M( 0x1177, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1179, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e7, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e7, 0, 0, 16, 16, 40, 0), + M( 0x1178, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117a, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e8, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e8, 0, 0, 16, 16, 40, 0), + M( 0x1178, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117a, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e8, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e8, 0, 0, 16, 16, 40, 0), + M( 0x1178, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117a, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e8, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e8, 0, 0, 16, 16, 40, 0), + M( 0x1178, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117a, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e8, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11e8, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x117d, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x117e, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x117f, 0, 0, 16, 16, 50, 0), + M( 0x58c, 0x117f, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x117d, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x117e, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x117f, 0, 0, 16, 16, 50, 0), + M( 0x58c, 0x117f, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x31c917d, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x31c917e, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x31c917f, 0, 0, 16, 16, 50, 0), + M( 0x58c, 0x31c917f, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x31d917d, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x31d917e, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x31d917f, 0, 0, 16, 16, 50, 0), + M( 0x58c, 0x31d917f, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x117d, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x117e, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x11e1, 0, 0, 16, 16, 50, 0), + M( 0x58c, 0x11e1, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x117d, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x117e, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x11e1, 0, 0, 16, 16, 50, 0), + M( 0x58c, 0x11e1, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x31c917d, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x31c917e, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x31c91e1, 0, 0, 16, 16, 50, 0), + M( 0x58c, 0x31c91e3, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x31d917d, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x31d917e, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x31d91e1, 0, 0, 16, 16, 50, 0), + M( 0x58c, 0x31d91e1, 0, 0, 16, 16, 50, 0), + M( 0x1180, 0x1181, 0, 0, 16, 16, 10, 0), + M( 0x1183, 0x30e9182, 0, 0, 16, 16, 60, 0), + M( 0x1183, 0x30e9182, 0, 0, 16, 16, 60, 0), + M( 0x1183, 0x30e9184, 0, 0, 16, 16, 60, 0), + M( 0x1180, 0x1181, 0, 0, 16, 16, 10, 0), + M( 0x1183, 0x3139182, 0, 0, 16, 16, 60, 0), + M( 0x1183, 0x3139182, 0, 0, 16, 16, 60, 0), + M( 0x1183, 0x3139184, 0, 0, 16, 16, 60, 0), + M( 0x1180, 0x1181, 0, 0, 16, 16, 10, 0), + M( 0x1183, 0x3149182, 0, 0, 16, 16, 60, 0), + M( 0x1183, 0x3149182, 0, 0, 16, 16, 60, 0), + M( 0x1183, 0x3149184, 0, 0, 16, 16, 60, 0), + M( 0x1180, 0x1181, 0, 0, 16, 16, 10, 0), + M( 0x1183, 0x3159182, 0, 0, 16, 16, 60, 0), + M( 0x1183, 0x3159182, 0, 0, 16, 16, 60, 0), + M( 0x1183, 0x3159184, 0, 0, 16, 16, 60, 0), + M( 0x1180, 0x1181, 0, 0, 16, 16, 10, 0), + M( 0x1183, 0x30e9182, 0, 0, 16, 16, 60, 0), + M( 0x1183, 0x30e9182, 0, 0, 16, 16, 60, 0), + M( 0x1183, 0x30e91e9, 0, 0, 16, 16, 60, 0), + M( 0x1180, 0x1181, 0, 0, 16, 16, 10, 0), + M( 0x1183, 0x3139182, 0, 0, 16, 16, 60, 0), + M( 0x1183, 0x3139182, 0, 0, 16, 16, 60, 0), + M( 0x1183, 0x31391e9, 0, 0, 16, 16, 60, 0), + M( 0x1180, 0x1181, 0, 0, 16, 16, 10, 0), + M( 0x1183, 0x3149182, 0, 0, 16, 16, 60, 0), + M( 0x1183, 0x3149182, 0, 0, 16, 16, 60, 0), + M( 0x1183, 0x31491e9, 0, 0, 16, 16, 60, 0), + M( 0x1180, 0x1181, 0, 0, 16, 16, 10, 0), + M( 0x1183, 0x3159182, 0, 0, 16, 16, 60, 0), + M( 0x1183, 0x3159182, 0, 0, 16, 16, 60, 0), + M( 0x1183, 0x31591e9, 0, 0, 16, 16, 60, 0), + M( 0x1185, 0x1187, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1189, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1189, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x118b, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1187, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1189, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1189, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x118b, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1187, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1189, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1189, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x118b, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1187, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1189, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1189, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x118b, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x1188, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118a, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118a, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118c, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x1188, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118a, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118a, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118c, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x1188, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118a, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118a, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118c, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x1188, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118a, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118a, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118c, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1187, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1189, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1189, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x11ea, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1187, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1189, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1189, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x11ea, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1187, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1189, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1189, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x11ea, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1187, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1189, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x1189, 0, 0, 16, 16, 10, 0), + M( 0x1185, 0x11ea, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x1188, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118a, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118a, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x11eb, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x1188, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118a, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118a, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x11eb, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x1188, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118a, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118a, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x11eb, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x1188, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118a, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x118a, 0, 0, 16, 16, 10, 0), + M( 0x1186, 0x11eb, 0, 0, 16, 16, 10, 0), + M( 0xf54, 0x11ec, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ed, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ed, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ee, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ec, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ed, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ed, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ee, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ec, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ed, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ed, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ee, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ec, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ed, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ed, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ee, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ef, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f1, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ef, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f1, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ef, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f1, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ef, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f1, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f2, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f3, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f3, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f4, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f2, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f3, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f3, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f4, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f2, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f3, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f3, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f4, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f2, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f3, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f3, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11f4, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x11f5, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x11f5, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x11f5, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x11f6, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x11f6, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x11f6, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x11f7, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x11f7, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x11f7, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x11f8, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x11f8, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x11f8, 0, 0, 16, 16, 20, 0), + M( 0xf54, 0x11f9, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11fa, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11fa, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11fb, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11f9, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11fa, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11fa, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11fb, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11f9, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11fa, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11fa, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11fb, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11f9, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11fa, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11fa, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x11fb, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fc, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fc, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fc, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fc, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fc, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fc, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fc, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fc, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fc, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x0, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fc, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fc, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fc, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fd, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fe, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fe, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ff, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fd, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fe, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fe, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ff, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fd, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fe, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fe, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ff, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fd, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fe, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11fe, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x11ff, 0, 0, 16, 16, 40, 0), + M( 0xf54, 0x1200, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1201, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1201, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1202, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3099200, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3099201, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3099201, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3099202, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30a9200, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30a9201, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30a9201, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30a9202, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b9200, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b9201, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b9201, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b9202, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1203, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1204, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1204, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1205, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3099203, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3099204, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3099204, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x3099205, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30a9203, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30a9204, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30a9204, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30a9205, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b9203, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b9204, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b9204, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x30b9205, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x1206, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1208, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1208, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x120a, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1206, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1208, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1208, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x120a, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1206, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1208, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1208, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x120a, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1206, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1208, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1208, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x120a, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1207, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1209, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1209, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x120b, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1207, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1209, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1209, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x120b, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1207, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1209, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1209, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x120b, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1207, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1209, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x1209, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x120b, 0, 0, 16, 16, 80, 0), + M( 0xf54, 0x120c, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x120d, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x120d, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x120e, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x120c, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x120d, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x120d, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x120e, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x120c, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x120d, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x120d, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x120e, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x120c, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x120d, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x120d, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x120e, 0, 0, 16, 16, 60, 0), + M( 0xf54, 0x120f, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x1210, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x1210, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x1211, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x120f, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x1210, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x1210, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x1211, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x120f, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x1210, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x1210, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x1211, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x120f, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x1210, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x1210, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x1211, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1213, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1214, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1214, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1215, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x30b9213, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x30b9214, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x30b9214, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x30b9215, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3099213, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3099214, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3099214, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3099215, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3089213, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3089214, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3089214, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3089215, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1216, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1217, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1217, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1218, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1216, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1217, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1217, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1218, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1216, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1217, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1217, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1218, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1216, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1217, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1217, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1218, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1219, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x121a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x121a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x121b, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1219, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x121a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x121a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x121b, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1219, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x121a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x121a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x121b, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1219, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x121a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x121a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x121b, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x121c, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x121d, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x121d, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x121e, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x121c, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x121d, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x121d, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x121e, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x121c, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x121d, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x121d, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x121e, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x121c, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x121d, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x121d, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x121e, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x121f, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1220, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1220, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1221, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x309921f, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3099220, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3099220, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3099221, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x311921f, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3119220, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3119220, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3119221, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x310921f, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3109220, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3109220, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3109221, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1222, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1223, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1223, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1224, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3099222, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3099223, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3099223, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3099224, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3109222, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3109223, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3109223, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3109224, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3089222, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3089223, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3089223, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3089224, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1225, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1226, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1226, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1227, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3099225, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3099226, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3099226, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3099227, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x30b9225, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x30b9226, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x30b9226, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x30b9227, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3089225, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3089226, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3089226, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x3089227, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1228, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1229, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1229, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x122a, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1228, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1229, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1229, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x122a, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1228, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1229, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1229, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x122a, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1228, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1229, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1229, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x122a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x122b, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x122d, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x122d, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x122f, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x122b, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x122d, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x122d, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x122f, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x122b, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x122d, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x122d, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x122f, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x122b, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x122d, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x122d, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x122f, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x122c, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x122e, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x122e, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1230, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x122c, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x122e, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x122e, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1230, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x122c, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x122e, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x122e, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1230, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x122c, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x122e, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x122e, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1230, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1231, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1232, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1232, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1233, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1231, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1232, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1232, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1233, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1231, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1232, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1232, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1233, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1231, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1232, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1232, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1233, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1234, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1235, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1235, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1236, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1234, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1235, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1235, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1236, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1234, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1235, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1235, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1236, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1234, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1235, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1235, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1236, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1237, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1238, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1238, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1239, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1237, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1238, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1238, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1239, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1237, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1238, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1238, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1239, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1237, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1238, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1238, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1239, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x123a, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x123b, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x123b, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x123c, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x123a, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x123b, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x123b, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x123c, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x123a, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x123b, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x123b, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x123c, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x123a, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x123b, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x123b, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x123c, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x123d, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x123e, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x123e, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x123f, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x123d, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x123e, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x123e, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x123f, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x123d, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x123e, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x123e, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x123f, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x123d, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x123e, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x123e, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x123f, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1240, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1241, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1241, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1242, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1240, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1241, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1241, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1242, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1240, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1241, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1241, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1242, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1240, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1241, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1241, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1242, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1256, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1256, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1256, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3089256, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3089256, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3089256, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x30b9256, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x30b9256, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x30b9256, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3109256, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3109256, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x3109256, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1257, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1258, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1258, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1259, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1257, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1258, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1258, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1259, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1257, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1258, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1258, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1259, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1257, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1258, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1258, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1259, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x125a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x125a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x125a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x125a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x125a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x125a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x125a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x125a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x125a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x125a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x125a, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x125a, 0, 0, 16, 16, 50, 0), +}; +#undef M + + +static const StringID _town_tile_names[] = { + STR_200F_TALL_OFFICE_BLOCK, + STR_2010_OFFICE_BLOCK, + STR_2011_SMALL_BLOCK_OF_FLATS, + STR_2012_CHURCH, + STR_2013_LARGE_OFFICE_BLOCK, + STR_2013_LARGE_OFFICE_BLOCK, + STR_2014_TOWN_HOUSES, + STR_2015_HOTEL, + STR_2015_HOTEL, + STR_2016_STATUE, + STR_2017_FOUNTAIN, + STR_2018_PARK, + STR_2018_PARK, + STR_2019_OFFICE_BLOCK, + STR_201A_SHOPS_AND_OFFICES, + STR_201A_SHOPS_AND_OFFICES, + STR_201A_SHOPS_AND_OFFICES, + STR_201B_MODERN_OFFICE_BUILDING, + STR_201C_WAREHOUSE, + STR_201D_OFFICE_BLOCK, + STR_201E_STADIUM, + STR_201E_STADIUM, + STR_201E_STADIUM, + STR_201E_STADIUM, + STR_201F_OLD_HOUSES, + STR_2036_COTTAGES, + STR_2037_HOUSES, + STR_2038_FLATS, + STR_2039_TALL_OFFICE_BLOCK, + STR_203A_SHOPS_AND_OFFICES, + STR_203B_SHOPS_AND_OFFICES, + STR_203C_THEATER, + STR_203D_STADIUM, + STR_203D_STADIUM, + STR_203D_STADIUM, + STR_203D_STADIUM, + STR_203E_OFFICES, + STR_203F_HOUSES, + STR_203F_HOUSES, + STR_2040_CINEMA, + STR_2041_SHOPPING_MALL, + STR_2041_SHOPPING_MALL, + STR_2041_SHOPPING_MALL, + STR_2041_SHOPPING_MALL, + STR_2038_FLATS, + STR_2038_FLATS, + STR_203F_HOUSES, + STR_203F_HOUSES, + STR_203F_HOUSES, + STR_203F_HOUSES, + STR_200F_TALL_OFFICE_BLOCK, + STR_200F_TALL_OFFICE_BLOCK, + STR_200F_TALL_OFFICE_BLOCK, + STR_200F_TALL_OFFICE_BLOCK, + STR_200F_TALL_OFFICE_BLOCK, + STR_200F_TALL_OFFICE_BLOCK, + STR_203F_HOUSES, + STR_203F_HOUSES, + STR_201A_SHOPS_AND_OFFICES, + STR_201A_SHOPS_AND_OFFICES, + STR_2012_CHURCH, + STR_2012_CHURCH, + STR_203F_HOUSES, + STR_203F_HOUSES, + STR_201A_SHOPS_AND_OFFICES, + STR_201A_SHOPS_AND_OFFICES, + STR_2015_HOTEL, + STR_2015_HOTEL, + STR_2015_HOTEL, + STR_2015_HOTEL, + STR_201A_SHOPS_AND_OFFICES, + STR_201A_SHOPS_AND_OFFICES, + STR_200F_TALL_OFFICE_BLOCK, + STR_200F_TALL_OFFICE_BLOCK, + STR_200F_TALL_OFFICE_BLOCK, + STR_200F_TALL_OFFICE_BLOCK, + STR_200F_TALL_OFFICE_BLOCK, + STR_200F_TALL_OFFICE_BLOCK, + STR_203F_HOUSES, + STR_203F_HOUSES, + STR_203F_HOUSES, + STR_203F_HOUSES, + STR_2038_FLATS, + STR_2012_CHURCH, + STR_203F_HOUSES, + STR_2038_FLATS, + STR_2038_FLATS, + STR_200F_TALL_OFFICE_BLOCK, + STR_200F_TALL_OFFICE_BLOCK, + STR_2038_FLATS, + STR_200F_TALL_OFFICE_BLOCK, + STR_2012_CHURCH, + STR_203F_HOUSES, + STR_203F_HOUSES, + STR_203F_HOUSES, + STR_203F_HOUSES, + STR_203F_HOUSES, + STR_203F_HOUSES, + STR_200F_TALL_OFFICE_BLOCK, + STR_203F_HOUSES, + STR_203F_HOUSES, + STR_200F_TALL_OFFICE_BLOCK, + STR_2059_IGLOO, + STR_205A_TEPEES, + STR_201A_SHOPS_AND_OFFICES, + STR_201A_SHOPS_AND_OFFICES, + STR_200F_TALL_OFFICE_BLOCK, + STR_2016_STATUE, + STR_205B_TEAPOT_HOUSE, + STR_205C_PIGGY_BANK, +}; + +static const uint16 _housetype_flags[110] = { + 0x1010, 0x1018, 0x100E, 0x100F, 0x7010, 0x0810, 0x100F, 0x1014, + 0x0000, 0x7018, 0x7010, 0x1004, 0x1008, 0x1018, 0x101C, 0x101C, + 0x101C, 0x7010, 0x1010, 0x1010, 0x100F, 0x0000, 0x0000, 0x0000, + 0x1003, 0x1001, 0x100F, 0x101C, 0x101C, 0x101C, 0x5014, 0x1018, + 0x700F, 0x0000, 0x0000, 0x0000, 0x7018, 0x2003, 0x0803, 0x101C, + 0x101E, 0x0000, 0x0000, 0x0000, 0x201C, 0x081C, 0x200F, 0x080F, + 0x2007, 0x0807, 0x6018, 0x0818, 0x2018, 0x0818, 0x6018, 0x0818, + 0x2001, 0x0801, 0x201E, 0x081E, 0x200F, 0x080F, 0x2007, 0x0807, + 0x201C, 0x081C, 0x201C, 0x0000, 0x081C, 0x0000, 0x601C, 0x081C, + 0x2018, 0x0818, 0x201C, 0x0000, 0x081C, 0x0000, 0x401E, 0x401E, + 0x401E, 0x4001, 0x401C, 0x400E, 0x401E, 0x401C, 0x401C, 0x4018, + 0x4000, 0x401C, 0x4018, 0x801F, 0x801F, 0x8003, 0x800F, 0x800F, + 0x800F, 0x800F, 0x801C, 0x801F, 0x0000, 0x801C, 0x8001, 0x8001, + 0x801C, 0x801C, 0x801C, 0x801C, 0x801F, 0x801F, +}; + +static const byte _housetype_extra_flags[110] = { + 0, 0, 0, 0,32,32, 0, 8, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,16, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 8, 0, 8, 0, 0, 0, + 0, 0, 4, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, +}; + +static const byte _housetype_population[110] = { + 187, 85, 40, 5, 220, 220, 30, 140, + 0, 0, 0, 0, 0, 150, 95, 95, + 95, 130, 6, 110, 65, 0, 0, 0, + 15, 12, 13, 100, 170, 100, 180, 35, + 65, 0, 0, 0, 140, 15, 15, 35, + 180, 0, 0, 0, 80, 80, 16, 16, + 14, 14, 135, 135, 170, 170, 210, 210, + 10, 10, 25, 25, 6, 6, 17, 17, + 90, 90, 140, 0, 140, 0, 105, 105, + 190, 190, 250, 0, 250, 0, 16, 16, + 16, 7, 45, 8, 18, 90, 120, 250, + 0, 80, 180, 8, 18, 7, 15, 17, + 19, 21, 75, 35, 0, 85, 11, 10, + 67, 86, 95, 30, 25, 18, +}; + +static const byte _housetype_mailamount[110] = { + 70, 55, 20, 2, 85, 85, 12, 22, + 22, 0, 0, 0, 0, 65, 48, 48, + 48, 50, 10, 55, 5, 5, 5, 5, + 6, 7, 8, 35, 50, 40, 64, 23, + 5, 5, 5, 5, 65, 6, 6, 23, + 5, 5, 5, 5, 20, 20, 6, 6, + 6, 6, 60, 60, 70, 70, 80, 80, + 5, 5, 20, 20, 2, 2, 7, 7, + 45, 45, 25, 25, 25, 25, 50, 50, + 75, 75, 60, 60, 60, 60, 6, 6, + 5, 4, 15, 3, 7, 24, 25, 80, + 80, 23, 90, 3, 5, 3, 6, 6, + 6, 6, 20, 9, 0, 18, 3, 3, + 22, 23, 28, 10, 8, 7, +}; + + +static const byte _housetype_remove_cost[110] = { + 150, 140, 100, 90, 160, 160, 80, 180, + 180, 65, 65, 60, 60, 130, 110, 105, + 107, 200, 145, 155, 250, 250, 250, 250, + 70, 75, 71, 135, 145, 132, 155, 220, + 250, 250, 250, 250, 170, 70, 70, 210, + 250, 250, 250, 250, 100, 100, 70, 70, + 80, 80, 150, 150, 170, 170, 200, 200, + 60, 60, 100, 100, 85, 85, 80, 80, + 140, 140, 160, 160, 160, 160, 130, 130, + 190, 190, 140, 140, 140, 140, 80, 80, + 80, 30, 130, 90, 80, 110, 120, 190, + 190, 110, 180, 90, 90, 70, 80, 80, + 80, 80, 160, 90, 90, 150, 60, 60, + 140, 145, 165, 90, 75, 85, +}; + +static const uint16 _housetype_remove_ratingmod[110] = { + 140, 130, 90, 230, 160, 160, 80, 150, + 150, 40, 40, 75, 75, 110, 100, 100, + 100, 150, 110, 110, 300, 300, 300, 300, + 75, 75, 75, 100, 170, 135, 180, 230, + 300, 300, 300, 300, 250, 75, 75, 230, + 300, 300, 300, 300, 90, 90, 70, 70, + 70, 70, 120, 120, 130, 130, 140, 140, + 60, 60, 80, 80, 230, 230, 80, 80, + 110, 110, 160, 160, 160, 160, 105, 105, + 135, 135, 200, 200, 200, 200, 80, 80, + 80, 30, 95, 200, 80, 95, 95, 140, + 140, 95, 150, 200, 90, 50, 75, 75, + 75, 75, 130, 80, 80, 130, 45, 45, + 130, 130, 130, 70, 65, 95, +}; + + +typedef struct { + byte min,max; +} HousetypeYear; + +static const HousetypeYear _housetype_years[110] = { + {43, 255}, + {37, 255}, + {48, 255}, + {0, 255}, + {55, 255}, + {55, 255}, + {0, 255}, + {39, 255}, + {39, 255}, + {25, 255}, + {25, 255}, + {0, 255}, + {15, 255}, + {31, 255}, + {10, 40}, + {10, 40}, + {10, 40}, + {57, 255}, + {63, 255}, + {65, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 31}, + {0, 32}, + {11, 255}, + {15, 255}, + {43, 255}, + {0, 35}, + {53, 255}, + {0, 255}, + {38, 255}, + {38, 255}, + {38, 255}, + {38, 255}, + {80, 255}, + {0, 40}, + {0, 40}, + {25, 255}, + {63, 255}, + {63, 255}, + {63, 255}, + {63, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 43}, + {0, 43}, + {46, 255}, + {46, 255}, + {50, 255}, + {50, 255}, + {54, 255}, + {54, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 40}, + {0, 40}, + {52, 255}, + {52, 255}, + {52, 255}, + {52, 255}, + {43, 255}, + {43, 255}, + {58, 255}, + {58, 255}, + {47, 255}, + {47, 255}, + {47, 255}, + {47, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {53, 255}, + {42, 255}, + {64, 255}, + {64, 255}, + {0, 255}, + {73, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, + {0, 255}, +}; + +static const byte _housetype_cargo_passengers[110] = { + 8, 8, 8, 2, 10,10,4, 6, + 6, 2, 2, 2, 2, 8, 6, 6, + 6, 10,6, 6, 4, 4, 4, 4, + 3, 3, 3, 7, 8, 6, 8, 8, + 4, 4, 4, 4, 8, 3, 3, 8, + 8, 8, 8, 8, 5, 5, 3, 3, + 3, 3, 8, 8, 9, 9,10, 10, + 2, 2, 3, 3, 2, 2, 3, 3, + 6, 6, 6, 6, 6, 6, 7, 7, + 9, 9, 7, 7, 7, 7, 3, 3, + 3, 3, 6, 2, 3, 6, 6, 8, + 8, 6, 8, 2, 6, 3, 3, 3, + 3, 3, 8, 4, 4, 8, 3, 3, + 8, 8, 8, 4, 3, 3, +}; + +static const byte _housetype_cargo_mail[110] = { + 3, 3, 3, 0, 4, 4, 1, 1, + 1, 0, 0, 0, 0, 2, 2, 2, + 2, 3, 3, 2, 0, 0, 0, 0, + 1, 1, 1, 2, 3, 2, 3, 2, + 0, 0, 0, 0, 3, 1, 1, 2, + 2, 2, 2, 2, 2, 2, 1, 1, + 1, 1, 3, 3, 3, 3, 3, 3, + 1, 1, 1, 1, 0, 0, 1, 1, + 2, 2, 1, 1, 1, 1, 2, 2, + 3, 3, 2, 2, 2, 2, 1, 1, + 1, 1, 2, 0, 1, 2, 2, 3, + 3, 2, 3, 0, 2, 1, 1, 1, + 1, 1, 4, 1, 1, 4, 1, 1, + 4, 4, 4, 1, 1, 2, +}; + +static const int8 _housetype_cargo_goods[110] = { + 4, 4, 1, 0, 6, 6, 0, 2, + 2, 0, 0, 0, 0, 4, 3, 3, + 3, 6, 8, 6, 0, 0, 0, 0, + 0, 0, 0, 2, 3, 3, 3, 2, + 0, 0, 0, 0, 2,-1,-1, 2, + 3, 3, 3, 3,-2,-2,-2,-2, + -2,-2, 4, 4, 4, 4, 5, 5, + -1,-1,-1,-1, 0, 0,-1,-1, + 3, 3,-3, 2,-3, 2, 3, 3, + 4, 4, 2, 2, 2, 2,-2,-2, + -2,-1, 1, 0,-2, 1, 1, 4, + 4, 1, 4, 0, 2, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 1, + -4,-4, 2, 2, 2,-4, +}; + +static const byte _house_more_flags[110] = { + 8, 8, 8, 8, 8, 8, 8, 12, + 0, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 15, 0, 0, 0, + 8, 8, 8, 8, 8, 8, 8, 8, + 15, 0, 0, 0, 8, 8, 8, 8, + 15, 0, 0, 0, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 12, 0, 12, 0, 8, 8, + 8, 8, 10, 0, 10, 0, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 10, + 0, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 12, 0, 8, 8, 8, + 8, 8, 8, 8, 8, 8, +}; + diff --git a/table/track_land.h b/table/track_land.h new file mode 100644 index 000000000..3c32e61c5 --- /dev/null +++ b/table/track_land.h @@ -0,0 +1,61 @@ +#define TILE_SEQ_BEGIN(x) ADD_WORD(x), +#define TILE_SEQ_LINE(a,b,c,d,e) ADD_WORD(a), b,c,d,e, +#define TILE_SEQ_END() 0,0,0,0 + +static const byte _track_depot_layout_table_0[] = { + TILE_SEQ_BEGIN(0xF8D) + TILE_SEQ_LINE(0x842B, 2, 13, 13, 1) + TILE_SEQ_END() +}; + +static const byte _track_depot_layout_table_1[] = { + TILE_SEQ_BEGIN(0x83F3) + TILE_SEQ_LINE(0x8427, 2, 2, 1, 13) + TILE_SEQ_LINE(0x8428, 13, 2, 1, 13) + TILE_SEQ_END() +}; + +static const byte _track_depot_layout_table_2[] = { + TILE_SEQ_BEGIN(0x83F4) + TILE_SEQ_LINE(0x8429, 2, 2, 13, 1) + TILE_SEQ_LINE(0x842A, 2, 13, 13, 1) + TILE_SEQ_END() +}; + +static const byte _track_depot_layout_table_3[] = { + TILE_SEQ_BEGIN(0xF8D) + TILE_SEQ_LINE(0x842C, 13, 2, 1, 13) + TILE_SEQ_END() +}; + +static const byte _track_checkpoint_table_0[] = { + TILE_SEQ_BEGIN(0x83F4) + TILE_SEQ_LINE(0x8431, 0, 0, 16, 5) + TILE_SEQ_LINE(0x8430, 0, 11, 16, 5) + TILE_SEQ_END() +}; + +static const byte _track_checkpoint_table_1[] = { + TILE_SEQ_BEGIN(0x83F3) + TILE_SEQ_LINE(0x8432, 0, 0, 5, 16) + TILE_SEQ_LINE(0x842D, 11, 0, 5, 16) + TILE_SEQ_END() +}; + + +static const byte * const _track_depot_layout_table[6] = { + _track_depot_layout_table_0, + _track_depot_layout_table_1, + _track_depot_layout_table_2, + _track_depot_layout_table_3, + + _track_checkpoint_table_0, + _track_checkpoint_table_1, +}; + +const byte _track_sloped_sprites[14] = { + 14, 15, 22, 13, + 0, 21, 17, 12, + 23, 0, 18, 20, + 19, 16 +}; diff --git a/table/train_cmd.h b/table/train_cmd.h new file mode 100644 index 000000000..ddcd381bb --- /dev/null +++ b/table/train_cmd.h @@ -0,0 +1,55 @@ +static const SpriteID _engine_sprite_base[] = { +0x0B59, 0x0B61, 0x0B69, 0x0BE1, 0x0B71, 0x0B75, 0x0B7D, 0x0B7D, +0x0B85, 0x0B85, 0x0B8D, 0x0B8D, 0x0BC9, 0x0BD1, 0x0BD9, 0x0BE9, +0x0BED, 0x0BED, 0x0BF5, 0x0BF9, 0x0B79, 0x0B9D, 0x0B9D, 0x0B95, +0x0B95, 0x0BA5, 0x0BA9, 0x0BA9, 0x0BC1, 0x0BC5, 0x0BB1, 0x0BB9, +0x0BB9, 0x0AAD, 0x0AB1, 0x0AB5, 0x0AB9, 0x0ABD, 0x0AC1, 0x0AC9, +0x0ACD, 0x0AD5, 0x0AD1, 0x0AD9, 0x0AC5, 0x0AD1, 0x0AD5, 0x0AF9, +0x0AFD, 0x0B05, 0x0AB9, 0x0AC1, 0x0AC9, 0x0AD1, 0x0AD9, 0x0AE1, +0x0AE5, 0x0AE9, 0x0AF1, 0x0AF9, 0x0B0D, 0x0B11, 0x0B15, 0x0B19, +0x0B1D, 0x0B21, 0x0B29, 0x0B2D, 0x0B35, 0x0B31, 0x0B39, 0x0B25, +0x0B31, 0x0B35, +}; + +/* For how many directions do we have sprites? (8 or 4; if 4, the other 4 + * directions are symmetric. */ +static const byte _engine_sprite_and[] = { +7, 7, 7, 7, 3, 3, 7, 7, +7, 7, 7, 7, 7, 7, 7, 3, +7, 7, 3, 7, 3, 7, 7, 7, +7, 3, 7, 7, 3, 3, 7, 7, +7, 3, 3, 3, 3, 3, 3, 3, +3, 3, 3, 3, 3, 3, 3, 3, +3, 3, 3, 3, 3, 3, 3, 3, +3, 3, 3, 3, 3, 3, 3, 3, +3, 3, 3, 3, 3, 3, 3, 3, +3, 3, +}; + +/* Non-zero for multihead trains. */ +static const byte _engine_sprite_add[] = { +0, 0, 0, 0, 0, 0, 0, 4, +0, 4, 0, 4, 0, 0, 0, 0, +0, 4, 0, 0, 0, 0, 4, 0, +4, 0, 0, 4, 0, 0, 0, 0, +4, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, +0, 0, +}; + + +static const byte _wagon_full_adder[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 0, 0, 0, 0, 24, + 24, 24, 24, 0, 0, 32, 32, 0, + 4, 4, 4, 4, 4, 4, 4, 0, + 0, 4, 4, 4, 0, 44, 0, 0, + 0, 0, 24, 24, 24, 24, 0, 0, + 32, 32 +}; diff --git a/table/tree_land.h b/table/tree_land.h new file mode 100644 index 000000000..7b3588a7c --- /dev/null +++ b/table/tree_land.h @@ -0,0 +1,213 @@ +static const SpriteID _tree_sprites_1[4] = { + 0x118D, + 0x11A0, + 0x11B3, + 0x11C6, +}; + +static const byte _tree_layout_xy[4][8] = { +{9, 3, 1, 8, 0, 0, 8, 9}, +{4, 4, 9, 1, 6, 9, 0, 9}, +{9, 1, 0, 9, 6, 6, 3, 0}, +{3, 9, 8, 2, 9, 9, 1, 5}, +}; + +static const PalSpriteID _tree_layout_sprite[164+(79-48+1)][4] = { + { 0x652, 0x659, 0x660, 0x667}, /* 0 */ + { 0x652, 0x667, 0x66e, 0x675}, /* 1 */ + { 0x652, 0x66e, 0x659, 0x675}, /* 2 */ + { 0x652, 0x652, 0x660, 0x66e}, /* 3 */ + { 0x660, 0x667, 0x659, 0x652}, /* 4 */ + { 0x660, 0x675, 0x660, 0x660}, /* 5 */ + { 0x660, 0x652, 0x652, 0x66e}, /* 6 */ + { 0x660, 0x675, 0x667, 0x659}, /* 7 */ + { 0x675, 0x660, 0x675, 0x675}, /* 8 */ + { 0x675, 0x659, 0x652, 0x652}, /* 9 */ + { 0x675, 0x66e, 0x652, 0x652}, /* 10 */ + { 0x675, 0x667, 0x659, 0x667}, /* 11 */ + { 0x628, 0x652, 0x660, 0x62f}, /* 12 */ + { 0x628, 0x636, 0x675, 0x644}, /* 13 */ + { 0x628, 0x652, 0x63d, 0x66e}, /* 14 */ + { 0x628, 0x667, 0x644, 0x652}, /* 15 */ + { 0x644, 0x659, 0x660, 0x628}, /* 16 */ + { 0x644, 0x64b, 0x659, 0x636}, /* 17 */ + { 0x644, 0x675, 0x652, 0x63d}, /* 18 */ + { 0x644, 0x63d, 0x66e, 0x652}, /* 19 */ + { 0x636, 0x636, 0x628, 0x636}, /* 20 */ + { 0x636, 0x63d, 0x636, 0x636}, /* 21 */ + { 0x636, 0x64b, 0x636, 0x636}, /* 22 */ + { 0x636, 0x636, 0x636, 0x636}, /* 23 */ + { 0x64b, 0x628, 0x62f, 0x636}, /* 24 */ + { 0x64b, 0x63d, 0x644, 0x636}, /* 25 */ + { 0x64b, 0x636, 0x63d, 0x628}, /* 26 */ + { 0x64b, 0x64b, 0x636, 0x63d}, /* 27 */ + { 0x62f, 0x644, 0x644, 0x636}, /* 28 */ + { 0x62f, 0x62f, 0x636, 0x628}, /* 29 */ + { 0x62f, 0x64b, 0x636, 0x636}, /* 30 */ + { 0x62f, 0x636, 0x62f, 0x636}, /* 31 */ + { 0x67c, 0x675, 0x683, 0x67c}, /* 32 */ + { 0x67c, 0x69f, 0x67c, 0x659}, /* 33 */ + { 0x67c, 0x67c, 0x67c, 0x6a6}, /* 34 */ + { 0x67c, 0x691, 0x66e, 0x68a}, /* 35 */ + { 0x68a, 0x68a, 0x698, 0x68a}, /* 36 */ + { 0x68a, 0x698, 0x683, 0x68a}, /* 37 */ + { 0x68a, 0x67c, 0x691, 0x68a}, /* 38 */ + { 0x68a, 0x683, 0x6a6, 0x69f}, /* 39 */ + { 0x698, 0x68a, 0x698, 0x652}, /* 40 */ + { 0x698, 0x698, 0x660, 0x667}, /* 41 */ + { 0x698, 0x67c, 0x6a6, 0x698}, /* 42 */ + { 0x698, 0x698, 0x698, 0x691}, /* 43 */ + { 0x6a6, 0x6a6, 0x67c, 0x660}, /* 44 */ + { 0x6a6, 0x69f, 0x6a6, 0x652}, /* 45 */ + { 0x6a6, 0x67c, 0x6a6, 0x691}, /* 46 */ + { 0x6a6, 0x691, 0x69f, 0x6a6}, /* 47 */ + { 0x6ad, 0x6ad, 0x6ad, 0x6ad}, /* 48 */ + { 0x6ad, 0x6ad, 0x6c2, 0x6d0}, /* 49 */ + { 0x6ad, 0x6d7, 0x6ad, 0x6ad}, /* 50 */ + { 0x6ad, 0x6d0, 0x6c9, 0x6ad}, /* 51 */ + { 0x6d0, 0x6d0, 0x6d0, 0x6ad}, /* 52 */ + { 0x6d0, 0x6ad, 0x6d7, 0x6c9}, /* 53 */ + { 0x6d0, 0x6d7, 0x6d0, 0x6c2}, /* 54 */ + { 0x6d0, 0x6d0, 0x6d0, 0x6ad}, /* 55 */ + { 0x6d7, 0x6d7, 0x6d7, 0x6d7}, /* 56 */ + { 0x6d7, 0x6d7, 0x6ad, 0x6ad}, /* 57 */ + { 0x6d7, 0x6d0, 0x6d7, 0x6ad}, /* 58 */ + { 0x6d7, 0x6d7, 0x6d0, 0x6ad}, /* 59 */ + { 0x6c2, 0x6d0, 0x6c9, 0x6c2}, /* 60 */ + { 0x6c2, 0x6c9, 0x6c2, 0x6ad}, /* 61 */ + { 0x6c2, 0x6c2, 0x6c2, 0x6ad}, /* 62 */ + { 0x6c2, 0x6c2, 0x6c2, 0x6c9}, /* 63 */ + { 0x6c9, 0x6d0, 0x6b4, 0x6c2}, /* 64 */ + { 0x6c9, 0x6bb, 0x6de, 0x6d7}, /* 65 */ + { 0x6c9, 0x6c2, 0x6bb, 0x6b4}, /* 66 */ + { 0x6c9, 0x6bb, 0x6c2, 0x6de}, /* 67 */ + { 0x6b4, 0x6b4, 0x6de, 0x6c9}, /* 68 */ + { 0x6b4, 0x6bb, 0x6bb, 0x6ad}, /* 69 */ + { 0x6b4, 0x6de, 0x6bb, 0x6b4}, /* 70 */ + { 0x6b4, 0x6ad, 0x6c2, 0x6de}, /* 71 */ + { 0x6bb, 0x6d0, 0x6de, 0x6c2}, /* 72 */ + { 0x6bb, 0x6b4, 0x6bb, 0x6d7}, /* 73 */ + { 0x6bb, 0x6de, 0x6bb, 0x6b4}, /* 74 */ + { 0x6bb, 0x6c9, 0x6c2, 0x6de}, /* 75 */ + { 0x6de, 0x6d7, 0x6de, 0x6c2}, /* 76 */ + { 0x6de, 0x6bb, 0x6de, 0x6d0}, /* 77 */ + { 0x6de, 0x6de, 0x6bb, 0x6b4}, /* 78 */ + { 0x6de, 0x6c9, 0x6c2, 0x6de}, /* 79 */ + { 0x72b, 0x732, 0x72b, 0x739}, /* 80 */ + { 0x72b, 0x747, 0x755, 0x72b}, /* 81 */ + { 0x72b, 0x72b, 0x76a, 0x786}, /* 82 */ + { 0x72b, 0x74e, 0x72b, 0x72b}, /* 83 */ + { 0x732, 0x732, 0x72b, 0x739}, /* 84 */ + { 0x732, 0x747, 0x732, 0x732}, /* 85 */ + { 0x732, 0x732, 0x755, 0x794}, /* 86 */ + { 0x732, 0x74e, 0x732, 0x78d}, /* 87 */ + { 0x747, 0x732, 0x747, 0x740}, /* 88 */ + { 0x747, 0x747, 0x732, 0x76a}, /* 89 */ + { 0x747, 0x72b, 0x755, 0x747}, /* 90 */ + { 0x747, 0x786, 0x732, 0x747}, /* 91 */ + { 0x74e, 0x74e, 0x72b, 0x794}, /* 92 */ + { 0x74e, 0x755, 0x732, 0x74e}, /* 93 */ + { 0x74e, 0x72b, 0x786, 0x747}, /* 94 */ + { 0x74e, 0x74e, 0x732, 0x794}, /* 95 */ + { 0x76a, 0x76a, 0x74e, 0x74e}, /* 96 */ + { 0x76a, 0x794, 0x732, 0x76a}, /* 97 */ + { 0x76a, 0x732, 0x786, 0x76a}, /* 98 */ + { 0x76a, 0x786, 0x732, 0x78d}, /* 99 */ + { 0x78d, 0x78d, 0x74e, 0x794}, /* 100 */ + { 0x78d, 0x732, 0x739, 0x747}, /* 101 */ + { 0x78d, 0x732, 0x786, 0x76a}, /* 102 */ + { 0x78d, 0x786, 0x78d, 0x794}, /* 103 */ + { 0x786, 0x786, 0x740, 0x732}, /* 104 */ + { 0x786, 0x786, 0x72b, 0x732}, /* 105 */ + { 0x786, 0x732, 0x786, 0x786}, /* 106 */ + { 0x786, 0x786, 0x78d, 0x794}, /* 107 */ + { 0x778, 0x778, 0x77f, 0x778}, /* 108 */ + { 0x778, 0x77f, 0x778, 0x77f}, /* 109 */ + { 0x778, 0x77f, 0x77f, 0x778}, /* 110 */ + { 0x778, 0x778, 0x778, 0x77f}, /* 111 */ + { 0x75c, 0x71d, 0x75c, 0x724}, /* 112 */ + { 0x75c, 0x72b, 0x75c, 0x763}, /* 113 */ + { 0x75c, 0x75c, 0x771, 0x71d}, /* 114 */ + { 0x75c, 0x771, 0x75c, 0x75c}, /* 115 */ + { 0x771, 0x771, 0x75c, 0x71d}, /* 116 */ + { 0x771, 0x747, 0x75c, 0x771}, /* 117 */ + { 0x771, 0x75c, 0x771, 0x724}, /* 118 */ + { 0x771, 0x771, 0x75c, 0x763}, /* 119 */ + { 0x71d, 0x71d, 0x771, 0x724}, /* 120 */ + { 0x71d, 0x74e, 0x763, 0x71d}, /* 121 */ + { 0x71d, 0x724, 0x794, 0x71d}, /* 122 */ + { 0x71d, 0x71d, 0x75c, 0x78d}, /* 123 */ + { 0x794, 0x724, 0x75c, 0x794}, /* 124 */ + { 0x794, 0x794, 0x75c, 0x71d}, /* 125 */ + { 0x794, 0x724, 0x794, 0x71d}, /* 126 */ + { 0x794, 0x794, 0x771, 0x78d}, /* 127 */ + { 0x30b879b, 0x308879b, 0x311879b, 0x312879b}, /* 128 */ + { 0x79b, 0x315879b, 0x30d879b, 0x316879b}, /* 129 */ + { 0x30d879b, 0x313879b, 0x309879b, 0x79b}, /* 130 */ + { 0x30a879b, 0x30b879b, 0x310879b, 0x30b879b}, /* 131 */ + { 0x7a2, 0x30b87a2, 0x30987a2, 0x31287a2}, /* 132 */ + { 0x31187a2, 0x30d87a2, 0x30987a2, 0x31587a2}, /* 133 */ + { 0x30b87a2, 0x30887a2, 0x30a87a2, 0x31687a2}, /* 134 */ + { 0x31387a2, 0x31187a2, 0x31087a2, 0x31487a2}, /* 135 */ + { 0x30b87a9, 0x7a9, 0x31387a9, 0x31587a9}, /* 136 */ + { 0x31387a9, 0x30d87a9, 0x30887a9, 0x31187a9}, /* 137 */ + { 0x30987a9, 0x30b87a9, 0x30d87a9, 0x31487a9}, /* 138 */ + { 0x30d87a9, 0x7a9, 0x30b87a9, 0x31087a9}, /* 139 */ + { 0x7b0, 0x7b0, 0x7b0, 0x7b0}, /* 140 */ + { 0x7b0, 0x7b0, 0x7b0, 0x7b0}, /* 141 */ + { 0x7b0, 0x7b0, 0x7b0, 0x7b0}, /* 142 */ + { 0x7b0, 0x7b0, 0x7b0, 0x7b0}, /* 143 */ + { 0x30987b7, 0x30b87b7, 0x31387b7, 0x31187b7}, /* 144 */ + { 0x30b87b7, 0x7b7, 0x31587b7, 0x31087b7}, /* 145 */ + { 0x30d87b7, 0x31487b7, 0x30987b7, 0x30b87b7}, /* 146 */ + { 0x7b7, 0x30887b7, 0x31387b7, 0x30b87b7}, /* 147 */ + { 0x30b87be, 0x30987be, 0x30d87be, 0x7be}, /* 148 */ + { 0x30d87be, 0x31487be, 0x31287be, 0x31587be}, /* 149 */ + { 0x31187be, 0x31087be, 0x31387be, 0x30b87be}, /* 150 */ + { 0x7be, 0x30b87be, 0x30887be, 0x30987be}, /* 151 */ + { 0x30a87c5, 0x30b87c5, 0x31687c5, 0x31087c5}, /* 152 */ + { 0x30b87c5, 0x30887c5, 0x31487c5, 0x30a87c5}, /* 153 */ + { 0x7c5, 0x31287c5, 0x30d87c5, 0x30a87c5}, /* 154 */ + { 0x30987c5, 0x31087c5, 0x7c5, 0x31587c5}, /* 155 */ + { 0x30a87cc, 0x31587cc, 0x31287cc, 0x31487cc}, /* 156 */ + { 0x30d87cc, 0x7cc, 0x31087cc, 0x31687cc}, /* 157 */ + { 0x30b87cc, 0x30887cc, 0x31187cc, 0x30b87cc}, /* 158 */ + { 0x30987cc, 0x31387cc, 0x30d87cc, 0x30a87cc}, /* 159 */ + { 0x30b87d3, 0x30987d3, 0x31487d3, 0x31687d3}, /* 160 */ + { 0x30d87d3, 0x31387d3, 0x31587d3, 0x31187d3}, /* 161 */ + { 0x30a87d3, 0x30887d3, 0x7d3, 0x31087d3}, /* 162 */ + { 0x31587d3, 0x30b87d3, 0x31687d3, 0x7d3}, /* 163 */ + /* the extra things follow */ + { 0x6e5, 0x6e5, 0x6e5, 0x6e5}, /* 0 */ + { 0x6e5, 0x6e5, 0x6fa, 0x708}, /* 1 */ + { 0x6e5, 0x70f, 0x6e5, 0x6e5}, /* 2 */ + { 0x6e5, 0x708, 0x701, 0x6e5}, /* 3 */ + { 0x708, 0x708, 0x708, 0x6e5}, /* 4 */ + { 0x708, 0x6e5, 0x70f, 0x701}, /* 5 */ + { 0x708, 0x70f, 0x708, 0x6fa}, /* 6 */ + { 0x708, 0x708, 0x708, 0x6e5}, /* 7 */ + { 0x70f, 0x70f, 0x70f, 0x70f}, /* 8 */ + { 0x70f, 0x70f, 0x6e5, 0x6e5}, /* 9 */ + { 0x70f, 0x708, 0x70f, 0x6e5}, /* 10 */ + { 0x70f, 0x70f, 0x708, 0x6e5}, /* 11 */ + { 0x6fa, 0x708, 0x701, 0x6fa}, /* 12 */ + { 0x6fa, 0x701, 0x6fa, 0x6e5}, /* 13 */ + { 0x6fa, 0x6fa, 0x6fa, 0x6e5}, /* 14 */ + { 0x6fa, 0x6fa, 0x6fa, 0x701}, /* 15 */ + { 0x701, 0x708, 0x6ec, 0x6fa}, /* 16 */ + { 0x701, 0x6f3, 0x716, 0x70f}, /* 17 */ + { 0x701, 0x6fa, 0x6f3, 0x6ec}, /* 18 */ + { 0x701, 0x6f3, 0x6fa, 0x716}, /* 19 */ + { 0x6ec, 0x6ec, 0x716, 0x701}, /* 20 */ + { 0x6ec, 0x6f3, 0x6f3, 0x6e5}, /* 21 */ + { 0x6ec, 0x716, 0x6f3, 0x6ec}, /* 22 */ + { 0x6ec, 0x6e5, 0x6fa, 0x716}, /* 23 */ + { 0x6f3, 0x708, 0x716, 0x6fa}, /* 24 */ + { 0x6f3, 0x6ec, 0x6f3, 0x70f}, /* 25 */ + { 0x6f3, 0x716, 0x6f3, 0x6ec}, /* 26 */ + { 0x6f3, 0x701, 0x6fa, 0x716}, /* 27 */ + { 0x716, 0x70f, 0x716, 0x6fa}, /* 28 */ + { 0x716, 0x6f3, 0x716, 0x708}, /* 29 */ + { 0x716, 0x716, 0x6f3, 0x6ec}, /* 30 */ + { 0x716, 0x701, 0x6fa, 0x716}, /* 31 */ +}; diff --git a/table/tunnel_land.h b/table/tunnel_land.h new file mode 100644 index 000000000..5e400a855 --- /dev/null +++ b/table/tunnel_land.h @@ -0,0 +1,755 @@ +static const SpriteID _draw_tunnel_table_1[] = { + 0x93D, 0x955, +}; + +static const SpriteID _bridge_land_below[] = { + 0xF8D, 0xFDD,0x11C6, 0xFDD, +}; + +static const SpriteID _bridge_transp_below[] = { + 0x3F3, 0x3F4, 0xF8D, 0xF8D, // without ice + 0x40D, 0x40E, 0x11C6, 0x11C6, // with ice +}; + +static const SpriteID _bridge_transp_overlay[] = { + 0, 0, 0x534, 0x535, // without ice + 0, 0, 0x547, 0x548, // with ice +}; + +static const PalSpriteID _bridge_sprite_table_2_0[] = { + 0x9C3, 0x9C7, 0x9C9, 0x0, 0x9C4, 0x9C8, 0x9CA, 0x0, + 0x9C5, 0x9C7, 0x9C9, 0x0, 0x9C6, 0x9C8, 0x9CA, 0x0, + 0x10E4, 0x9C7, 0x9C9, 0x0, 0x10E5, 0x9C8, 0x9CA, 0x0, + 0x110C, 0x9C7, 0x9C9, 0x0, 0x110D, 0x9C8, 0x9CA, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_2_1[] = { + 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, + 0x31D898E, 0x31D8990, 0x31D898D, 0x31D898F, 0x31D8992, 0x31D8994, 0x31D8991, 0x31D8993, + 0x10E7, 0x10E9, 0x10E6, 0x10E8, 0x10EB, 0x10ED, 0x10EA, 0x10EC, + 0x110F, 0x1111, 0x110E, 0x1110, 0x1113, 0x1115, 0x1112, 0x1114, +}; + +static const PalSpriteID _bridge_sprite_table_2_poles[] = { + SPR_OPENTTD_BASE + 36 + 6*3, + SPR_OPENTTD_BASE + 36 + 6*3, + SPR_OPENTTD_BASE + 36 + 6*3, + SPR_OPENTTD_BASE + 36 + 6*3, + SPR_OPENTTD_BASE + 38 + 6*3, + 0x0, + + SPR_OPENTTD_BASE + 33 + 6*3, + SPR_OPENTTD_BASE + 33 + 6*3, + SPR_OPENTTD_BASE + 33 + 6*3, + SPR_OPENTTD_BASE + 33 + 6*3, + SPR_OPENTTD_BASE + 35 + 6*3, + 0x0, + + 0x0, + 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_4_0[] = { + 0x9A9, 0x99F, 0x9B1, 0x0, 0x9A5, 0x997, 0x9AD, 0x0, + 0x99D, 0x99F, 0x9B1, 0x0, 0x995, 0x997, 0x9AD, 0x0, + 0x10F2, 0x99F, 0x9B1, 0x0, 0x10EE, 0x997, 0x9AD, 0x0, + 0x111A, 0x99F, 0x9B1, 0x0, 0x1116, 0x997, 0x9AD, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_4_1[] = { + 0x9AA, 0x9A0, 0x9B2, 0x0, 0x9A6, 0x998, 0x9AE, 0x0, + 0x99E, 0x9A0, 0x9B2, 0x0, 0x996, 0x998, 0x9AE, 0x0, + 0x10F3, 0x9A0, 0x9B2, 0x0, 0x10EF, 0x998, 0x9AE, 0x0, + 0x111B, 0x9A0, 0x9B2, 0x0, 0x1117, 0x998, 0x9AE, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_4_2[] = { + 0x9AC, 0x9A4, 0x9B4, 0x0, 0x9A8, 0x99C, 0x9B0, 0x0, + 0x9A2, 0x9A4, 0x9B4, 0x0, 0x99A, 0x99C, 0x9B0, 0x0, + 0x10F5, 0x9A4, 0x9B4, 0x0, 0x10F1, 0x99C, 0x9B0, 0x0, + 0x111D, 0x9A4, 0x9B4, 0x0, 0x1119, 0x99C, 0x9B0, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_4_3[] = { + 0x9AB, 0x9A3, 0x9B3, 0x0, 0x9A7, 0x99B, 0x9AF, 0x0, + 0x9A1, 0x9A3, 0x9B3, 0x0, 0x999, 0x99B, 0x9AF, 0x0, + 0x10F4, 0x9A3, 0x9B3, 0x0, 0x10F0, 0x99B, 0x9AF, 0x0, + 0x111C, 0x9A3, 0x9B3, 0x0, 0x1118, 0x99B, 0x9AF, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_4_4[] = { + 0x9B6, 0x9BA, 0x9BC, 0x0, 0x9B5, 0x9B9, 0x9BB, 0x0, + 0x9B8, 0x9BA, 0x9BC, 0x0, 0x9B7, 0x9B9, 0x9BB, 0x0, + 0x10F7, 0x9BA, 0x9BC, 0x0, 0x10F6, 0x9B9, 0x9BB, 0x0, + 0x111F, 0x9BA, 0x9BC, 0x0, 0x111E, 0x9B9, 0x9BB, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_4_5[] = { + 0x9BD, 0x9C1, 0x0, 0x0, 0x9BE, 0x9C2, 0x0, 0x0, + 0x9BF, 0x9C1, 0x0, 0x0, 0x9C0, 0x9C2, 0x0, 0x0, + 0x10F8, 0x9C1, 0x0, 0x0, 0x10F9, 0x9C2, 0x0, 0x0, + 0x1120, 0x9C1, 0x0, 0x0, 0x1121, 0x9C2, 0x0, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_4_6[] = { + 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, + 0x98E, 0x990, 0x98D, 0x98F, 0x992, 0x994, 0x991, 0x993, + 0x10E7, 0x10E9, 0x10E6, 0x10E8, 0x10EB, 0x10ED, 0x10EA, 0x10EC, + 0x110F, 0x1111, 0x110E, 0x1110, 0x1113, 0x1115, 0x1112, 0x1114, +}; + +static const PalSpriteID _bridge_sprite_table_4_poles[] = { + SPR_OPENTTD_BASE + 36, + SPR_OPENTTD_BASE + 37, + SPR_OPENTTD_BASE + 37, + SPR_OPENTTD_BASE + 36, + SPR_OPENTTD_BASE + 38, + 0x0, + + SPR_OPENTTD_BASE + 33, + SPR_OPENTTD_BASE + 34, + SPR_OPENTTD_BASE + 34, + SPR_OPENTTD_BASE + 33, + SPR_OPENTTD_BASE + 35, + 0x0, + + 0x0, + 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_5_0[] = { + 0x32189A9, 0x321899F, 0x32189B1, 0x0, 0x32189A5, 0x3218997, 0x32189AD, 0x0, + 0x321899D, 0x321899F, 0x32189B1, 0x0, 0x3218995, 0x3218997, 0x32189AD, 0x0, + 0x32190F2, 0x321899F, 0x32189B1, 0x0, 0x32190EE, 0x3218997, 0x32189AD, 0x0, + 0x321911A, 0x321899F, 0x32189B1, 0x0, 0x3219116, 0x3218997, 0x32189AD, 0x0, + SPR_OPENTTD_BASE + 35, +}; + +static const PalSpriteID _bridge_sprite_table_5_1[] = { + 0x32189AA, 0x32189A0, 0x32189B2, 0x0, 0x32189A6, 0x3218998, 0x32189AE, 0x0, + 0x321899E, 0x32189A0, 0x32189B2, 0x0, 0x3218996, 0x3218998, 0x32189AE, 0x0, + 0x32190F3, 0x32189A0, 0x32189B2, 0x0, 0x32190EF, 0x3218998, 0x32189AE, 0x0, + 0x321911B, 0x32189A0, 0x32189B2, 0x0, 0x3219117, 0x3218998, 0x32189AE, 0x0, + SPR_OPENTTD_BASE + 36, +}; + +static const PalSpriteID _bridge_sprite_table_5_2[] = { + 0x32189AC, 0x32189A4, 0x32189B4, 0x0, 0x32189A8, 0x321899C, 0x32189B0, 0x0, + 0x32189A2, 0x32189A4, 0x32189B4, 0x0, 0x321899A, 0x321899C, 0x32189B0, 0x0, + 0x32190F5, 0x32189A4, 0x32189B4, 0x0, 0x32190F1, 0x321899C, 0x32189B0, 0x0, + 0x321911D, 0x32189A4, 0x32189B4, 0x0, 0x3219119, 0x321899C, 0x32189B0, 0x0, + SPR_OPENTTD_BASE + 36, +}; + +static const PalSpriteID _bridge_sprite_table_5_3[] = { + 0x32189AB, 0x32189A3, 0x32189B3, 0x0, 0x32189A7, 0x321899B, 0x32189AF, 0x0, + 0x32189A1, 0x32189A3, 0x32189B3, 0x0, 0x3218999, 0x321899B, 0x32189AF, 0x0, + 0x32190F4, 0x32189A3, 0x32189B3, 0x0, 0x32190F0, 0x321899B, 0x32189AF, 0x0, + 0x321911C, 0x32189A3, 0x32189B3, 0x0, 0x3219118, 0x321899B, 0x32189AF, 0x0, + SPR_OPENTTD_BASE + 35, +}; + +static const PalSpriteID _bridge_sprite_table_5_4[] = { + 0x32189B6, 0x32189BA, 0x32189BC, 0x0, 0x32189B5, 0x32189B9, 0x32189BB, 0x0, + 0x32189B8, 0x32189BA, 0x32189BC, 0x0, 0x32189B7, 0x32189B9, 0x32189BB, 0x0, + 0x32190F7, 0x32189BA, 0x32189BC, 0x0, 0x32190F6, 0x32189B9, 0x32189BB, 0x0, + 0x321911F, 0x32189BA, 0x32189BC, 0x0, 0x321911E, 0x32189B9, 0x32189BB, 0x0, + SPR_OPENTTD_BASE+38, 0x0, 0x0, 0x0, SPR_OPENTTD_BASE + 37, +}; + +static const PalSpriteID _bridge_sprite_table_5_5[] = { + 0x32189BD, 0x32189C1, 0x0, 0x0, 0x32189BE, 0x32189C2, 0x0, 0x0, + 0x32189BF, 0x32189C1, 0x0, 0x0, 0x32189C0, 0x32189C2, 0x0, 0x0, + 0x32190F8, 0x32189C1, 0x0, 0x0, 0x32190F9, 0x32189C2, 0x0, 0x0, + 0x3219120, 0x32189C1, 0x0, 0x0, 0x3219121, 0x32189C2, 0x0, 0x0, + 0x0, SPR_OPENTTD_BASE + 35, +}; + +static const PalSpriteID _bridge_sprite_table_5_6[] = { + 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, + 0x321898E, 0x3218990, 0x321898D, 0x321898F, 0x3218992, 0x3218994, 0x3218991, 0x3218993, + 0x10E7, 0x10E9, 0x10E6, 0x10E8, 0x10EB, 0x10ED, 0x10EA, 0x10EC, + 0x110F, 0x1111, 0x110E, 0x1110, 0x1113, 0x1115, 0x1112, 0x1114, + 0x0, SPR_OPENTTD_BASE + 35, +}; + +static const PalSpriteID _bridge_sprite_table_5_poles[] = { + SPR_OPENTTD_BASE + 36 + 0x3218000, + SPR_OPENTTD_BASE + 37 + 0x3218000, + SPR_OPENTTD_BASE + 37 + 0x3218000, + SPR_OPENTTD_BASE + 36 + 0x3218000, + SPR_OPENTTD_BASE + 38 + 0x3218000, + 0x0, + + SPR_OPENTTD_BASE + 33 + 0x3218000, + SPR_OPENTTD_BASE + 34 + 0x3218000, + SPR_OPENTTD_BASE + 34 + 0x3218000, + SPR_OPENTTD_BASE + 33 + 0x3218000, + SPR_OPENTTD_BASE + 35 + 0x3218000, + 0x0, + + 0x0, + 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_3_0[] = { + 0x32089A9, 0x320899F, 0x32089B1, 0x0, 0x32089A5, 0x3208997, 0x32089AD, 0x0, + 0x320899D, 0x320899F, 0x32089B1, 0x0, 0x3208995, 0x3208997, 0x32089AD, 0x0, + 0x32090F2, 0x320899F, 0x32089B1, 0x0, 0x32090EE, 0x3208997, 0x32089AD, 0x0, + 0x320911A, 0x320899F, 0x32089B1, 0x0, 0x3209116, 0x3208997, 0x32089AD, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_3_1[] = { + 0x32089AA, 0x32089A0, 0x32089B2, 0x0, 0x32089A6, 0x3208998, 0x32089AE, 0x0, + 0x320899E, 0x32089A0, 0x32089B2, 0x0, 0x3208996, 0x3208998, 0x32089AE, 0x0, + 0x32090F3, 0x32089A0, 0x32089B2, 0x0, 0x32090EF, 0x3208998, 0x32089AE, 0x0, + 0x320911B, 0x32089A0, 0x32089B2, 0x0, 0x3209117, 0x3208998, 0x32089AE, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_3_2[] = { + 0x32089AC, 0x32089A4, 0x32089B4, 0x0, 0x32089A8, 0x320899C, 0x32089B0, 0x0, + 0x32089A2, 0x32089A4, 0x32089B4, 0x0, 0x320899A, 0x320899C, 0x32089B0, 0x0, + 0x32090F5, 0x32089A4, 0x32089B4, 0x0, 0x32090F1, 0x320899C, 0x32089B0, 0x0, + 0x320911D, 0x32089A4, 0x32089B4, 0x0, 0x3209119, 0x320899C, 0x32089B0, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_3_3[] = { + 0x32089AB, 0x32089A3, 0x32089B3, 0x0, 0x32089A7, 0x320899B, 0x32089AF, 0x0, + 0x32089A1, 0x32089A3, 0x32089B3, 0x0, 0x3208999, 0x320899B, 0x32089AF, 0x0, + 0x32090F4, 0x32089A3, 0x32089B3, 0x0, 0x32090F0, 0x320899B, 0x32089AF, 0x0, + 0x320911C, 0x32089A3, 0x32089B3, 0x0, 0x3209118, 0x320899B, 0x32089AF, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_3_4[] = { + 0x32089B6, 0x32089BA, 0x32089BC, 0x0, 0x32089B5, 0x32089B9, 0x32089BB, 0x0, + 0x32089B8, 0x32089BA, 0x32089BC, 0x0, 0x32089B7, 0x32089B9, 0x32089BB, 0x0, + 0x32090F7, 0x32089BA, 0x32089BC, 0x0, 0x32090F6, 0x32089B9, 0x32089BB, 0x0, + 0x320911F, 0x32089BA, 0x32089BC, 0x0, 0x320911E, 0x32089B9, 0x32089BB, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_3_5[] = { + 0x32089BD, 0x32089C1, 0x0, 0x0, 0x32089BE, 0x32089C2, 0x0, 0x0, + 0x32089BF, 0x32089C1, 0x0, 0x0, 0x32089C0, 0x32089C2, 0x0, 0x0, + 0x32090F8, 0x32089C1, 0x0, 0x0, 0x32090F9, 0x32089C2, 0x0, 0x0, + 0x3209120, 0x32089C1, 0x0, 0x0, 0x3209121, 0x32089C2, 0x0, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_3_poles[] = { + SPR_OPENTTD_BASE + 36 + 0x3208000, + SPR_OPENTTD_BASE + 37 + 0x3208000, + SPR_OPENTTD_BASE + 37 + 0x3208000, + SPR_OPENTTD_BASE + 36 + 0x3208000, + SPR_OPENTTD_BASE + 38 + 0x3208000, + 0x0, + + SPR_OPENTTD_BASE + 33 + 0x3208000, + SPR_OPENTTD_BASE + 34 + 0x3208000, + SPR_OPENTTD_BASE + 34 + 0x3208000, + SPR_OPENTTD_BASE + 33 + 0x3208000, + SPR_OPENTTD_BASE + 35 + 0x3208000, + 0x0, + + 0x0, + 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_1_1[] = { + 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, + 0x320898E, 0x3208990, 0x320898D, 0x320898F, 0x3208992, 0x3208994, 0x3208991, 0x3208993, + 0x10E7, 0x10E9, 0x10E6, 0x10E8, 0x10EB, 0x10ED, 0x10EA, 0x10EC, + 0x110F, 0x1111, 0x110E, 0x1110, 0x1113, 0x1115, 0x1112, 0x1114, +}; + +static const PalSpriteID _bridge_sprite_table_1_poles[] = { + SPR_OPENTTD_BASE + 36 + 6*3, + SPR_OPENTTD_BASE + 37 + 6*3, + SPR_OPENTTD_BASE + 37 + 6*3, + SPR_OPENTTD_BASE + 36 + 6*3, + SPR_OPENTTD_BASE + 38 + 6*3, + 0x0, + + SPR_OPENTTD_BASE + 33 + 6*3, + SPR_OPENTTD_BASE + 34 + 6*3, + SPR_OPENTTD_BASE + 34 + 6*3, + SPR_OPENTTD_BASE + 33 + 6*3, + SPR_OPENTTD_BASE + 35 + 6*3, + 0x0, + + 0x0, + 0x0, +}; + + +static const PalSpriteID _bridge_sprite_table_6_0[] = { + 0x9CD, 0x9D9, 0x0, 0x0, 0x9CE, 0x9DA, 0x0, 0x0, + 0x9D3, 0x9D9, 0x0, 0x0, 0x9D4, 0x9DA, 0x0, 0x0, + 0x10FC, 0x9D9, 0x0, 0x0, 0x10FD, 0x9DA, 0x0, 0x0, + 0x1124, 0x9D9, 0x0, 0x0, 0x1125, 0x9DA, 0x0, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_6_1[] = { + 0x9CB, 0x9D7, 0x9DD, 0x0, 0x9D0, 0x9DC, 0x9E0, 0x0, + 0x9D1, 0x9D7, 0x9DD, 0x0, 0x9D6, 0x9DC, 0x9E0, 0x0, + 0x10FA, 0x9D7, 0x9DD, 0x0, 0x10FF, 0x9DC, 0x9E0, 0x0, + 0x1122, 0x9D7, 0x9DD, 0x0, 0x1127, 0x9DC, 0x9E0, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_6_2[] = { + 0x9CC, 0x9D8, 0x9DE, 0x0, 0x9CF, 0x9DB, 0x9DF, 0x0, + 0x9D2, 0x9D8, 0x9DE, 0x0, 0x9D5, 0x9DB, 0x9DF, 0x0, + 0x10FB, 0x9D8, 0x9DE, 0x0, 0x10FE, 0x9DB, 0x9DF, 0x0, + 0x1123, 0x9D8, 0x9DE, 0x0, 0x1126, 0x9DB, 0x9DF, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_6_3[] = { + 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, + 0x98E, 0x990, 0x98D, 0x98F, 0x992, 0x994, 0x991, 0x993, + 0x10E7, 0x10E9, 0x10E6, 0x10E8, 0x10EB, 0x10ED, 0x10EA, 0x10EC, + 0x110F, 0x1111, 0x110E, 0x1110, 0x1113, 0x1115, 0x1112, 0x1114, +}; + +static const PalSpriteID _bridge_sprite_table_6_poles[] = { + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + + 2526, + 2528, +}; + + +static const PalSpriteID _bridge_sprite_table_7_0[] = { + 0x31C89CD, 0x31C89D9, 0x0, 0x0, 0x31C89CE, 0x31C89DA, 0x0, 0x0, + 0x31C89D3, 0x31C89D9, 0x0, 0x0, 0x31C89D4, 0x31C89DA, 0x0, 0x0, + 0x31C90FC, 0x31C89D9, 0x0, 0x0, 0x31C90FD, 0x31C89DA, 0x0, 0x0, + 0x31C9124, 0x31C89D9, 0x0, 0x0, 0x31C9125, 0x31C89DA, 0x0, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_7_1[] = { + 0x31C89CB, 0x31C89D7, 0x31C89DD, 0x0, 0x31C89D0, 0x31C89DC, 0x31C89E0, 0x0, + 0x31C89D1, 0x31C89D7, 0x31C89DD, 0x0, 0x31C89D6, 0x31C89DC, 0x31C89E0, 0x0, + 0x31C90FA, 0x31C89D7, 0x31C89DD, 0x0, 0x31C90FF, 0x31C89DC, 0x31C89E0, 0x0, + 0x31C9122, 0x31C89D7, 0x31C89DD, 0x0, 0x31C9127, 0x31C89DC, 0x31C89E0, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_7_2[] = { + 0x31C89CC, 0x31C89D8, 0x31C89DE, 0x0, 0x31C89CF, 0x31C89DB, 0x31C89DF, 0x0, + 0x31C89D2, 0x31C89D8, 0x31C89DE, 0x0, 0x31C89D5, 0x31C89DB, 0x31C89DF, 0x0, + 0x31C90FB, 0x31C89D8, 0x31C89DE, 0x0, 0x31C90FE, 0x31C89DB, 0x31C89DF, 0x0, + 0x31C9123, 0x31C89D8, 0x31C89DE, 0x0, 0x31C9126, 0x31C89DB, 0x31C89DF, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_7_3[] = { + 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, + 0x31C898E, 0x31C8990, 0x31C898D, 0x31C898F, 0x31C8992, 0x31C8994, 0x31C8991, 0x31C8993, + 0x10E7, 0x10E9, 0x10E6, 0x10E8, 0x10EB, 0x10ED, 0x10EA, 0x10EC, + 0x110F, 0x1111, 0x110E, 0x1110, 0x1113, 0x1115, 0x1112, 0x1114, +}; + +static const PalSpriteID _bridge_sprite_table_7_poles[] = { + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + + 2526, + 2528, +}; + +static const PalSpriteID _bridge_sprite_table_8_0[] = { + 0x31E89CD, 0x31E89D9, 0x0, 0x0, 0x31E89CE, 0x31E89DA, 0x0, 0x0, + 0x31E89D3, 0x31E89D9, 0x0, 0x0, 0x31E89D4, 0x31E89DA, 0x0, 0x0, + 0x31E90FC, 0x31E89D9, 0x0, 0x0, 0x31E90FD, 0x31E89DA, 0x0, 0x0, + 0x31E9124, 0x31E89D9, 0x0, 0x0, 0x31E9125, 0x31E89DA, 0x0, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_8_1[] = { + 0x31E89CB, 0x31E89D7, 0x31E89DD, 0x0, 0x31E89D0, 0x31E89DC, 0x31E89E0, 0x0, + 0x31E89D1, 0x31E89D7, 0x31E89DD, 0x0, 0x31E89D6, 0x31E89DC, 0x31E89E0, 0x0, + 0x31E90FA, 0x31E89D7, 0x31E89DD, 0x0, 0x31E90FF, 0x31E89DC, 0x31E89E0, 0x0, + 0x31E9122, 0x31E89D7, 0x31E89DD, 0x0, 0x31E9127, 0x31E89DC, 0x31E89E0, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_8_2[] = { + 0x31E89CC, 0x31E89D8, 0x31E89DE, 0x0, 0x31E89CF, 0x31E89DB, 0x31E89DF, 0x0, + 0x31E89D2, 0x31E89D8, 0x31E89DE, 0x0, 0x31E89D5, 0x31E89DB, 0x31E89DF, 0x0, + 0x31E90FB, 0x31E89D8, 0x31E89DE, 0x0, 0x31E90FE, 0x31E89DB, 0x31E89DF, 0x0, + 0x31E9123, 0x31E89D8, 0x31E89DE, 0x0, 0x31E9126, 0x31E89DB, 0x31E89DF, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_8_3[] = { + 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, + 0x31E898E, 0x31E8990, 0x31E898D, 0x31E898F, 0x31E8992, 0x31E8994, 0x31E8991, 0x31E8993, + 0x10E7, 0x10E9, 0x10E6, 0x10E8, 0x10EB, 0x10ED, 0x10EA, 0x10EC, + 0x110F, 0x1111, 0x110E, 0x1110, 0x1113, 0x1115, 0x1112, 0x1114, +}; + +static const PalSpriteID _bridge_sprite_table_8_poles[] = { + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + + 2526, + 2528, +}; + +static const PalSpriteID _bridge_sprite_table_0_0[] = { + 0x9F2, 0x9F6, 0x9F8, 0x0, 0x9F1, 0x9F5, 0x9F7, 0x0, + 0x9F4, 0x9F6, 0x9F8, 0x0, 0x9F3, 0x9F5, 0x9F7, 0x0, + 0x1109, 0x9F6, 0x9F8, 0x0, 0x1108, 0x9F5, 0x9F7, 0x0, + 0x1131, 0x9F6, 0x9F8, 0x0, 0x1130, 0x9F5, 0x9F7, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_0_1[] = { + 0x9EE, 0x9ED, 0x9F0, 0x9EF, 0x9EA, 0x9E9, 0x9EB, 0x9EC, + 0x9E6, 0x9E5, 0x9E8, 0x9E7, 0x9E2, 0x9E1, 0x9E3, 0x9E4, + 0x1105, 0x1104, 0x1107, 0x1106, 0x1101, 0x1100, 0x1102, 0x1103, + 0x112D, 0x112C, 0x112F, 0x112E, 0x1129, 0x1128, 0x112A, 0x112B, +}; + +static const PalSpriteID _bridge_sprite_table_0_poles[] = { + SPR_OPENTTD_BASE + 42, + SPR_OPENTTD_BASE + 42, + SPR_OPENTTD_BASE + 42, + SPR_OPENTTD_BASE + 42, + SPR_OPENTTD_BASE + 44, + 0x0, + + SPR_OPENTTD_BASE + 39, + SPR_OPENTTD_BASE + 39, + SPR_OPENTTD_BASE + 39, + SPR_OPENTTD_BASE + 39, + SPR_OPENTTD_BASE + 41, + 0x0, + + 0x0, + 0x0, +}; + + +static const PalSpriteID _bridge_sprite_table_1_0[] = { + 0x31E89BD, 0x31E89C1, 0x9C9, 0x0, 0x31E89BE, 0x31E89C2, 0x9CA, 0x0, + 0x31E89BF, 0x31E89C1, 0x9C9, 0x0, 0x31E89C0, 0x31E89C2, 0x9CA, 0x0, + 0x31E90F8, 0x31E89C1, 0x9C9, 0x0, 0x31E90F9, 0x31E89C2, 0x9CA, 0x0, + 0x31E9120, 0x31E89C1, 0x9C9, 0x0, 0x31E9121, 0x31E89C2, 0x9CA, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_9_0[] = { + 0x9F9, 0x9FD, 0x9C9, 0x0, 0x9FA, 0x9FE, 0x9CA, 0x0, + 0x9FB, 0x9FD, 0x9C9, 0x0, 0x9FC, 0x9FE, 0x9CA, 0x0, + 0x110A, 0x9FD, 0x9C9, 0x0, 0x110B, 0x9FE, 0x9CA, 0x0, + 0x1132, 0x9FD, 0x9C9, 0x0, 0x1133, 0x9FE, 0x9CA, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_10_0[] = { + 0xA0B, 0xA01, 0x0, 0x0, 0xA0C, 0xA02, 0x0, 0x0, + 0xA11, 0xA01, 0x0, 0x0, 0xA12, 0xA02, 0x0, 0x0, + 0xA17, 0xA01, 0x0, 0x0, 0xA18, 0xA02, 0x0, 0x0, + 0xA1D, 0xA01, 0x0, 0x0, 0xA1E, 0xA02, 0x0, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_10_1[] = { + 0xA09, 0x9FF, 0xA05, 0x0, 0xA0E, 0xA04, 0xA08, 0x0, + 0xA0F, 0x9FF, 0xA05, 0x0, 0xA14, 0xA04, 0xA08, 0x0, + 0xA15, 0x9FF, 0xA05, 0x0, 0xA1A, 0xA04, 0xA08, 0x0, + 0xA1B, 0x9FF, 0xA05, 0x0, 0xA20, 0xA04, 0xA08, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_10_2[] = { + 0xA0A, 0xA00, 0xA06, 0x0, 0xA0D, 0xA03, 0xA07, 0x0, + 0xA10, 0xA00, 0xA06, 0x0, 0xA13, 0xA03, 0xA07, 0x0, + 0xA16, 0xA00, 0xA06, 0x0, 0xA19, 0xA03, 0xA07, 0x0, + 0xA1C, 0xA00, 0xA06, 0x0, 0xA1F, 0xA03, 0xA07, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_10_poles[] = { + SPR_OPENTTD_BASE + 36 + 2*6, + SPR_OPENTTD_BASE + 36 + 2*6, + SPR_OPENTTD_BASE + 36 + 2*6, + SPR_OPENTTD_BASE + 36 + 2*6, + SPR_OPENTTD_BASE + 38 + 2*6, + 0x0, + + SPR_OPENTTD_BASE + 33 + 2*6, + SPR_OPENTTD_BASE + 33 + 2*6, + SPR_OPENTTD_BASE + 33 + 2*6, + SPR_OPENTTD_BASE + 33 + 2*6, + SPR_OPENTTD_BASE + 35 + 2*6, + 0x0, + + 0x0, + 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_11_0[] = { + 0x3218A0B, 0x3218A01, 0x0, 0x0, 0x3218A0C, 0x3218A02, 0x0, 0x0, + 0x3218A11, 0x3218A01, 0x0, 0x0, 0x3218A12, 0x3218A02, 0x0, 0x0, + 0x3218A17, 0x3218A01, 0x0, 0x0, 0x3218A18, 0x3218A02, 0x0, 0x0, + 0x3218A1D, 0x3218A01, 0x0, 0x0, 0x3218A1E, 0x3218A02, 0x0, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_11_1[] = { + 0x3218A09, 0x32189FF, 0x3218A05, 0x0, 0x3218A0E, 0x3218A04, 0x3218A08, 0x0, + 0x3218A0F, 0x32189FF, 0x3218A05, 0x0, 0x3218A14, 0x3218A04, 0x3218A08, 0x0, + 0x3218A15, 0x32189FF, 0x3218A05, 0x0, 0x3218A1A, 0x3218A04, 0x3218A08, 0x0, + 0x3218A1B, 0x32189FF, 0x3218A05, 0x0, 0x3218A20, 0x3218A04, 0x3218A08, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_11_2[] = { + 0x3218A0A, 0x3218A00, 0x3218A06, 0x0, 0x3218A0D, 0x3218A03, 0x3218A07, 0x0, + 0x3218A10, 0x3218A00, 0x3218A06, 0x0, 0x3218A13, 0x3218A03, 0x3218A07, 0x0, + 0x3218A16, 0x3218A00, 0x3218A06, 0x0, 0x3218A19, 0x3218A03, 0x3218A07, 0x0, + 0x3218A1C, 0x3218A00, 0x3218A06, 0x0, 0x3218A1F, 0x3218A03, 0x3218A07, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_11_poles[] = { + SPR_OPENTTD_BASE + 36 + 2*6 + 0x3218000, + SPR_OPENTTD_BASE + 36 + 2*6 + 0x3218000, + SPR_OPENTTD_BASE + 36 + 2*6 + 0x3218000, + SPR_OPENTTD_BASE + 36 + 2*6 + 0x3218000, + SPR_OPENTTD_BASE + 38 + 2*6 + 0x3218000, + 0x0, + + SPR_OPENTTD_BASE + 33 + 2*6 + 0x3218000, + SPR_OPENTTD_BASE + 33 + 2*6 + 0x3218000, + SPR_OPENTTD_BASE + 33 + 2*6 + 0x3218000, + SPR_OPENTTD_BASE + 33 + 2*6 + 0x3218000, + SPR_OPENTTD_BASE + 35 + 2*6 + 0x3218000, + 0x0, + + 0x0, + 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_12_0[] = { + 0x3238A0B, 0x3238A01, 0x0, 0x0, 0x3238A0C, 0x3238A02, 0x0, 0x0, + 0x3238A11, 0x3238A01, 0x0, 0x0, 0x3238A12, 0x3238A02, 0x0, 0x0, + 0x3238A17, 0x3238A01, 0x0, 0x0, 0x3238A18, 0x3238A02, 0x0, 0x0, + 0x3238A1D, 0x3238A01, 0x0, 0x0, 0x3238A1E, 0x3238A02, 0x0, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_12_1[] = { + 0x3238A09, 0x32389FF, 0x3238A05, 0x0, 0x3238A0E, 0x3238A04, 0x3238A08, 0x0, + 0x3238A0F, 0x32389FF, 0x3238A05, 0x0, 0x3238A14, 0x3238A04, 0x3238A08, 0x0, + 0x3238A15, 0x32389FF, 0x3238A05, 0x0, 0x3238A1A, 0x3238A04, 0x3238A08, 0x0, + 0x3238A1B, 0x32389FF, 0x3238A05, 0x0, 0x3238A20, 0x3238A04, 0x3238A08, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_12_2[] = { + 0x3238A0A, 0x3238A00, 0x3238A06, 0x0, 0x3238A0D, 0x3238A03, 0x3238A07, 0x0, + 0x3238A10, 0x3238A00, 0x3238A06, 0x0, 0x3238A13, 0x3238A03, 0x3238A07, 0x0, + 0x3238A16, 0x3238A00, 0x3238A06, 0x0, 0x3238A19, 0x3238A03, 0x3238A07, 0x0, + 0x3238A1C, 0x3238A00, 0x3238A06, 0x0, 0x3238A1F, 0x3238A03, 0x3238A07, 0x0, +}; + +static const PalSpriteID _bridge_sprite_table_12_poles[] = { + SPR_OPENTTD_BASE + 36 + 2*6 + 0x3238000, + SPR_OPENTTD_BASE + 36 + 2*6 + 0x3238000, + SPR_OPENTTD_BASE + 36 + 2*6 + 0x3238000, + SPR_OPENTTD_BASE + 36 + 2*6 + 0x3238000, + SPR_OPENTTD_BASE + 38 + 2*6 + 0x3238000, + 0x0, + + SPR_OPENTTD_BASE + 33 + 2*6 + 0x3238000, + SPR_OPENTTD_BASE + 33 + 2*6 + 0x3238000, + SPR_OPENTTD_BASE + 33 + 2*6 + 0x3238000, + SPR_OPENTTD_BASE + 33 + 2*6 + 0x3238000, + SPR_OPENTTD_BASE + 35 + 2*6 + 0x3238000, + 0x0, + + 0x0, + 0x0, +}; + +static const uint32 * const _bridge_sprite_table_2[] = { + _bridge_sprite_table_2_0, + _bridge_sprite_table_2_0, + _bridge_sprite_table_2_0, + _bridge_sprite_table_2_0, + _bridge_sprite_table_2_0, + _bridge_sprite_table_2_0, + _bridge_sprite_table_2_1, +}; + +static const uint32 * const _bridge_sprite_table_4[] = { + _bridge_sprite_table_4_0, + _bridge_sprite_table_4_1, + _bridge_sprite_table_4_2, + _bridge_sprite_table_4_3, + _bridge_sprite_table_4_4, + _bridge_sprite_table_4_5, + _bridge_sprite_table_4_6, +}; + +static const uint32 * const _bridge_sprite_table_5[] = { + _bridge_sprite_table_5_0, + _bridge_sprite_table_5_1, + _bridge_sprite_table_5_2, + _bridge_sprite_table_5_3, + _bridge_sprite_table_5_4, + _bridge_sprite_table_5_5, + _bridge_sprite_table_5_6, +}; + +static const uint32 * const _bridge_sprite_table_3[] = { + _bridge_sprite_table_3_0, + _bridge_sprite_table_3_1, + _bridge_sprite_table_3_2, + _bridge_sprite_table_3_3, + _bridge_sprite_table_3_4, + _bridge_sprite_table_3_5, + _bridge_sprite_table_1_1, +}; + +static const uint32 * const _bridge_sprite_table_6[] = { + _bridge_sprite_table_6_0, + _bridge_sprite_table_6_1, + _bridge_sprite_table_6_2, + _bridge_sprite_table_6_2, + _bridge_sprite_table_6_2, + _bridge_sprite_table_6_2, + _bridge_sprite_table_6_3, +}; + +static const uint32 * const _bridge_sprite_table_7[] = { + _bridge_sprite_table_7_0, + _bridge_sprite_table_7_1, + _bridge_sprite_table_7_2, + _bridge_sprite_table_7_2, + _bridge_sprite_table_7_2, + _bridge_sprite_table_7_2, + _bridge_sprite_table_7_3, +}; + +static const uint32 * const _bridge_sprite_table_8[] = { + _bridge_sprite_table_8_0, + _bridge_sprite_table_8_1, + _bridge_sprite_table_8_2, + _bridge_sprite_table_8_2, + _bridge_sprite_table_8_2, + _bridge_sprite_table_8_2, + _bridge_sprite_table_8_3, +}; + +static const uint32 * const _bridge_sprite_table_0[] = { + _bridge_sprite_table_0_0, + _bridge_sprite_table_0_0, + _bridge_sprite_table_0_0, + _bridge_sprite_table_0_0, + _bridge_sprite_table_0_0, + _bridge_sprite_table_0_0, + _bridge_sprite_table_0_1, +}; + +static const uint32 * const _bridge_sprite_table_1[] = { + _bridge_sprite_table_1_0, + _bridge_sprite_table_1_0, + _bridge_sprite_table_1_0, + _bridge_sprite_table_1_0, + _bridge_sprite_table_1_0, + _bridge_sprite_table_1_0, + _bridge_sprite_table_1_1, +}; + +static const uint32 * const _bridge_sprite_table_9[] = { + _bridge_sprite_table_9_0, + _bridge_sprite_table_9_0, + _bridge_sprite_table_9_0, + _bridge_sprite_table_9_0, + _bridge_sprite_table_9_0, + _bridge_sprite_table_9_0, + _bridge_sprite_table_4_6, +}; + +static const uint32 * const _bridge_sprite_table_10[] = { + _bridge_sprite_table_10_0, + _bridge_sprite_table_10_1, + _bridge_sprite_table_10_2, + _bridge_sprite_table_10_2, + _bridge_sprite_table_10_2, + _bridge_sprite_table_10_2, + _bridge_sprite_table_6_3, +}; + +static const uint32 * const _bridge_sprite_table_11[] = { + _bridge_sprite_table_11_0, + _bridge_sprite_table_11_1, + _bridge_sprite_table_11_2, + _bridge_sprite_table_11_2, + _bridge_sprite_table_11_2, + _bridge_sprite_table_11_2, + _bridge_sprite_table_6_3, +}; + +static const uint32 * const _bridge_sprite_table_12[] = { + _bridge_sprite_table_12_0, + _bridge_sprite_table_12_1, + _bridge_sprite_table_12_2, + _bridge_sprite_table_12_2, + _bridge_sprite_table_12_2, + _bridge_sprite_table_12_2, + _bridge_sprite_table_6_3, +}; + +static const uint32 * const * const _bridge_sprite_table[] = { + _bridge_sprite_table_0, + _bridge_sprite_table_1, + _bridge_sprite_table_2, + _bridge_sprite_table_3, + _bridge_sprite_table_4, + _bridge_sprite_table_5, + _bridge_sprite_table_6, + _bridge_sprite_table_7, + _bridge_sprite_table_8, + _bridge_sprite_table_9, + _bridge_sprite_table_10, + _bridge_sprite_table_11, + _bridge_sprite_table_12 +}; + +static const uint32 * const _bridge_poles_table[] = { + _bridge_sprite_table_0_poles, + _bridge_sprite_table_1_poles, + _bridge_sprite_table_2_poles, + _bridge_sprite_table_3_poles, + _bridge_sprite_table_4_poles, + _bridge_sprite_table_5_poles, + _bridge_sprite_table_6_poles, + _bridge_sprite_table_7_poles, + _bridge_sprite_table_8_poles, + _bridge_sprite_table_2_poles, + _bridge_sprite_table_10_poles, + _bridge_sprite_table_11_poles, + _bridge_sprite_table_12_poles +}; + + diff --git a/table/unmovable_land.h b/table/unmovable_land.h new file mode 100644 index 000000000..5c31e53b4 --- /dev/null +++ b/table/unmovable_land.h @@ -0,0 +1,141 @@ +#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 + +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) + 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) + 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) + 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, +}; + diff --git a/table/water_land.h b/table/water_land.h new file mode 100644 index 000000000..6bd86d4b4 --- /dev/null +++ b/table/water_land.h @@ -0,0 +1,147 @@ +static const byte _shipdepot_display_seq_1[] = { + ADD_WORD(0xFDD), + + 0,15,0,16,1,0x14, + ADD_WORD(0x8FE8), + + 0x80 +}; + +static const byte _shipdepot_display_seq_2[] = { + ADD_WORD(0xFDD), + + 0,0,0,16,1,0x14, ADD_WORD(0xFEA), + 0,15,0,16,1,0x14, ADD_WORD(0x8FE6), + + 0x80 +}; + +static const byte _shipdepot_display_seq_3[] = { + ADD_WORD(0xFDD), + + 15,0,0,1,0x10,0x14,ADD_WORD(0x8FE9), + + 0x80 +}; + +static const byte _shipdepot_display_seq_4[] = { + ADD_WORD(0xFDD), + + 0,0,0,1,16,0x14, ADD_WORD(0xFEB), + 15,0,0,1,16,0x14, ADD_WORD(0x8FE7), + + 0x80 +}; + +static const byte * const _shipdepot_display_seq[] = { + _shipdepot_display_seq_1, + _shipdepot_display_seq_2, + _shipdepot_display_seq_3, + _shipdepot_display_seq_4, +}; + +static const byte _shiplift_display_seq_0[] = { + ADD_WORD(SPR_CANALS_BASE + 6), + 0, 0, 0, 0x10, 1, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 0 + 1), + 0, 0xF, 0, 0x10, 1, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 4 + 1), + 0x80, 0 +}; + +static const byte _shiplift_display_seq_1[] = { + ADD_WORD(SPR_CANALS_BASE + 5), + 0, 0, 0, 1, 0x10, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 0), + 0xF, 0, 0, 1, 0x10, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 4), + 0x80, 0 +}; + +static const byte _shiplift_display_seq_2[] = { + ADD_WORD(SPR_CANALS_BASE + 7), + 0, 0, 0, 0x10, 1, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 0 + 2), + 0, 0xF, 0, 0x10, 1, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 4 + 2), + 0x80, 0 +}; + +static const byte _shiplift_display_seq_3[] = { + ADD_WORD(SPR_CANALS_BASE + 8), + 0, 0, 0, 1, 0x10, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 0 + 3), + 0xF, 0, 0, 1, 0x10, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 4 + 3), + 0x80, 0 +}; + +static const byte _shiplift_display_seq_0b[] = { + ADD_WORD(0xFDD), + 0, 0, 0, 0x10, 1, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 8 + 1), + 0, 0xF, 0, 0x10, 1, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 12 + 1), + 0x80, 0 +}; + +static const byte _shiplift_display_seq_1b[] = { + ADD_WORD(0xFDD), + 0, 0, 0, 0x1, 0x10, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 8), + 0xF, 0, 0, 0x1, 0x10, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 12), + 0x80, 0 +}; + +static const byte _shiplift_display_seq_2b[] = { + ADD_WORD(0xFDD), + 0, 0, 0, 0x10, 1, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 8 + 2), + 0, 0xF, 0, 0x10, 1, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 12 + 2), + 0x80, 0 +}; + +static const byte _shiplift_display_seq_3b[] = { + ADD_WORD(0xFDD), + 0, 0, 0, 1, 0x10, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 8 + 3), + 0xF, 0, 0, 1, 0x10, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 12 + 3), + 0x80, 0 +}; + +static const byte _shiplift_display_seq_0t[] = { + ADD_WORD(0xFDD), + 0, 0, 0, 0x10, 1, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 16 + 1), + 0, 0xF, 0, 0x10, 1, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 20 + 1), + 0x80, 8 +}; + +static const byte _shiplift_display_seq_1t[] = { + ADD_WORD(0xFDD), + 0, 0, 0, 0x1, 0x10, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 16), + 0xF, 0, 0, 0x1, 0x10, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 20), + 0x80, 8 +}; + +static const byte _shiplift_display_seq_2t[] = { + ADD_WORD(0xFDD), + 0, 0, 0, 0x10, 1, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 16 + 2), + 0, 0xF, 0, 0x10, 1, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 20 + 2), + 0x80, 8 +}; + +static const byte _shiplift_display_seq_3t[] = { + ADD_WORD(0xFDD), + 0, 0, 0, 1, 0x10, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 16 + 3), + 0xF, 0, 0, 1, 0x10, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 20 + 3), + 0x80, 8 +}; + +static const byte * const _shiplift_display_seq[] = { + _shiplift_display_seq_0, + _shiplift_display_seq_1, + _shiplift_display_seq_2, + _shiplift_display_seq_3, + + _shiplift_display_seq_0b, + _shiplift_display_seq_1b, + _shiplift_display_seq_2b, + _shiplift_display_seq_3b, + + _shiplift_display_seq_0t, + _shiplift_display_seq_1t, + _shiplift_display_seq_2t, + _shiplift_display_seq_3t, +}; + + +static const SpriteID _water_shore_sprites[15] = { + 0, 0xFDF, 0xFE0, 0xFE4, 0xFDE, 0, 0xFE2, 0, 0xFE1, 0xFE5, 0, 0, 0xFE3, 0, 0 +}; -- cgit v1.2.3-54-g00ecf