From 209101391abfaf901bfc68c83c79bf8c9865b0bb Mon Sep 17 00:00:00 2001 From: maedhros Date: Mon, 19 Mar 2007 11:27:30 +0000 Subject: (svn r9315) -Merge: The newhouses branch. With this merge comes almost complete support for the newhouses grf specs, so all newhouses grfs will be playable in the game. Many thanks to everyone who contributed code and ideas, and all the testers who found things we missed. --- src/table/sprites.h | 3 +- src/table/town_land.h | 810 +++++++++++++++++++++++--------------------------- 2 files changed, 368 insertions(+), 445 deletions(-) (limited to 'src/table') diff --git a/src/table/sprites.h b/src/table/sprites.h index e9b9c9b69..0301d9f20 100644 --- a/src/table/sprites.h +++ b/src/table/sprites.h @@ -35,7 +35,6 @@ * @todo Split the "Sprites" enum into smaller chunks and document them */ - enum Sprites { SPR_SELECT_TILE = 752, SPR_DOT = 774, // corner marker for lower/raise land @@ -1324,6 +1323,7 @@ enum SpriteSetup { */ enum Modifiers { SPRITE_MODIFIER_USE_OFFSET = OFFSET_BIT, + SPRITE_MODIFIER_OPAQUE = OFFSET_BIT, ///when a sprite is to be displayed transparently, this bit needs to be set. PALETTE_MODIFIER_TRANSPARENT = TRANSPARENT_BIT, ///this bit is set when a recoloring process is in action @@ -1418,6 +1418,5 @@ enum PaletteSprites { PALETTE_59E = 0x59E, PALETTE_59F = 0x59F, }; -#undef PALETTE_RECOLOR_SPRITE #endif /* SPRITES_H */ diff --git a/src/table/town_land.h b/src/table/town_land.h index 091b8926a..313c2b2b0 100644 --- a/src/table/town_land.h +++ b/src/table/town_land.h @@ -2,17 +2,6 @@ /** @file town_land.h */ -enum { - HOUSE_TEMP_CHURCH = 0x03, - HOUSE_STADIUM = 0x14, - HOUSE_MODERN_STADIUM = 0x20, - HOUSE_ARCT_CHURCH = 0x3c, - HOUSE_SNOW_CHURCH = 0x3d, - HOUSE_TROP_CHURCH = 0x53, - HOUSE_TOY_CHURCH = 0x5b, - - HOUSE_MAX = 110 -}; /** Writes the data into the Town Tile Drawing Struct * @param s1 The first sprite of the building, mostly the ground sprite @@ -1790,437 +1779,372 @@ static const DrawBuildingsTileStruct _town_draw_tile_data[] = { M(0x1244, PAL_NONE, 0x125a, PAL_NONE, 0, 0, 16, 16, 50, 0), }; #undef M -// 4 variants * 4 build stages -assert_compile(lengthof(_town_draw_tile_data) == HOUSE_MAX * 4 * 4); - - -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, -}; -assert_compile(lengthof(_town_tile_names) == HOUSE_MAX); - -static const uint16 _housetype_flags[] = { - 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, -}; -assert_compile(lengthof(_housetype_flags) == HOUSE_MAX); - -static const byte _housetype_extra_flags[] = { - 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, -}; -assert_compile(lengthof(_housetype_extra_flags) == HOUSE_MAX); - -static const byte _housetype_population[] = { - 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, -}; -assert_compile(lengthof(_housetype_population) == HOUSE_MAX); - -static const byte _housetype_mailamount[] = { - 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, -}; -assert_compile(lengthof(_housetype_mailamount) == HOUSE_MAX); - -static const byte _housetype_remove_cost[] = { - 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, -}; -assert_compile(lengthof(_housetype_remove_cost) == HOUSE_MAX); - -static const uint16 _housetype_remove_ratingmod[] = { - 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, -}; -assert_compile(lengthof(_housetype_remove_ratingmod) == HOUSE_MAX); - - -struct HousetypeYear { - Year min, max; -}; - -static const HousetypeYear _housetype_years[] = { - { 1963, MAX_YEAR }, - { 1957, MAX_YEAR }, - { 1968, MAX_YEAR }, - { 0, MAX_YEAR }, - { 1975, MAX_YEAR }, - { 1975, MAX_YEAR }, - { 0, MAX_YEAR }, - { 1959, MAX_YEAR }, - { 1959, MAX_YEAR }, - { 1945, MAX_YEAR }, - { 1945, MAX_YEAR }, - { 0, MAX_YEAR }, - { 1935, MAX_YEAR }, - { 1951, MAX_YEAR }, - { 1930, 1960 }, - { 1930, 1960 }, - { 1930, 1960 }, - { 1977, MAX_YEAR }, - { 1983, MAX_YEAR }, - { 1985, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, 1951 }, - { 0, 1952 }, - { 1931, MAX_YEAR }, - { 1935, MAX_YEAR }, - { 1963, MAX_YEAR }, - { 0, 1955 }, - { 1973, MAX_YEAR }, - { 0, MAX_YEAR }, - { 1958, MAX_YEAR }, - { 1958, MAX_YEAR }, - { 1958, MAX_YEAR }, - { 1958, MAX_YEAR }, - { 2000, MAX_YEAR }, - { 0, 1960 }, - { 0, 1960 }, - { 1945, MAX_YEAR }, - { 1983, MAX_YEAR }, - { 1983, MAX_YEAR }, - { 1983, MAX_YEAR }, - { 1983, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, 1963 }, - { 0, 1963 }, - { 1966, MAX_YEAR }, - { 1966, MAX_YEAR }, - { 1970, MAX_YEAR }, - { 1970, MAX_YEAR }, - { 1974, MAX_YEAR }, - { 1974, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, 1960 }, - { 0, 1960 }, - { 1972, MAX_YEAR }, - { 1972, MAX_YEAR }, - { 1972, MAX_YEAR }, - { 1972, MAX_YEAR }, - { 1963, MAX_YEAR }, - { 1963, MAX_YEAR }, - { 1978, MAX_YEAR }, - { 1978, MAX_YEAR }, - { 1967, MAX_YEAR }, - { 1967, MAX_YEAR }, - { 1967, MAX_YEAR }, - { 1967, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 1973, MAX_YEAR }, - { 1962, MAX_YEAR }, - { 1984, MAX_YEAR }, - { 1984, MAX_YEAR }, - { 0, MAX_YEAR }, - { 1993, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, - { 0, MAX_YEAR }, -}; -assert_compile(lengthof(_housetype_years) == HOUSE_MAX); - -static const byte _housetype_cargo_passengers[] = { - 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, -}; -assert_compile(lengthof(_housetype_cargo_passengers) == HOUSE_MAX); +/* 4 variants * 4 build stages */ +assert_compile(lengthof(_town_draw_tile_data) == (NEW_HOUSE_OFFSET) * 4 * 4); -static const byte _housetype_cargo_mail[] = { - 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, -}; -assert_compile(lengthof(_housetype_cargo_mail) == HOUSE_MAX); - -static const byte _housetype_cargo_goods[] = { - 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, 0, 0, 2, - 3, 3, 3, 3, 0, 0, 0, 0, - 0, 0, 4, 4, 4, 4, 5, 5, - 0, 0, 0, 0, 0, 0, 0, 0, - 3, 3, 0, 2, 0, 2, 3, 3, - 4, 4, 2, 2, 2, 2, 0, 0, - 0, 0, 1, 0, 0, 1, 1, 4, - 4, 1, 4, 0, 2, 1, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 1, - 0, 0, 2, 2, 2, 0 -}; -assert_compile(lengthof(_housetype_cargo_goods) == HOUSE_MAX); - -static const byte _housetype_cargo_food[] = { - 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, 1, 1, 0, - 0, 0, 0, 0, 2, 2, 2, 2, - 2, 2, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 0, 0, 1, 1, - 0, 0, 3, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, - 2, 1, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 4, 4, 0, 0, 0, 4 -}; -assert_compile(lengthof(_housetype_cargo_food) == HOUSE_MAX); - -static const byte _house_more_flags[] = { - 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, +/** Describes the data that defines each house in the game + * @param mnd introduction year of the house + * @param mxd last year it can be built + * @param p population + * @param rc cost multiplier for removing it + * @param bn building name + * @param rr rating decrease if removed + * @param mg mail generation multiplier + * @param pa passenger acceptance + * @param ma mail acceptance + * @param ga goods acceptance + * @param fa food acceptance + * @param bf building flags (size, stadium etc...) + * @param ba building availability (zone, climate...) + * @see HouseSpec + */ +#define M(mnd, mxd, p, rc, bn, rr, mg, pa, ma, ga, fa, bf, ba) \ + {mnd, mxd, p, rc, bn, rr, mg, pa, ma, ga, fa, bf, ba, true, \ + 0, NULL, 0, 0, {0, 0, 0, 0}, 16, NO_EXTRA_FLAG, HOUSE_NO_CLASS, 0, 2, 0, 0, NULL} +static const HouseSpec _original_house_specs[] = { + /** + * remove_rating_decrease + * | mail_generation + * min_date | | passenger_acceptance + * | max_date | | | mail_acceptance + * | | population | | | | goods_acceptance + * | | | removal_cost | | | | | food_acceptance + * | | | | building_name | | | | | | + * | | | | | | | | | | | + * | | | | | | | | | | | + * +-building_flags | | | | | | | | | + * +-building_availability | | | | | | | | + * | | | | | | | | | | | |*/ + M( 1963, MAX_YEAR, 187, 150, STR_200F_TALL_OFFICE_BLOCK, 140, 70, 8, 3, 4, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON5), + M( 1957, MAX_YEAR, 85, 140, STR_2010_OFFICE_BLOCK, 130, 55, 8, 3, 4, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON5 | HZ_ZON4), + M( 1968, MAX_YEAR, 40, 100, STR_2011_SMALL_BLOCK_OF_FLATS, 90, 20, 8, 3, 1, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON4 | HZ_ZON3 | HZ_ZON2), + M( 0, MAX_YEAR, 5, 90, STR_2012_CHURCH, 230, 2, 2, 0, 0, 0, + BUILDING_IS_CHURCH | TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 1975, MAX_YEAR, 220, 160, STR_2013_LARGE_OFFICE_BLOCK, 160, 85, 10, 4, 6, 0, + BUILDING_IS_ANIMATED | TILE_SIZE_1x1, + HZ_TEMP | HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON5), + M( 1975, MAX_YEAR, 220, 160, STR_2013_LARGE_OFFICE_BLOCK, 160, 85, 10, 4, 6, 0, + BUILDING_IS_ANIMATED | TILE_SIZE_1x1, + HZ_SUBARTC_ABOVE | HZ_ZON5), + M( 0, MAX_YEAR, 30, 80, STR_2014_TOWN_HOUSES, 80, 12, 4, 1, 0, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 1959, MAX_YEAR, 140, 180, STR_2015_HOTEL, 150, 22, 6, 1, 2, 0, + TILE_SIZE_1x2, + HZ_TEMP | HZ_ZON5 | HZ_ZON3), + M( 1959, MAX_YEAR, 0, 180, STR_2015_HOTEL, 150, 22, 6, 1, 2, 0, + TILE_NO_FLAG, + HZ_NOZNS), + M( 1945, MAX_YEAR, 0, 65, STR_2016_STATUE, 40, 0, 2, 0, 0, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4), + M( 1945, MAX_YEAR, 0, 65, STR_2017_FOUNTAIN, 40, 0, 2, 0, 0, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON5), + M( 0, MAX_YEAR, 0, 60, STR_2018_PARK, 75, 0, 2, 0, 0, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON3), + M( 1935, MAX_YEAR, 0, 60, STR_2018_PARK, 75, 0, 2, 0, 0, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON4), + M( 1951, MAX_YEAR, 150, 130, STR_2019_OFFICE_BLOCK, 110, 65, 8, 2, 4, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON5 | HZ_ZON4), + M( 1930, 1960, 95, 110, STR_201A_SHOPS_AND_OFFICES, 100, 48, 6, 2, 3, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 1930, 1960, 95, 105, STR_201A_SHOPS_AND_OFFICES, 100, 48, 6, 2, 3, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 1930, 1960, 95, 107, STR_201A_SHOPS_AND_OFFICES, 100, 48, 6, 2, 3, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 1977, MAX_YEAR, 130, 200, STR_201B_MODERN_OFFICE_BUILDING, 150, 50, 10, 3, 6, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON5), + M( 1983, MAX_YEAR, 6, 145, STR_201C_WAREHOUSE, 110, 10, 6, 3, 8, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON5), + M( 1985, MAX_YEAR, 110, 155, STR_201D_OFFICE_BLOCK, 110, 55, 6, 2, 6, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON5), + M( 0, MAX_YEAR, 65, 250, STR_201E_STADIUM, 300, 5, 4, 0, 0, 0, + BUILDING_IS_STADIUM | TILE_SIZE_2x2, + HZ_TEMP | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 0, MAX_YEAR, 0, 250, STR_201E_STADIUM, 300, 5, 4, 0, 0, 0, + TILE_NO_FLAG, + HZ_NOZNS), + M( 0, MAX_YEAR, 0, 250, STR_201E_STADIUM, 300, 5, 4, 0, 0, 0, + TILE_NO_FLAG, + HZ_NOZNS), + M( 0, MAX_YEAR, 0, 250, STR_201E_STADIUM, 300, 5, 4, 0, 0, 0, + TILE_NO_FLAG, + HZ_NOZNS), + M( 0, 1951, 15, 70, STR_201F_OLD_HOUSES, 75, 6, 3, 1, 0, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON2 | HZ_ZON1), + M( 0, 1952, 12, 75, STR_2036_COTTAGES, 75, 7, 3, 1, 0, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON1), + M( 1931, MAX_YEAR, 13, 71, STR_2037_HOUSES, 75, 8, 3, 1, 0, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 1935, MAX_YEAR, 100, 135, STR_2038_FLATS, 100, 35, 7, 2, 2, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 1963, MAX_YEAR, 170, 145, STR_2039_TALL_OFFICE_BLOCK, 170, 50, 8, 3, 3, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 0, 1955, 100, 132, STR_203A_SHOPS_AND_OFFICES, 135, 40, 6, 2, 3, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 1973, MAX_YEAR, 180, 155, STR_203B_SHOPS_AND_OFFICES, 180, 64, 8, 3, 3, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON3), + M( 0, MAX_YEAR, 35, 220, STR_203C_THEATER, 230, 23, 8, 2, 2, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON5 | HZ_ZON4), + M( 1958, MAX_YEAR, 65, 250, STR_203D_STADIUM, 300, 5, 4, 0, 0, 0, + BUILDING_IS_STADIUM | TILE_SIZE_2x2, + HZ_TEMP | HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 1958, MAX_YEAR, 0, 250, STR_203D_STADIUM, 300, 5, 4, 0, 0, 0, + TILE_NO_FLAG, + HZ_NOZNS), + M( 1958, MAX_YEAR, 0, 250, STR_203D_STADIUM, 300, 5, 4, 0, 0, 0, + TILE_NO_FLAG, + HZ_NOZNS), + M( 1958, MAX_YEAR, 0, 250, STR_203D_STADIUM, 300, 5, 4, 0, 0, 0, + TILE_NO_FLAG, + HZ_NOZNS), + M( 2000, MAX_YEAR, 140, 170, STR_203E_OFFICES, 250, 65, 8, 3, 2, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4), + M( 0, 1960, 15, 70, STR_203F_HOUSES, 75, 6, 3, 1, 0, 1, + TILE_SIZE_1x1, + HZ_SUBARTC_BELOW | HZ_ZON2 | HZ_ZON1), + M( 0, 1960, 15, 70, STR_203F_HOUSES, 75, 6, 3, 1, 0, 1, + TILE_SIZE_1x1, + HZ_SUBARTC_ABOVE | HZ_ZON2 | HZ_ZON1), + M( 1945, MAX_YEAR, 35, 210, STR_2040_CINEMA, 230, 23, 8, 2, 2, 0, + TILE_SIZE_1x1, + HZ_TEMP | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 1983, MAX_YEAR, 180, 250, STR_2041_SHOPPING_MALL, 300, 5, 8, 2, 3, 0, + TILE_SIZE_2x2, + HZ_TEMP | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 |HZ_ZON2), + M( 1983, MAX_YEAR, 0, 250, STR_2041_SHOPPING_MALL, 300, 5, 8, 2, 3, 0, + TILE_NO_FLAG, + HZ_NOZNS), + M( 1983, MAX_YEAR, 0, 250, STR_2041_SHOPPING_MALL, 300, 5, 8, 2, 3, 0, + TILE_NO_FLAG, + HZ_NOZNS), + M( 1983, MAX_YEAR, 0, 250, STR_2041_SHOPPING_MALL, 300, 5, 8, 2, 3, 0, + TILE_NO_FLAG, + HZ_NOZNS), + M( 0, MAX_YEAR, 80, 100, STR_2038_FLATS, 90, 20, 5, 2, 0, 2, + TILE_SIZE_1x1, + HZ_SUBARTC_BELOW | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 0, MAX_YEAR, 80, 100, STR_2038_FLATS, 90, 20, 5, 2, 0, 2, + TILE_SIZE_1x1, + HZ_SUBARTC_ABOVE | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 0, MAX_YEAR, 16, 70, STR_203F_HOUSES, 70, 6, 3, 1, 0, 2, + TILE_SIZE_1x1, + HZ_SUBARTC_BELOW | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 0, MAX_YEAR, 16, 70, STR_203F_HOUSES, 70, 6, 3, 1, 0, 2, + TILE_SIZE_1x1, + HZ_SUBARTC_ABOVE | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 0, 1963, 14, 80, STR_203F_HOUSES, 70, 6, 3, 1, 0, 2, + TILE_SIZE_1x1, + HZ_SUBARTC_BELOW | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 0, 1963, 14, 80, STR_203F_HOUSES, 70, 6, 3, 1, 0, 2, + TILE_SIZE_1x1, + HZ_SUBARTC_ABOVE | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 1966, MAX_YEAR, 135, 150, STR_200F_TALL_OFFICE_BLOCK, 120, 60, 8, 3, 4, 0, + TILE_SIZE_1x1, + HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4), + M( 1966, MAX_YEAR, 135, 150, STR_200F_TALL_OFFICE_BLOCK, 120, 60, 8, 3, 4, 0, + TILE_SIZE_1x1, + HZ_SUBARTC_ABOVE | HZ_ZON5 | HZ_ZON4), + M( 1970, MAX_YEAR, 170, 170, STR_200F_TALL_OFFICE_BLOCK, 130, 70, 9, 3, 4, 0, + TILE_SIZE_1x1, + HZ_SUBARTC_BELOW | HZ_ZON5 | HZ_ZON4), + M( 1970, MAX_YEAR, 170, 170, STR_200F_TALL_OFFICE_BLOCK, 130, 70, 9, 3, 4, 0, + TILE_SIZE_1x1, + HZ_SUBARTC_ABOVE | HZ_ZON5 | HZ_ZON4), + M( 1974, MAX_YEAR, 210, 200, STR_200F_TALL_OFFICE_BLOCK, 140, 80, 10, 3, 5, 0, + TILE_SIZE_1x1, + HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4), + M( 1974, MAX_YEAR, 210, 200, STR_200F_TALL_OFFICE_BLOCK, 140, 80, 10, 3, 5, 0, + TILE_SIZE_1x1, + HZ_SUBARTC_ABOVE | HZ_ZON5 | HZ_ZON4), + M( 0, MAX_YEAR, 10, 60, STR_203F_HOUSES, 60, 5, 2, 1, 0, 1, + TILE_SIZE_1x1, + HZ_SUBARTC_BELOW | HZ_ZON1), + M( 0, MAX_YEAR, 10, 60, STR_203F_HOUSES, 60, 5, 2, 1, 0, 1, + TILE_SIZE_1x1, + HZ_SUBARTC_ABOVE | HZ_ZON1), + M( 0, MAX_YEAR, 25, 100, STR_201A_SHOPS_AND_OFFICES, 80, 20, 3, 1, 0, 1, + TILE_SIZE_1x1, + HZ_SUBARTC_BELOW | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2), + M( 0, MAX_YEAR, 25, 100, STR_201A_SHOPS_AND_OFFICES, 80, 20, 3, 1, 0, 1, + TILE_SIZE_1x1, + HZ_SUBARTC_ABOVE | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2), + M( 0, MAX_YEAR, 6, 85, STR_2012_CHURCH, 230, 2, 2, 0, 0, 0, + BUILDING_IS_CHURCH | TILE_SIZE_1x1, + HZ_SUBARTC_BELOW | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 0, MAX_YEAR, 6, 85, STR_2012_CHURCH, 230, 2, 2, 0, 0, 0, + BUILDING_IS_CHURCH | TILE_SIZE_1x1, + HZ_SUBARTC_ABOVE | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 0, MAX_YEAR, 17, 80, STR_203F_HOUSES, 80, 7, 3, 1, 0, 1, + TILE_SIZE_1x1, + HZ_SUBARTC_BELOW | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 0, MAX_YEAR, 17, 80, STR_203F_HOUSES, 80, 7, 3, 1, 0, 1, + TILE_SIZE_1x1, + HZ_SUBARTC_ABOVE | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 0, 1960, 90, 140, STR_201A_SHOPS_AND_OFFICES, 110, 45, 6, 2, 3, 0, + TILE_SIZE_1x1, + HZ_SUBARTC_BELOW| HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 0, 1960, 90, 140, STR_201A_SHOPS_AND_OFFICES, 110, 45, 6, 2, 3, 0, + TILE_SIZE_1x1, + HZ_SUBARTC_ABOVE| HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 1972, MAX_YEAR, 140, 160, STR_2015_HOTEL, 160, 25, 6, 1, 0, 3, + TILE_SIZE_1x2, + HZ_SUBARTC_BELOW| HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 1972, MAX_YEAR, 0, 160, STR_2015_HOTEL, 160, 25, 6, 1, 2, 0, + TILE_NO_FLAG, + HZ_NOZNS), + M( 1972, MAX_YEAR, 140, 160, STR_2015_HOTEL, 160, 25, 6, 1, 0, 3, + TILE_SIZE_1x2, + HZ_SUBARTC_ABOVE| HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 1972, MAX_YEAR, 0, 160, STR_2015_HOTEL, 160, 25, 6, 1, 2, 0, + TILE_NO_FLAG, + HZ_NOZNS), + M( 1963, MAX_YEAR, 105, 130, STR_201A_SHOPS_AND_OFFICES, 105, 50, 7, 2, 3, 0, + TILE_SIZE_1x1, + HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 1963, MAX_YEAR, 105, 130, STR_201A_SHOPS_AND_OFFICES, 105, 50, 7, 2, 3, 0, + TILE_SIZE_1x1, + HZ_SUBARTC_ABOVE| HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 1978, MAX_YEAR, 190, 190, STR_200F_TALL_OFFICE_BLOCK, 135, 75, 9, 3, 4, 0, + TILE_SIZE_1x1, + HZ_SUBARTC_BELOW | HZ_ZON5 | HZ_ZON4), + M( 1978, MAX_YEAR, 190, 190, STR_200F_TALL_OFFICE_BLOCK, 135, 75, 9, 3, 4, 0, + TILE_SIZE_1x1, + HZ_SUBARTC_ABOVE | HZ_ZON5 | HZ_ZON4), + M( 1967, MAX_YEAR, 250, 140, STR_200F_TALL_OFFICE_BLOCK, 200, 60, 7, 2, 2, 0, + TILE_SIZE_2x1, + HZ_SUBARTC_BELOW| HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 1967, MAX_YEAR, 0, 140, STR_200F_TALL_OFFICE_BLOCK, 200, 60, 7, 2, 2, 0, + TILE_NO_FLAG, + HZ_NOZNS), + M( 1967, MAX_YEAR, 250, 140, STR_200F_TALL_OFFICE_BLOCK, 200, 60, 7, 2, 2, 0, + TILE_SIZE_2x1, + HZ_SUBARTC_ABOVE | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 1967, MAX_YEAR, 0, 140, STR_200F_TALL_OFFICE_BLOCK, 200, 60, 7, 2, 2, 0, + TILE_NO_FLAG, + HZ_NOZNS), + M( 0, MAX_YEAR, 16, 80, STR_203F_HOUSES, 80, 6, 3, 1, 0, 2, + TILE_SIZE_1x1, + HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2), + M( 0, MAX_YEAR, 16, 80, STR_203F_HOUSES, 80, 6, 3, 1, 0, 2, + TILE_SIZE_1x1, + HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2), + M( 0, MAX_YEAR, 16, 80, STR_203F_HOUSES, 80, 5, 3, 1, 0, 2, + TILE_SIZE_1x1, + HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2), + M( 0, MAX_YEAR, 7, 30, STR_203F_HOUSES, 30, 4, 3, 1, 0, 1, + TILE_SIZE_1x1, + HZ_SUBTROPIC | HZ_ZON1), + M( 0, MAX_YEAR, 45, 130, STR_2038_FLATS, 95, 15, 6, 2, 1, 0, + TILE_SIZE_1x1, + HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 0, MAX_YEAR, 8, 90, STR_2012_CHURCH, 200, 3, 2, 0, 0, 0, + BUILDING_IS_CHURCH | TILE_SIZE_1x1, + HZ_SUBTROPIC | HZ_ZON4 | HZ_ZON3 | HZ_ZON2), + M( 0, MAX_YEAR, 18, 80, STR_203F_HOUSES, 80, 7, 3, 1, 0, 2, + TILE_SIZE_1x1, + HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2), + M( 1973, MAX_YEAR, 90, 110, STR_2038_FLATS, 95, 24, 6, 2, 1, 0, + TILE_SIZE_1x1, + HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 1962, MAX_YEAR, 120, 120, STR_2038_FLATS, 95, 25, 6, 2, 1, 0, + TILE_SIZE_1x1, + HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 1984, MAX_YEAR, 250, 190, STR_200F_TALL_OFFICE_BLOCK, 140, 80, 8, 3, 4, 0, + TILE_SIZE_2x1, + HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4), + M( 1984, MAX_YEAR, 0, 190, STR_200F_TALL_OFFICE_BLOCK, 140, 80, 8, 3, 4, 0, + TILE_NO_FLAG, + HZ_SUBTROPIC), + M( 0, MAX_YEAR, 80, 110, STR_2038_FLATS, 95, 23, 6, 2, 1, 0, + TILE_SIZE_1x1, + HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 1993, MAX_YEAR, 180, 180, STR_200F_TALL_OFFICE_BLOCK, 150, 90, 8, 3, 4, 0, + TILE_SIZE_1x1, + HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 0, MAX_YEAR, 8, 90, STR_2012_CHURCH, 200, 3, 2, 0, 0, 0, + BUILDING_IS_CHURCH | TILE_SIZE_1x1, + HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 0, MAX_YEAR, 18, 90, STR_203F_HOUSES, 90, 5, 6, 2, 2, 0, + TILE_SIZE_1x1, + HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 0, MAX_YEAR, 7, 70, STR_203F_HOUSES, 50, 3, 3, 1, 1, 0, + TILE_SIZE_1x1, + HZ_TOYLND | HZ_ZON2 | HZ_ZON1), + M( 0, MAX_YEAR, 15, 80, STR_203F_HOUSES, 75, 6, 3, 1, 2, 0, + TILE_SIZE_1x1, + HZ_TOYLND | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 0, MAX_YEAR, 17, 80, STR_203F_HOUSES, 75, 6, 3, 1, 2, 0, + TILE_SIZE_1x1, + HZ_TOYLND | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 0, MAX_YEAR, 19, 80, STR_203F_HOUSES, 75, 6, 3, 1, 2, 0, + TILE_SIZE_1x1, + HZ_TOYLND | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 0, MAX_YEAR, 21, 80, STR_203F_HOUSES, 75, 6, 3, 1, 2, 0, + TILE_SIZE_1x1, + HZ_TOYLND | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 0, MAX_YEAR, 75, 160, STR_200F_TALL_OFFICE_BLOCK, 130, 20, 8, 4, 2, 0, + TILE_SIZE_1x1, + HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 0, MAX_YEAR, 35, 90, STR_203F_HOUSES, 80, 9, 4, 1, 2, 0, + TILE_SIZE_1x2, + HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 0, MAX_YEAR, 0, 90, STR_203F_HOUSES, 80, 0, 4, 1, 2, 0, + TILE_NO_FLAG, + HZ_NOZNS), + M( 0, MAX_YEAR, 85, 150, STR_200F_TALL_OFFICE_BLOCK, 130, 18, 8, 4, 2, 0, + TILE_SIZE_1x1, + HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 0, MAX_YEAR, 11, 60, STR_2059_IGLOO, 45, 3, 3, 1, 1, 0, + TILE_SIZE_1x1, + HZ_TOYLND | HZ_ZON1), + M( 0, MAX_YEAR, 10, 60, STR_205A_TEPEES, 45, 3, 3, 1, 1, 0, + TILE_SIZE_1x1, + HZ_TOYLND | HZ_ZON1), + M( 0, MAX_YEAR, 67, 140, STR_201A_SHOPS_AND_OFFICES, 130, 22, 8, 4, 0, 4, + TILE_SIZE_1x1, + HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 0, MAX_YEAR, 86, 145, STR_201A_SHOPS_AND_OFFICES, 130, 23, 8, 4, 0, 4, + TILE_SIZE_1x1, + HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 0, MAX_YEAR, 95, 165, STR_200F_TALL_OFFICE_BLOCK, 130, 28, 8, 4, 2, 0, + TILE_SIZE_1x1, + HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 0, MAX_YEAR, 30, 90, STR_2016_STATUE, 70, 10, 4, 1, 2, 0, + TILE_SIZE_1x1, + HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3), + M( 0, MAX_YEAR, 25, 75, STR_205B_TEAPOT_HOUSE, 65, 8, 3, 1, 2, 0, + TILE_SIZE_1x1, + HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), + M( 0, MAX_YEAR, 18, 85, STR_205C_PIGGY_BANK, 95, 7, 3, 2, 0, 4, + TILE_SIZE_1x1, + HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1), }; -assert_compile(lengthof(_house_more_flags) == HOUSE_MAX); +#undef M +assert_compile(lengthof(_original_house_specs) == NEW_HOUSE_OFFSET); -- cgit v1.2.3-70-g09d2