(svn r6904) -CodeChange : Cleanup of industry_cmd (Step-5).
authorbelugas
Mon, 23 Oct 2006 16:35:27 +0000
changeset 4924 6e29520a0ba8
parent 4923 01f6634494e3
child 4925 28d997934642
(svn r6904) -CodeChange : Cleanup of industry_cmd (Step-5).
Add member life_type to IndustrySpec and remove the now useless _industry_close_mode array
industry.h
industry_cmd.c
table/build_industry.h
--- a/industry.h	Mon Oct 23 08:29:16 2006 +0000
+++ b/industry.h	Mon Oct 23 16:35:27 2006 +0000
@@ -12,6 +12,12 @@
 	INVALID_INDUSTRY = 0xFFFF,
 };
 
+typedef enum IndustryLifeTypes {
+	INDUSTRYLIFE_NOT_CLOSABLE,     ///< Industry can never close
+	INDUSTRYLIFE_PRODUCTION,       ///< Industry can close and change of production
+	INDUSTRYLIFE_CLOSABLE,         ///< Industry can only close (no production change)
+} IndustryLifeType;
+
 struct Industry {
 	TileIndex xy;
 	byte width; /* swapped order of w/h with town */
@@ -62,6 +68,8 @@
 	byte minimal_cargo;
 	CargoID accepts_cargo[3];
 
+	IndustryLifeType life_type;  //this is also known as Industry production flag, in newgrf specs
+
 	StringID closure_text;
 	StringID production_up_text;
 	StringID production_down_text;
@@ -191,10 +199,4 @@
 	IT_INVALID             = 255,
 };
 
-typedef enum IndustryLifeTypes {
-	INDUSTRYLIFE_NOT_CLOSABLE,     ///< Industry can never close
-	INDUSTRYLIFE_PRODUCTION,       ///< Industry can close and change of production
-	INDUSTRYLIFE_CLOSABLE,         ///< Industry can only close (no production change)
-} IndustryLifeType;
-
 #endif /* INDUSTRY_H */
--- a/industry_cmd.c	Mon Oct 23 08:29:16 2006 +0000
+++ b/industry_cmd.c	Mon Oct 23 16:35:27 2006 +0000
@@ -53,46 +53,6 @@
 /* Initialize the industry-pool */
 MemoryPool _industry_pool = { "Industry", INDUSTRY_POOL_MAX_BLOCKS, INDUSTRY_POOL_BLOCK_SIZE_BITS, sizeof(Industry), &IndustryPoolNewBlock, NULL, 0, 0, NULL };
 
-static const IndustryType _industry_close_mode[IT_END] = {
-	/* COAL_MINE */          INDUSTRYLIFE_PRODUCTION,
-	/* POWER_STATION */      INDUSTRYLIFE_NOT_CLOSABLE,
-	/* SAWMILL */            INDUSTRYLIFE_CLOSABLE,
-	/* FOREST */             INDUSTRYLIFE_PRODUCTION,
-	/* OIL_REFINERY */       INDUSTRYLIFE_CLOSABLE,
-	/* OIL_RIG */            INDUSTRYLIFE_PRODUCTION,
-	/* FACTORY */            INDUSTRYLIFE_CLOSABLE,
-	/* PRINTING_WORKS */     INDUSTRYLIFE_CLOSABLE,
-	/* STEEL_MILL */         INDUSTRYLIFE_CLOSABLE,
-	/* FARM */               INDUSTRYLIFE_PRODUCTION,
-	/* COPPER_MINE */        INDUSTRYLIFE_PRODUCTION,
-	/* OIL_WELL */           INDUSTRYLIFE_PRODUCTION,
-	/* BANK */               INDUSTRYLIFE_NOT_CLOSABLE,
-	/* FOOD_PROCESS */       INDUSTRYLIFE_CLOSABLE,
-	/* PAPER_MILL */         INDUSTRYLIFE_CLOSABLE,
-	/* GOLD_MINE */          INDUSTRYLIFE_PRODUCTION,
-	/* BANK_2,  */           INDUSTRYLIFE_NOT_CLOSABLE,
-	/* DIAMOND_MINE */       INDUSTRYLIFE_PRODUCTION,
-	/* IRON_MINE */          INDUSTRYLIFE_PRODUCTION,
-	/* FRUIT_PLANTATION */   INDUSTRYLIFE_PRODUCTION,
-	/* RUBBER_PLANTATION */  INDUSTRYLIFE_PRODUCTION,
-	/* WATER_SUPPLY */       INDUSTRYLIFE_PRODUCTION,
-	/* WATER_TOWER */        INDUSTRYLIFE_NOT_CLOSABLE,
-	/* FACTORY_2 */          INDUSTRYLIFE_CLOSABLE,
-	/* FARM_2 */             INDUSTRYLIFE_PRODUCTION,
-	/* LUMBER_MILL */        INDUSTRYLIFE_CLOSABLE,
-	/* COTTON_CANDY */       INDUSTRYLIFE_PRODUCTION,
-	/* CANDY_FACTORY */      INDUSTRYLIFE_CLOSABLE,
-	/* BATTERY_FARM */       INDUSTRYLIFE_PRODUCTION,
-	/* COLA_WELLS */         INDUSTRYLIFE_PRODUCTION,
-	/* TOY_SHOP */           INDUSTRYLIFE_NOT_CLOSABLE,
-	/* TOY_FACTORY */        INDUSTRYLIFE_CLOSABLE,
-	/* PLASTIC_FOUNTAINS */  INDUSTRYLIFE_PRODUCTION,
-	/* FIZZY_DRINK_FACTORY */INDUSTRYLIFE_CLOSABLE,
-	/* BUBBLE_GENERATOR */   INDUSTRYLIFE_PRODUCTION,
-	/* TOFFEE_QUARRY */      INDUSTRYLIFE_PRODUCTION,
-	/* SUGAR_MINE */         INDUSTRYLIFE_PRODUCTION
-};
-
 /**
  * Retrieve the type for this industry.  Although it is accessed by a tile,
  * it will return the general type of industry, and not the sprite index
@@ -1663,7 +1623,7 @@
 	int j;
 	const IndustrySpec *indspec = GetIndustrySpec(i->type);
 
-	switch (_industry_close_mode[i->type]) {
+	switch (indspec->life_type) {
 		case INDUSTRYLIFE_NOT_CLOSABLE:
 			return;
 
@@ -1810,7 +1770,7 @@
 	int type = i->type;
 	const IndustrySpec *indspec = GetIndustrySpec(type);
 
-	switch (_industry_close_mode[type]) {
+	switch (indspec->life_type) {
 		case INDUSTRYLIFE_NOT_CLOSABLE:
 			return;
 
--- a/table/build_industry.h	Mon Oct 23 08:29:16 2006 +0000
+++ b/table/build_industry.h	Mon Oct 23 16:35:27 2006 +0000
@@ -1080,9 +1080,9 @@
 	CHECK_END,
 } CheckProc;
 
-#define MK(tbl, d, c1, c2, c3, proc, p1, r1, p2, r2, m, a1, a2, a3, s1, s2, s3) \
+#define MK(tbl, d, c1, c2, c3, proc, p1, r1, p2, r2, m, a1, a2, a3, pr, s1, s2, s3) \
 	{tbl, lengthof(tbl), d, {c1, c2, c3}, proc, {p1, p2}, {r1, r2}, m,            \
-	 {a1, a2, a3},  s1, s2, s3}
+	 {a1, a2, a3}, pr, s1, s2, s3}
 
 static const IndustrySpec _industry_specs[] = {
 	/* Format:
@@ -1090,227 +1090,265 @@
 	   cannot be close to these industries (3 times)             check proc
 	   (produced cargo + rate) (twice)         minimum cargo moved to station
 	   3 accepted cargo
+	   industry life
 	   messages : Closure                      production up                      production down   */
 	MK(_tile_table_coal_mine,                  210,
 	   IT_POWER_STATION,  IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_COAL,       15, CT_INVALID,       0, 5,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4836_NEW_COAL_SEAM_FOUND_AT,   STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_power_station,              30,
 	   IT_COAL_MINE,      IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_INVALID,     0, CT_INVALID,       0, 5,
 	   CT_COAL,           CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_NOT_CLOSABLE,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_sawmill,                    28,
 	   IT_FOREST,         IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_GOODS,       0, CT_INVALID,       0, 5,
 	   CT_WOOD,           CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_CLOSABLE,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_forest,                     200,
 	   IT_SAWMILL,        IT_PAPER_MILL,       IT_INVALID,       CHECK_FOREST,
 	   CT_WOOD,       13, CT_INVALID,       0, 30,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_483A_INSECT_INFESTATION_CAUSES),
 
 	MK(_tile_table_oil_refinery,               31,
 	   IT_OIL_RIG,        IT_INVALID,          IT_INVALID,       CHECK_REFINERY,
 	   CT_GOODS,       0, CT_INVALID,       0, 5,
 	   CT_OIL,            CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_CLOSABLE,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_oil_rig,                    240,
 	   IT_OIL_REFINERY,   IT_INVALID,          IT_INVALID,       CHECK_OIL_RIG,
 	   CT_OIL,        15, CT_PASSENGERS,    2, 5,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4837_NEW_OIL_RESERVES_FOUND,   STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_factory,                    26,
 	   IT_FARM,           IT_STEEL_MILL,       IT_INVALID,       CHECK_NOTHING,
 	   CT_GOODS,       0, CT_INVALID,       0, 5,
 	   CT_LIVESTOCK,      CT_GRAIN,            CT_STEEL,
+	   INDUSTRYLIFE_CLOSABLE,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_printing_works,             26,
 	   IT_PAPER_MILL,     IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_GOODS,       0, CT_INVALID,       0, 5,
 	   CT_PAPER,          CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_CLOSABLE,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_steel_mill,                 27,
 	   IT_IRON_MINE,      IT_FACTORY,          IT_INVALID,       CHECK_NOTHING,
 	   CT_STEEL,       0, CT_INVALID,       0, 5,
 	   CT_IRON_ORE,       CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_CLOSABLE,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_farm,                       250,
 	   IT_FACTORY,        IT_FOOD_PROCESS,     IT_INVALID,       CHECK_FARM,
 	   CT_GRAIN,      10, CT_LIVESTOCK,    10, 5,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),
 
 	MK(_tile_table_copper_mine,                205,
 	   IT_FACTORY_2,      IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_COPPER_ORE, 10, CT_INVALID,       0, 5,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_oil_well,                   220,
 	   IT_OIL_REFINERY,   IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_OIL,        12, CT_INVALID,       0, 5,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4837_NEW_OIL_RESERVES_FOUND,   STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_bank,                       193,
 	   IT_BANK_TEMP,      IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_VALUABLES,   6, CT_INVALID,       0, 5,
 	   CT_VALUABLES,      CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_NOT_CLOSABLE,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_food_process,               26,
 	   IT_FRUIT_PLANTATION, IT_FARM,           IT_FARM_2,        CHECK_NOTHING,
 	   CT_FOOD,        0, CT_INVALID,       0, 5,
 	   CT_FRUIT,          CT_MAIZE,            CT_INVALID,
+	   INDUSTRYLIFE_CLOSABLE,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_paper_mill,                 28,
 	   IT_FOREST,         IT_PRINTING_WORKS,   IT_INVALID,       CHECK_NOTHING,
 	   CT_PAPER,       0, CT_INVALID,       0, 5,
 	   CT_WOOD,           CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_CLOSABLE,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_gold_mine,                  208,
 	   IT_BANK_TROPIC_ARCTIC, IT_INVALID,      IT_INVALID,       CHECK_NOTHING,
 	   CT_GOLD,        7, CT_INVALID,       0, 5,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_bank2,                      19,
 	   IT_GOLD_MINE,      IT_DIAMOND_MINE,     IT_INVALID,       CHECK_NOTHING,
 	   CT_INVALID,     0, CT_INVALID,       0, 5,
 	   CT_GOLD,           CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_NOT_CLOSABLE,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_diamond_mine,               213,
 	   IT_BANK_TROPIC_ARCTIC, IT_INVALID,      IT_INVALID,       CHECK_NOTHING,
 	   CT_DIAMONDS,    7, CT_INVALID,       0, 5,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_iron_mine,                  220,
 	   IT_STEEL_MILL,     IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_IRON_ORE,   10, CT_INVALID,       0, 5,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_fruit_plantation,           225,
 	   IT_FOOD_PROCESS,   IT_INVALID,          IT_INVALID,       CHECK_PLANTATION,
 	   CT_FRUIT,      10, CT_INVALID,       0, 15,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),
 
 	MK(_tile_table_rubber_plantation,          218,
 	   IT_FACTORY_2,      IT_INVALID,          IT_INVALID,       CHECK_PLANTATION,
 	   CT_RUBBER,     10, CT_INVALID,       0, 15,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),
 
 	MK(_tile_table_water_supply,               199,
 	   IT_WATER_TOWER,    IT_INVALID,          IT_INVALID,       CHECK_WATER,
 	   CT_WATER,      12, CT_INVALID,       0, 5,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_water_tower,                14,
 	   IT_WATER_SUPPLY,   IT_INVALID,          IT_INVALID,       CHECK_WATER,
 	   CT_INVALID,     0, CT_INVALID,       0, 5,
 	   CT_WATER,          CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_NOT_CLOSABLE,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_factory2,                   26,
 	   IT_RUBBER_PLANTATION, IT_COPPER_MINE,   IT_LUMBER_MILL,   CHECK_PLANTATION,
 	   CT_GOODS,       0, CT_INVALID,       0, 5,
 	   CT_RUBBER,         CT_COPPER_ORE,       CT_WOOD,
+	   INDUSTRYLIFE_CLOSABLE,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_farm2,                      250,
 	   IT_FOOD_PROCESS,   IT_INVALID,          IT_INVALID,       CHECK_PLANTATION,
 	   CT_MAIZE,      11, CT_INVALID,       0, 5,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),
 
 	MK(_tile_table_lumber_mill,                17,
 	   IT_FACTORY_2,      IT_INVALID,          IT_INVALID,       CHECK_LUMBERMILL,
 	   CT_WOOD,        0, CT_INVALID,       0, 5,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_CLOSABLE,
 	   STR_4834_LACK_OF_NEARBY_TREES_CAUSES,   STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_cotton_candy,               195,
 	   IT_CANDY_FACTORY,  IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_COTTON_CANDY, 13, CT_INVALID,    0, 30,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_candy_factory,              26,
 	   IT_COTTON_CANDY,   IT_TOFFEE_QUARRY,    IT_SUGAR_MINE,    CHECK_NOTHING,
 	   CT_CANDY,       0, CT_INVALID,       0, 5,
 	   CT_SUGAR,          CT_TOFFEE,           CT_COTTON_CANDY,
+	   INDUSTRYLIFE_CLOSABLE,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_battery_farm,               187,
 	   IT_TOY_FACTORY,    IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_BATTERIES,  11, CT_INVALID,      0, 30,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),
 
 	MK(_tile_table_cola_wells,                 193,
 	   IT_FIZZY_DRINK_FACTORY, IT_INVALID,     IT_INVALID,       CHECK_NOTHING,
 	   CT_COLA,       12, CT_INVALID,       0, 5,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_toy_shop,                   17,
 	   IT_TOY_FACTORY,    IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_INVALID,     0, CT_INVALID,       0, 5,
 	   CT_TOYS,           CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_NOT_CLOSABLE,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_toy_factory,                20,
 	   IT_PLASTIC_FOUNTAINS, IT_BATTERY_FARM,  IT_TOY_SHOP,     CHECK_NOTHING,
 	   CT_TOYS,        0, CT_INVALID,       0, 5,
 	   CT_PLASTIC,        CT_BATTERIES,        CT_INVALID,
+	   INDUSTRYLIFE_CLOSABLE,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_plastic_fountain,           192,
 	   IT_TOY_FACTORY,    IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_PLASTIC,    14, CT_INVALID,       0, 5,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_fizzy_drink,                22,
 	   IT_COLA_WELLS,     IT_BUBBLE_GENERATOR, IT_INVALID,     CHECK_NOTHING,
 	   CT_FIZZY_DRINKS, 0, CT_INVALID,      0, 5,
 	   CT_COLA,           CT_BUBBLES,          CT_INVALID,
+	   INDUSTRYLIFE_CLOSABLE,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_bubble_generator,           203,
 	   IT_FIZZY_DRINK_FACTORY, IT_INVALID,     IT_INVALID,       CHECK_BUBBLEGEN,
 	   CT_BUBBLES,    13, CT_INVALID,       0, 5,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_toffee_quarry,              213,
 	   IT_CANDY_FACTORY,  IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_TOFFEE,     10, CT_INVALID,       0, 5,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MK(_tile_table_sugar_mine,                 210,
 	   IT_CANDY_FACTORY,  IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_SUGAR,      11, CT_INVALID,       0, 5,
 	   CT_INVALID,        CT_INVALID,          CT_INVALID,
+	   INDUSTRYLIFE_PRODUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 };
 #undef MK