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