summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbelugas <belugas@openttd.org>2006-04-28 21:58:16 +0000
committerbelugas <belugas@openttd.org>2006-04-28 21:58:16 +0000
commit7ab8b20faf44696e276d3a15836df08bf21c7d3d (patch)
tree7a33e83753c8db062e024e30635d1349dc2275df
parentd039d332ecbb96186249208e5692f900ef2ec07e (diff)
downloadopenttd-7ab8b20faf44696e276d3a15836df08bf21c7d3d.tar.xz
(svn r4614) CodeChange : Cleanup of industry_cmd (Step-4).
Removing the _industry_type_costs in favor of IndustrySpec.cost_multiplier; In order to let industry_gui use the GetIndustrySpec accessor, some structs had to be moved in industry.h
-rw-r--r--industry.h35
-rw-r--r--industry_cmd.c4
-rw-r--r--industry_gui.c2
-rw-r--r--industry_map.h1
-rw-r--r--table/build_industry.h484
5 files changed, 263 insertions, 263 deletions
diff --git a/industry.h b/industry.h
index e2841ed36..bb7bb498b 100644
--- a/industry.h
+++ b/industry.h
@@ -5,6 +5,9 @@
#include "pool.h"
+typedef byte IndustryGfx;
+typedef uint8 IndustryType;
+
struct Industry {
TileIndex xy;
byte width; /* swapped order of w/h with town */
@@ -31,6 +34,37 @@ struct Industry {
uint16 index;
};
+typedef struct IndustryTileTable {
+ TileIndexDiffC ti;
+ IndustryGfx gfx;
+} IndustryTileTable;
+
+typedef struct IndustrySpec {
+ /** Tables with the 'layout' of different composition of GFXes */
+ const IndustryTileTable *const *table;
+ /** Number of elements in the table */
+ byte num_table;
+ /** Base cost multiplier*/
+ byte cost_multiplier;
+ /** Industries this industry cannot be close to */
+ IndustryType conflicting[3];
+ /** index to a procedure to check for conflicting circumstances */
+ byte check_proc;
+
+ CargoID produced_cargo[2];
+ byte production_rate[2];
+ /** The minimum amount of cargo transported to the stations; if the
+ * waiting cargo is less than this number, no cargo is moved to it*/
+ byte minimal_cargo;
+ CargoID accepts_cargo[3];
+
+ StringID closure_text;
+ StringID production_up_text;
+ StringID production_down_text;
+} IndustrySpec;
+
+const IndustrySpec *GetIndustrySpec(IndustryType thistype);
+
extern MemoryPool _industry_pool;
/**
@@ -65,7 +99,6 @@ VARDEF int _total_industries; // For the AI: the amount of industries active
VARDEF uint16 *_industry_sort;
VARDEF bool _industry_sort_dirty;
-typedef uint8 IndustryType;
void DeleteIndustry(Industry *is);
diff --git a/industry_cmd.c b/industry_cmd.c
index 80840d376..1a4c96209 100644
--- a/industry_cmd.c
+++ b/industry_cmd.c
@@ -122,7 +122,7 @@ IndustryType GetIndustryType(TileIndex tile)
* @param thistype of industry (which is the index in _industry_specs)
* @pre thistype < IT_END
**/
-static const IndustrySpec *GetIndustrySpec(IndustryType thistype)
+const IndustrySpec *GetIndustrySpec(IndustryType thistype)
{
assert(thistype < IT_END);
return &_industry_specs[thistype];
@@ -1433,7 +1433,7 @@ int32 CmdBuildIndustry(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
if (flags & DC_EXEC) DoCreateNewIndustry(i, tile, p1, it, t, OWNER_NONE);
- return (_price.build_industry >> 5) * _industry_type_costs[p1];
+ return (_price.build_industry >> 5) * indspec->cost_multiplier;
}
diff --git a/industry_gui.c b/industry_gui.c
index 676cdd5f2..597a018b7 100644
--- a/industry_gui.c
+++ b/industry_gui.c
@@ -31,7 +31,7 @@ static void BuildIndustryWndProc(Window *w, WindowEvent *e)
if (_thd.place_mode == 1 && _thd.window_class == WC_BUILD_INDUSTRY) {
int ind_type = _build_industry_types[_opt_ptr->landscape][WP(w,def_d).data_1];
- SetDParam(0, (_price.build_industry >> 5) * _industry_type_costs[ind_type]);
+ SetDParam(0, (_price.build_industry >> 5) * GetIndustrySpec(ind_type)->cost_multiplier);
DrawStringCentered(85, w->height - 21, STR_482F_COST, 0);
}
break;
diff --git a/industry_map.h b/industry_map.h
index 529e75317..0ca3f07c8 100644
--- a/industry_map.h
+++ b/industry_map.h
@@ -9,7 +9,6 @@
#include "macros.h"
#include "tile.h"
-typedef byte IndustryGfx;
/**
diff --git a/table/build_industry.h b/table/build_industry.h
index 7f6fe2710..9bfdcba5d 100644
--- a/table/build_industry.h
+++ b/table/build_industry.h
@@ -1,32 +1,6 @@
/* $Id$ */
-typedef struct IndustryTileTable {
- TileIndexDiffC ti;
- IndustryGfx gfx;
-} IndustryTileTable;
-
-typedef struct IndustrySpec {
- /** Tables with the 'layout' of different composition of GFXes */
- const IndustryTileTable *const *table;
- /** Number of elements in the table */
- byte num_table;
- /** Industries this industry cannot be close to */
- IndustryType conflicting[3];
- /** index to a procedure to check for conflicting circumstances */
- byte check_proc;
-
- CargoID produced_cargo[2];
- byte production_rate[2];
- /** The minimum amount of cargo transported to the stations; if the
- * waiting cargo is less than this number, no cargo is moved to it*/
- byte minimal_cargo;
- CargoID accepts_cargo[3];
-
- StringID closure_text;
- StringID production_up_text;
- StringID production_down_text;
-} IndustrySpec;
#define MK(x,y, m) {{x, y}, m}
@@ -1105,247 +1079,241 @@ typedef enum CheckProcs {
CHECK_END,
} CheckProc;
-#define MK(tbl, c1, c2, c3, proc, p1, r1, p2, r2, m, a1, a2, a3, s1, s2, s3) \
- {tbl, lengthof(tbl), {c1, c2, c3}, proc, {p1, p2}, {r1, r2}, m, \
+#define MK(tbl, d, c1, c2, c3, proc, p1, r1, p2, r2, m, a1, a2, a3, s1, s2, s3) \
+ {tbl, lengthof(tbl), d, {c1, c2, c3}, proc, {p1, p2}, {r1, r2}, m, \
{a1, a2, a3}, s1, s2, s3}
static const IndustrySpec _industry_specs[] = {
/* Format:
- tile table
- cannot be close to these industries (3 times) check proc
- (produced cargo + rate) (twice) minimum cargo moved to station
+ tile table cost multiplier
+ cannot be close to these industries (3 times) check proc
+ (produced cargo + rate) (twice) minimum cargo moved to station
3 accepted cargo
- messages : Closure production up production down */
- MK(_tile_table_coal_mine,
- IT_POWER_STATION, IT_INVALID, IT_INVALID, CHECK_NOTHING,
- CT_COAL, 15, CT_INVALID, 0, 5,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4836_NEW_COAL_SEAM_FOUND_AT, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_power_station,
- IT_COAL_MINE, IT_INVALID, IT_INVALID, CHECK_NOTHING,
- CT_INVALID, 0, CT_INVALID, 0, 5,
- CT_COAL, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_sawmill,
- IT_FOREST, IT_INVALID, IT_INVALID, CHECK_NOTHING,
- CT_GOODS, 0, CT_INVALID, 0, 5,
- CT_WOOD, CT_INVALID, CT_INVALID,
- STR_4833_SUPPLY_PROBLEMS_CAUSE_TO, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_forest,
- IT_SAWMILL, IT_PAPER_MILL, IT_INVALID, CHECK_FOREST,
- CT_WOOD, 13, CT_INVALID, 0, 30,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4835_INCREASES_PRODUCTION, STR_483A_INSECT_INFESTATION_CAUSES),
-
- MK(_tile_table_oil_refinery,
- IT_OIL_RIG, IT_INVALID, IT_INVALID, CHECK_OIL,
- CT_GOODS, 0, CT_INVALID, 0, 5,
- CT_OIL, CT_INVALID, CT_INVALID,
- STR_4833_SUPPLY_PROBLEMS_CAUSE_TO, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_oil_rig,
- IT_OIL_REFINERY, IT_INVALID, IT_INVALID, CHECK_OIL,
- CT_OIL, 15, CT_PASSENGERS, 2, 5,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4837_NEW_OIL_RESERVES_FOUND, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_factory,
- IT_FARM, IT_STEEL_MILL, IT_INVALID, CHECK_NOTHING,
- CT_GOODS, 0, CT_INVALID, 0, 5,
- CT_LIVESTOCK, CT_GRAIN, CT_STEEL,
- STR_4833_SUPPLY_PROBLEMS_CAUSE_TO, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_printing_works,
- IT_PAPER_MILL, IT_INVALID, IT_INVALID, CHECK_NOTHING,
- CT_GOODS, 0, CT_INVALID, 0, 5,
- CT_PAPER, CT_INVALID, CT_INVALID,
- STR_4833_SUPPLY_PROBLEMS_CAUSE_TO, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_steel_mill,
- IT_IRON_MINE, IT_FACTORY, IT_INVALID, CHECK_NOTHING,
- CT_STEEL, 0, CT_INVALID, 0, 5,
- CT_IRON_ORE, CT_INVALID, CT_INVALID,
- STR_4833_SUPPLY_PROBLEMS_CAUSE_TO, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_farm,
- IT_FACTORY, IT_FOOD_PROCESS, IT_INVALID, CHECK_FARM,
- CT_GRAIN, 10, CT_LIVESTOCK, 10, 5,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),
-
- MK(_tile_table_copper_mine,
- IT_FACTORY_2, IT_INVALID, IT_INVALID, CHECK_NOTHING,
- CT_COPPER_ORE, 10, CT_INVALID, 0, 5,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_oil_well,
- IT_OIL_REFINERY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
- CT_OIL, 12, CT_INVALID, 0, 5,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4837_NEW_OIL_RESERVES_FOUND, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_bank,
- IT_BANK_TEMP, IT_INVALID, IT_INVALID, CHECK_NOTHING,
- CT_VALUABLES, 6, CT_INVALID, 0, 5,
- CT_VALUABLES, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_food_process,
- IT_FRUIT_PLANTATION, IT_FARM, IT_FARM_2, CHECK_NOTHING,
- CT_FOOD, 0, CT_INVALID, 0, 5,
- CT_FRUIT, CT_MAIZE, CT_INVALID,
- STR_4833_SUPPLY_PROBLEMS_CAUSE_TO, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_paper_mill,
- IT_FOREST, IT_PRINTING_WORKS, IT_INVALID, CHECK_NOTHING,
- CT_PAPER, 0, CT_INVALID, 0, 5,
- CT_WOOD, CT_INVALID, CT_INVALID,
- STR_4833_SUPPLY_PROBLEMS_CAUSE_TO, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_gold_mine,
- IT_BANK_TROPIC_ARCTIC, IT_INVALID, IT_INVALID, CHECK_NOTHING,
- CT_GOLD, 7, CT_INVALID, 0, 5,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_bank2,
- IT_GOLD_MINE, IT_DIAMOND_MINE, IT_INVALID, CHECK_NOTHING,
- CT_INVALID, 0, CT_INVALID, 0, 5,
- CT_GOLD, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_diamond_mine,
- IT_BANK_TROPIC_ARCTIC, IT_INVALID, IT_INVALID, CHECK_NOTHING,
- CT_DIAMONDS, 7, CT_INVALID, 0, 5,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_iron_mine,
- IT_STEEL_MILL, IT_INVALID, IT_INVALID, CHECK_NOTHING,
- CT_IRON_ORE, 10, CT_INVALID, 0, 5,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_fruit_plantation,
- IT_FOOD_PROCESS, IT_INVALID, IT_INVALID, CHECK_PLANTATION,
- CT_FRUIT, 10, CT_INVALID, 0, 15,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),
-
- MK(_tile_table_rubber_plantation,
- IT_FACTORY_2, IT_INVALID, IT_INVALID, CHECK_PLANTATION,
- CT_RUBBER, 10, CT_INVALID, 0, 15,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),
-
- MK(_tile_table_water_supply,
- IT_WATER_TOWER, IT_INVALID, IT_INVALID, CHECK_WATER,
- CT_WATER, 12, CT_INVALID, 0, 5,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_water_tower,
- IT_WATER_SUPPLY, IT_INVALID, IT_INVALID, CHECK_WATER,
- CT_INVALID, 0, CT_INVALID, 0, 5,
- CT_WATER, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_factory2,
- 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,
- STR_4833_SUPPLY_PROBLEMS_CAUSE_TO, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_farm2,
- IT_FOOD_PROCESS, IT_INVALID, IT_INVALID, CHECK_PLANTATION,
- CT_MAIZE, 11, CT_INVALID, 0, 5,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),
-
- MK(_tile_table_lumber_mill,
- IT_FACTORY_2, IT_INVALID, IT_INVALID, CHECK_LUMBERMILL,
- CT_WOOD, 0, CT_INVALID, 0, 5,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4834_LACK_OF_NEARBY_TREES_CAUSES, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_cotton_candy,
- IT_CANDY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
- CT_COTTON_CANDY, 13, CT_INVALID, 0, 30,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4838_IMPROVED_FARMING_METHODS, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_candy_factory,
- 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,
- STR_4833_SUPPLY_PROBLEMS_CAUSE_TO, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_battery_farm,
- IT_TOY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
- CT_BATTERIES, 11, CT_INVALID, 0, 30,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),
-
- MK(_tile_table_cola_wells,
- IT_FIZZY_DRINK_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
- CT_COLA, 12, CT_INVALID, 0, 5,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_toy_shop,
- IT_TOY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
- CT_INVALID, 0, CT_INVALID, 0, 5,
- CT_TOYS, CT_INVALID, CT_INVALID,
- STR_4833_SUPPLY_PROBLEMS_CAUSE_TO, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_toy_factory,
- IT_PLASTIC_FOUNTAINS, IT_BATTERY_FARM, IT_TOY_SHOP, CHECK_NOTHING,
- CT_TOYS, 0, CT_INVALID, 0, 5,
- CT_PLASTIC, CT_BATTERIES, CT_INVALID,
- STR_4833_SUPPLY_PROBLEMS_CAUSE_TO, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_plastic_fountain,
- IT_TOY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
- CT_PLASTIC, 14, CT_INVALID, 0, 5,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_fizzy_drink,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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_OIL,
+ CT_GOODS, 0, CT_INVALID, 0, 5,
+ CT_OIL, CT_INVALID, CT_INVALID,
+ 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,
+ CT_OIL, 15, CT_PASSENGERS, 2, 5,
+ CT_INVALID, CT_INVALID, CT_INVALID,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
- STR_4833_SUPPLY_PROBLEMS_CAUSE_TO, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_bubble_generator,
- IT_FIZZY_DRINK_FACTORY, IT_INVALID, IT_INVALID, CHECK_BUBBLEGEN,
- CT_BUBBLES, 13, CT_INVALID, 0, 5,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_toffee_quarry,
- IT_CANDY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
- CT_TOFFEE, 10, CT_INVALID, 0, 5,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
-
- MK(_tile_table_sugar_mine,
- IT_CANDY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
- CT_SUGAR, 11, CT_INVALID, 0, 5,
- CT_INVALID, CT_INVALID, CT_INVALID,
- STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
+ CT_FIZZY_DRINKS, 0, CT_INVALID, 0, 5,
+ CT_COLA, CT_BUBBLES, CT_INVALID,
+ 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,
+ 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,
+ 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,
+ STR_4832_ANNOUNCES_IMMINENT_CLOSURE, STR_4835_INCREASES_PRODUCTION, STR_4839_PRODUCTION_DOWN_BY_50),
};
#undef MK
-const byte _industry_type_costs[] = {
- 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
-};
-
const byte _build_industry_types[4][12] = {
{ 1, 2, 4, 6, 8, 0, 3, 5, 9, 11, 18 },
{ 1, 14, 4, 13, 7, 0, 3, 9, 11, 15 },