OpenTTD
build_industry.h
Go to the documentation of this file.
1 /* $Id$ */
2 
3 /*
4  * This file is part of OpenTTD.
5  * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
6  * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
7  * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
8  */
9 
12 #ifndef BUILD_INDUSTRY_H
13 #define BUILD_INDUSTRY_H
14 
23 #define MK(x, y, m) {{x, y}, m}
24 
28 #define MKEND {{-0x80, 0}, 0}
29 
30 static const IndustryTileTable _tile_table_coal_mine_0[] = {
31  MK(1, 1, 0),
32  MK(1, 2, 2),
33  MK(0, 0, 5),
34  MK(1, 0, 6),
35  MK(2, 0, 3),
36  MK(2, 2, 3),
37  MKEND
38 };
39 
40 static const IndustryTileTable _tile_table_coal_mine_1[] = {
41  MK(1, 1, 0),
42  MK(1, 2, 2),
43  MK(2, 0, 0),
44  MK(2, 1, 2),
45  MK(1, 0, 3),
46  MK(0, 0, 3),
47  MK(0, 1, 4),
48  MK(0, 2, 4),
49  MK(2, 2, 4),
50  MKEND
51 };
52 
53 static const IndustryTileTable _tile_table_coal_mine_2[] = {
54  MK(0, 0, 0),
55  MK(0, 1, 2),
56  MK(0, 2, 5),
57  MK(1, 0, 3),
58  MK(1, 1, 3),
59  MK(1, 2, 6),
60  MKEND
61 };
62 
63 static const IndustryTileTable _tile_table_coal_mine_3[] = {
64  MK(0, 1, 0),
65  MK(0, 2, 2),
66  MK(0, 3, 4),
67  MK(1, 0, 5),
68  MK(1, 1, 0),
69  MK(1, 2, 2),
70  MK(1, 3, 3),
71  MK(2, 0, 6),
72  MK(2, 1, 4),
73  MK(2, 2, 3),
74  MKEND
75 };
76 
77 static const IndustryTileTable * const _tile_table_coal_mine[] = {
78  _tile_table_coal_mine_0,
79  _tile_table_coal_mine_1,
80  _tile_table_coal_mine_2,
81  _tile_table_coal_mine_3,
82 };
83 
84 static const IndustryTileTable _tile_table_power_station_0[] = {
85  MK(0, 0, 7),
86  MK(0, 1, 9),
87  MK(1, 0, 7),
88  MK(1, 1, 8),
89  MK(2, 0, 7),
90  MK(2, 1, 8),
91  MK(3, 0, 10),
92  MK(3, 1, 10),
93  MKEND
94 };
95 
96 static const IndustryTileTable _tile_table_power_station_1[] = {
97  MK(0, 1, 7),
98  MK(0, 2, 7),
99  MK(1, 0, 8),
100  MK(1, 1, 8),
101  MK(1, 2, 7),
102  MK(2, 0, 9),
103  MK(2, 1, 10),
104  MK(2, 2, 9),
105  MKEND
106 };
107 
108 static const IndustryTileTable _tile_table_power_station_2[] = {
109  MK(0, 0, 7),
110  MK(0, 1, 7),
111  MK(1, 0, 9),
112  MK(1, 1, 8),
113  MK(2, 0, 10),
114  MK(2, 1, 9),
115  MKEND
116 };
117 
118 static const IndustryTileTable * const _tile_table_power_station[] = {
119  _tile_table_power_station_0,
120  _tile_table_power_station_1,
121  _tile_table_power_station_2,
122 };
123 
124 static const IndustryTileTable _tile_table_sawmill_0[] = {
125  MK(1, 0, 14),
126  MK(1, 1, 12),
127  MK(1, 2, 11),
128  MK(2, 0, 14),
129  MK(2, 1, 13),
130  MK(0, 0, 15),
131  MK(0, 1, 15),
132  MK(0, 2, 12),
133  MKEND
134 };
135 
136 static const IndustryTileTable _tile_table_sawmill_1[] = {
137  MK(0, 0, 15),
138  MK(0, 1, 11),
139  MK(0, 2, 14),
140  MK(1, 0, 15),
141  MK(1, 1, 13),
142  MK(1, 2, 12),
143  MK(2, 0, 11),
144  MK(2, 1, 13),
145  MKEND
146 };
147 
148 static const IndustryTileTable * const _tile_table_sawmill[] = {
149  _tile_table_sawmill_0,
150  _tile_table_sawmill_1,
151 };
152 
153 static const IndustryTileTable _tile_table_forest_0[] = {
154  MK(0, 0, 16),
155  MK(0, 1, 16),
156  MK(0, 2, 16),
157  MK(0, 3, 16),
158  MK(1, 0, 16),
159  MK(1, 1, 16),
160  MK(1, 2, 16),
161  MK(1, 3, 16),
162  MK(2, 0, 16),
163  MK(2, 1, 16),
164  MK(2, 2, 16),
165  MK(2, 3, 16),
166  MK(3, 0, 16),
167  MK(3, 1, 16),
168  MK(3, 2, 16),
169  MK(3, 3, 16),
170  MK(1, 4, 16),
171  MK(2, 4, 16),
172  MKEND
173 };
174 
175 static const IndustryTileTable _tile_table_forest_1[] = {
176  MK(0, 0, 16),
177  MK(1, 0, 16),
178  MK(2, 0, 16),
179  MK(3, 0, 16),
180  MK(4, 0, 16),
181  MK(0, 1, 16),
182  MK(1, 1, 16),
183  MK(2, 1, 16),
184  MK(3, 1, 16),
185  MK(4, 1, 16),
186  MK(0, 2, 16),
187  MK(1, 2, 16),
188  MK(2, 2, 16),
189  MK(3, 2, 16),
190  MK(4, 2, 16),
191  MK(0, 3, 16),
192  MK(1, 3, 16),
193  MK(2, 3, 16),
194  MK(3, 3, 16),
195  MK(4, 3, 16),
196  MK(1, 4, 16),
197  MK(2, 4, 16),
198  MK(3, 4, 16),
199  MKEND
200 };
201 
202 static const IndustryTileTable * const _tile_table_forest[] = {
203  _tile_table_forest_0,
204  _tile_table_forest_1,
205 };
206 
207 static const IndustryTileTable _tile_table_oil_refinery_0[] = {
208  MK(0, 0, 20),
209  MK(0, 1, 21),
210  MK(0, 2, 22),
211  MK(0, 3, 21),
212  MK(1, 0, 20),
213  MK(1, 1, 19),
214  MK(1, 2, 22),
215  MK(1, 3, 20),
216  MK(2, 1, 18),
217  MK(2, 2, 18),
218  MK(2, 3, 18),
219  MK(3, 2, 18),
220  MK(3, 3, 18),
221  MK(2, 0, 23),
222  MK(3, 1, 23),
223  MKEND
224 };
225 
226 static const IndustryTileTable _tile_table_oil_refinery_1[] = {
227  MK(0, 0, 18),
228  MK(0, 1, 18),
229  MK(0, 2, 21),
230  MK(0, 3, 22),
231  MK(0, 4, 20),
232  MK(1, 0, 18),
233  MK(1, 1, 18),
234  MK(1, 2, 19),
235  MK(1, 3, 20),
236  MK(2, 0, 18),
237  MK(2, 1, 18),
238  MK(2, 2, 19),
239  MK(2, 3, 22),
240  MK(1, 4, 23),
241  MK(2, 4, 23),
242  MKEND
243 };
244 
245 static const IndustryTileTable * const _tile_table_oil_refinery[] = {
246  _tile_table_oil_refinery_0,
247  _tile_table_oil_refinery_1,
248 };
249 
250 static const IndustryTileTable _tile_table_oil_rig_0[] = {
251  MK(0, 0, 24),
252  MK(0, 1, 24),
253  MK(0, 2, 25),
254  MK(1, 0, 26),
255  MK(1, 1, 27),
256  MK(1, 2, 28),
257  MK(-4, -4, 255),
258  MK(-4, -3, 255),
259  MK(-4, -2, 255),
260  MK(-4, -1, 255),
261  MK(-4, 0, 255),
262  MK(-4, 1, 255),
263  MK(-4, 2, 255),
264  MK(-4, 3, 255),
265  MK(-4, 4, 255),
266  MK(-4, 5, 255),
267  MK(-4, 6, 255),
268  MK(-3, 6, 255),
269  MK(-2, 6, 255),
270  MK(-1, 6, 255),
271  MK(0, 6, 255),
272  MK(1, 6, 255),
273  MK(2, 6, 255),
274  MK(3, 6, 255),
275  MK(4, 6, 255),
276  MK(5, 6, 255),
277  MK(5, 5, 255),
278  MK(5, 4, 255),
279  MK(5, 3, 255),
280  MK(5, 2, 255),
281  MK(5, 1, 255),
282  MK(5, 0, 255),
283  MK(5, -1, 255),
284  MK(5, -2, 255),
285  MK(5, -3, 255),
286  MK(5, -4, 255),
287  MK(4, -4, 255),
288  MK(3, -4, 255),
289  MK(2, -4, 255),
290  MK(1, -4, 255),
291  MK(0, -4, 255),
292  MK(-1, -4, 255),
293  MK(-2, -4, 255),
294  MK(-3, -4, 255),
295  MK(2, 0, 255),
296  MK(2, -1, 255),
297  MK(1, -1, 255),
298  MK(0, -1, 255),
299  MK(-1, -1, 255),
300  MK(-1, 0, 255),
301  MK(-1, 1, 255),
302  MK(-1, 2, 255),
303  MK(-1, 3, 255),
304  MK(0, 3, 255),
305  MK(1, 3, 255),
306  MK(2, 3, 255),
307  MK(2, 2, 255),
308  MK(2, 1, 255),
309  MKEND
310 };
311 
312 static const IndustryTileTable * const _tile_table_oil_rig[] = {
313  _tile_table_oil_rig_0,
314 };
315 
316 static const IndustryTileTable _tile_table_factory_0[] = {
317  MK(0, 0, 39),
318  MK(0, 1, 40),
319  MK(1, 0, 41),
320  MK(1, 1, 42),
321  MK(0, 2, 39),
322  MK(0, 3, 40),
323  MK(1, 2, 41),
324  MK(1, 3, 42),
325  MK(2, 1, 39),
326  MK(2, 2, 40),
327  MK(3, 1, 41),
328  MK(3, 2, 42),
329  MKEND
330 };
331 
332 static const IndustryTileTable _tile_table_factory_1[] = {
333  MK(0, 0, 39),
334  MK(0, 1, 40),
335  MK(1, 0, 41),
336  MK(1, 1, 42),
337  MK(2, 0, 39),
338  MK(2, 1, 40),
339  MK(3, 0, 41),
340  MK(3, 1, 42),
341  MK(1, 2, 39),
342  MK(1, 3, 40),
343  MK(2, 2, 41),
344  MK(2, 3, 42),
345  MKEND
346 };
347 
348 static const IndustryTileTable * const _tile_table_factory[] = {
349  _tile_table_factory_0,
350  _tile_table_factory_1,
351 };
352 
353 static const IndustryTileTable _tile_table_printing_works_0[] = {
354  MK(0, 0, 43),
355  MK(0, 1, 44),
356  MK(1, 0, 45),
357  MK(1, 1, 46),
358  MK(0, 2, 43),
359  MK(0, 3, 44),
360  MK(1, 2, 45),
361  MK(1, 3, 46),
362  MK(2, 1, 43),
363  MK(2, 2, 44),
364  MK(3, 1, 45),
365  MK(3, 2, 46),
366  MKEND
367 };
368 
369 static const IndustryTileTable _tile_table_printing_works_1[] = {
370  MK(0, 0, 43),
371  MK(0, 1, 44),
372  MK(1, 0, 45),
373  MK(1, 1, 46),
374  MK(2, 0, 43),
375  MK(2, 1, 44),
376  MK(3, 0, 45),
377  MK(3, 1, 46),
378  MK(1, 2, 43),
379  MK(1, 3, 44),
380  MK(2, 2, 45),
381  MK(2, 3, 46),
382  MKEND
383 };
384 
385 static const IndustryTileTable * const _tile_table_printing_works[] = {
386  _tile_table_printing_works_0,
387  _tile_table_printing_works_1,
388 };
389 
390 static const IndustryTileTable _tile_table_steel_mill_0[] = {
391  MK(2, 1, 52),
392  MK(2, 2, 53),
393  MK(3, 1, 54),
394  MK(3, 2, 55),
395  MK(0, 0, 56),
396  MK(1, 0, 57),
397  MK(0, 1, 56),
398  MK(1, 1, 57),
399  MK(0, 2, 56),
400  MK(1, 2, 57),
401  MK(2, 0, 56),
402  MK(3, 0, 57),
403  MKEND
404 };
405 
406 static const IndustryTileTable _tile_table_steel_mill_1[] = {
407  MK(0, 0, 52),
408  MK(0, 1, 53),
409  MK(1, 0, 54),
410  MK(1, 1, 55),
411  MK(2, 0, 52),
412  MK(2, 1, 53),
413  MK(3, 0, 54),
414  MK(3, 1, 55),
415  MK(0, 2, 56),
416  MK(1, 2, 57),
417  MK(2, 2, 56),
418  MK(3, 2, 57),
419  MK(1, 3, 56),
420  MK(2, 3, 57),
421  MKEND
422 };
423 
424 static const IndustryTileTable * const _tile_table_steel_mill[] = {
425  _tile_table_steel_mill_0,
426  _tile_table_steel_mill_1,
427 };
428 
429 static const IndustryTileTable _tile_table_farm_0[] = {
430  MK(1, 0, 33),
431  MK(1, 1, 34),
432  MK(1, 2, 36),
433  MK(0, 0, 37),
434  MK(0, 1, 37),
435  MK(0, 2, 36),
436  MK(2, 0, 35),
437  MK(2, 1, 38),
438  MK(2, 2, 38),
439  MKEND
440 };
441 
442 static const IndustryTileTable _tile_table_farm_1[] = {
443  MK(1, 1, 33),
444  MK(1, 2, 34),
445  MK(0, 0, 35),
446  MK(0, 1, 36),
447  MK(0, 2, 36),
448  MK(0, 3, 35),
449  MK(1, 0, 37),
450  MK(1, 3, 38),
451  MK(2, 0, 37),
452  MK(2, 1, 37),
453  MK(2, 2, 38),
454  MK(2, 3, 38),
455  MKEND
456 };
457 
458 static const IndustryTileTable _tile_table_farm_2[] = {
459  MK(2, 0, 33),
460  MK(2, 1, 34),
461  MK(0, 0, 36),
462  MK(0, 1, 36),
463  MK(0, 2, 37),
464  MK(0, 3, 37),
465  MK(1, 0, 35),
466  MK(1, 1, 38),
467  MK(1, 2, 38),
468  MK(1, 3, 37),
469  MK(2, 2, 37),
470  MK(2, 3, 35),
471  MKEND
472 };
473 
474 static const IndustryTileTable * const _tile_table_farm[] = {
475  _tile_table_farm_0,
476  _tile_table_farm_1,
477  _tile_table_farm_2,
478 };
479 
480 static const IndustryTileTable _tile_table_copper_mine_0[] = {
481  MK(0, 0, 47),
482  MK(0, 1, 49),
483  MK(0, 2, 51),
484  MK(1, 0, 47),
485  MK(1, 1, 49),
486  MK(1, 2, 50),
487  MK(2, 0, 51),
488  MK(2, 1, 51),
489  MKEND
490 };
491 
492 static const IndustryTileTable _tile_table_copper_mine_1[] = {
493  MK(0, 0, 50),
494  MK(0, 1, 47),
495  MK(0, 2, 49),
496  MK(1, 0, 47),
497  MK(1, 1, 49),
498  MK(1, 2, 51),
499  MK(2, 0, 51),
500  MK(2, 1, 47),
501  MK(2, 2, 49),
502  MKEND
503 };
504 
505 static const IndustryTileTable * const _tile_table_copper_mine[] = {
506  _tile_table_copper_mine_0,
507  _tile_table_copper_mine_1,
508 };
509 
510 static const IndustryTileTable _tile_table_oil_well_0[] = {
511  MK(0, 0, 29),
512  MK(1, 0, 29),
513  MK(2, 0, 29),
514  MK(0, 1, 29),
515  MK(0, 2, 29),
516  MKEND
517 };
518 
519 static const IndustryTileTable _tile_table_oil_well_1[] = {
520  MK(0, 0, 29),
521  MK(1, 0, 29),
522  MK(1, 1, 29),
523  MK(2, 2, 29),
524  MK(2, 3, 29),
525  MKEND
526 };
527 
528 static const IndustryTileTable * const _tile_table_oil_well[] = {
529  _tile_table_oil_well_0,
530  _tile_table_oil_well_1,
531 };
532 
533 static const IndustryTileTable _tile_table_bank_0[] = {
534  MK(0, 0, 58),
535  MK(1, 0, 59),
536  MKEND
537 };
538 
539 static const IndustryTileTable * const _tile_table_bank[] = {
540  _tile_table_bank_0,
541 };
542 
543 static const IndustryTileTable _tile_table_food_process_0[] = {
544  MK(0, 0, 60),
545  MK(1, 0, 60),
546  MK(2, 0, 60),
547  MK(0, 1, 60),
548  MK(1, 1, 60),
549  MK(2, 1, 60),
550  MK(0, 2, 61),
551  MK(1, 2, 61),
552  MK(2, 2, 63),
553  MK(0, 3, 62),
554  MK(1, 3, 62),
555  MK(2, 3, 63),
556  MKEND
557 };
558 
559 static const IndustryTileTable _tile_table_food_process_1[] = {
560  MK(0, 0, 61),
561  MK(1, 0, 60),
562  MK(2, 0, 61),
563  MK(3, 0, 61),
564  MK(0, 1, 62),
565  MK(1, 1, 63),
566  MK(2, 1, 63),
567  MK(3, 1, 63),
568  MK(0, 2, 60),
569  MK(1, 2, 60),
570  MK(2, 2, 60),
571  MK(3, 2, 60),
572  MK(0, 3, 62),
573  MK(1, 3, 62),
574  MKEND
575 };
576 
577 static const IndustryTileTable * const _tile_table_food_process[] = {
578  _tile_table_food_process_0,
579  _tile_table_food_process_1,
580 };
581 
582 static const IndustryTileTable _tile_table_paper_mill_0[] = {
583  MK(0, 0, 64),
584  MK(1, 0, 65),
585  MK(2, 0, 66),
586  MK(3, 0, 67),
587  MK(0, 1, 68),
588  MK(1, 1, 69),
589  MK(2, 1, 67),
590  MK(3, 1, 67),
591  MK(0, 2, 66),
592  MK(1, 2, 71),
593  MK(2, 2, 71),
594  MK(3, 2, 70),
595  MKEND
596 };
597 
598 static const IndustryTileTable * const _tile_table_paper_mill[] = {
599  _tile_table_paper_mill_0,
600 };
601 
602 static const IndustryTileTable _tile_table_gold_mine_0[] = {
603  MK(0, 0, 72),
604  MK(0, 1, 73),
605  MK(0, 2, 74),
606  MK(0, 3, 75),
607  MK(1, 0, 76),
608  MK(1, 1, 77),
609  MK(1, 2, 78),
610  MK(1, 3, 79),
611  MK(2, 0, 80),
612  MK(2, 1, 81),
613  MK(2, 2, 82),
614  MK(2, 3, 83),
615  MK(3, 0, 84),
616  MK(3, 1, 85),
617  MK(3, 2, 86),
618  MK(3, 3, 87),
619  MKEND
620 };
621 
622 static const IndustryTileTable * const _tile_table_gold_mine[] = {
623  _tile_table_gold_mine_0,
624 };
625 
626 static const IndustryTileTable _tile_table_bank2_0[] = {
627  MK(0, 0, 89),
628  MK(1, 0, 90),
629  MKEND
630 };
631 
632 static const IndustryTileTable * const _tile_table_bank2[] = {
633  _tile_table_bank2_0,
634 };
635 
636 static const IndustryTileTable _tile_table_diamond_mine_0[] = {
637  MK(0, 0, 91),
638  MK(0, 1, 92),
639  MK(0, 2, 93),
640  MK(1, 0, 94),
641  MK(1, 1, 95),
642  MK(1, 2, 96),
643  MK(2, 0, 97),
644  MK(2, 1, 98),
645  MK(2, 2, 99),
646  MKEND
647 };
648 
649 static const IndustryTileTable * const _tile_table_diamond_mine[] = {
650  _tile_table_diamond_mine_0,
651 };
652 
653 static const IndustryTileTable _tile_table_iron_mine_0[] = {
654  MK(0, 0, 100),
655  MK(0, 1, 101),
656  MK(0, 2, 102),
657  MK(0, 3, 103),
658  MK(1, 0, 104),
659  MK(1, 1, 105),
660  MK(1, 2, 106),
661  MK(1, 3, 107),
662  MK(2, 0, 108),
663  MK(2, 1, 109),
664  MK(2, 2, 110),
665  MK(2, 3, 111),
666  MK(3, 0, 112),
667  MK(3, 1, 113),
668  MK(3, 2, 114),
669  MK(3, 3, 115),
670  MKEND
671 };
672 
673 static const IndustryTileTable * const _tile_table_iron_mine[] = {
674  _tile_table_iron_mine_0,
675 };
676 
677 static const IndustryTileTable _tile_table_fruit_plantation_0[] = {
678  MK(0, 0, 116),
679  MK(0, 1, 116),
680  MK(0, 2, 116),
681  MK(0, 3, 116),
682  MK(1, 0, 116),
683  MK(1, 1, 116),
684  MK(1, 2, 116),
685  MK(1, 3, 116),
686  MK(2, 0, 116),
687  MK(2, 1, 116),
688  MK(2, 2, 116),
689  MK(2, 3, 116),
690  MK(3, 0, 116),
691  MK(3, 1, 116),
692  MK(3, 2, 116),
693  MK(3, 3, 116),
694  MK(4, 0, 116),
695  MK(4, 1, 116),
696  MK(4, 2, 116),
697  MK(4, 3, 116),
698  MKEND
699 };
700 
701 static const IndustryTileTable * const _tile_table_fruit_plantation[] = {
702  _tile_table_fruit_plantation_0,
703 };
704 
705 static const IndustryTileTable _tile_table_rubber_plantation_0[] = {
706  MK(0, 0, 117),
707  MK(0, 1, 117),
708  MK(0, 2, 117),
709  MK(0, 3, 117),
710  MK(1, 0, 117),
711  MK(1, 1, 117),
712  MK(1, 2, 117),
713  MK(1, 3, 117),
714  MK(2, 0, 117),
715  MK(2, 1, 117),
716  MK(2, 2, 117),
717  MK(2, 3, 117),
718  MK(3, 0, 117),
719  MK(3, 1, 117),
720  MK(3, 2, 117),
721  MK(3, 3, 117),
722  MK(4, 0, 117),
723  MK(4, 1, 117),
724  MK(4, 2, 117),
725  MK(4, 3, 117),
726  MKEND
727 };
728 
729 static const IndustryTileTable * const _tile_table_rubber_plantation[] = {
730  _tile_table_rubber_plantation_0,
731 };
732 
733 static const IndustryTileTable _tile_table_water_supply_0[] = {
734  MK(0, 0, 118),
735  MK(0, 1, 119),
736  MK(1, 0, 118),
737  MK(1, 1, 119),
738  MKEND
739 };
740 
741 static const IndustryTileTable * const _tile_table_water_supply[] = {
742  _tile_table_water_supply_0,
743 };
744 
745 static const IndustryTileTable _tile_table_water_tower_0[] = {
746  MK(0, 0, 120),
747  MKEND
748 };
749 
750 static const IndustryTileTable * const _tile_table_water_tower[] = {
751  _tile_table_water_tower_0,
752 };
753 
754 static const IndustryTileTable _tile_table_factory2_0[] = {
755  MK(0, 0, 121),
756  MK(0, 1, 122),
757  MK(1, 0, 123),
758  MK(1, 1, 124),
759  MK(0, 2, 121),
760  MK(0, 3, 122),
761  MK(1, 2, 123),
762  MK(1, 3, 124),
763  MKEND
764 };
765 
766 static const IndustryTileTable _tile_table_factory2_1[] = {
767  MK(0, 0, 121),
768  MK(0, 1, 122),
769  MK(1, 0, 123),
770  MK(1, 1, 124),
771  MK(2, 0, 121),
772  MK(2, 1, 122),
773  MK(3, 0, 123),
774  MK(3, 1, 124),
775  MKEND
776 };
777 
778 static const IndustryTileTable * const _tile_table_factory2[] = {
779  _tile_table_factory2_0,
780  _tile_table_factory2_1,
781 };
782 
783 static const IndustryTileTable _tile_table_farm2_0[] = {
784  MK(1, 0, 33),
785  MK(1, 1, 34),
786  MK(1, 2, 36),
787  MK(0, 0, 37),
788  MK(0, 1, 37),
789  MK(0, 2, 36),
790  MK(2, 0, 35),
791  MK(2, 1, 38),
792  MK(2, 2, 38),
793  MKEND
794 };
795 
796 static const IndustryTileTable _tile_table_farm2_1[] = {
797  MK(1, 1, 33),
798  MK(1, 2, 34),
799  MK(0, 0, 35),
800  MK(0, 1, 36),
801  MK(0, 2, 36),
802  MK(0, 3, 35),
803  MK(1, 0, 37),
804  MK(1, 3, 38),
805  MK(2, 0, 37),
806  MK(2, 1, 37),
807  MK(2, 2, 38),
808  MK(2, 3, 38),
809  MKEND
810 };
811 
812 static const IndustryTileTable _tile_table_farm2_2[] = {
813  MK(2, 0, 33),
814  MK(2, 1, 34),
815  MK(0, 0, 36),
816  MK(0, 1, 36),
817  MK(0, 2, 37),
818  MK(0, 3, 37),
819  MK(1, 0, 35),
820  MK(1, 1, 38),
821  MK(1, 2, 38),
822  MK(1, 3, 37),
823  MK(2, 2, 37),
824  MK(2, 3, 35),
825  MKEND
826 };
827 
828 static const IndustryTileTable * const _tile_table_farm2[] = {
829  _tile_table_farm2_0,
830  _tile_table_farm2_1,
831  _tile_table_farm2_2,
832 };
833 
834 static const IndustryTileTable _tile_table_lumber_mill_0[] = {
835  MK(0, 0, 125),
836  MK(0, 1, 126),
837  MK(1, 0, 127),
838  MK(1, 1, 128),
839  MKEND
840 };
841 
842 static const IndustryTileTable * const _tile_table_lumber_mill[] = {
843  _tile_table_lumber_mill_0,
844 };
845 
846 static const IndustryTileTable _tile_table_cotton_candy_0[] = {
847  MK(0, 0, 129),
848  MK(0, 1, 129),
849  MK(0, 2, 129),
850  MK(0, 3, 129),
851  MK(1, 0, 129),
852  MK(1, 1, 129),
853  MK(1, 2, 129),
854  MK(1, 3, 129),
855  MK(2, 0, 129),
856  MK(2, 1, 129),
857  MK(2, 2, 129),
858  MK(2, 3, 129),
859  MK(3, 0, 129),
860  MK(3, 1, 129),
861  MK(3, 2, 129),
862  MK(3, 3, 129),
863  MK(1, 4, 129),
864  MK(2, 4, 129),
865  MKEND
866 };
867 
868 static const IndustryTileTable _tile_table_cotton_candy_1[] = {
869  MK(0, 0, 129),
870  MK(1, 0, 129),
871  MK(2, 0, 129),
872  MK(3, 0, 129),
873  MK(4, 0, 129),
874  MK(0, 1, 129),
875  MK(1, 1, 129),
876  MK(2, 1, 129),
877  MK(3, 1, 129),
878  MK(4, 1, 129),
879  MK(0, 2, 129),
880  MK(1, 2, 129),
881  MK(2, 2, 129),
882  MK(3, 2, 129),
883  MK(4, 2, 129),
884  MK(0, 3, 129),
885  MK(1, 3, 129),
886  MK(2, 3, 129),
887  MK(3, 3, 129),
888  MK(4, 3, 129),
889  MK(1, 4, 129),
890  MK(2, 4, 129),
891  MK(3, 4, 129),
892  MKEND
893 };
894 
895 static const IndustryTileTable * const _tile_table_cotton_candy[] = {
896  _tile_table_cotton_candy_0,
897  _tile_table_cotton_candy_1,
898 };
899 
900 static const IndustryTileTable _tile_table_candy_factory_0[] = {
901  MK(0, 0, 131),
902  MK(0, 1, 132),
903  MK(1, 0, 133),
904  MK(1, 1, 134),
905  MK(0, 2, 131),
906  MK(0, 3, 132),
907  MK(1, 2, 133),
908  MK(1, 3, 134),
909  MK(2, 1, 131),
910  MK(2, 2, 132),
911  MK(3, 1, 133),
912  MK(3, 2, 134),
913  MKEND
914 };
915 
916 static const IndustryTileTable _tile_table_candy_factory_1[] = {
917  MK(0, 0, 131),
918  MK(0, 1, 132),
919  MK(1, 0, 133),
920  MK(1, 1, 134),
921  MK(2, 0, 131),
922  MK(2, 1, 132),
923  MK(3, 0, 133),
924  MK(3, 1, 134),
925  MK(1, 2, 131),
926  MK(1, 3, 132),
927  MK(2, 2, 133),
928  MK(2, 3, 134),
929  MKEND
930 };
931 
932 static const IndustryTileTable * const _tile_table_candy_factory[] = {
933  _tile_table_candy_factory_0,
934  _tile_table_candy_factory_1,
935 };
936 
937 static const IndustryTileTable _tile_table_battery_farm_0[] = {
938  MK(0, 0, 135),
939  MK(0, 1, 135),
940  MK(0, 2, 135),
941  MK(0, 3, 135),
942  MK(1, 0, 135),
943  MK(1, 1, 135),
944  MK(1, 2, 135),
945  MK(1, 3, 135),
946  MK(2, 0, 135),
947  MK(2, 1, 135),
948  MK(2, 2, 135),
949  MK(2, 3, 135),
950  MK(3, 0, 135),
951  MK(3, 1, 135),
952  MK(3, 2, 135),
953  MK(3, 3, 135),
954  MK(4, 0, 135),
955  MK(4, 1, 135),
956  MK(4, 2, 135),
957  MK(4, 3, 135),
958  MKEND
959 };
960 
961 static const IndustryTileTable * const _tile_table_battery_farm[] = {
962  _tile_table_battery_farm_0,
963 };
964 
965 static const IndustryTileTable _tile_table_cola_wells_0[] = {
966  MK(0, 0, 137),
967  MK(0, 1, 137),
968  MK(0, 2, 137),
969  MK(1, 0, 137),
970  MK(1, 1, 137),
971  MK(1, 2, 137),
972  MK(2, 1, 137),
973  MK(2, 2, 137),
974  MKEND
975 };
976 
977 static const IndustryTileTable _tile_table_cola_wells_1[] = {
978  MK(0, 1, 137),
979  MK(0, 2, 137),
980  MK(0, 3, 137),
981  MK(1, 0, 137),
982  MK(1, 1, 137),
983  MK(1, 2, 137),
984  MK(2, 1, 137),
985  MKEND
986 };
987 
988 static const IndustryTileTable * const _tile_table_cola_wells[] = {
989  _tile_table_cola_wells_0,
990  _tile_table_cola_wells_1,
991 };
992 
993 static const IndustryTileTable _tile_table_toy_shop_0[] = {
994  MK(0, 0, 138),
995  MK(0, 1, 139),
996  MK(1, 0, 140),
997  MK(1, 1, 141),
998  MKEND
999 };
1000 
1001 static const IndustryTileTable * const _tile_table_toy_shop[] = {
1002  _tile_table_toy_shop_0,
1003 };
1004 
1005 static const IndustryTileTable _tile_table_toy_factory_0[] = {
1006  MK(0, 0, 147),
1007  MK(0, 1, 142),
1008  MK(1, 0, 147),
1009  MK(1, 1, 143),
1010  MK(2, 0, 147),
1011  MK(2, 1, 144),
1012  MK(3, 0, 146),
1013  MK(3, 1, 145),
1014  MKEND
1015 };
1016 
1017 static const IndustryTileTable * const _tile_table_toy_factory[] = {
1018  _tile_table_toy_factory_0,
1019 };
1020 
1021 static const IndustryTileTable _tile_table_plastic_fountain_0[] = {
1022  MK(0, 0, 148),
1023  MK(0, 1, 151),
1024  MK(0, 2, 154),
1025  MKEND
1026 };
1027 
1028 static const IndustryTileTable _tile_table_plastic_fountain_1[] = {
1029  MK(0, 0, 148),
1030  MK(1, 0, 151),
1031  MK(2, 0, 154),
1032  MKEND
1033 };
1034 
1035 static const IndustryTileTable * const _tile_table_plastic_fountain[] = {
1036  _tile_table_plastic_fountain_0,
1037  _tile_table_plastic_fountain_1,
1038 };
1039 
1040 static const IndustryTileTable _tile_table_fizzy_drink_0[] = {
1041  MK(0, 0, 156),
1042  MK(0, 1, 157),
1043  MK(1, 0, 158),
1044  MK(1, 1, 159),
1045  MKEND
1046 };
1047 
1048 static const IndustryTileTable * const _tile_table_fizzy_drink[] = {
1049  _tile_table_fizzy_drink_0,
1050 };
1051 
1052 static const IndustryTileTable _tile_table_bubble_generator_0[] = {
1053  MK(0, 0, 163),
1054  MK(0, 1, 160),
1055  MK(1, 0, 163),
1056  MK(1, 1, 161),
1057  MK(2, 0, 163),
1058  MK(2, 1, 162),
1059  MK(0, 2, 163),
1060  MK(0, 3, 160),
1061  MK(1, 2, 163),
1062  MK(1, 3, 161),
1063  MK(2, 2, 163),
1064  MK(2, 3, 162),
1065  MKEND
1066 };
1067 
1068 static const IndustryTileTable * const _tile_table_bubble_generator[] = {
1069  _tile_table_bubble_generator_0,
1070 };
1071 
1072 static const IndustryTileTable _tile_table_toffee_quarry_0[] = {
1073  MK(0, 0, 164),
1074  MK(1, 0, 165),
1075  MK(2, 0, 166),
1076  MKEND
1077 };
1078 
1079 static const IndustryTileTable * const _tile_table_toffee_quarry[] = {
1080  _tile_table_toffee_quarry_0,
1081 };
1082 
1083 static const IndustryTileTable _tile_table_sugar_mine_0[] = {
1084  MK(0, 0, 167),
1085  MK(0, 1, 168),
1086  MK(1, 0, 169),
1087  MK(1, 1, 170),
1088  MK(2, 0, 171),
1089  MK(2, 1, 172),
1090  MK(3, 0, 173),
1091  MK(3, 1, 174),
1092  MKEND
1093 };
1094 
1095 static const IndustryTileTable * const _tile_table_sugar_mine[] = {
1096  _tile_table_sugar_mine_0,
1097 };
1098 
1099 #undef MK
1100 #undef MKEND
1101 
1103 static const uint8 _sawmill_sounds[] = { SND_28_SAWMILL };
1104 
1106 static const uint8 _factory_sounds[] = { SND_03_FACTORY_WHISTLE };
1107 
1109 static const uint8 _farm_sounds[] = { SND_24_SHEEP, SND_25_COW, SND_26_HORSE };
1110 
1112 static const uint8 _plastic_mine_sounds[] = { SND_33_PLASTIC_MINE };
1113 
1114 enum IndustryTypes {
1115  IT_COAL_MINE = 0,
1116  IT_POWER_STATION = 1,
1117  IT_SAWMILL = 2,
1118  IT_FOREST = 3,
1119  IT_OIL_REFINERY = 4,
1120  IT_OIL_RIG = 5,
1121  IT_FACTORY = 6,
1122  IT_PRINTING_WORKS = 7,
1123  IT_STEEL_MILL = 8,
1124  IT_FARM = 9,
1125  IT_COPPER_MINE = 10,
1126  IT_OIL_WELL = 11,
1127  IT_BANK_TEMP = 12,
1128  IT_FOOD_PROCESS = 13,
1129  IT_PAPER_MILL = 14,
1130  IT_GOLD_MINE = 15,
1131  IT_BANK_TROPIC_ARCTIC = 16,
1132  IT_DIAMOND_MINE = 17,
1133  IT_IRON_MINE = 18,
1134  IT_FRUIT_PLANTATION = 19,
1135  IT_RUBBER_PLANTATION = 20,
1136  IT_WATER_SUPPLY = 21,
1137  IT_WATER_TOWER = 22,
1138  IT_FACTORY_2 = 23,
1139  IT_FARM_2 = 24,
1140  IT_LUMBER_MILL = 25,
1141  IT_COTTON_CANDY = 26,
1142  IT_CANDY_FACTORY = 27,
1143  IT_BATTERY_FARM = 28,
1144  IT_COLA_WELLS = 29,
1145  IT_TOY_SHOP = 30,
1146  IT_TOY_FACTORY = 31,
1147  IT_PLASTIC_FOUNTAINS = 32,
1148  IT_FIZZY_DRINK_FACTORY = 33,
1149  IT_BUBBLE_GENERATOR = 34,
1150  IT_TOFFEE_QUARRY = 35,
1151  IT_SUGAR_MINE = 36,
1152  IT_END,
1153 };
1154 
1196 #define MI(tbl, sndc, snd, d, pc, ai1, ai2, ai3, ai4, ag1, ag2, ag3, ag4, col, \
1197  c1, c2, c3, proc, p1, r1, p2, r2, m, a1, im1, a2, im2, a3, im3, pr, clim, bev, in, intx, s1, s2, s3) \
1198  {tbl, lengthof(tbl), d, 0, pc, {c1, c2, c3}, proc, \
1199  {p1, p2, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID}, \
1200  {r1, r2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, m, \
1201  {a1, a2, a3, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID}, \
1202  {{im1, 0}, {im2, 0}, {im3, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}, \
1203  pr, clim, bev, col, in, intx, s1, s2, s3, STR_UNDEFINED, {ai1, ai2, ai3, ai4}, {ag1, ag2, ag3, ag4}, \
1204  sndc, snd, 0, 0, true, GRFFileProps(INVALID_INDUSTRYTYPE)}
1205  /* Format:
1206  tile table count and sounds table
1207  cost multiplier appear chances(4ingame, 4random) map colour
1208  cannot be close to these industries (3 times) check proc
1209  (produced cargo + rate) (twice) minimum cargo moved to station
1210  3 accepted cargo and their corresponding input multiplier
1211  industry life climate availability
1212  industry behaviours
1213  industry name building text
1214  messages : Closure production up production down */
1215 static const IndustrySpec _origin_industry_specs[NEW_INDUSTRYOFFSET] = {
1216  MI(_tile_table_coal_mine, 0, NULL,
1217  210, 0xB3333333, 2, 3, 0, 0, 8, 8, 0, 0, 1,
1218  IT_POWER_STATION, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1219  CT_COAL, 15, CT_INVALID, 0, 5,
1220  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1221  INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TEMPERATE | 1 << LT_ARCTIC,
1223  STR_INDUSTRY_NAME_COAL_MINE, STR_NEWS_INDUSTRY_CONSTRUCTION,
1224  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_COAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1225 
1226  MI(_tile_table_power_station, 0, NULL,
1227  240, 0xFFFFFFFF, 2, 2, 0, 0, 5, 5, 0, 0, 184,
1228  IT_COAL_MINE, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1229  CT_INVALID, 0, CT_INVALID, 0, 5,
1230  CT_COAL, 256, CT_INVALID, 256, CT_INVALID, 256,
1231  INDUSTRYLIFE_BLACK_HOLE, 1 << LT_TEMPERATE | 1 << LT_ARCTIC,
1232  INDUSTRYBEH_NONE,
1233  STR_INDUSTRY_NAME_POWER_STATION, STR_NEWS_INDUSTRY_CONSTRUCTION,
1234  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1235 
1236  MI(_tile_table_sawmill, 1, _sawmill_sounds,
1237  224, 0xFFFFFFFF, 2, 0, 0, 0, 5, 0, 0, 0, 194,
1238  IT_FOREST, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1239  CT_GOODS, 0, CT_INVALID, 0, 5,
1240  CT_WOOD, 256, CT_INVALID, 256, CT_INVALID, 256,
1241  INDUSTRYLIFE_PROCESSING, 1 << LT_TEMPERATE,
1242  INDUSTRYBEH_NONE,
1243  STR_INDUSTRY_NAME_SAWMILL, STR_NEWS_INDUSTRY_CONSTRUCTION,
1244  STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1245 
1246  MI(_tile_table_forest, 0, NULL,
1247  200, 0xBFFFFFFF, 3, 4, 0, 0, 5, 5, 0, 0, 86,
1248  IT_SAWMILL, IT_PAPER_MILL, IT_INVALID, CHECK_FOREST,
1249  CT_WOOD, 13, CT_INVALID, 0, 30,
1250  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1251  INDUSTRYLIFE_ORGANIC, 1 << LT_TEMPERATE | 1 << LT_ARCTIC,
1252  INDUSTRYBEH_NONE,
1253  STR_INDUSTRY_NAME_FOREST, STR_NEWS_INDUSTRY_PLANTED,
1254  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM),
1255 
1256  MI(_tile_table_oil_refinery, 0, NULL,
1257  244, 0xFFFFFFFF, 2, 2, 2, 0, 4, 4, 4, 0, 191,
1258  IT_OIL_RIG, IT_INVALID, IT_INVALID, CHECK_REFINERY,
1259  CT_GOODS, 0, CT_INVALID, 0, 5,
1260  CT_OIL, 256, CT_INVALID, 256, CT_INVALID, 256,
1261  INDUSTRYLIFE_PROCESSING, 1 << LT_TEMPERATE | 1 << LT_ARCTIC | 1 << LT_TROPIC,
1263  STR_INDUSTRY_NAME_OIL_REFINERY, STR_NEWS_INDUSTRY_CONSTRUCTION,
1264  STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1265 
1266  MI(_tile_table_oil_rig, 0, NULL,
1267  240, 0x99999999, 6, 0, 0, 0, 0, 0, 0, 0, 152,
1268  IT_OIL_REFINERY, IT_INVALID, IT_INVALID, CHECK_OIL_RIG,
1269  CT_OIL, 15, CT_PASSENGERS, 2, 5,
1270  CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, 0,
1271  INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TEMPERATE,
1273  STR_INDUSTRY_NAME_OIL_RIG, STR_NEWS_INDUSTRY_CONSTRUCTION,
1274  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_OIL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1275 
1276  MI(_tile_table_factory, 1, _factory_sounds,
1277  208, 0xFFFFFFFF, 2, 0, 0, 0, 5, 0, 0, 0, 174,
1278  IT_FARM, IT_STEEL_MILL, IT_INVALID, CHECK_NOTHING,
1279  CT_GOODS, 0, CT_INVALID, 0, 5,
1280  CT_LIVESTOCK, 256, CT_GRAIN, 256, CT_STEEL, 256,
1281  INDUSTRYLIFE_PROCESSING, 1 << LT_TEMPERATE,
1283  STR_INDUSTRY_NAME_FACTORY, STR_NEWS_INDUSTRY_CONSTRUCTION,
1284  STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1285 
1286  MI(_tile_table_printing_works, 1, _factory_sounds,
1287  208, 0xFFFFFFFF, 0, 2, 0, 0, 0, 5, 0, 0, 174,
1288  IT_PAPER_MILL, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1289  CT_GOODS, 0, CT_INVALID, 0, 5,
1290  CT_PAPER, 256, CT_INVALID, 256, CT_INVALID, 256,
1291  INDUSTRYLIFE_PROCESSING, 1 << LT_ARCTIC,
1292  INDUSTRYBEH_NONE,
1293  STR_INDUSTRY_NAME_PRINTING_WORKS, STR_NEWS_INDUSTRY_CONSTRUCTION,
1294  STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1295 
1296  MI(_tile_table_steel_mill, 0, NULL,
1297  215, 0xFFFFFFFF, 2, 0, 0, 0, 5, 0, 0, 0, 10,
1298  IT_IRON_MINE, IT_FACTORY, IT_INVALID, CHECK_NOTHING,
1299  CT_STEEL, 0, CT_INVALID, 0, 5,
1300  CT_IRON_ORE, 256, CT_INVALID, 256, CT_INVALID, 256,
1301  INDUSTRYLIFE_PROCESSING, 1 << LT_TEMPERATE,
1302  INDUSTRYBEH_NONE,
1303  STR_INDUSTRY_NAME_STEEL_MILL, STR_NEWS_INDUSTRY_CONSTRUCTION,
1304  STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1305 
1306  MI(_tile_table_farm, 3, _farm_sounds,
1307  250, 0xD9999999, 2, 4, 0, 0, 9, 9, 0, 0, 48,
1308  IT_FACTORY, IT_FOOD_PROCESS, IT_INVALID, CHECK_FARM,
1309  CT_GRAIN, 10, CT_LIVESTOCK, 10, 5,
1310  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1311  INDUSTRYLIFE_ORGANIC, 1 << LT_TEMPERATE | 1 << LT_ARCTIC,
1313  STR_INDUSTRY_NAME_FARM, STR_NEWS_INDUSTRY_CONSTRUCTION,
1314  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM),
1315 
1316  MI(_tile_table_copper_mine, 0, NULL,
1317  205, 0xB3333333, 0, 0, 3, 0, 0, 0, 4, 0, 10,
1318  IT_FACTORY_2, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1319  CT_COPPER_ORE, 10, CT_INVALID, 0, 5,
1320  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1321  INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TROPIC,
1322  INDUSTRYBEH_NONE,
1323  STR_INDUSTRY_NAME_COPPER_ORE_MINE, STR_NEWS_INDUSTRY_CONSTRUCTION,
1324  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1325 
1326  MI(_tile_table_oil_well, 0, NULL,
1327  220, 0x99999999, 0, 5, 3, 0, 4, 5, 5, 0, 152,
1328  IT_OIL_REFINERY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1329  CT_OIL, 12, CT_INVALID, 0, 5,
1330  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1331  INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TEMPERATE | 1 << LT_ARCTIC | 1 << LT_TROPIC,
1333  STR_INDUSTRY_NAME_OIL_WELLS, STR_NEWS_INDUSTRY_CONSTRUCTION,
1334  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_OIL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1335 
1336  MI(_tile_table_bank, 0, NULL,
1337  255, 0xA6666666, 7, 0, 0, 0, 0, 0, 0, 0, 15,
1338  IT_BANK_TEMP, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1339  CT_VALUABLES, 6, CT_INVALID, 0, 5,
1340  CT_VALUABLES, 0, CT_INVALID, 0, CT_INVALID, 0,
1341  INDUSTRYLIFE_BLACK_HOLE, 1 << LT_TEMPERATE,
1343  STR_INDUSTRY_NAME_BANK, STR_NEWS_INDUSTRY_CONSTRUCTION,
1344  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1345 
1346  MI(_tile_table_food_process, 0, NULL,
1347  206, 0xFFFFFFFF, 0, 2, 2, 0, 0, 3, 4, 0, 55,
1348  IT_FRUIT_PLANTATION, IT_FARM, IT_FARM_2, CHECK_NOTHING,
1349  CT_FOOD, 0, CT_INVALID, 0, 5,
1350  CT_FRUIT, 256, CT_MAIZE, 256, CT_INVALID, 256,
1351  INDUSTRYLIFE_PROCESSING, 1 << LT_ARCTIC | 1 << LT_TROPIC,
1352  INDUSTRYBEH_NONE,
1353  STR_INDUSTRY_NAME_FOOD_PROCESSING_PLANT, STR_NEWS_INDUSTRY_CONSTRUCTION,
1354  STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1355 
1356  MI(_tile_table_paper_mill, 1, _sawmill_sounds,
1357  227, 0xFFFFFFFF, 0, 2, 0, 0, 0, 5, 0, 0, 10,
1358  IT_FOREST, IT_PRINTING_WORKS, IT_INVALID, CHECK_NOTHING,
1359  CT_PAPER, 0, CT_INVALID, 0, 5,
1360  CT_WOOD, 256, CT_INVALID, 256, CT_INVALID, 256,
1361  INDUSTRYLIFE_PROCESSING, 1 << LT_ARCTIC,
1362  INDUSTRYBEH_NONE,
1363  STR_INDUSTRY_NAME_PAPER_MILL, STR_NEWS_INDUSTRY_CONSTRUCTION,
1364  STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1365 
1366  MI(_tile_table_gold_mine, 0, NULL,
1367  208, 0x99999999, 0, 3, 0, 0, 0, 4, 0, 0, 194,
1368  IT_BANK_TROPIC_ARCTIC, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1369  CT_GOLD, 7, CT_INVALID, 0, 5,
1370  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1371  INDUSTRYLIFE_EXTRACTIVE, 1 << LT_ARCTIC,
1372  INDUSTRYBEH_NONE,
1373  STR_INDUSTRY_NAME_GOLD_MINE, STR_NEWS_INDUSTRY_CONSTRUCTION,
1374  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1375 
1376  MI(_tile_table_bank2, 0, NULL,
1377  151, 0xA6666666, 0, 3, 3, 0, 0, 6, 5, 0, 15,
1378  IT_GOLD_MINE, IT_DIAMOND_MINE, IT_INVALID, CHECK_NOTHING,
1379  CT_INVALID, 0, CT_INVALID, 0, 5,
1380  CT_GOLD, 256, CT_INVALID, 256, CT_INVALID, 256,
1381  INDUSTRYLIFE_BLACK_HOLE, 1 << LT_ARCTIC | 1 << LT_TROPIC,
1383  STR_INDUSTRY_NAME_BANK_TROPIC_ARCTIC, STR_NEWS_INDUSTRY_CONSTRUCTION,
1384  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1385 
1386  MI(_tile_table_diamond_mine, 0, NULL,
1387  213, 0x99999999, 0, 0, 3, 0, 0, 0, 4, 0, 184,
1388  IT_BANK_TROPIC_ARCTIC, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1389  CT_DIAMONDS, 7, CT_INVALID, 0, 5,
1390  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1391  INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TROPIC,
1392  INDUSTRYBEH_NONE,
1393  STR_INDUSTRY_NAME_DIAMOND_MINE, STR_NEWS_INDUSTRY_CONSTRUCTION,
1394  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1395 
1396  MI(_tile_table_iron_mine, 0, NULL,
1397  220, 0xB3333333, 2, 0, 0, 0, 5, 0, 0, 0, 55,
1398  IT_STEEL_MILL, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1399  CT_IRON_ORE, 10, CT_INVALID, 0, 5,
1400  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1401  INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TEMPERATE,
1402  INDUSTRYBEH_NONE,
1403  STR_INDUSTRY_NAME_IRON_ORE_MINE, STR_NEWS_INDUSTRY_CONSTRUCTION,
1404  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1405 
1406  MI(_tile_table_fruit_plantation, 0, NULL,
1407  225, 0xBFFFFFFF, 0, 0, 2, 0, 0, 0, 4, 0, 86,
1408  IT_FOOD_PROCESS, IT_INVALID, IT_INVALID, CHECK_PLANTATION,
1409  CT_FRUIT, 10, CT_INVALID, 0, 15,
1410  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1411  INDUSTRYLIFE_ORGANIC, 1 << LT_TROPIC,
1412  INDUSTRYBEH_NONE,
1413  STR_INDUSTRY_NAME_FRUIT_PLANTATION, STR_NEWS_INDUSTRY_PLANTED,
1414  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM),
1415 
1416  MI(_tile_table_rubber_plantation, 0, NULL,
1417  218, 0xBFFFFFFF, 0, 0, 3, 0, 0, 0, 4, 0, 39,
1418  IT_FACTORY_2, IT_INVALID, IT_INVALID, CHECK_PLANTATION,
1419  CT_RUBBER, 10, CT_INVALID, 0, 15,
1420  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1421  INDUSTRYLIFE_ORGANIC, 1 << LT_TROPIC,
1422  INDUSTRYBEH_NONE,
1423  STR_INDUSTRY_NAME_RUBBER_PLANTATION, STR_NEWS_INDUSTRY_PLANTED,
1424  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM),
1425 
1426  MI(_tile_table_water_supply, 0, NULL,
1427  199, 0xB3333333, 0, 0, 3, 0, 0, 0, 4, 0, 37,
1428  IT_WATER_TOWER, IT_INVALID, IT_INVALID, CHECK_WATER,
1429  CT_WATER, 12, CT_INVALID, 0, 5,
1430  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1431  INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TROPIC,
1432  INDUSTRYBEH_NONE,
1433  STR_INDUSTRY_NAME_WATER_SUPPLY, STR_NEWS_INDUSTRY_CONSTRUCTION,
1434  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1435 
1436  MI(_tile_table_water_tower, 0, NULL,
1437  115, 0xFFFFFFFF, 0, 0, 4, 0, 0, 0, 8, 0, 208,
1438  IT_WATER_SUPPLY, IT_INVALID, IT_INVALID, CHECK_WATER,
1439  CT_INVALID, 0, CT_INVALID, 0, 5,
1440  CT_WATER, 256, CT_INVALID, 256, CT_INVALID, 256,
1441  INDUSTRYLIFE_BLACK_HOLE, 1 << LT_TROPIC,
1443  STR_INDUSTRY_NAME_WATER_TOWER, STR_NEWS_INDUSTRY_CONSTRUCTION,
1444  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1445 
1446  MI(_tile_table_factory2, 1, _factory_sounds,
1447  208, 0xFFFFFFFF, 0, 0, 2, 0, 0, 0, 4, 0, 174,
1448  IT_RUBBER_PLANTATION, IT_COPPER_MINE, IT_LUMBER_MILL, CHECK_PLANTATION,
1449  CT_GOODS, 0, CT_INVALID, 0, 5,
1450  CT_RUBBER, 256, CT_COPPER_ORE, 256, CT_WOOD, 256,
1451  INDUSTRYLIFE_PROCESSING, 1 << LT_TROPIC,
1452  INDUSTRYBEH_NONE,
1453  STR_INDUSTRY_NAME_FACTORY_2, STR_NEWS_INDUSTRY_CONSTRUCTION,
1454  STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1455 
1456  MI(_tile_table_farm2, 0, NULL,
1457  250, 0xD9999999, 0, 0, 1, 0, 0, 0, 2, 0, 48,
1458  IT_FOOD_PROCESS, IT_INVALID, IT_INVALID, CHECK_PLANTATION,
1459  CT_MAIZE, 11, CT_INVALID, 0, 5,
1460  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1461  INDUSTRYLIFE_ORGANIC, 1 << LT_TROPIC,
1463  STR_INDUSTRY_NAME_FARM_2, STR_NEWS_INDUSTRY_CONSTRUCTION,
1464  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM),
1465 
1466  MI(_tile_table_lumber_mill, 0, NULL,
1467  135, 0xFFFFFFFF, 0, 0, 0, 0, 0, 0, 0, 0, 194,
1468  IT_FACTORY_2, IT_INVALID, IT_INVALID, CHECK_LUMBERMILL,
1469  CT_WOOD, 0, CT_INVALID, 0, 5,
1470  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1471  INDUSTRYLIFE_PROCESSING, 1 << LT_TROPIC,
1473  STR_INDUSTRY_NAME_LUMBER_MILL, STR_NEWS_INDUSTRY_CONSTRUCTION,
1474  STR_NEWS_INDUSTRY_CLOSURE_LACK_OF_TREES, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1475 
1476  MI(_tile_table_cotton_candy, 0, NULL,
1477  195, 0xBFFFFFFF, 0, 0, 0, 3, 0, 0, 0, 5, 48,
1478  IT_CANDY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1479  CT_COTTON_CANDY, 13, CT_INVALID, 0, 30,
1480  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1481  INDUSTRYLIFE_ORGANIC, 1 << LT_TOYLAND,
1482  INDUSTRYBEH_NONE,
1483  STR_INDUSTRY_NAME_COTTON_CANDY_FOREST, STR_NEWS_INDUSTRY_PLANTED,
1484  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1485 
1486  MI(_tile_table_candy_factory, 0, NULL,
1487  206, 0xFFFFFFFF, 0, 0, 0, 3, 0, 0, 0, 5, 174,
1488  IT_COTTON_CANDY, IT_TOFFEE_QUARRY, IT_SUGAR_MINE, CHECK_NOTHING,
1489  CT_CANDY, 0, CT_INVALID, 0, 5,
1490  CT_SUGAR, 256, CT_TOFFEE, 256, CT_COTTON_CANDY, 256,
1491  INDUSTRYLIFE_PROCESSING, 1 << LT_TOYLAND,
1492  INDUSTRYBEH_NONE,
1493  STR_INDUSTRY_NAME_CANDY_FACTORY, STR_NEWS_INDUSTRY_CONSTRUCTION,
1494  STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1495 
1496  MI(_tile_table_battery_farm, 0, NULL,
1497  187, 0xB3333333, 0, 0, 0, 3, 0, 0, 0, 4, 39,
1498  IT_TOY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1499  CT_BATTERIES, 11, CT_INVALID, 0, 30,
1500  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1501  INDUSTRYLIFE_ORGANIC, 1 << LT_TOYLAND,
1502  INDUSTRYBEH_NONE,
1503  STR_INDUSTRY_NAME_BATTERY_FARM, STR_NEWS_INDUSTRY_CONSTRUCTION,
1504  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM),
1505 
1506  MI(_tile_table_cola_wells, 0, NULL,
1507  193, 0x99999999, 0, 0, 0, 3, 0, 0, 0, 5, 55,
1508  IT_FIZZY_DRINK_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1509  CT_COLA, 12, CT_INVALID, 0, 5,
1510  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1511  INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TOYLAND,
1512  INDUSTRYBEH_NONE,
1513  STR_INDUSTRY_NAME_COLA_WELLS, STR_NEWS_INDUSTRY_CONSTRUCTION,
1514  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1515 
1516  MI(_tile_table_toy_shop, 0, NULL,
1517  133, 0xFFFFFFFF, 0, 0, 0, 3, 0, 0, 0, 4, 208,
1518  IT_TOY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1519  CT_INVALID, 0, CT_INVALID, 0, 5,
1520  CT_TOYS, 256, CT_INVALID, 256, CT_INVALID, 256,
1521  INDUSTRYLIFE_BLACK_HOLE, 1 << LT_TOYLAND,
1523  STR_INDUSTRY_NAME_TOY_SHOP, STR_NEWS_INDUSTRY_CONSTRUCTION,
1524  STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1525 
1526  MI(_tile_table_toy_factory, 0, NULL,
1527  163, 0xFFFFFFFF, 0, 0, 0, 3, 0, 0, 0, 5, 10,
1528  IT_PLASTIC_FOUNTAINS, IT_BATTERY_FARM, IT_TOY_SHOP, CHECK_NOTHING,
1529  CT_TOYS, 0, CT_INVALID, 0, 5,
1530  CT_PLASTIC, 256, CT_BATTERIES, 256, CT_INVALID, 256,
1531  INDUSTRYLIFE_PROCESSING, 1 << LT_TOYLAND,
1532  INDUSTRYBEH_NONE,
1533  STR_INDUSTRY_NAME_TOY_FACTORY, STR_NEWS_INDUSTRY_CONSTRUCTION,
1534  STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1535 
1536  MI(_tile_table_plastic_fountain, 1, _plastic_mine_sounds,
1537  192, 0xA6666666, 0, 0, 0, 3, 0, 0, 0, 5, 37,
1538  IT_TOY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1539  CT_PLASTIC, 14, CT_INVALID, 0, 5,
1540  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1541  INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TOYLAND,
1542  INDUSTRYBEH_NONE,
1543  STR_INDUSTRY_NAME_PLASTIC_FOUNTAINS, STR_NEWS_INDUSTRY_CONSTRUCTION,
1544  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1545 
1546  MI(_tile_table_fizzy_drink, 0, NULL,
1547  177, 0xFFFFFFFF, 0, 0, 0, 3, 0, 0, 0, 4, 184,
1548  IT_COLA_WELLS, IT_BUBBLE_GENERATOR, IT_INVALID, CHECK_NOTHING,
1549  CT_FIZZY_DRINKS, 0, CT_INVALID, 0, 5,
1550  CT_COLA, 256, CT_BUBBLES, 256, CT_INVALID, 256,
1551  INDUSTRYLIFE_PROCESSING, 1 << LT_TOYLAND,
1552  INDUSTRYBEH_NONE,
1553  STR_INDUSTRY_NAME_FIZZY_DRINK_FACTORY, STR_NEWS_INDUSTRY_CONSTRUCTION,
1554  STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1555 
1556  MI(_tile_table_bubble_generator, 0, NULL,
1557  203, 0xB3333333, 0, 0, 0, 3, 0, 0, 0, 5, 152,
1558  IT_FIZZY_DRINK_FACTORY, IT_INVALID, IT_INVALID, CHECK_BUBBLEGEN,
1559  CT_BUBBLES, 13, CT_INVALID, 0, 5,
1560  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1561  INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TOYLAND,
1562  INDUSTRYBEH_NONE,
1563  STR_INDUSTRY_NAME_BUBBLE_GENERATOR, STR_NEWS_INDUSTRY_CONSTRUCTION,
1564  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1565 
1566  MI(_tile_table_toffee_quarry, 0, NULL,
1567  213, 0xCCCCCCCC, 0, 0, 0, 3, 0, 0, 0, 5, 194,
1568  IT_CANDY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1569  CT_TOFFEE, 10, CT_INVALID, 0, 5,
1570  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1571  INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TOYLAND,
1572  INDUSTRYBEH_NONE,
1573  STR_INDUSTRY_NAME_TOFFEE_QUARRY, STR_NEWS_INDUSTRY_CONSTRUCTION,
1574  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1575 
1576  MI(_tile_table_sugar_mine, 0, NULL,
1577  210, 0xBFFFFFFF, 0, 0, 0, 2, 0, 0, 0, 4, 15,
1578  IT_CANDY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1579  CT_SUGAR, 11, CT_INVALID, 0, 5,
1580  CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1581  INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TOYLAND,
1582  INDUSTRYBEH_NONE,
1583  STR_INDUSTRY_NAME_SUGAR_MINE, STR_NEWS_INDUSTRY_CONSTRUCTION,
1584  STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1585 };
1586 #undef MI
1587 
1601 #define MT(ca1, c1, ca2, c2, ca3, c3, sl, a1, a2, a3) {{c1, c2, c3, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID}, {ca1, ca2, ca3}, sl, a1, a2, a3, 0, {0, ANIM_STATUS_NO_ANIMATION, 2, 0}, INDTILE_SPECIAL_NONE, true, GRFFileProps(INVALID_INDUSTRYTILE)}
1602 static const IndustryTileSpec _origin_industry_tile_specs[NEW_INDUSTRYTILEOFFSET] = {
1603  /* Coal Mine */
1607  MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1611 
1612  /* Power Station */
1614  MT(1, CT_PASSENGERS, 8, CT_COAL, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1617 
1618  /* Sawmill */
1619  MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1620  MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1621  MT(1, CT_PASSENGERS, 8, CT_WOOD, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1624 
1625  /* Forest Artic, temperate */
1628 
1629  /* Oil refinery */
1635  MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1636 
1637  /* Oil Rig */
1638  MT(0, CT_INVALID, 8, CT_PASSENGERS, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1643 
1644  /* Oil Wells artic, temperate and sub-tropical */
1649 
1650  /* Farm tropic, arctic and temperate */
1651  MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1652  MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1657 
1658  /* Factory temperate */
1659  MT(8, CT_GRAIN, 8, CT_LIVESTOCK, 8, CT_STEEL, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1660  MT(8, CT_GRAIN, 8, CT_LIVESTOCK, 8, CT_STEEL, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1661  MT(8, CT_GRAIN, 8, CT_LIVESTOCK, 8, CT_STEEL, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1662  MT(8, CT_GRAIN, 8, CT_LIVESTOCK, 8, CT_STEEL, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1663 
1664  /* Printing works */
1669 
1670  /* Copper ore mine */
1674  MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1675  MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1676 
1677  /* Steel mill */
1678  MT(1, CT_PASSENGERS, 8, CT_IRON_ORE, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1679  MT(1, CT_PASSENGERS, 8, CT_IRON_ORE, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1680  MT(1, CT_PASSENGERS, 8, CT_IRON_ORE, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1681  MT(1, CT_PASSENGERS, 8, CT_IRON_ORE, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1682  MT(1, CT_PASSENGERS, 8, CT_IRON_ORE, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1683  MT(1, CT_PASSENGERS, 8, CT_IRON_ORE, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1684 
1685  /* Bank temperate*/
1686  MT(1, CT_PASSENGERS, 8, CT_VALUABLES, 0, CT_INVALID, SLOPE_E, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1687  MT(1, CT_PASSENGERS, 8, CT_VALUABLES, 0, CT_INVALID, SLOPE_S, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1688 
1689  /* Food processing plant, tropic and arctic. CT_MAIZE or CT_WHEAT, CT_LIVESTOCK or CT_FRUIT*/
1690  MT(8, CT_MAIZE, 8, CT_LIVESTOCK, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1691  MT(8, CT_MAIZE, 8, CT_LIVESTOCK, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1692  MT(8, CT_MAIZE, 8, CT_LIVESTOCK, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1693  MT(8, CT_MAIZE, 8, CT_LIVESTOCK, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1694 
1695  /* Paper mill */
1704 
1705  /* Gold mine */
1723 
1724  /* Bank Sub Arctic */
1727 
1728  /* Diamond mine */
1738 
1739  /* Iron ore Mine */
1756 
1757  /* Fruit plantation */
1759 
1760  /* Rubber plantation */
1762 
1763  /* Water supply */
1766 
1767  /* Water tower */
1769 
1770  /* Factory (sub-tropical) */
1771  MT(8, CT_COPPER_ORE, 8, CT_RUBBER, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1772  MT(8, CT_COPPER_ORE, 8, CT_RUBBER, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1773  MT(8, CT_COPPER_ORE, 8, CT_RUBBER, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1774  MT(8, CT_COPPER_ORE, 8, CT_RUBBER, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1775 
1776  /* Lumber mill */
1781 
1782  /* Candyfloss forest */
1785 
1786  /* Sweet factory */
1787  MT(8, CT_COTTON_CANDY, 8, CT_TOFFEE, 8, CT_SUGAR, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1788  MT(8, CT_COTTON_CANDY, 8, CT_TOFFEE, 8, CT_SUGAR, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1789  MT(8, CT_COTTON_CANDY, 8, CT_TOFFEE, 8, CT_SUGAR, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1790  MT(8, CT_COTTON_CANDY, 8, CT_TOFFEE, 8, CT_SUGAR, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1791 
1792  /* Battery farm */
1795 
1796  /* Cola wells */
1798 
1799  /* Toy shop */
1804 
1805  /* Toy factory */
1806  MT(8, CT_BATTERIES, 8, CT_PLASTIC, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1807  MT(8, CT_BATTERIES, 8, CT_PLASTIC, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1808  MT(8, CT_BATTERIES, 8, CT_PLASTIC, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1809  MT(8, CT_BATTERIES, 8, CT_PLASTIC, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1810  MT(8, CT_BATTERIES, 8, CT_PLASTIC, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1811  MT(8, CT_BATTERIES, 8, CT_PLASTIC, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1812 
1813  /* Plastic Fountain */
1822 
1823  /* Fizzy drink factory */
1824  MT(8, CT_BUBBLES, 8, CT_COLA, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1825  MT(8, CT_BUBBLES, 8, CT_COLA, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1826  MT(8, CT_BUBBLES, 8, CT_COLA, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1827  MT(8, CT_BUBBLES, 8, CT_COLA, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1828 
1829  /* Bubble generator */
1834 
1835  /* Toffee quarry */
1839 
1840  /* Sugar mine */
1849 };
1850 #undef MT
1851 
1852 #endif /* BUILD_INDUSTRY_H */
can be exploded by a military airplane (oil refinery)
Definition: industrytype.h:75
Industries at sea should be positioned near edge of the map.
Definition: industrytype.h:49
ai will attempt to establish air/ship routes to this industry (oil rig)
Definition: industrytype.h:74
#define MK(x, y, m)
Definition of an industry tiles layout.
periodically plants fields around itself (temp and arctic farms)
Definition: industrytype.h:64
do not increase production (oil wells) in the temperate climate
Definition: industrytype.h:71
Always succeeds.
Definition: industrytype.h:41
can cause a subsidence (coal mine, shaft that collapses)
Definition: industrytype.h:77
the east corner of the tile is raised
Definition: slope_type.h:54
Like factories.
Definition: industrytype.h:33
is always built near towns (toy shop)
Definition: industrytype.h:69
can only be built in towns (arctic/tropic banks, water tower)
Definition: industrytype.h:68
Industry should be below snow-line in arctic.
Definition: industrytype.h:44
can be exploded by a military helicopter (factory)
Definition: industrytype.h:76
Invalid cargo type.
Definition: cargo_type.h:70
indicates the slope is steep
Definition: slope_type.h:56
can only be built after 1960 (oil rigs)
Definition: industrytype.h:73
Like power plants and banks.
Definition: industrytype.h:30
static const IndustryGfx NEW_INDUSTRYTILEOFFSET
original number of tiles
Definition: industry_type.h:34
Industry should be build above snow-line in arctic climate.
Definition: industrytype.h:42
Industry should be in the desert.
Definition: industrytype.h:46
Defines the data structure for constructing industry.
Definition: industrytype.h:103
Industry should be positioned near edge of the map.
Definition: industrytype.h:43
cuts trees and produce first output cargo from them (lumber mill)
Definition: industrytype.h:65
static const uint8 _farm_sounds[]
Array with 3 animal sounds, for farms.
static const uint8 _sawmill_sounds[]
Array with saw sound, for sawmill.
Industry should NOT be in the desert.
Definition: industrytype.h:45
Industry should be in the rain forest.
Definition: industrytype.h:47
is built on water (oil rig)
Definition: industrytype.h:66
static const uint8 _factory_sounds[]
Array with whistle sound, for factory.
static const IndustryType NEW_INDUSTRYOFFSET
original number of industry types
Definition: industry_type.h:27
#define MKEND
Terminator of industry tiles layout definition.
Fields are planted around when built (all farms)
Definition: industrytype.h:70
#define MT(ca1, c1, ca2, c2, ca3, c3, sl, a1, a2, a3)
Writes the properties of an industry tile into the IndustryTileSpec struct.
static const uint8 _plastic_mine_sounds[]
Array with...
Defines the data structure of each individual tile of an industry.
Definition: industrytype.h:151
can only be built in towns larger than 1200 inhabitants (temperate bank)
Definition: industrytype.h:67
Industry should be in low land.
Definition: industrytype.h:48
Like forests.
Definition: industrytype.h:32
can only be built before 1950 (oil wells)
Definition: industrytype.h:72
the south corner of the tile is raised
Definition: slope_type.h:53
static const IndustryGfx INDUSTRYTILE_NOANIM
flag to mark industry tiles as having no animation
Definition: industry_type.h:33
#define MI(tbl, sndc, snd, d, pc, ai1, ai2, ai3, ai4, ag1, ag2, ag3, ag4, col, c1, c2, c3, proc, p1, r1, p2, r2, m, a1, im1, a2, im2, a3, im3, pr, clim, bev, in, intx, s1, s2, s3)
Writes the properties of an industry into the IndustrySpec struct.