src/table/build_industry.h
author celestar
Wed, 13 Jun 2007 11:00:24 +0000
branchgamebalance
changeset 9909 dce9a6923bb7
parent 9908 0fa543611bbe
child 9910 0b2aebc8283e
permissions -rw-r--r--
(svn r10133) [gamebalance] -Sync: r9620:9670 from trunk
/* $Id$ */

/** @file build_industry.h */

#ifndef BUILD_INDUSTRY_H
#define BUILD_INDUSTRY_H

#define MK(x,y, m) {{x, y}, m}

#define MKEND {{-0x80, 0}, 0}

static const IndustryTileTable _tile_table_coal_mine_0[] = {
	MK(1,1, 0),
	MK(1,2, 2),
	MK(0,0, 5),
	MK(1,0, 6),
	MK(2,0, 3),
	MK(2,2, 3),
	MKEND
};

static const IndustryTileTable _tile_table_coal_mine_1[] = {
	MK(1,1, 0),
	MK(1,2, 2),
	MK(2,0, 0),
	MK(2,1, 2),
	MK(1,0, 3),
	MK(0,0, 3),
	MK(0,1, 4),
	MK(0,2, 4),
	MK(2,2, 4),
	MKEND
};

static const IndustryTileTable _tile_table_coal_mine_2[] = {
	MK(0,0, 0),
	MK(0,1, 2),
	MK(0,2, 5),
	MK(1,0, 3),
	MK(1,1, 3),
	MK(1,2, 6),
	MKEND
};

static const IndustryTileTable _tile_table_coal_mine_3[] = {
	MK(0,1, 0),
	MK(0,2, 2),
	MK(0,3, 4),
	MK(1,0, 5),
	MK(1,1, 0),
	MK(1,2, 2),
	MK(1,3, 3),
	MK(2,0, 6),
	MK(2,1, 4),
	MK(2,2, 3),
	MKEND
};

static const IndustryTileTable * const _tile_table_coal_mine[] = {
	_tile_table_coal_mine_0,
	_tile_table_coal_mine_1,
	_tile_table_coal_mine_2,
	_tile_table_coal_mine_3,
};

static const IndustryTileTable _tile_table_power_station_0[] = {
	MK(0,0, 7),
	MK(0,1, 9),
	MK(1,0, 7),
	MK(1,1, 8),
	MK(2,0, 7),
	MK(2,1, 8),
	MK(3,0, 10),
	MK(3,1, 10),
	MKEND
};

static const IndustryTileTable _tile_table_power_station_1[] = {
	MK(0,1, 7),
	MK(0,2, 7),
	MK(1,0, 8),
	MK(1,1, 8),
	MK(1,2, 7),
	MK(2,0, 9),
	MK(2,1, 10),
	MK(2,2, 9),
	MKEND
};

static const IndustryTileTable _tile_table_power_station_2[] = {
	MK(0,0, 7),
	MK(0,1, 7),
	MK(1,0, 9),
	MK(1,1, 8),
	MK(2,0, 10),
	MK(2,1, 9),
	MKEND
};

static const IndustryTileTable * const _tile_table_power_station[] = {
	_tile_table_power_station_0,
	_tile_table_power_station_1,
	_tile_table_power_station_2,
};

static const IndustryTileTable _tile_table_sawmill_0[] = {
	MK(1,0, 14),
	MK(1,1, 12),
	MK(1,2, 11),
	MK(2,0, 14),
	MK(2,1, 13),
	MK(0,0, 15),
	MK(0,1, 15),
	MK(0,2, 12),
	MKEND
};

static const IndustryTileTable _tile_table_sawmill_1[] = {
	MK(0,0, 15),
	MK(0,1, 11),
	MK(0,2, 14),
	MK(1,0, 15),
	MK(1,1, 13),
	MK(1,2, 12),
	MK(2,0, 11),
	MK(2,1, 13),
	MKEND
};

static const IndustryTileTable * const _tile_table_sawmill[] = {
	_tile_table_sawmill_0,
	_tile_table_sawmill_1,
};

static const IndustryTileTable _tile_table_forest_0[] = {
	MK(0,0, 16),
	MK(0,1, 16),
	MK(0,2, 16),
	MK(0,3, 16),
	MK(1,0, 16),
	MK(1,1, 16),
	MK(1,2, 16),
	MK(1,3, 16),
	MK(2,0, 16),
	MK(2,1, 16),
	MK(2,2, 16),
	MK(2,3, 16),
	MK(3,0, 16),
	MK(3,1, 16),
	MK(3,2, 16),
	MK(3,3, 16),
	MK(1,4, 16),
	MK(2,4, 16),
	MKEND
};

static const IndustryTileTable _tile_table_forest_1[] = {
	MK(0,0, 16),
	MK(1,0, 16),
	MK(2,0, 16),
	MK(3,0, 16),
	MK(4,0, 16),
	MK(0,1, 16),
	MK(1,1, 16),
	MK(2,1, 16),
	MK(3,1, 16),
	MK(4,1, 16),
	MK(0,2, 16),
	MK(1,2, 16),
	MK(2,2, 16),
	MK(3,2, 16),
	MK(4,2, 16),
	MK(0,3, 16),
	MK(1,3, 16),
	MK(2,3, 16),
	MK(3,3, 16),
	MK(4,3, 16),
	MK(1,4, 16),
	MK(2,4, 16),
	MK(3,4, 16),
	MKEND
};

static const IndustryTileTable * const _tile_table_forest[] = {
	_tile_table_forest_0,
	_tile_table_forest_1,
};

static const IndustryTileTable _tile_table_oil_refinery_0[] = {
	MK(0,0, 20),
	MK(0,1, 21),
	MK(0,2, 22),
	MK(0,3, 21),
	MK(1,0, 20),
	MK(1,1, 19),
	MK(1,2, 22),
	MK(1,3, 20),
	MK(2,1, 18),
	MK(2,2, 18),
	MK(2,3, 18),
	MK(3,2, 18),
	MK(3,3, 18),
	MK(2,0, 23),
	MK(3,1, 23),
	MKEND
};

static const IndustryTileTable _tile_table_oil_refinery_1[] = {
	MK(0,0, 18),
	MK(0,1, 18),
	MK(0,2, 21),
	MK(0,3, 22),
	MK(0,4, 20),
	MK(1,0, 18),
	MK(1,1, 18),
	MK(1,2, 19),
	MK(1,3, 20),
	MK(2,0, 18),
	MK(2,1, 18),
	MK(2,2, 19),
	MK(2,3, 22),
	MK(1,4, 23),
	MK(2,4, 23),
	MKEND
};

static const IndustryTileTable * const _tile_table_oil_refinery[] = {
	_tile_table_oil_refinery_0,
	_tile_table_oil_refinery_1,
};

static const IndustryTileTable _tile_table_oil_rig_0[] = {
	MK(0,0, 24),
	MK(0,1, 24),
	MK(0,2, 25),
	MK(1,0, 26),
	MK(1,1, 27),
	MK(1,2, 28),
	MK(-4,-5, 255),
	MK(-4,-4, 255),
	MK(-4,-3, 255),
	MK(-4,-2, 255),
	MK(-4,-1, 255),
	MK(-4,0, 255),
	MK(-4,1, 255),
	MK(-4,2, 255),
	MK(-4,3, 255),
	MK(-4,4, 255),
	MK(-4,5, 255),
	MK(-3,5, 255),
	MK(-2,5, 255),
	MK(-1,5, 255),
	MK(0,6, 255),
	MK(1,6, 255),
	MK(2,6, 255),
	MK(3,6, 255),
	MK(4,6, 255),
	MK(5,6, 255),
	MK(5,5, 255),
	MK(5,4, 255),
	MK(5,3, 255),
	MK(5,2, 255),
	MK(5,1, 255),
	MK(5,0, 255),
	MK(5,-1, 255),
	MK(5,-2, 255),
	MK(5,-3, 255),
	MK(5,-4, 255),
	MK(4,-4, 255),
	MK(3,-4, 255),
	MK(2,-4, 255),
	MK(1,-4, 255),
	MK(0,-4, 255),
	MK(-1,-5, 255),
	MK(-2,-5, 255),
	MK(-3,-5, 255),
	MK(2,0, 255),
	MKEND
};

static const IndustryTileTable * const _tile_table_oil_rig[] = {
	_tile_table_oil_rig_0,
};

static const IndustryTileTable _tile_table_factory_0[] = {
	MK(0,0, 39),
	MK(0,1, 40),
	MK(1,0, 41),
	MK(1,1, 42),
	MK(0,2, 39),
	MK(0,3, 40),
	MK(1,2, 41),
	MK(1,3, 42),
	MK(2,1, 39),
	MK(2,2, 40),
	MK(3,1, 41),
	MK(3,2, 42),
	MKEND
};

static const IndustryTileTable _tile_table_factory_1[] = {
	MK(0,0, 39),
	MK(0,1, 40),
	MK(1,0, 41),
	MK(1,1, 42),
	MK(2,0, 39),
	MK(2,1, 40),
	MK(3,0, 41),
	MK(3,1, 42),
	MK(1,2, 39),
	MK(1,3, 40),
	MK(2,2, 41),
	MK(2,3, 42),
	MKEND
};

static const IndustryTileTable * const _tile_table_factory[] = {
	_tile_table_factory_0,
	_tile_table_factory_1,
};

static const IndustryTileTable _tile_table_printing_works_0[] = {
	MK(0,0, 43),
	MK(0,1, 44),
	MK(1,0, 45),
	MK(1,1, 46),
	MK(0,2, 43),
	MK(0,3, 44),
	MK(1,2, 45),
	MK(1,3, 46),
	MK(2,1, 43),
	MK(2,2, 44),
	MK(3,1, 45),
	MK(3,2, 46),
	MKEND
};

static const IndustryTileTable _tile_table_printing_works_1[] = {
	MK(0,0, 43),
	MK(0,1, 44),
	MK(1,0, 45),
	MK(1,1, 46),
	MK(2,0, 43),
	MK(2,1, 44),
	MK(3,0, 45),
	MK(3,1, 46),
	MK(1,2, 43),
	MK(1,3, 44),
	MK(2,2, 45),
	MK(2,3, 46),
	MKEND
};

static const IndustryTileTable * const _tile_table_printing_works[] = {
	_tile_table_printing_works_0,
	_tile_table_printing_works_1,
};

static const IndustryTileTable _tile_table_steel_mill_0[] = {
	MK(2,1, 52),
	MK(2,2, 53),
	MK(3,1, 54),
	MK(3,2, 55),
	MK(0,0, 56),
	MK(1,0, 57),
	MK(0,1, 56),
	MK(1,1, 57),
	MK(0,2, 56),
	MK(1,2, 57),
	MK(2,0, 56),
	MK(3,0, 57),
	MKEND
};

static const IndustryTileTable _tile_table_steel_mill_1[] = {
	MK(0,0, 52),
	MK(0,1, 53),
	MK(1,0, 54),
	MK(1,1, 55),
	MK(2,0, 52),
	MK(2,1, 53),
	MK(3,0, 54),
	MK(3,1, 55),
	MK(0,2, 56),
	MK(1,2, 57),
	MK(2,2, 56),
	MK(3,2, 57),
	MK(1,3, 56),
	MK(2,3, 57),
	MKEND
};

static const IndustryTileTable * const _tile_table_steel_mill[] = {
	_tile_table_steel_mill_0,
	_tile_table_steel_mill_1,
};

static const IndustryTileTable _tile_table_farm_0[] = {
	MK(1,0, 33),
	MK(1,1, 34),
	MK(1,2, 36),
	MK(0,0, 37),
	MK(0,1, 37),
	MK(0,2, 36),
	MK(2,0, 35),
	MK(2,1, 38),
	MK(2,2, 38),
	MKEND
};

static const IndustryTileTable _tile_table_farm_1[] = {
	MK(1,1, 33),
	MK(1,2, 34),
	MK(0,0, 35),
	MK(0,1, 36),
	MK(0,2, 36),
	MK(0,3, 35),
	MK(1,0, 37),
	MK(1,3, 38),
	MK(2,0, 37),
	MK(2,1, 37),
	MK(2,2, 38),
	MK(2,3, 38),
	MKEND
};

static const IndustryTileTable _tile_table_farm_2[] = {
	MK(2,0, 33),
	MK(2,1, 34),
	MK(0,0, 36),
	MK(0,1, 36),
	MK(0,2, 37),
	MK(0,3, 37),
	MK(1,0, 35),
	MK(1,1, 38),
	MK(1,2, 38),
	MK(1,3, 37),
	MK(2,2, 37),
	MK(2,3, 35),
	MKEND
};

static const IndustryTileTable * const _tile_table_farm[] = {
	_tile_table_farm_0,
	_tile_table_farm_1,
	_tile_table_farm_2,
};

static const IndustryTileTable _tile_table_copper_mine_0[] = {
	MK(0,0, 47),
	MK(0,1, 49),
	MK(0,2, 51),
	MK(1,0, 47),
	MK(1,1, 49),
	MK(1,2, 50),
	MK(2,0, 51),
	MK(2,1, 51),
	MKEND
};

static const IndustryTileTable _tile_table_copper_mine_1[] = {
	MK(0,0, 50),
	MK(0,1, 47),
	MK(0,2, 49),
	MK(1,0, 47),
	MK(1,1, 49),
	MK(1,2, 51),
	MK(2,0, 51),
	MK(2,1, 47),
	MK(2,2, 49),
	MKEND
};

static const IndustryTileTable * const _tile_table_copper_mine[] = {
	_tile_table_copper_mine_0,
	_tile_table_copper_mine_1,
};

static const IndustryTileTable _tile_table_oil_well_0[] = {
	MK(0,0, 29),
	MK(1,0, 29),
	MK(2,0, 29),
	MK(0,1, 29),
	MK(0,2, 29),
	MKEND
};

static const IndustryTileTable _tile_table_oil_well_1[] = {
	MK(0,0, 29),
	MK(1,0, 29),
	MK(1,1, 29),
	MK(2,2, 29),
	MK(2,3, 29),
	MKEND
};

static const IndustryTileTable * const _tile_table_oil_well[] = {
	_tile_table_oil_well_0,
	_tile_table_oil_well_1,
};

static const IndustryTileTable _tile_table_bank_0[] = {
	MK(0,0, 58),
	MK(1,0, 59),
	MKEND
};

static const IndustryTileTable * const _tile_table_bank[] = {
	_tile_table_bank_0,
};

static const IndustryTileTable _tile_table_food_process_0[] = {
	MK(0,0, 60),
	MK(1,0, 60),
	MK(2,0, 60),
	MK(0,1, 60),
	MK(1,1, 60),
	MK(2,1, 60),
	MK(0,2, 61),
	MK(1,2, 61),
	MK(2,2, 63),
	MK(0,3, 62),
	MK(1,3, 62),
	MK(2,3, 63),
	MKEND
};

static const IndustryTileTable _tile_table_food_process_1[] = {
	MK(0,0, 61),
	MK(1,0, 60),
	MK(2,0, 61),
	MK(3,0, 61),
	MK(0,1, 62),
	MK(1,1, 63),
	MK(2,1, 63),
	MK(3,1, 63),
	MK(0,2, 60),
	MK(1,2, 60),
	MK(2,2, 60),
	MK(3,2, 60),
	MK(0,3, 62),
	MK(1,3, 62),
	MKEND
};

static const IndustryTileTable * const _tile_table_food_process[] = {
	_tile_table_food_process_0,
	_tile_table_food_process_1,
};

static const IndustryTileTable _tile_table_paper_mill_0[] = {
	MK(0,0, 64),
	MK(1,0, 65),
	MK(2,0, 66),
	MK(3,0, 67),
	MK(0,1, 68),
	MK(1,1, 69),
	MK(2,1, 67),
	MK(3,1, 67),
	MK(0,2, 66),
	MK(1,2, 71),
	MK(2,2, 71),
	MK(3,2, 70),
	MKEND
};

static const IndustryTileTable * const _tile_table_paper_mill[] = {
	_tile_table_paper_mill_0,
};

static const IndustryTileTable _tile_table_gold_mine_0[] = {
	MK(0,0, 72),
	MK(0,1, 73),
	MK(0,2, 74),
	MK(0,3, 75),
	MK(1,0, 76),
	MK(1,1, 77),
	MK(1,2, 78),
	MK(1,3, 79),
	MK(2,0, 80),
	MK(2,1, 81),
	MK(2,2, 82),
	MK(2,3, 83),
	MK(3,0, 84),
	MK(3,1, 85),
	MK(3,2, 86),
	MK(3,3, 87),
	MKEND
};

static const IndustryTileTable * const _tile_table_gold_mine[] = {
	_tile_table_gold_mine_0,
};

static const IndustryTileTable _tile_table_bank2_0[] = {
	MK(0,0, 89),
	MK(1,0, 90),
	MKEND
};

static const IndustryTileTable * const _tile_table_bank2[] = {
	_tile_table_bank2_0,
};

static const IndustryTileTable _tile_table_diamond_mine_0[] = {
	MK(0,0, 91),
	MK(0,1, 92),
	MK(0,2, 93),
	MK(1,0, 94),
	MK(1,1, 95),
	MK(1,2, 96),
	MK(2,0, 97),
	MK(2,1, 98),
	MK(2,2, 99),
	MKEND
};

static const IndustryTileTable * const _tile_table_diamond_mine[] = {
	_tile_table_diamond_mine_0,
};

static const IndustryTileTable _tile_table_iron_mine_0[] = {
	MK(0,0, 100),
	MK(0,1, 101),
	MK(0,2, 102),
	MK(0,3, 103),
	MK(1,0, 104),
	MK(1,1, 105),
	MK(1,2, 106),
	MK(1,3, 107),
	MK(2,0, 108),
	MK(2,1, 109),
	MK(2,2, 110),
	MK(2,3, 111),
	MK(3,0, 112),
	MK(3,1, 113),
	MK(3,2, 114),
	MK(3,3, 115),
	MKEND
};

static const IndustryTileTable * const _tile_table_iron_mine[] = {
	_tile_table_iron_mine_0,
};

static const IndustryTileTable _tile_table_fruit_plantation_0[] = {
	MK(0,0, 116),
	MK(0,1, 116),
	MK(0,2, 116),
	MK(0,3, 116),
	MK(1,0, 116),
	MK(1,1, 116),
	MK(1,2, 116),
	MK(1,3, 116),
	MK(2,0, 116),
	MK(2,1, 116),
	MK(2,2, 116),
	MK(2,3, 116),
	MK(3,0, 116),
	MK(3,1, 116),
	MK(3,2, 116),
	MK(3,3, 116),
	MK(4,0, 116),
	MK(4,1, 116),
	MK(4,2, 116),
	MK(4,3, 116),
	MKEND
};

static const IndustryTileTable * const _tile_table_fruit_plantation[] = {
	_tile_table_fruit_plantation_0,
};

static const IndustryTileTable _tile_table_rubber_plantation_0[] = {
	MK(0,0, 117),
	MK(0,1, 117),
	MK(0,2, 117),
	MK(0,3, 117),
	MK(1,0, 117),
	MK(1,1, 117),
	MK(1,2, 117),
	MK(1,3, 117),
	MK(2,0, 117),
	MK(2,1, 117),
	MK(2,2, 117),
	MK(2,3, 117),
	MK(3,0, 117),
	MK(3,1, 117),
	MK(3,2, 117),
	MK(3,3, 117),
	MK(4,0, 117),
	MK(4,1, 117),
	MK(4,2, 117),
	MK(4,3, 117),
	MKEND
};

static const IndustryTileTable * const _tile_table_rubber_plantation[] = {
	_tile_table_rubber_plantation_0,
};

static const IndustryTileTable _tile_table_water_supply_0[] = {
	MK(0,0, 118),
	MK(0,1, 119),
	MK(1,0, 118),
	MK(1,1, 119),
	MKEND
};

static const IndustryTileTable * const _tile_table_water_supply[] = {
	_tile_table_water_supply_0,
};

static const IndustryTileTable _tile_table_water_tower_0[] = {
	MK(0,0, 120),
	MKEND
};

static const IndustryTileTable * const _tile_table_water_tower[] = {
	_tile_table_water_tower_0,
};

static const IndustryTileTable _tile_table_factory2_0[] = {
	MK(0,0, 121),
	MK(0,1, 122),
	MK(1,0, 123),
	MK(1,1, 124),
	MK(0,2, 121),
	MK(0,3, 122),
	MK(1,2, 123),
	MK(1,3, 124),
	MKEND
};

static const IndustryTileTable _tile_table_factory2_1[] = {
	MK(0,0, 121),
	MK(0,1, 122),
	MK(1,0, 123),
	MK(1,1, 124),
	MK(2,0, 121),
	MK(2,1, 122),
	MK(3,0, 123),
	MK(3,1, 124),
	MKEND
};

static const IndustryTileTable * const _tile_table_factory2[] = {
	_tile_table_factory2_0,
	_tile_table_factory2_1,
};

static const IndustryTileTable _tile_table_farm2_0[] = {
	MK(1,0, 33),
	MK(1,1, 34),
	MK(1,2, 36),
	MK(0,0, 37),
	MK(0,1, 37),
	MK(0,2, 36),
	MK(2,0, 35),
	MK(2,1, 38),
	MK(2,2, 38),
	MKEND
};

static const IndustryTileTable _tile_table_farm2_1[] = {
	MK(1,1, 33),
	MK(1,2, 34),
	MK(0,0, 35),
	MK(0,1, 36),
	MK(0,2, 36),
	MK(0,3, 35),
	MK(1,0, 37),
	MK(1,3, 38),
	MK(2,0, 37),
	MK(2,1, 37),
	MK(2,2, 38),
	MK(2,3, 38),
	MKEND
};

static const IndustryTileTable _tile_table_farm2_2[] = {
	MK(2,0, 33),
	MK(2,1, 34),
	MK(0,0, 36),
	MK(0,1, 36),
	MK(0,2, 37),
	MK(0,3, 37),
	MK(1,0, 35),
	MK(1,1, 38),
	MK(1,2, 38),
	MK(1,3, 37),
	MK(2,2, 37),
	MK(2,3, 35),
	MKEND
};

static const IndustryTileTable * const _tile_table_farm2[] = {
	_tile_table_farm2_0,
	_tile_table_farm2_1,
	_tile_table_farm2_2,
};

static const IndustryTileTable _tile_table_lumber_mill_0[] = {
	MK(0,0, 125),
	MK(0,1, 126),
	MK(1,0, 127),
	MK(1,1, 128),
	MKEND
};

static const IndustryTileTable * const _tile_table_lumber_mill[] = {
	_tile_table_lumber_mill_0,
};

static const IndustryTileTable _tile_table_cotton_candy_0[] = {
	MK(0,0, 129),
	MK(0,1, 129),
	MK(0,2, 129),
	MK(0,3, 129),
	MK(1,0, 129),
	MK(1,1, 129),
	MK(1,2, 129),
	MK(1,3, 129),
	MK(2,0, 129),
	MK(2,1, 129),
	MK(2,2, 129),
	MK(2,3, 129),
	MK(3,0, 129),
	MK(3,1, 129),
	MK(3,2, 129),
	MK(3,3, 129),
	MK(1,4, 129),
	MK(2,4, 129),
	MKEND
};

static const IndustryTileTable _tile_table_cotton_candy_1[] = {
	MK(0,0, 129),
	MK(1,0, 129),
	MK(2,0, 129),
	MK(3,0, 129),
	MK(4,0, 129),
	MK(0,1, 129),
	MK(1,1, 129),
	MK(2,1, 129),
	MK(3,1, 129),
	MK(4,1, 129),
	MK(0,2, 129),
	MK(1,2, 129),
	MK(2,2, 129),
	MK(3,2, 129),
	MK(4,2, 129),
	MK(0,3, 129),
	MK(1,3, 129),
	MK(2,3, 129),
	MK(3,3, 129),
	MK(4,3, 129),
	MK(1,4, 129),
	MK(2,4, 129),
	MK(3,4, 129),
	MKEND
};

static const IndustryTileTable * const _tile_table_cotton_candy[] = {
	_tile_table_cotton_candy_0,
	_tile_table_cotton_candy_1,
};

static const IndustryTileTable _tile_table_candy_factory_0[] = {
	MK(0,0, 131),
	MK(0,1, 132),
	MK(1,0, 133),
	MK(1,1, 134),
	MK(0,2, 131),
	MK(0,3, 132),
	MK(1,2, 133),
	MK(1,3, 134),
	MK(2,1, 131),
	MK(2,2, 132),
	MK(3,1, 133),
	MK(3,2, 134),
	MKEND
};

static const IndustryTileTable _tile_table_candy_factory_1[] = {
	MK(0,0, 131),
	MK(0,1, 132),
	MK(1,0, 133),
	MK(1,1, 134),
	MK(2,0, 131),
	MK(2,1, 132),
	MK(3,0, 133),
	MK(3,1, 134),
	MK(1,2, 131),
	MK(1,3, 132),
	MK(2,2, 133),
	MK(2,3, 134),
	MKEND
};

static const IndustryTileTable * const _tile_table_candy_factory[] = {
	_tile_table_candy_factory_0,
	_tile_table_candy_factory_1,
};

static const IndustryTileTable _tile_table_battery_farm_0[] = {
	MK(0,0, 135),
	MK(0,1, 135),
	MK(0,2, 135),
	MK(0,3, 135),
	MK(1,0, 135),
	MK(1,1, 135),
	MK(1,2, 135),
	MK(1,3, 135),
	MK(2,0, 135),
	MK(2,1, 135),
	MK(2,2, 135),
	MK(2,3, 135),
	MK(3,0, 135),
	MK(3,1, 135),
	MK(3,2, 135),
	MK(3,3, 135),
	MK(4,0, 135),
	MK(4,1, 135),
	MK(4,2, 135),
	MK(4,3, 135),
	MKEND
};

static const IndustryTileTable * const _tile_table_battery_farm[] = {
	_tile_table_battery_farm_0,
};

static const IndustryTileTable _tile_table_cola_wells_0[] = {
	MK(0,0, 137),
	MK(0,1, 137),
	MK(0,2, 137),
	MK(1,0, 137),
	MK(1,1, 137),
	MK(1,2, 137),
	MK(2,1, 137),
	MK(2,2, 137),
	MKEND
};

static const IndustryTileTable _tile_table_cola_wells_1[] = {
	MK(0,1, 137),
	MK(0,2, 137),
	MK(0,3, 137),
	MK(1,0, 137),
	MK(1,1, 137),
	MK(1,2, 137),
	MK(2,1, 137),
	MKEND
};

static const IndustryTileTable * const _tile_table_cola_wells[] = {
	_tile_table_cola_wells_0,
	_tile_table_cola_wells_1,
};

static const IndustryTileTable _tile_table_toy_shop_0[] = {
	MK(0,0, 138),
	MK(0,1, 139),
	MK(1,0, 140),
	MK(1,1, 141),
	MKEND
};

static const IndustryTileTable * const _tile_table_toy_shop[] = {
	_tile_table_toy_shop_0,
};

static const IndustryTileTable _tile_table_toy_factory_0[] = {
	MK(0,0, 147),
	MK(0,1, 142),
	MK(1,0, 147),
	MK(1,1, 143),
	MK(2,0, 147),
	MK(2,1, 144),
	MK(3,0, 146),
	MK(3,1, 145),
	MKEND
};

static const IndustryTileTable * const _tile_table_toy_factory[] = {
	_tile_table_toy_factory_0,
};

static const IndustryTileTable _tile_table_plastic_fountain_0[] = {
	MK(0,0, 148),
	MK(0,1, 151),
	MK(0,2, 154),
	MKEND
};

static const IndustryTileTable _tile_table_plastic_fountain_1[] = {
	MK(0,0, 148),
	MK(1,0, 151),
	MK(2,0, 154),
	MKEND
};

static const IndustryTileTable * const _tile_table_plastic_fountain[] = {
	_tile_table_plastic_fountain_0,
	_tile_table_plastic_fountain_1,
};

static const IndustryTileTable _tile_table_fizzy_drink_0[] = {
	MK(0,0, 156),
	MK(0,1, 157),
	MK(1,0, 158),
	MK(1,1, 159),
	MKEND
};

static const IndustryTileTable * const _tile_table_fizzy_drink[] = {
	_tile_table_fizzy_drink_0,
};

static const IndustryTileTable _tile_table_bubble_generator_0[] = {
	MK(0,0, 163),
	MK(0,1, 160),
	MK(1,0, 163),
	MK(1,1, 161),
	MK(2,0, 163),
	MK(2,1, 162),
	MK(0,2, 163),
	MK(0,3, 160),
	MK(1,2, 163),
	MK(1,3, 161),
	MK(2,2, 163),
	MK(2,3, 162),
	MKEND
};

static const IndustryTileTable * const _tile_table_bubble_generator[] = {
	_tile_table_bubble_generator_0,
};

static const IndustryTileTable _tile_table_toffee_quarry_0[] = {
	MK(0,0, 164),
	MK(1,0, 165),
	MK(2,0, 166),
	MKEND
};

static const IndustryTileTable * const _tile_table_toffee_quarry[] = {
	_tile_table_toffee_quarry_0,
};

static const IndustryTileTable _tile_table_sugar_mine_0[] = {
	MK(0,0, 167),
	MK(0,1, 168),
	MK(1,0, 169),
	MK(1,1, 170),
	MK(2,0, 171),
	MK(2,1, 172),
	MK(3,0, 173),
	MK(3,1, 174),
	MKEND
};

static const IndustryTileTable * const _tile_table_sugar_mine[] = {
	_tile_table_sugar_mine_0,
};

#undef MK
#undef MKEND

/**
 * Writes the properties of an industry into the IndustrySpec struct.
 * @param tbl  tile table
 * @param d    cost multiplier
 * @param ai1  appear chance ingame - temperate
 * @param ai2  appear chance ingame - arctic
 * @param ai3  appear chance ingame - tropic
 * @param ai4  appear chance ingame - toyland
 * @param ag1  appear chance random creation - temperate
 * @param ag2  appear chance random creation - arctic
 * @param ag3  appear chance random creation - tropic
 * @param ag4  appear chance random creation - toyland
 * @param col  map colour
 * @param c1   industry proximity refusal - 1st
 * @param c2   industry proximity refusal - 2nd
 * @param c3   industry proximity refusal - 3th
 * @param proc check procedure index
 * @param p1   produce cargo 1
 * @param r1   rate of production 1
 * @param p2   produce cargo 2
 * @param r2   rate of production 1
 * @param m    minimum cargo moved to station
 * @param a1   accepted cargo 1
 * @param a2   accepted cargo 2
 * @param a3   accepted cargo 3
 * @param pr   industry life (actually, the same as extractive, organic, processing in ttdpatch's specs)
 * @param clim climate availaility
 * @param bev  industry behaviour
 * @param in   name
 * @param intx text while building
 * @param s1   text for closure
 * @param s2   text for production up
 * @param s3   text for production down
 */

#define MI(tbl, d, ai1, ai2, ai3, ai4, ag1, ag2, ag3, ag4, col,\
           c1, c2, c3, proc, p1, r1, p2, r2, m, a1, a2, a3, pr, clim, bev, in, intx, s1, s2, s3) \
	{tbl, lengthof(tbl), d, {c1, c2, c3}, proc, {p1, p2}, {r1, r2}, m,            \
	 {a1, a2, a3}, pr, clim, bev, col, in, intx, s1, s2, s3, {ai1, ai2, ai3, ai4}, {ag1, ag2, ag3, ag4}, 0, 0, 0, 0}

static const IndustrySpec _industry_specs[] = {
	/* Format:
	   tile table                              cost multiplier   appear chances(4ingame, 4random)  map colour
	   cannot be close to these industries (3 times)             check proc
	   (produced cargo + rate) (twice)         minimum cargo moved to station
	   3 accepted cargo
	   industry life                           climate availability
	   industry behaviours
	   industry name                           building text
	   messages : Closure                      production up                      production down   */
	MI(_tile_table_coal_mine,                  210,              2, 3, 0, 0,    8, 8, 0, 0,        215,
	   IT_POWER_STATION,  IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
	   CT_COAL,       15, CT_INVALID,       0, 5,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TEMPERATE | 1 << LT_ARCTIC,
	   INDUSTRYBEH_CAN_SUBSIDENCE,
	   STR_4802_COAL_MINE,                     STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4836_NEW_COAL_SEAM_FOUND_AT,   STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_power_station,              30,               2, 2, 0, 0,    5, 5, 0, 0,        184,
	   IT_COAL_MINE,      IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
	   CT_INVALID,     0, CT_INVALID,       0, 5,
	   CT_COAL,           CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_NOT_CLOSABLE,              1 << LT_TEMPERATE | 1 << LT_ARCTIC,
	   INDUSTRYBEH_NONE,
	   STR_4803_POWER_STATION,                 STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_sawmill,                    28,               2, 0, 0, 0,    5, 0, 0, 0,        194,
	   IT_FOREST,         IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
	   CT_GOODS,       0, CT_INVALID,       0, 5,
	   CT_WOOD,           CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TEMPERATE,
	   INDUSTRYBEH_NONE,
	   STR_4804_SAWMILL,                       STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_forest,                     200,              3, 4, 0, 0,    5, 5, 0, 0,         86,
	   IT_SAWMILL,        IT_PAPER_MILL,       IT_INVALID,       CHECK_FOREST,
	   CT_WOOD,       13, CT_INVALID,       0, 30,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TEMPERATE | 1 << LT_ARCTIC,
	   INDUSTRYBEH_NONE,
	   STR_4805_FOREST,                        STR_482E_NEW_BEING_PLANTED_NEAR,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_483A_INSECT_INFESTATION_CAUSES),

	MI(_tile_table_oil_refinery,               31,               2, 2, 2, 0,    4, 4, 4, 0,        191,
	   IT_OIL_RIG,        IT_INVALID,          IT_INVALID,       CHECK_REFINERY,
	   CT_GOODS,       0, CT_INVALID,       0, 5,
	   CT_OIL,            CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TEMPERATE | 1 << LT_ARCTIC | 1 << LT_TROPIC,
	   INDUSTRYBEH_AIRPLANE_ATTACKS,
	   STR_4806_OIL_REFINERY,                  STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_oil_rig,                    240,              6, 0, 0, 0,    0, 0, 0, 0,        152,
	   IT_OIL_REFINERY,   IT_INVALID,          IT_INVALID,       CHECK_OIL_RIG,
	   CT_OIL,        15, CT_PASSENGERS,    2, 5,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TEMPERATE,
	   INDUSTRYBEH_BUILT_ONWATER | INDUSTRYBEH_AFTER_1960 | INDUSTRYBEH_AI_AIRSHIP_ROUTES,
	   STR_4807_OIL_RIG,                       STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4837_NEW_OIL_RESERVES_FOUND,   STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_factory,                    26,               2, 0, 0, 0,    5, 0, 0, 0,        174,
	   IT_FARM,           IT_STEEL_MILL,       IT_INVALID,       CHECK_NOTHING,
	   CT_GOODS,       0, CT_INVALID,       0, 5,
	   CT_LIVESTOCK,      CT_GRAIN,            CT_STEEL,
	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TEMPERATE,
	   INDUSTRYBEH_CHOPPER_ATTACKS,
	   STR_4808_FACTORY,                       STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_printing_works,             26,               0, 2, 0, 0,    0, 5, 0, 0,        174,
	   IT_PAPER_MILL,     IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
	   CT_GOODS,       0, CT_INVALID,       0, 5,
	   CT_PAPER,          CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_ARCTIC,
	   INDUSTRYBEH_NONE,
	   STR_4809_PRINTING_WORKS,                STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_steel_mill,                 27,               2, 0, 0, 0,    5, 0, 0, 0,         10,
	   IT_IRON_MINE,      IT_FACTORY,          IT_INVALID,       CHECK_NOTHING,
	   CT_STEEL,       0, CT_INVALID,       0, 5,
	   CT_IRON_ORE,       CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TEMPERATE,
	   INDUSTRYBEH_NONE,
	   STR_480A_STEEL_MILL,                    STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_farm,                       250,              2, 4, 0, 0,    9, 9, 0, 0,         48,
	   IT_FACTORY,        IT_FOOD_PROCESS,     IT_INVALID,       CHECK_FARM,
	   CT_GRAIN,      10, CT_LIVESTOCK,    10, 5,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TEMPERATE | 1 << LT_ARCTIC,
	   INDUSTRYBEH_PLANT_FIELDS | INDUSTRYBEH_PLANT_ON_BUILT,
	   STR_480B_FARM,                          STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),

	MI(_tile_table_copper_mine,                205,              0, 0, 3, 0,    0, 0, 4, 0,         10,
	   IT_FACTORY_2,      IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
	   CT_COPPER_ORE, 10, CT_INVALID,       0, 5,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TROPIC,
	   INDUSTRYBEH_NONE,
	   STR_480C_COPPER_ORE_MINE,               STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_oil_well,                   220,              0, 5, 3, 0,    4, 5, 5, 0,        152,
	   IT_OIL_REFINERY,   IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
	   CT_OIL,        12, CT_INVALID,       0, 5,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TEMPERATE | 1 << LT_ARCTIC | 1 << LT_TROPIC,
	   INDUSTRYBEH_DONT_INCR_PROD | INDUSTRYBEH_BEFORE_1950,
	   STR_480D_OIL_WELLS,                     STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4837_NEW_OIL_RESERVES_FOUND,   STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_bank,                       193,              7, 0, 0, 0,    0, 0, 0, 0,         15,
	   IT_BANK_TEMP,      IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
	   CT_VALUABLES,   6, CT_INVALID,       0, 5,
	   CT_VALUABLES,      CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_NOT_CLOSABLE,              1 << LT_TEMPERATE,
	   INDUSTRYBEH_TOWN1200_MORE | INDUSTRYBEH_ONLY_INTOWN,
	   STR_480E_BANK,                          STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_food_process,               26,               0, 2, 2, 0,    0, 3, 4, 0,         55,
	   IT_FRUIT_PLANTATION, IT_FARM,           IT_FARM_2,        CHECK_NOTHING,
	   CT_FOOD,        0, CT_INVALID,       0, 5,
	   CT_FRUIT,          CT_MAIZE,            CT_INVALID,
	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_ARCTIC | 1 << LT_TROPIC,
	   INDUSTRYBEH_NONE,
	   STR_480F_FOOD_PROCESSING_PLANT,         STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_paper_mill,                 28,               0, 2, 0, 0,    0, 5, 0, 0,         10,
	   IT_FOREST,         IT_PRINTING_WORKS,   IT_INVALID,       CHECK_NOTHING,
	   CT_PAPER,       0, CT_INVALID,       0, 5,
	   CT_WOOD,           CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_ARCTIC,
	   INDUSTRYBEH_NONE,
	   STR_4810_PAPER_MILL,                    STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_gold_mine,                  208,              0, 3, 0, 0,    0, 4, 0, 0,        194,
	   IT_BANK_TROPIC_ARCTIC, IT_INVALID,      IT_INVALID,       CHECK_NOTHING,
	   CT_GOLD,        7, CT_INVALID,       0, 5,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_ARCTIC,
	   INDUSTRYBEH_NONE,
	   STR_4811_GOLD_MINE,                     STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_bank2,                      19,               0, 3, 3, 0,    0, 6, 5, 0,         15,
	   IT_GOLD_MINE,      IT_DIAMOND_MINE,     IT_INVALID,       CHECK_NOTHING,
	   CT_INVALID,     0, CT_INVALID,       0, 5,
	   CT_GOLD,           CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_NOT_CLOSABLE,              1 << LT_ARCTIC | 1 << LT_TROPIC,
	   INDUSTRYBEH_ONLY_INTOWN,
	   STR_4812_BANK,                          STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_diamond_mine,               213,              0, 0, 3, 0,    0, 0, 4, 0,        184,
	   IT_BANK_TROPIC_ARCTIC, IT_INVALID,      IT_INVALID,       CHECK_NOTHING,
	   CT_DIAMONDS,    7, CT_INVALID,       0, 5,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TROPIC,
	   INDUSTRYBEH_NONE,
	   STR_4813_DIAMOND_MINE,                  STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_iron_mine,                  220,              2, 0, 0, 0,    5, 0, 0, 0,         55,
	   IT_STEEL_MILL,     IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
	   CT_IRON_ORE,   10, CT_INVALID,       0, 5,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TEMPERATE,
	   INDUSTRYBEH_NONE,
	   STR_4814_IRON_ORE_MINE,                 STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_fruit_plantation,           225,              0, 0, 2, 0,    0, 0, 4, 0,         86,
	   IT_FOOD_PROCESS,   IT_INVALID,          IT_INVALID,       CHECK_PLANTATION,
	   CT_FRUIT,      10, CT_INVALID,       0, 15,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TROPIC,
	   INDUSTRYBEH_NONE,
	   STR_4815_FRUIT_PLANTATION,              STR_482E_NEW_BEING_PLANTED_NEAR,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),

	MI(_tile_table_rubber_plantation,          218,              0, 0, 3, 0,    0, 0, 4, 0,         39,
	   IT_FACTORY_2,      IT_INVALID,          IT_INVALID,       CHECK_PLANTATION,
	   CT_RUBBER,     10, CT_INVALID,       0, 15,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TROPIC,
	   INDUSTRYBEH_NONE,
	   STR_4816_RUBBER_PLANTATION,             STR_482E_NEW_BEING_PLANTED_NEAR,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),

	MI(_tile_table_water_supply,               199,              0, 0, 3, 0,    0, 0, 4, 0,         37,
	   IT_WATER_TOWER,    IT_INVALID,          IT_INVALID,       CHECK_WATER,
	   CT_WATER,      12, CT_INVALID,       0, 5,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TROPIC,
	   INDUSTRYBEH_NONE,
	   STR_4817_WATER_SUPPLY,                  STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_water_tower,                14,               0, 0, 4, 0,    0, 0, 8, 0,        208,
	   IT_WATER_SUPPLY,   IT_INVALID,          IT_INVALID,       CHECK_WATER,
	   CT_INVALID,     0, CT_INVALID,       0, 5,
	   CT_WATER,          CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_NOT_CLOSABLE,              1 << LT_TROPIC,
	   INDUSTRYBEH_ONLY_INTOWN,
	   STR_4818_WATER_TOWER,                   STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_factory2,                   26,               0, 0, 2, 0,    0, 0, 4, 0,        174,
	   IT_RUBBER_PLANTATION, IT_COPPER_MINE,   IT_LUMBER_MILL,   CHECK_PLANTATION,
	   CT_GOODS,       0, CT_INVALID,       0, 5,
	   CT_RUBBER,         CT_COPPER_ORE,       CT_WOOD,
	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TROPIC,
	   INDUSTRYBEH_NONE,
	   STR_4819_FACTORY,                       STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_farm2,                      250,              0, 0, 1, 0,    0, 0, 2, 0,         48,
	   IT_FOOD_PROCESS,   IT_INVALID,          IT_INVALID,       CHECK_PLANTATION,
	   CT_MAIZE,      11, CT_INVALID,       0, 5,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TROPIC,
	   INDUSTRYBEH_PLANT_FIELDS | INDUSTRYBEH_PLANT_ON_BUILT,
	   STR_481A_FARM,                          STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),

	MI(_tile_table_lumber_mill,                17,               0, 0, 0, 0,    0, 0, 0, 0,        194,
	   IT_FACTORY_2,      IT_INVALID,          IT_INVALID,       CHECK_LUMBERMILL,
	   CT_WOOD,        0, CT_INVALID,       0, 5,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TROPIC,
	   INDUSTRYBEH_CUT_TREES,
	   STR_481B_LUMBER_MILL,                   STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4834_LACK_OF_NEARBY_TREES_CAUSES,   STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_cotton_candy,               195,              0, 0, 0, 3,    0, 0, 0, 5,         48,
	   IT_CANDY_FACTORY,  IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
	   CT_COTTON_CANDY, 13, CT_INVALID,    0, 30,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TOYLAND,
	   INDUSTRYBEH_NONE,
	   STR_481C_COTTON_CANDY_FOREST,           STR_482E_NEW_BEING_PLANTED_NEAR,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_candy_factory,              26,               0, 0, 0, 3,    0, 0, 0, 5,        174,
	   IT_COTTON_CANDY,   IT_TOFFEE_QUARRY,    IT_SUGAR_MINE,    CHECK_NOTHING,
	   CT_CANDY,       0, CT_INVALID,       0, 5,
	   CT_SUGAR,          CT_TOFFEE,           CT_COTTON_CANDY,
	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TOYLAND,
	   INDUSTRYBEH_NONE,
	   STR_481D_CANDY_FACTORY,                 STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_battery_farm,               187,              0, 0, 0, 3,    0, 0, 0, 4,         39,
	   IT_TOY_FACTORY,    IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
	   CT_BATTERIES,  11, CT_INVALID,      0, 30,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TOYLAND,
	   INDUSTRYBEH_NONE,
	   STR_481E_BATTERY_FARM,                  STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),

	MI(_tile_table_cola_wells,                 193,              0, 0, 0, 3,    0, 0, 0, 5,         55,
	   IT_FIZZY_DRINK_FACTORY, IT_INVALID,     IT_INVALID,       CHECK_NOTHING,
	   CT_COLA,       12, CT_INVALID,       0, 5,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TOYLAND,
	   INDUSTRYBEH_NONE,
	   STR_481F_COLA_WELLS,                    STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_toy_shop,                   17,               0, 0, 0, 3,    0, 0, 0, 4,        208,
	   IT_TOY_FACTORY,    IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
	   CT_INVALID,     0, CT_INVALID,       0, 5,
	   CT_TOYS,           CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_NOT_CLOSABLE,              1 << LT_TOYLAND,
	   INDUSTRYBEH_ONLY_NEARTOWN,
	   STR_4820_TOY_SHOP,                      STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_toy_factory,                20,              0, 0, 0, 3,    0, 0, 0, 5,          10,
	   IT_PLASTIC_FOUNTAINS, IT_BATTERY_FARM,  IT_TOY_SHOP,     CHECK_NOTHING,
	   CT_TOYS,        0, CT_INVALID,       0, 5,
	   CT_PLASTIC,        CT_BATTERIES,        CT_INVALID,
	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TOYLAND,
	   INDUSTRYBEH_NONE,
	   STR_4821_TOY_FACTORY,                   STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_plastic_fountain,           192,              0, 0, 0, 3,    0, 0, 0, 5,         37,
	   IT_TOY_FACTORY,    IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
	   CT_PLASTIC,    14, CT_INVALID,       0, 5,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TOYLAND,
	   INDUSTRYBEH_NONE,
	   STR_4822_PLASTIC_FOUNTAINS,             STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_fizzy_drink,                22,               0, 0, 0, 3,    0, 0, 0, 4,        184,
	   IT_COLA_WELLS,     IT_BUBBLE_GENERATOR, IT_INVALID,       CHECK_NOTHING,
	   CT_FIZZY_DRINKS, 0, CT_INVALID,      0, 5,
	   CT_COLA,           CT_BUBBLES,          CT_INVALID,
	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TOYLAND,
	   INDUSTRYBEH_NONE,
	   STR_4823_FIZZY_DRINK_FACTORY,           STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_bubble_generator,           203,              0, 0, 0, 3,    0, 0, 0, 5,        152,
	   IT_FIZZY_DRINK_FACTORY, IT_INVALID,     IT_INVALID,       CHECK_BUBBLEGEN,
	   CT_BUBBLES,    13, CT_INVALID,       0, 5,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TOYLAND,
	   INDUSTRYBEH_NONE,
	   STR_4824_BUBBLE_GENERATOR,              STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_toffee_quarry,              213,              0, 0, 0, 3,    0, 0, 0, 5,        194,
	   IT_CANDY_FACTORY,  IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
	   CT_TOFFEE,     10, CT_INVALID,       0, 5,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TOYLAND,
	   INDUSTRYBEH_NONE,
	   STR_4825_TOFFEE_QUARRY,                 STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),

	MI(_tile_table_sugar_mine,                 210,              0, 0, 0, 2,    0, 0, 0, 4,         15,
	   IT_CANDY_FACTORY,  IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
	   CT_SUGAR,      11, CT_INVALID,       0, 5,
	   CT_INVALID,        CT_INVALID,          CT_INVALID,
	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TOYLAND,
	   INDUSTRYBEH_NONE,
	   STR_4826_SUGAR_MINE,                    STR_482D_NEW_UNDER_CONSTRUCTION,
	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
};
#undef MI

/** Writes the properties of an 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 chooses between animation or construction state
 */
#define MT(c1, c2, c3, sl, a1, a2, a3) {{c1, c2, c3}, sl, a1, a2, a3}
static const IndustryTileSpec _industry_tile_specs[] = {
	/* Coal Mine */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  true),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Power Station */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_PASSENGERS,   CT_INVALID,   CT_COAL,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Sawmill */
	MT(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_PASSENGERS,   CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Forest Artic, temperate */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,               17,  INDUTILE_NOANIM,   false), ///< Chopping forest
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,               16,   false), ///< Growing forest

	/* Oil refinery */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_OIL,        SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* oil Rig */
	MT(CT_INVALID,      CT_INVALID,   CT_PASSENGERS, SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_MAIL,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Oil Wells artic, temperate */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  true ),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  true ),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  true ),

	/* Farm tropic, arctic and temperate */
	MT(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Factory temperate */
	MT(CT_GRAIN,        CT_STEEL,     CT_LIVESTOCK,  SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_GRAIN,        CT_STEEL,     CT_LIVESTOCK,  SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_GRAIN,        CT_STEEL,     CT_LIVESTOCK,  SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_GRAIN,        CT_STEEL,     CT_LIVESTOCK,  SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Printing works */
	MT(CT_INVALID,      CT_INVALID,   CT_PAPER,      SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_PAPER,      SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_PAPER,      SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_PAPER,      SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Copper ore mine */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  true ),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_PASSENGERS,   CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Steel mill */
	MT(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_PASSENGERS,   CT_INVALID,   CT_IRON_ORE,   SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Bank temperate*/
	MT(CT_PASSENGERS,   CT_INVALID,   CT_VALUABLES,  SLOPE_E,      INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_PASSENGERS,   CT_INVALID,   CT_VALUABLES,  SLOPE_S,      INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Food processing plant, tropic and arctic. CT_MAIZE or CT_WHEAT, CT_LIVESTOCK or CT_FRUIT*/
	MT(CT_MAIZE,        CT_INVALID,   CT_LIVESTOCK,  SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_MAIZE,        CT_INVALID,   CT_LIVESTOCK,  SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_MAIZE,        CT_INVALID,   CT_LIVESTOCK,  SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_MAIZE,        CT_INVALID,   CT_LIVESTOCK,  SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Paper mill */
	MT(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_WOOD,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Gold mine */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  true ),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Bank Sub Arctic */
	MT(CT_INVALID,      CT_INVALID,   CT_GOLD,       SLOPE_E,      INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_GOLD,       SLOPE_S,      INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Diamond mine */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Iron ore Mine */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Fruit plantation */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Rubber plantation */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Water supply */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Water tower */
	MT(CT_INVALID,      CT_INVALID,   CT_WATER,      SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Factory (sub-tropical) */
	MT(CT_COPPER_ORE,   CT_WOOD,      CT_RUBBER,     SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_COPPER_ORE,   CT_WOOD,      CT_RUBBER,     SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_COPPER_ORE,   CT_WOOD,      CT_RUBBER,     SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_COPPER_ORE,   CT_WOOD,      CT_RUBBER,     SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Lumber mill */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Candyfloss forest */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,              130,   INDUTILE_NOANIM,  false), ///< Chopping candyfloss
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,               129,  false), ///< Growing candyfloss

	/* Sweet factory */
	MT(CT_COTTON_CANDY, CT_TOFFEE,    CT_SUGAR,      SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_COTTON_CANDY, CT_TOFFEE,    CT_SUGAR,      SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_COTTON_CANDY, CT_TOFFEE,    CT_SUGAR,      SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_COTTON_CANDY, CT_TOFFEE,    CT_SUGAR,      SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Batter farm */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,              136,   INDUTILE_NOANIM,  false), ///< Reaping batteries
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,               135,  false), ///< Growing batteries

	/* Cola wells */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Toy shop */
	MT(CT_INVALID,      CT_INVALID,   CT_TOYS,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_TOYS,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_TOYS,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_TOYS,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Toy factory */
	MT(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_BATTERIES,    CT_INVALID,   CT_PLASTIC,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Plastic Fountain */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Fizzy drink factory */
	MT(CT_BUBBLES,      CT_INVALID,   CT_COLA,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_BUBBLES,      CT_INVALID,   CT_COLA,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_BUBBLES,      CT_INVALID,   CT_COLA,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_BUBBLES,      CT_INVALID,   CT_COLA,       SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Bubble generator */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Toffee quarry */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),

	/* Sugar mine */
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
	MT(CT_INVALID,      CT_INVALID,   CT_INVALID,    SLOPE_STEEP,  INDUTILE_NOANIM,   INDUTILE_NOANIM,  false),
};
#undef MT

#endif  /* BUILD_INDUSTRY_H */