Changeset - r6305:145c78f94177
[Not reviewed]
master
0 4 0
belugas - 17 years ago 2007-03-14 02:52:50
belugas@openttd.org
(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)
4 files changed with 207 insertions and 278 deletions:
0 comments (0 inline, 0 general)
src/industry.h
Show inline comments
 
@@ -12,6 +12,7 @@ typedef uint8 IndustryType;
 

	
 
enum {
 
	INVALID_INDUSTRY = 0xFFFF,
 
	INDUTILE_NOAMIN = 0xFF,        ///< flag to mark industry tiles as having no animation
 
};
 

	
 
enum IndustryLifeType {
 
@@ -83,6 +84,10 @@ struct IndustrySpec {
 
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
src/industry_cmd.cpp
Show inline comments
 
@@ -233,7 +233,7 @@ static void DrawTile_Industry(TileInfo *
 
	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 @@ static void TransportIndustryGoods(TileI
 
		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 @@ static void TileLoop_Industry(TileIndex 
 

	
 
	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);
src/table/build_industry.h
Show inline comments
 
/* $Id$ */
 

	
 
/** @file build_industry.h */
 

	
 
#ifndef BUILD_INDUSTRY_H
 
#define BUILD_INDUSTRY_H
 

	
 
@@ -1461,256 +1463,264 @@ static const byte * const _industry_crea
 
	_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
 

	
src/table/industry_land.h
Show inline comments
 
/* $Id$ */
 

	
 
/** @file industry_land.h */
 

	
 
struct DrawIndustrySpec1Struct {
 
	byte x;
 
	byte image_1;
 
@@ -718,6 +720,7 @@ static const DrawBuildingsTileStruct _in
 
	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 @@ static const DrawIndustrySpec1Struct _dr
 
	{ 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 @@ static const DrawIndustrySpec4Struct _in
 
	{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 @@ static const byte _industry_anim_offs[] 
 
	  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 @@ static const byte _industry_anim_offs_2[
 
	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,
 
};
0 comments (0 inline, 0 general)