(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)
This commit is contained in:
belugas
2007-03-14 02:52:50 +00:00
parent 4177215b41
commit 65ce0e36db
4 changed files with 207 additions and 278 deletions

View File

@@ -1,5 +1,7 @@
/* $Id$ */
/** @file build_industry.h */
#ifndef BUILD_INDUSTRY_H
#define BUILD_INDUSTRY_H
@@ -1461,256 +1463,264 @@ static const byte * const _industry_create_table[4] = {
_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