(svn r8827) -Codechange: Cleanup of industry_cmd (Step-6). Implementation of IndustryTileSPec, the alter ego of IndustrySpec.
authorbelugas
Wed, 21 Feb 2007 02:22:43 +0000
changeset 6092 53c6b9b18d0b
parent 6091 c8827d9ae04a
child 6093 d760850df38d
(svn r8827) -Codechange: Cleanup of industry_cmd (Step-6). Implementation of IndustryTileSPec, the alter ego of IndustrySpec.
It offers identification of the different industry tiles in a more distinct manner, as well as regrouping scattered pieces of data across the sources. More to come
src/industry.h
src/industry_cmd.cpp
src/table/build_industry.h
src/table/industry_land.h
--- a/src/industry.h	Tue Feb 20 22:09:21 2007 +0000
+++ b/src/industry.h	Wed Feb 21 02:22:43 2007 +0000
@@ -78,7 +78,13 @@
 	StringID production_down_text;
 } IndustrySpec;
 
+typedef struct IndustryTileSpec {
+	CargoID accepts_cargo[3];
+	Slope slopes_refused;
+} IndustryTileSpec;
+
 const IndustrySpec *GetIndustrySpec(IndustryType thistype);
+const IndustryTileSpec *GetIndustryTileSpec(IndustryGfx gfx);
 
 DECLARE_OLD_POOL(Industry, Industry, 3, 8000)
 
--- a/src/industry_cmd.cpp	Tue Feb 20 22:09:21 2007 +0000
+++ b/src/industry_cmd.cpp	Wed Feb 21 02:22:43 2007 +0000
@@ -87,6 +87,12 @@
 	return &_industry_specs[thistype];
 }
 
+const IndustryTileSpec *GetIndustryTileSpec(IndustryGfx gfx)
+{
+	assert(gfx < NUM_INDUSTRY_GFXES);
+	return &_industry_tile_specs[gfx];
+}
+
 void DestroyIndustry(Industry *i)
 {
 	BEGIN_TILE_LOOP(tile_cur, i->width, i->height, i->xy);
@@ -277,16 +283,16 @@
 
 static void GetAcceptedCargo_Industry(TileIndex tile, AcceptedCargo ac)
 {
-	IndustryGfx gfx = GetIndustryGfx(tile);
+	const IndustryTileSpec *itspec = GetIndustryTileSpec(GetIndustryGfx(tile));
 	CargoID a;
 
-	a = _industry_section_accepts_1[gfx];
-	if (a != CT_INVALID) ac[a] = (a == 0) ? 1 : 8;
+	a = itspec->accepts_cargo[0];
+	if (a != CT_INVALID) ac[a] = (a == CT_PASSENGERS) ? 1 : 8;
 
-	a = _industry_section_accepts_2[gfx];
+	a = itspec->accepts_cargo[1];
 	if (a != CT_INVALID) ac[a] = 8;
 
-	a = _industry_section_accepts_3[gfx];
+	a = itspec->accepts_cargo[2];
 	if (a != CT_INVALID) ac[a] = 8;
 }
 
@@ -1155,7 +1161,7 @@
 					 *  CheckIfCanLevelIndustryPlatform(). */
 					if (tileh != SLOPE_FLAT) {
 						Slope t;
-						byte bits = _industry_section_bits[it->gfx];
+						byte bits = GetIndustryTileSpec(it->gfx)->slopes_refused;
 
 						if (bits & 0x10) return false;
 
--- a/src/table/build_industry.h	Tue Feb 20 22:09:21 2007 +0000
+++ b/src/table/build_industry.h	Wed Feb 21 02:22:43 2007 +0000
@@ -1,6 +1,7 @@
 /* $Id$ */
 
-
+#ifndef BUILD_INDUSTRY_H
+#define BUILD_INDUSTRY_H
 
 #define MK(x,y, m) {{x, y}, m}
 
@@ -1460,141 +1461,257 @@
 	_industry_create_table_3,
 };
 
-
-#define PAS CT_PASSENGERS
-
-#define COL CT_COAL
-#define RUB CT_RUBBER
-#define SUG CT_SUGAR
-
-#define MAL CT_MAIL
-
-#define OIL CT_OIL
-#define TOY CT_TOYS
-
-#define LIV CT_LIVESTOCK // Fruit too
-#define BAT CT_BATTERIES
-
-#define GRA CT_GRAIN
-#define WHT CT_WHEAT // Maize too
-#define TOF CT_TOFFEE
-
-#define WOD CT_WOOD
-#define CLA CT_COLA
-
-#define IRN CT_IRON_ORE
-#define COP CT_COPPER_ORE
-#define CCY CT_COTTON_CANDY
-
-#define STL CT_STEEL
-#define PAP CT_PAPER
-#define WAT CT_WATER
-#define BBL CT_BUBBLES
-
-#define VAL CT_VALUABLES
-#define GLD CT_GOLD // Diamonds too
-#define PLC CT_PLASTIC
-
-#define INV CT_INVALID
-
-static const CargoID _industry_section_accepts_1[] = {
-	INV, INV, INV, PAS, INV, INV, INV, INV,
-	PAS, INV, INV, PAS, PAS, PAS, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, PAS,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, PAS, PAS, INV, INV, INV, INV, GRA,
-	GRA, GRA, GRA, INV, INV, INV, INV, INV,
-	INV, INV, PAS, PAS, PAS, PAS, PAS, PAS,
-	PAS, PAS, PAS, PAS, WHT, WHT, WHT, WHT,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, COP, COP, COP, COP, INV, INV, INV,
-	INV, INV, INV, CCY, CCY, CCY, CCY, INV,
-	INV, INV, INV, INV, INV, INV, BAT, BAT,
-	BAT, BAT, BAT, BAT, INV, INV, INV, INV,
-	INV, INV, INV, INV, BBL, BBL, BBL, BBL,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV
-};
-
+#define MK(c1, c2, c3, sl) \
+	{{c1, c2, c3}, sl}
 
-static const CargoID _industry_section_accepts_2[] = {
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, STL,
-	STL, STL, STL, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, WOD, WOD, WOD, WOD, INV, INV, INV,
-	INV, INV, INV, TOF, TOF, TOF, TOF, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV
-};
+static const IndustryTileSpec _industry_tile_specs[] = {
+	/* Coal Mine */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
 
-static const CargoID _industry_section_accepts_3[] = {
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	COL, INV, INV, INV, INV, WOD, INV, INV,
-	INV, INV, INV, INV, OIL, INV, INV, INV,
-	PAS, MAL, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, LIV,
-	LIV, LIV, LIV, PAP, PAP, PAP, PAP, INV,
-	INV, INV, INV, INV, IRN, IRN, IRN, IRN,
-	IRN, IRN, VAL, VAL, LIV, LIV, LIV, LIV,
-	WOD, WOD, WOD, WOD, WOD, WOD, WOD, WOD,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, GLD, GLD, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	WAT, RUB, RUB, RUB, RUB, INV, INV, INV,
-	INV, INV, INV, SUG, SUG, SUG, SUG, INV,
-	INV, INV, TOY, TOY, TOY, TOY, PLC, PLC,
-	PLC, PLC, PLC, PLC, INV, INV, INV, INV,
-	INV, INV, INV, INV, CLA, CLA, CLA, CLA,
-	INV, INV, INV, INV, INV, INV, INV, INV,
-	INV, INV, INV, INV, INV, INV, INV
-};
+	/* Power Station */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_COAL,       SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
 
-#undef PAS
-#undef COL
-#undef RUB
-#undef SUG
-#undef MAL
-#undef OIL
-#undef TOY
-#undef LIV
-#undef BAT
-#undef GRA
-#undef WHT
-#undef TOF
-#undef WOD
-#undef CLA
-#undef IRN
-#undef COP
-#undef CCY
-#undef STL
-#undef PAP
-#undef WAT
-#undef BBL
-#undef VAL
-#undef GLD
-#undef PLC
-#undef INV
+	/* Sawmill */
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_WOOD,       SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Forest Artic, temperate */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Oil refinery */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_OIL,        SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* oil Rig */
+	MK(CT_INVALID,      CT_INVALID,   CT_PASSENGERS, SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_MAIL,       SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Oil Wells artic, temperate */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Farm tropic, arctic and temperate */
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Factory temperate */
+	MK(CT_GRAIN,        CT_STEEL,     CT_LIVESTOCK,  SLOPE_STEEP),
+	MK(CT_GRAIN,        CT_STEEL,     CT_LIVESTOCK,  SLOPE_STEEP),
+	MK(CT_GRAIN,        CT_STEEL,     CT_LIVESTOCK,  SLOPE_STEEP),
+	MK(CT_GRAIN,        CT_STEEL,     CT_LIVESTOCK,  SLOPE_STEEP),
+
+	/* Printing works */
+	MK(CT_INVALID,      CT_INVALID,   CT_PAPER,      SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_PAPER,      SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_PAPER,      SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_PAPER,      SLOPE_STEEP),
+
+	/* Copper ore mine */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Steel mill */
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP),
+
+	/* Bank temperate*/
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_VALUABLES,  SLOPE_E),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_VALUABLES,  SLOPE_S),
+
+	/* Food processing plant, tropic and arctic. CT_MAIZE or CT_WHEAT, CT_LIVESTOCK or CT_FRUIT*/
+	MK(CT_MAIZE,        CT_INVALID,   CT_LIVESTOCK,  SLOPE_STEEP),
+	MK(CT_MAIZE,        CT_INVALID,   CT_LIVESTOCK,  SLOPE_STEEP),
+	MK(CT_MAIZE,        CT_INVALID,   CT_LIVESTOCK,  SLOPE_STEEP),
+	MK(CT_MAIZE,        CT_INVALID,   CT_LIVESTOCK,  SLOPE_STEEP),
+
+	/* Paper mill */
+	MK(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP),
+
+	/* Gold mine */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Bank Sub Arctic */
+	MK(CT_INVALID,      CT_INVALID,   CT_GOLD,       SLOPE_E),
+	MK(CT_INVALID,      CT_INVALID,   CT_GOLD,       SLOPE_S),
+
+	/* Diamond mine */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Iron ore Mine */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Fruit plantation */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Rubber plantation */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Water supply */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Water tower */
+	MK(CT_INVALID,      CT_INVALID,   CT_WATER,      SLOPE_STEEP),
+
+	/* Factory (sub-tropical) */
+	MK(CT_COPPER_ORE,   CT_WOOD,      CT_RUBBER,     SLOPE_STEEP),
+	MK(CT_COPPER_ORE,   CT_WOOD,      CT_RUBBER,     SLOPE_STEEP),
+	MK(CT_COPPER_ORE,   CT_WOOD,      CT_RUBBER,     SLOPE_STEEP),
+	MK(CT_COPPER_ORE,   CT_WOOD,      CT_RUBBER,     SLOPE_STEEP),
+
+	/* Lumber mill */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Candyfloss forest */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Sweet factory */
+	MK(CT_COTTON_CANDY, CT_TOFFEE,    CT_SUGAR,      SLOPE_STEEP),
+	MK(CT_COTTON_CANDY, CT_TOFFEE,    CT_SUGAR,      SLOPE_STEEP),
+	MK(CT_COTTON_CANDY, CT_TOFFEE,    CT_SUGAR,      SLOPE_STEEP),
+	MK(CT_COTTON_CANDY, CT_TOFFEE,    CT_SUGAR,      SLOPE_STEEP),
+
+	/* Batter farm */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Cola wells */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Toy shop */
+	MK(CT_INVALID,      CT_INVALID,   CT_TOYS,       SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_TOYS,       SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_TOYS,       SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_TOYS,       SLOPE_STEEP),
+
+	/* Toy factory */
+	MK(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP),
+	MK(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP),
+	MK(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP),
+	MK(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP),
+	MK(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP),
+	MK(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP),
+
+	/* Plastic Fountain */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Fizzy drink factory */
+	MK(CT_BUBBLES,      CT_INVALID,   CT_COLA,       SLOPE_STEEP),
+	MK(CT_BUBBLES,      CT_INVALID,   CT_COLA,       SLOPE_STEEP),
+	MK(CT_BUBBLES,      CT_INVALID,   CT_COLA,       SLOPE_STEEP),
+	MK(CT_BUBBLES,      CT_INVALID,   CT_COLA,       SLOPE_STEEP),
+
+	/* Bubble generator */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Toffee quarry */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+
+	/* Sugar mine */
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+};
+#undef MK
+
+#endif  /* BUILD_INDUSTRY_H */
--- a/src/table/industry_land.h	Tue Feb 20 22:09:21 2007 +0000
+++ b/src/table/industry_land.h	Wed Feb 21 02:22:43 2007 +0000
@@ -961,34 +961,6 @@
 
 #undef N
 
-/**
- * The indices into this table are the ones as described by
- * the enum with GFX_*s in industry_map.h.
- */
-static const byte _industry_section_bits[NUM_INDUSTRY_GFXES] = {
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16,  4,  2, 16, 16, 16, 16, // <- temperate bank
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16,  4,  2, 16, 16, 16, 16, 16, // <- sub-arctic/sub-tropical bank
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16, 16, 16, 16, 16, 16, 16,
-	16, 16, 16, 16, 16, 16, 16,
-};
 
 /**
  * When true, the tile has to be drawn using the animation