(svn r9162) -Codechange: Cleanup of industry_cmd (Step-8). Gather tile animation data into IndustryTileSpec array
authorbelugas
Wed, 14 Mar 2007 02:52:50 +0000
changeset 6631 dc3480a670cc
parent 6630 4fa4f6d883ba
child 6632 1a46c01ff627
(svn r9162) -Codechange: Cleanup of industry_cmd (Step-8). Gather tile animation data into IndustryTileSpec array
Added a few documentation on remaining animation arrays (mostly ToyLand ones)
src/industry.h
src/industry_cmd.cpp
src/table/build_industry.h
src/table/industry_land.h
--- a/src/industry.h	Tue Mar 13 21:31:09 2007 +0000
+++ b/src/industry.h	Wed Mar 14 02:52:50 2007 +0000
@@ -12,6 +12,7 @@
 
 enum {
 	INVALID_INDUSTRY = 0xFFFF,
+	INDUTILE_NOAMIN = 0xFF,        ///< flag to mark industry tiles as having no animation
 };
 
 enum IndustryLifeType {
@@ -83,6 +84,10 @@
 struct IndustryTileSpec {
 	CargoID accepts_cargo[3];             ///< Cargo accepted by this tile
 	Slope slopes_refused;                 ///< slope pattern on which this tile cannot be built
+	byte anim_production;                 ///< Animation frame to start when goods are produced
+	byte anim_next;                       ///< Next frame in an animation
+	bool anim_state;                      ///< When true, the tile has to be drawn using the animation
+                                         ///< state instead of the construction state
 };
 
 const IndustrySpec *GetIndustrySpec(IndustryType thistype);    ///< Array of industries default data
--- a/src/industry_cmd.cpp	Tue Mar 13 21:31:09 2007 +0000
+++ b/src/industry_cmd.cpp	Wed Mar 14 02:52:50 2007 +0000
@@ -233,7 +233,7 @@
 	ind = GetIndustryByTile(ti->tile);
 
 	/* Retrieve pointer to the draw industry tile struct */
-	dits = &_industry_draw_tile_data[gfx << 2 | (_industry_section_draw_animation_state[gfx] ?
+	dits = &_industry_draw_tile_data[gfx << 2 | (GetIndustryTileSpec(gfx)->anim_state ?
 			GetIndustryAnimationState(ti->tile) & 3 :
 			GetIndustryConstructionStage(ti->tile))];
 
@@ -357,9 +357,9 @@
 		am = MoveGoodsToStation(i->xy, i->width, i->height, i->produced_cargo[0], cw);
 		i->last_mo_transported[0] += am;
 		if (am != 0) {
-			uint newgfx = _industry_produce_section[GetIndustryGfx(tile)];
+			uint newgfx = GetIndustryTileSpec(GetIndustryGfx(tile))->anim_production;
 
-			if (newgfx != 0xFF) {
+			if (newgfx != INDUTILE_NOAMIN) {
 				ResetIndustryConstructionStage(tile);
 				SetIndustryCompleted(tile, true);
 				SetIndustryGfx(tile, newgfx);
@@ -645,8 +645,8 @@
 
 	TransportIndustryGoods(tile);
 
-	newgfx = _industry_section_animation_next[GetIndustryGfx(tile)];
-	if (newgfx != 255) {
+	newgfx = GetIndustryTileSpec(GetIndustryGfx(tile))->anim_next;
+	if (newgfx != INDUTILE_NOAMIN) {
 		ResetIndustryConstructionStage(tile);
 		SetIndustryGfx(tile, newgfx);
 		MarkTileDirtyByTile(tile);
--- a/src/table/build_industry.h	Tue Mar 13 21:31:09 2007 +0000
+++ b/src/table/build_industry.h	Wed Mar 14 02:52:50 2007 +0000
@@ -1,5 +1,7 @@
 /* $Id$ */
 
+/** @file build_industry.h */
+
 #ifndef BUILD_INDUSTRY_H
 #define BUILD_INDUSTRY_H
 
@@ -1461,256 +1463,264 @@
 	_industry_create_table_3,
 };
 
-#define MK(c1, c2, c3, sl) \
-	{{c1, c2, c3}, sl}
-
+/** Writes the properties of a industry tile into the IndustryTileSpec struct.
+ * @param c1 first type of cargo accepted for this tile
+ * @param c2 second cargo
+ * @param c3 and third cargo. Those three are in an array
+ * @param s1 slope refused upon choosing a place to build
+ * @param a1 animation frame on production
+ * @param a2 next frame of animation
+ * @param a3 chosses between animation of construction state
+ */
+#define MK(c1, c2, c3, sl, a1, a2, a3) {{c1, c2, c3}, sl, a1, a2, a3}
 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),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  true),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_COAL,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* Forest 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,               17,  INDUTILE_NOAMIN,   false), // Chopping forest
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,               16,   false), // Growing forest
 
 	/* 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),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_OIL,        SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_INVALID,      CT_INVALID,   CT_PASSENGERS, SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_MAIL,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  true ),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  true ),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  true ),
 
 	/* 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),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_GRAIN,        CT_STEEL,     CT_LIVESTOCK,  SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_GRAIN,        CT_STEEL,     CT_LIVESTOCK,  SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_GRAIN,        CT_STEEL,     CT_LIVESTOCK,  SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_GRAIN,        CT_STEEL,     CT_LIVESTOCK,  SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_INVALID,      CT_INVALID,   CT_PAPER,      SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_PAPER,      SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_PAPER,      SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_PAPER,      SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  true ),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* Bank temperate*/
-	MK(CT_PASSENGERS,   CT_INVALID,   CT_VALUABLES,  SLOPE_E),
-	MK(CT_PASSENGERS,   CT_INVALID,   CT_VALUABLES,  SLOPE_S),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_VALUABLES,  SLOPE_E,      INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_PASSENGERS,   CT_INVALID,   CT_VALUABLES,  SLOPE_S,      INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_MAIZE,        CT_INVALID,   CT_LIVESTOCK,  SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_MAIZE,        CT_INVALID,   CT_LIVESTOCK,  SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_MAIZE,        CT_INVALID,   CT_LIVESTOCK,  SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_MAIZE,        CT_INVALID,   CT_LIVESTOCK,  SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  true ),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* Bank Sub Arctic */
-	MK(CT_INVALID,      CT_INVALID,   CT_GOLD,       SLOPE_E),
-	MK(CT_INVALID,      CT_INVALID,   CT_GOLD,       SLOPE_S),
+	MK(CT_INVALID,      CT_INVALID,   CT_GOLD,       SLOPE_E,      INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_GOLD,       SLOPE_S,      INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* Fruit plantation */
-	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* Rubber plantation */
-	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* Water supply */
-	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,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* Water tower */
-	MK(CT_INVALID,      CT_INVALID,   CT_WATER,      SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_WATER,      SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_COPPER_ORE,   CT_WOOD,      CT_RUBBER,     SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_COPPER_ORE,   CT_WOOD,      CT_RUBBER,     SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_COPPER_ORE,   CT_WOOD,      CT_RUBBER,     SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_COPPER_ORE,   CT_WOOD,      CT_RUBBER,     SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* Candyfloss forest */
-	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,              130,   INDUTILE_NOAMIN,  false), // Chopping candyfloss
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,               129,  false), // Growing candyfloss
 
 	/* 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),
+	MK(CT_COTTON_CANDY, CT_TOFFEE,    CT_SUGAR,      SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_COTTON_CANDY, CT_TOFFEE,    CT_SUGAR,      SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_COTTON_CANDY, CT_TOFFEE,    CT_SUGAR,      SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_COTTON_CANDY, CT_TOFFEE,    CT_SUGAR,      SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* Batter farm */
-	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,              136,   INDUTILE_NOAMIN,  false), // Reaping batteries
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,               135,  false), // Growing batteries
 
 	/* Cola wells */
-	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_INVALID,      CT_INVALID,   CT_TOYS,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_TOYS,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_TOYS,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_TOYS,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_BUBBLES,      CT_INVALID,   CT_COLA,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_BUBBLES,      CT_INVALID,   CT_COLA,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_BUBBLES,      CT_INVALID,   CT_COLA,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_BUBBLES,      CT_INVALID,   CT_COLA,       SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 
 	/* 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),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
+	MK(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOAMIN,   INDUTILE_NOAMIN,  false),
 };
 #undef MK
 
--- a/src/table/industry_land.h	Tue Mar 13 21:31:09 2007 +0000
+++ b/src/table/industry_land.h	Wed Mar 14 02:52:50 2007 +0000
@@ -1,5 +1,7 @@
 /* $Id$ */
 
+/** @file industry_land.h */
+
 struct DrawIndustrySpec1Struct {
 	byte x;
 	byte image_1;
@@ -718,6 +720,7 @@
 	M(     0xf8d, PAL_NONE,     0x12a5 | (1 << PALETTE_MODIFIER_COLOR), PAL_NONE,  0,  0, 16, 16,  50, 1),
 };
 
+/* this is ONLY used for Sugar Mine*/
 static const DrawIndustrySpec1Struct _draw_industry_spec1[96] = {
 	{  8,   4,   0,   0},
 	{  6,   0,   1,   0},
@@ -817,14 +820,17 @@
 	{ 10,   4,   0,   4},
 };
 
+/* this is ONLY used for Sugar Mine*/
 static const byte _drawtile_proc1_x[5] = {
 	22, 17, 14, 10, 8
 };
 
+/* this is ONLY used for Sugar Mine*/
 static const byte _drawtile_proc1_y[5] = {
 	73, 70, 69, 66, 41
 };
 
+/* this is ONLY used for Toy Factory*/
 static const DrawIndustrySpec4Struct _industry_anim_offs_3[] = {
 	{255, 255,   0},
 	{  0, 255,   0},
@@ -878,6 +884,7 @@
 	{255, 255,   0},
 };
 
+/* this is ONLY used for Toffee Quarry*/
 static const byte _industry_anim_offs[] = {
 	255,   0,   0,   0,   2,   4,   6,   8,  10,   9,
 	  7,   5,   3,   1, 255,   0,   0,   0,   2,   4,
@@ -888,6 +895,7 @@
 	  2,   4,   6,   8,  10,   9,   7,   5,   3,   1
 };
 
+/* this is ONLY used for the Bubble Generator*/
 static const byte _industry_anim_offs_2[] = {
 	68, 69, 71, 74, 77, 80, 83, 85, 86, 86,
 	86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
@@ -895,100 +903,6 @@
 	77, 76, 75, 74, 73, 72, 71, 70, 69, 68,
 };
 
+/* those are ONLY used for Power Station*/
 static const byte _coal_plant_sparks_x[] = {11, 11, 14, 13, 18, 15};
 static const byte _coal_plant_sparks_y[] = {23, 11,  6,  3,  1,  0};
-
-#define N 255
-/**
- * Next frame in an animation
- * 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_animation_next[NUM_INDUSTRY_GFXES] = {
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   16,  N,   N,   N,   N,   N,   N, // <- growing forest
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   129, N,   N,   N,   N,   N, // <- growing candyfloss
-135, N,   N,   N,   N,   N,   N,   N, // <- 'growing' batteries
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,
-};
-
-/**
- * Animation to start when goods is produced
- * The indices into this table are the ones as described by
- * the enum with GFX_*s in industry_map.h.
- */
-static const byte _industry_produce_section[NUM_INDUSTRY_GFXES] = {
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-17,  N,   N,   N,   N,   N,   N,   N, // <- chopping forest
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   130, N,   N,   N,   N,   N,   136,  // <- chopping candyfloss and reaping batteries
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,   N,
-N,   N,   N,   N,   N,   N,   N,
-};
-
-#undef N
-
-
-/**
- * When true, the tile has to be drawn using the animation
- * state instead of the construction state.
- * The indices into this table are the ones as described by
- * the enum with GFX_*s in industry_map.h.
- */
-static const bool _industry_section_draw_animation_state[NUM_INDUSTRY_GFXES] = {
-	false, true,  false, false, false, false, false, false, // <- animated wheel tower of coal mine
-	false, false, false, false, false, false, false, false,
-	false, false, false, false, false, false, false, false,
-	false, false, false, false, false, false, true,  true,  // <- animated oil well
-	true,  false, false, false, false, false, false, false, // <- animated oil well
-	false, false, false, false, false, false, false, false,
-	true,  false, false, false, false, false, false, false, // <- animated wheel tower of copper mine
-	false, false, false, false, false, false, false, false,
-	false, false, false, false, false, false, false, false,
-	false, false, false, false, false, false, false, false,
-	false, false, false, false, false, false, false, false,
-	true,  false, false, false, false, false, false, false, // <- animated wheel tower of gold mine
-	false, false, false, false, false, false, false, false,
-	false, false, false, false, false, false, false, false,
-	false, false, false, false, false, false, false, false,
-	false, false, false, false, false, false, false, false,
-	false, false, false, false, false, false, false, false,
-	false, false, false, false, false, false, false, false,
-	false, false, false, false, false, false, false, false,
-	false, false, false, false, false, false, false, false,
-	false, false, false, false, false, false, false, false,
-	false, false, false, false, false, false, false,
-};