summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbelugas <belugas@openttd.org>2007-03-20 02:24:14 +0000
committerbelugas <belugas@openttd.org>2007-03-20 02:24:14 +0000
commitb82ed41a1925803dde29d7e03cf113808faa93d3 (patch)
treed1b31c1b0ec3ddd9a491d8e31480d12dc5ac7141 /src
parent1bea18b440639b7e3a4e723eb88fbb5c4be8ef3d (diff)
downloadopenttd-b82ed41a1925803dde29d7e03cf113808faa93d3.tar.xz
(svn r9366) -Codechange: Unify the different houses acceptances attributes on their cargo counterpart, as well as specifying cargo slot.
Diffstat (limited to 'src')
-rw-r--r--src/newgrf.cpp20
-rw-r--r--src/table/town_land.h591
-rw-r--r--src/town.h6
-rw-r--r--src/town_cmd.cpp5
4 files changed, 364 insertions, 258 deletions
diff --git a/src/newgrf.cpp b/src/newgrf.cpp
index 7323a0107..84f0bfcc0 100644
--- a/src/newgrf.cpp
+++ b/src/newgrf.cpp
@@ -1293,21 +1293,19 @@ static bool TownHouseChangeInfo(uint hid, int numinfo, int prop, byte **bufp, in
break;
case 0x0D: // Passenger acceptance
- FOR_EACH_OBJECT housespec[i]->passenger_acceptance = grf_load_byte(&buf);
- break;
-
case 0x0E: // Mail acceptance
- FOR_EACH_OBJECT housespec[i]->mail_acceptance = grf_load_byte(&buf);
+ FOR_EACH_OBJECT housespec[i]->cargo_acceptance[prop - 0x0D] = grf_load_byte(&buf);
break;
-
- case 0x0F: // Goods, food or fizzy drinks acceptance
+ case 0x0F: // Goods/candy, food/fizzy drinks acceptance
FOR_EACH_OBJECT {
int8 goods = grf_load_byte(&buf);
- if (goods > 0) {
- housespec[i]->goods_acceptance = goods;
- } else {
- housespec[i]->food_acceptance = -goods;
- }
+
+ /* If value of goods is negative, it means in fact food or, if in toyland, fizzy_drink acceptance.
+ * Else, we have "standard" 3rd cargo type, goods or candy, for toyland once more */
+ housespec[i]->accepts_cargo[2] = (goods >= 0) ? ((_opt.landscape == LT_CANDY) ? CT_CANDY : CT_GOODS) :
+ ((_opt.landscape == LT_CANDY) ? CT_FIZZY_DRINKS : CT_FOOD);
+
+ housespec[i]->cargo_acceptance[2] = abs(goods); // but we do need positive value here
}
break;
diff --git a/src/table/town_land.h b/src/table/town_land.h
index 313c2b2b0..d025cca09 100644
--- a/src/table/town_land.h
+++ b/src/table/town_land.h
@@ -1790,361 +1790,474 @@ assert_compile(lengthof(_town_draw_tile_data) == (NEW_HOUSE_OFFSET) * 4 * 4);
* @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 ca1 acceptance for 1st CargoID
+ * @param ca2 acceptance for 2nd CargoID
+ * @param ca3 acceptance for 3rd CargoID
* @param bf building flags (size, stadium etc...)
* @param ba building availability (zone, climate...)
+ * @param cg1 1st CargoID available
+ * @param cg2 2nd CargoID available
+ * @param cg3 3rd CargoID available
* @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, \
+#define M(mnd, mxd, p, rc, bn, rr, mg, ca1, ca2, ca3, bf, ba, cg1, cg2, cg3) \
+ {mnd, mxd, p, rc, bn, rr, mg, {ca1, ca2, ca3}, {cg1, cg2, cg3}, 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,
+ * min_date | | 1st CargoID acceptance
+ * | max_date | | | 2nd CargoID acceptance
+ * | | population | | | | 3th CargoID acceptance
+ * | | | removal_cost | | | | |
+ * | | | | building_name | | | | |
+ * | | | | | | | | | |
+ * | | | | | | | | | |
+ * +-building_flags | | | | | | | |
+ * +-building_availability | | | | | | |
+ * +-cargoID accepted | | | | | | | |
+ * | | | | | | | | | | | */
+ M( 1963, MAX_YEAR, 187, 150, STR_200F_TALL_OFFICE_BLOCK, 140, 70, 8, 3, 4,
+ TILE_SIZE_1x1,
+ HZ_TEMP | HZ_ZON5,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //00
+ M( 1957, MAX_YEAR, 85, 140, STR_2010_OFFICE_BLOCK, 130, 55, 8, 3, 4,
+ TILE_SIZE_1x1,
+ HZ_TEMP | HZ_ZON5 | HZ_ZON4,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //01
+ M( 1968, MAX_YEAR, 40, 100, STR_2011_SMALL_BLOCK_OF_FLATS, 90, 20, 8, 3, 1,
+ TILE_SIZE_1x1,
+ HZ_TEMP | HZ_ZON4 | HZ_ZON3 | HZ_ZON2,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //02
+ M( 0, MAX_YEAR, 5, 90, STR_2012_CHURCH, 230, 2, 2, 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,
+ HZ_TEMP | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //03
+ M( 1975, MAX_YEAR, 220, 160, STR_2013_LARGE_OFFICE_BLOCK, 160, 85, 10, 4, 6,
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,
+ HZ_TEMP | HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON5,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //04
+ M( 1975, MAX_YEAR, 220, 160, STR_2013_LARGE_OFFICE_BLOCK, 160, 85, 10, 4, 6,
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,
+ HZ_SUBARTC_ABOVE | HZ_ZON5,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //05
+ M( 0, MAX_YEAR, 30, 80, STR_2014_TOWN_HOUSES, 80, 12, 4, 1, 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,
+ HZ_TEMP | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //06
+ M( 1959, MAX_YEAR, 140, 180, STR_2015_HOTEL, 150, 22, 6, 1, 2,
TILE_SIZE_1x2,
- HZ_TEMP | HZ_ZON5 | HZ_ZON3),
- M( 1959, MAX_YEAR, 0, 180, STR_2015_HOTEL, 150, 22, 6, 1, 2, 0,
+ HZ_TEMP | HZ_ZON5 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //07
+ M( 1959, MAX_YEAR, 0, 180, STR_2015_HOTEL, 150, 22, 6, 1, 2,
TILE_NO_FLAG,
- HZ_NOZNS),
- M( 1945, MAX_YEAR, 0, 65, STR_2016_STATUE, 40, 0, 2, 0, 0, 0,
+ HZ_NOZNS,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //08
+ M( 1945, MAX_YEAR, 0, 65, STR_2016_STATUE, 40, 0, 2, 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,
+ HZ_TEMP | HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //09
+ M( 1945, MAX_YEAR, 0, 65, STR_2017_FOUNTAIN, 40, 0, 2, 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,
+ HZ_TEMP | HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON5,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //0A
+ M( 0, MAX_YEAR, 0, 60, STR_2018_PARK, 75, 0, 2, 0, 0,
TILE_SIZE_1x1,
- HZ_TEMP | HZ_ZON3),
- M( 1935, MAX_YEAR, 0, 60, STR_2018_PARK, 75, 0, 2, 0, 0, 0,
+ HZ_TEMP | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //0B
+ M( 1935, MAX_YEAR, 0, 60, STR_2018_PARK, 75, 0, 2, 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,
+ HZ_TEMP | HZ_ZON4,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //0C
+ M( 1951, MAX_YEAR, 150, 130, STR_2019_OFFICE_BLOCK, 110, 65, 8, 2, 4,
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,
+ HZ_TEMP | HZ_ZON5 | HZ_ZON4,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //0D
+ M( 1930, 1960, 95, 110, STR_201A_SHOPS_AND_OFFICES, 100, 48, 6, 2, 3,
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,
+ HZ_TEMP | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //0E
+ M( 1930, 1960, 95, 105, STR_201A_SHOPS_AND_OFFICES, 100, 48, 6, 2, 3,
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,
+ HZ_TEMP | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //0F
+ M( 1930, 1960, 95, 107, STR_201A_SHOPS_AND_OFFICES, 100, 48, 6, 2, 3,
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,
+ HZ_TEMP | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //10
+ M( 1977, MAX_YEAR, 130, 200, STR_201B_MODERN_OFFICE_BUILDING, 150, 50, 10, 3, 6,
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,
+ HZ_TEMP | HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON5,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //11
+ M( 1983, MAX_YEAR, 6, 145, STR_201C_WAREHOUSE, 110, 10, 6, 3, 8,
TILE_SIZE_1x1,
- HZ_TEMP | HZ_ZON5),
- M( 1985, MAX_YEAR, 110, 155, STR_201D_OFFICE_BLOCK, 110, 55, 6, 2, 6, 0,
+ HZ_TEMP | HZ_ZON5,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //12
+ M( 1985, MAX_YEAR, 110, 155, STR_201D_OFFICE_BLOCK, 110, 55, 6, 2, 6,
TILE_SIZE_1x1,
- HZ_TEMP | HZ_ZON5),
- M( 0, MAX_YEAR, 65, 250, STR_201E_STADIUM, 300, 5, 4, 0, 0, 0,
+ HZ_TEMP | HZ_ZON5,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //13
+ M( 0, MAX_YEAR, 65, 250, STR_201E_STADIUM, 300, 5, 4, 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,
+ HZ_TEMP | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //14
+ M( 0, MAX_YEAR, 0, 250, STR_201E_STADIUM, 300, 5, 4, 0, 0,
TILE_NO_FLAG,
- HZ_NOZNS),
- M( 0, MAX_YEAR, 0, 250, STR_201E_STADIUM, 300, 5, 4, 0, 0, 0,
+ HZ_NOZNS,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //15
+ M( 0, MAX_YEAR, 0, 250, STR_201E_STADIUM, 300, 5, 4, 0, 0,
TILE_NO_FLAG,
- HZ_NOZNS),
- M( 0, MAX_YEAR, 0, 250, STR_201E_STADIUM, 300, 5, 4, 0, 0, 0,
+ HZ_NOZNS,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //16
+ M( 0, MAX_YEAR, 0, 250, STR_201E_STADIUM, 300, 5, 4, 0, 0,
TILE_NO_FLAG,
- HZ_NOZNS),
- M( 0, 1951, 15, 70, STR_201F_OLD_HOUSES, 75, 6, 3, 1, 0, 0,
+ HZ_NOZNS,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //17
+ M( 0, 1951, 15, 70, STR_201F_OLD_HOUSES, 75, 6, 3, 1, 0,
TILE_SIZE_1x1,
- HZ_TEMP | HZ_ZON2 | HZ_ZON1),
- M( 0, 1952, 12, 75, STR_2036_COTTAGES, 75, 7, 3, 1, 0, 0,
+ HZ_TEMP | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //18
+ M( 0, 1952, 12, 75, STR_2036_COTTAGES, 75, 7, 3, 1, 0,
TILE_SIZE_1x1,
- HZ_TEMP | HZ_ZON1),
- M( 1931, MAX_YEAR, 13, 71, STR_2037_HOUSES, 75, 8, 3, 1, 0, 0,
+ HZ_TEMP | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //19
+ M( 1931, MAX_YEAR, 13, 71, STR_2037_HOUSES, 75, 8, 3, 1, 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,
+ HZ_TEMP | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //1A
+ M( 1935, MAX_YEAR, 100, 135, STR_2038_FLATS, 100, 35, 7, 2, 2,
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,
+ HZ_TEMP | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //1B
+ M( 1963, MAX_YEAR, 170, 145, STR_2039_TALL_OFFICE_BLOCK, 170, 50, 8, 3, 3,
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,
+ HZ_TEMP | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //1C
+ M( 0, 1955, 100, 132, STR_203A_SHOPS_AND_OFFICES, 135, 40, 6, 2, 3,
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,
+ HZ_TEMP | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //1D
+ M( 1973, MAX_YEAR, 180, 155, STR_203B_SHOPS_AND_OFFICES, 180, 64, 8, 3, 3,
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,
+ HZ_TEMP | HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //1E
+ M( 0, MAX_YEAR, 35, 220, STR_203C_THEATER, 230, 23, 8, 2, 2,
TILE_SIZE_1x1,
- HZ_TEMP | HZ_ZON5 | HZ_ZON4),
- M( 1958, MAX_YEAR, 65, 250, STR_203D_STADIUM, 300, 5, 4, 0, 0, 0,
+ HZ_TEMP | HZ_ZON5 | HZ_ZON4,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //1F
+ M( 1958, MAX_YEAR, 65, 250, STR_203D_STADIUM, 300, 5, 4, 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,
+ HZ_TEMP | HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //20
+ M( 1958, MAX_YEAR, 0, 250, STR_203D_STADIUM, 300, 5, 4, 0, 0,
TILE_NO_FLAG,
- HZ_NOZNS),
- M( 1958, MAX_YEAR, 0, 250, STR_203D_STADIUM, 300, 5, 4, 0, 0, 0,
+ HZ_NOZNS,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //21
+ M( 1958, MAX_YEAR, 0, 250, STR_203D_STADIUM, 300, 5, 4, 0, 0,
TILE_NO_FLAG,
- HZ_NOZNS),
- M( 1958, MAX_YEAR, 0, 250, STR_203D_STADIUM, 300, 5, 4, 0, 0, 0,
+ HZ_NOZNS,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //22
+ M( 1958, MAX_YEAR, 0, 250, STR_203D_STADIUM, 300, 5, 4, 0, 0,
TILE_NO_FLAG,
- HZ_NOZNS),
- M( 2000, MAX_YEAR, 140, 170, STR_203E_OFFICES, 250, 65, 8, 3, 2, 0,
+ HZ_NOZNS,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //23
+ M( 2000, MAX_YEAR, 140, 170, STR_203E_OFFICES, 250, 65, 8, 3, 2,
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,
+ HZ_TEMP | HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //24
+ M( 0, 1960, 15, 70, STR_203F_HOUSES, 75, 6, 3, 1, 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,
+ HZ_SUBARTC_BELOW | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //25
+ M( 0, 1960, 15, 70, STR_203F_HOUSES, 75, 6, 3, 1, 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,
+ HZ_SUBARTC_ABOVE | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //26
+ M( 1945, MAX_YEAR, 35, 210, STR_2040_CINEMA, 230, 23, 8, 2, 2,
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,
+ HZ_TEMP | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //27
+ M( 1983, MAX_YEAR, 180, 250, STR_2041_SHOPPING_MALL, 300, 5, 8, 2, 3,
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,
+ HZ_TEMP | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 |HZ_ZON2,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //28
+ M( 1983, MAX_YEAR, 0, 250, STR_2041_SHOPPING_MALL, 300, 5, 8, 2, 3,
TILE_NO_FLAG,
- HZ_NOZNS),
- M( 1983, MAX_YEAR, 0, 250, STR_2041_SHOPPING_MALL, 300, 5, 8, 2, 3, 0,
+ HZ_NOZNS,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //29
+ M( 1983, MAX_YEAR, 0, 250, STR_2041_SHOPPING_MALL, 300, 5, 8, 2, 3,
TILE_NO_FLAG,
- HZ_NOZNS),
- M( 1983, MAX_YEAR, 0, 250, STR_2041_SHOPPING_MALL, 300, 5, 8, 2, 3, 0,
+ HZ_NOZNS,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //2A
+ M( 1983, MAX_YEAR, 0, 250, STR_2041_SHOPPING_MALL, 300, 5, 8, 2, 3,
TILE_NO_FLAG,
- HZ_NOZNS),
- M( 0, MAX_YEAR, 80, 100, STR_2038_FLATS, 90, 20, 5, 2, 0, 2,
+ HZ_NOZNS,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //2B
+ M( 0, MAX_YEAR, 80, 100, STR_2038_FLATS, 90, 20, 5, 2, 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,
+ HZ_SUBARTC_BELOW | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //2C
+ M( 0, MAX_YEAR, 80, 100, STR_2038_FLATS, 90, 20, 5, 2, 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,
+ HZ_SUBARTC_ABOVE | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //2D
+ M( 0, MAX_YEAR, 16, 70, STR_203F_HOUSES, 70, 6, 3, 1, 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,
+ HZ_SUBARTC_BELOW | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //2E
+ M( 0, MAX_YEAR, 16, 70, STR_203F_HOUSES, 70, 6, 3, 1, 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,
+ HZ_SUBARTC_ABOVE | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //2F
+ M( 0, 1963, 14, 80, STR_203F_HOUSES, 70, 6, 3, 1, 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,
+ HZ_SUBARTC_BELOW | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //30
+ M( 0, 1963, 14, 80, STR_203F_HOUSES, 70, 6, 3, 1, 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,
+ HZ_SUBARTC_ABOVE | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //31
+ M( 1966, MAX_YEAR, 135, 150, STR_200F_TALL_OFFICE_BLOCK, 120, 60, 8, 3, 4,
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,
+ HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //32
+ M( 1966, MAX_YEAR, 135, 150, STR_200F_TALL_OFFICE_BLOCK, 120, 60, 8, 3, 4,
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,
+ HZ_SUBARTC_ABOVE | HZ_ZON5 | HZ_ZON4,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //33
+ M( 1970, MAX_YEAR, 170, 170, STR_200F_TALL_OFFICE_BLOCK, 130, 70, 9, 3, 4,
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,
+ HZ_SUBARTC_BELOW | HZ_ZON5 | HZ_ZON4,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //34
+ M( 1970, MAX_YEAR, 170, 170, STR_200F_TALL_OFFICE_BLOCK, 130, 70, 9, 3, 4,
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,
+ HZ_SUBARTC_ABOVE | HZ_ZON5 | HZ_ZON4,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //35
+ M( 1974, MAX_YEAR, 210, 200, STR_200F_TALL_OFFICE_BLOCK, 140, 80, 10, 3, 5,
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,
+ HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //36
+ M( 1974, MAX_YEAR, 210, 200, STR_200F_TALL_OFFICE_BLOCK, 140, 80, 10, 3, 5,
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,
+ HZ_SUBARTC_ABOVE | HZ_ZON5 | HZ_ZON4,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //37
+ M( 0, MAX_YEAR, 10, 60, STR_203F_HOUSES, 60, 5, 2, 1, 1,
TILE_SIZE_1x1,
- HZ_SUBARTC_BELOW | HZ_ZON1),
- M( 0, MAX_YEAR, 10, 60, STR_203F_HOUSES, 60, 5, 2, 1, 0, 1,
+ HZ_SUBARTC_BELOW | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //38
+ M( 0, MAX_YEAR, 10, 60, STR_203F_HOUSES, 60, 5, 2, 1, 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,
+ HZ_SUBARTC_ABOVE | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //39
+ M( 0, MAX_YEAR, 25, 100, STR_201A_SHOPS_AND_OFFICES, 80, 20, 3, 1, 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,
+ HZ_SUBARTC_BELOW | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //3A
+ M( 0, MAX_YEAR, 25, 100, STR_201A_SHOPS_AND_OFFICES, 80, 20, 3, 1, 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,
+ HZ_SUBARTC_ABOVE | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //3B
+ M( 0, MAX_YEAR, 6, 85, STR_2012_CHURCH, 230, 2, 2, 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,
+ HZ_SUBARTC_BELOW | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //3C
+ M( 0, MAX_YEAR, 6, 85, STR_2012_CHURCH, 230, 2, 2, 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,
+ HZ_SUBARTC_ABOVE | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //3D
+ M( 0, MAX_YEAR, 17, 80, STR_203F_HOUSES, 80, 7, 3, 1, 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,
+ HZ_SUBARTC_BELOW | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //3E
+ M( 0, MAX_YEAR, 17, 80, STR_203F_HOUSES, 80, 7, 3, 1, 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,
+ HZ_SUBARTC_ABOVE | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //3F
+ M( 0, 1960, 90, 140, STR_201A_SHOPS_AND_OFFICES, 110, 45, 6, 2, 3,
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,
+ HZ_SUBARTC_BELOW| HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //40
+ M( 0, 1960, 90, 140, STR_201A_SHOPS_AND_OFFICES, 110, 45, 6, 2, 3,
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,
+ HZ_SUBARTC_ABOVE| HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //41
+ M( 1972, MAX_YEAR, 140, 160, STR_2015_HOTEL, 160, 25, 6, 1, 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,
+ HZ_SUBARTC_BELOW| HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //42
+ M( 1972, MAX_YEAR, 0, 160, STR_2015_HOTEL, 160, 25, 6, 1, 2,
TILE_NO_FLAG,
- HZ_NOZNS),
- M( 1972, MAX_YEAR, 140, 160, STR_2015_HOTEL, 160, 25, 6, 1, 0, 3,
+ HZ_NOZNS,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //43
+ M( 1972, MAX_YEAR, 140, 160, STR_2015_HOTEL, 160, 25, 6, 1, 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,
+ HZ_SUBARTC_ABOVE| HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //44
+ M( 1972, MAX_YEAR, 0, 160, STR_2015_HOTEL, 160, 25, 6, 1, 2,
TILE_NO_FLAG,
- HZ_NOZNS),
- M( 1963, MAX_YEAR, 105, 130, STR_201A_SHOPS_AND_OFFICES, 105, 50, 7, 2, 3, 0,
+ HZ_NOZNS,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //45
+ M( 1963, MAX_YEAR, 105, 130, STR_201A_SHOPS_AND_OFFICES, 105, 50, 7, 2, 3,
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,
+ HZ_SUBARTC_BELOW | HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //46
+ M( 1963, MAX_YEAR, 105, 130, STR_201A_SHOPS_AND_OFFICES, 105, 50, 7, 2, 3,
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,
+ HZ_SUBARTC_ABOVE| HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //47
+ M( 1978, MAX_YEAR, 190, 190, STR_200F_TALL_OFFICE_BLOCK, 135, 75, 9, 3, 4,
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,
+ HZ_SUBARTC_BELOW | HZ_ZON5 | HZ_ZON4,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //48
+ M( 1978, MAX_YEAR, 190, 190, STR_200F_TALL_OFFICE_BLOCK, 135, 75, 9, 3, 4,
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,
+ HZ_SUBARTC_ABOVE | HZ_ZON5 | HZ_ZON4,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //49
+ M( 1967, MAX_YEAR, 250, 140, STR_200F_TALL_OFFICE_BLOCK, 200, 60, 7, 2, 2,
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,
+ HZ_SUBARTC_BELOW| HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //4A
+ M( 1967, MAX_YEAR, 0, 140, STR_200F_TALL_OFFICE_BLOCK, 200, 60, 7, 2, 2,
TILE_NO_FLAG,
- HZ_NOZNS),
- M( 1967, MAX_YEAR, 250, 140, STR_200F_TALL_OFFICE_BLOCK, 200, 60, 7, 2, 2, 0,
+ HZ_NOZNS,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //4B
+ M( 1967, MAX_YEAR, 250, 140, STR_200F_TALL_OFFICE_BLOCK, 200, 60, 7, 2, 2,
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,
+ HZ_SUBARTC_ABOVE | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //4C
+ M( 1967, MAX_YEAR, 0, 140, STR_200F_TALL_OFFICE_BLOCK, 200, 60, 7, 2, 2,
TILE_NO_FLAG,
- HZ_NOZNS),
- M( 0, MAX_YEAR, 16, 80, STR_203F_HOUSES, 80, 6, 3, 1, 0, 2,
+ HZ_NOZNS,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //4D
+ M( 0, MAX_YEAR, 16, 80, STR_203F_HOUSES, 80, 6, 3, 1, 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,
+ HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //4E
+ M( 0, MAX_YEAR, 16, 80, STR_203F_HOUSES, 80, 6, 3, 1, 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,
+ HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //4F
+ M( 0, MAX_YEAR, 16, 80, STR_203F_HOUSES, 80, 5, 3, 1, 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,
+ HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //50
+ M( 0, MAX_YEAR, 7, 30, STR_203F_HOUSES, 30, 4, 3, 1, 1,
TILE_SIZE_1x1,
- HZ_SUBTROPIC | HZ_ZON1),
- M( 0, MAX_YEAR, 45, 130, STR_2038_FLATS, 95, 15, 6, 2, 1, 0,
+ HZ_SUBTROPIC | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //51
+ M( 0, MAX_YEAR, 45, 130, STR_2038_FLATS, 95, 15, 6, 2, 1,
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,
+ HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //52
+ M( 0, MAX_YEAR, 8, 90, STR_2012_CHURCH, 200, 3, 2, 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,
+ HZ_SUBTROPIC | HZ_ZON4 | HZ_ZON3 | HZ_ZON2,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //53
+ M( 0, MAX_YEAR, 18, 80, STR_203F_HOUSES, 80, 7, 3, 1, 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,
+ HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2,
+ CT_PASSENGERS, CT_MAIL, CT_FOOD), //54
+ M( 1973, MAX_YEAR, 90, 110, STR_2038_FLATS, 95, 24, 6, 2, 1,
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,
+ HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //55
+ M( 1962, MAX_YEAR, 120, 120, STR_2038_FLATS, 95, 25, 6, 2, 1,
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,
+ HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //56
+ M( 1984, MAX_YEAR, 250, 190, STR_200F_TALL_OFFICE_BLOCK, 140, 80, 8, 3, 4,
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,
+ HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //57
+ M( 1984, MAX_YEAR, 0, 190, STR_200F_TALL_OFFICE_BLOCK, 140, 80, 8, 3, 4,
TILE_NO_FLAG,
- HZ_SUBTROPIC),
- M( 0, MAX_YEAR, 80, 110, STR_2038_FLATS, 95, 23, 6, 2, 1, 0,
+ HZ_SUBTROPIC,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //58
+ M( 0, MAX_YEAR, 80, 110, STR_2038_FLATS, 95, 23, 6, 2, 1,
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,
+ HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //59
+ M( 1993, MAX_YEAR, 180, 180, STR_200F_TALL_OFFICE_BLOCK, 150, 90, 8, 3, 4,
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,
+ HZ_SUBTROPIC | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_GOODS), //5A
+ M( 0, MAX_YEAR, 8, 90, STR_2012_CHURCH, 200, 3, 2, 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,
+ HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_CANDY), //5B
+ M( 0, MAX_YEAR, 18, 90, STR_203F_HOUSES, 90, 5, 6, 2, 2,
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,
+ HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_CANDY), //5C
+ M( 0, MAX_YEAR, 7, 70, STR_203F_HOUSES, 50, 3, 3, 1, 1,
TILE_SIZE_1x1,
- HZ_TOYLND | HZ_ZON2 | HZ_ZON1),
- M( 0, MAX_YEAR, 15, 80, STR_203F_HOUSES, 75, 6, 3, 1, 2, 0,
+ HZ_TOYLND | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_CANDY), //5D
+ M( 0, MAX_YEAR, 15, 80, STR_203F_HOUSES, 75, 6, 3, 1, 2,
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,
+ HZ_TOYLND | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_CANDY), //5E
+ M( 0, MAX_YEAR, 17, 80, STR_203F_HOUSES, 75, 6, 3, 1, 2,
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,
+ HZ_TOYLND | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_CANDY), //5F
+ M( 0, MAX_YEAR, 19, 80, STR_203F_HOUSES, 75, 6, 3, 1, 2,
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,
+ HZ_TOYLND | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_CANDY), //60
+ M( 0, MAX_YEAR, 21, 80, STR_203F_HOUSES, 75, 6, 3, 1, 2,
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,
+ HZ_TOYLND | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_CANDY), //61
+ M( 0, MAX_YEAR, 75, 160, STR_200F_TALL_OFFICE_BLOCK, 130, 20, 8, 4, 2,
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,
+ HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_CANDY), //62
+ M( 0, MAX_YEAR, 35, 90, STR_203F_HOUSES, 80, 9, 4, 1, 2,
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,
+ HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_CANDY), //63
+ M( 0, MAX_YEAR, 0, 90, STR_203F_HOUSES, 80, 0, 4, 1, 2,
TILE_NO_FLAG,
- HZ_NOZNS),
- M( 0, MAX_YEAR, 85, 150, STR_200F_TALL_OFFICE_BLOCK, 130, 18, 8, 4, 2, 0,
+ HZ_NOZNS,
+ CT_PASSENGERS, CT_MAIL, CT_CANDY), //64
+ M( 0, MAX_YEAR, 85, 150, STR_200F_TALL_OFFICE_BLOCK, 130, 18, 8, 4, 2,
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,
+ HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_CANDY), //65
+ M( 0, MAX_YEAR, 11, 60, STR_2059_IGLOO, 45, 3, 3, 1, 1,
TILE_SIZE_1x1,
- HZ_TOYLND | HZ_ZON1),
- M( 0, MAX_YEAR, 10, 60, STR_205A_TEPEES, 45, 3, 3, 1, 1, 0,
+ HZ_TOYLND | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_CANDY), //66
+ M( 0, MAX_YEAR, 10, 60, STR_205A_TEPEES, 45, 3, 3, 1, 1,
TILE_SIZE_1x1,
- HZ_TOYLND | HZ_ZON1),
- M( 0, MAX_YEAR, 67, 140, STR_201A_SHOPS_AND_OFFICES, 130, 22, 8, 4, 0, 4,
+ HZ_TOYLND | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_CANDY), //67
+ M( 0, MAX_YEAR, 67, 140, STR_201A_SHOPS_AND_OFFICES, 130, 22, 8, 4, 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,
+ HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_FIZZY_DRINKS), //68
+ M( 0, MAX_YEAR, 86, 145, STR_201A_SHOPS_AND_OFFICES, 130, 23, 8, 4, 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,
+ HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_FIZZY_DRINKS), //69
+ M( 0, MAX_YEAR, 95, 165, STR_200F_TALL_OFFICE_BLOCK, 130, 28, 8, 4, 2,
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,
+ HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_CANDY), //6A
+ M( 0, MAX_YEAR, 30, 90, STR_2016_STATUE, 70, 10, 4, 1, 2,
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,
+ HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3,
+ CT_PASSENGERS, CT_MAIL, CT_CANDY), //6B
+ M( 0, MAX_YEAR, 25, 75, STR_205B_TEAPOT_HOUSE, 65, 8, 3, 1, 2,
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,
+ HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_CANDY), //6C
+ M( 0, MAX_YEAR, 18, 85, STR_205C_PIGGY_BANK, 95, 7, 3, 2, 4,
TILE_SIZE_1x1,
- HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1),
+ HZ_TOYLND | HZ_ZON5 | HZ_ZON4 | HZ_ZON3 | HZ_ZON2 | HZ_ZON1,
+ CT_PASSENGERS, CT_MAIL, CT_FIZZY_DRINKS), //6D
};
#undef M
assert_compile(lengthof(_original_house_specs) == NEW_HOUSE_OFFSET);
diff --git a/src/town.h b/src/town.h
index 3bc81f2b6..e824d3fe6 100644
--- a/src/town.h
+++ b/src/town.h
@@ -155,10 +155,8 @@ struct HouseSpec {
StringID building_name; ///< building name
uint16 remove_rating_decrease; ///< rating decrease if removed
byte mail_generation; ///< mail generation multiplier (tile based, as the acceptances below)
- byte passenger_acceptance; ///< passenger acceptance, given in 1/8th unit, max is 8, as the 3 next properies
- byte mail_acceptance; ///< mail acceptance
- byte goods_acceptance; ///< good acceptance
- byte food_acceptance; ///< food (or fizzy drink) acceptance
+ byte cargo_acceptance[3]; ///< acceptance level for the cargo slots
+ CargoID accepts_cargo[3]; ///< 3 input cargo slots
BuildingFlags building_flags; ///< some flags that describe the house (size, stadium etc...)
HouseZones building_availability; ///< where can it be built (climates, zones)
bool enabled; ///< the house is still avaible (by default, true.newgrf can disable it, though)
diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp
index bdc4c6d12..716eb673f 100644
--- a/src/town_cmd.cpp
+++ b/src/town_cmd.cpp
@@ -406,10 +406,7 @@ static void GetAcceptedCargo_Town(TileIndex tile, AcceptedCargo ac)
{
HouseSpec *hs = GetHouseSpecs(GetHouseType(tile));
- ac[CT_PASSENGERS] = hs->passenger_acceptance;
- ac[CT_MAIL] = hs->mail_acceptance;
- ac[CT_GOODS] = hs->goods_acceptance;
- ac[CT_FOOD] = hs->food_acceptance;
+ for (uint8 i = 0; i < 3; i++) ac[hs->accepts_cargo[i]] = hs->cargo_acceptance[i];
}
static void GetTileDesc_Town(TileIndex tile, TileDesc *td)