OpenTTD Source: src/table/build_industry.h Source File

OpenTTD Source 14.0-RC3

build_industry.h
Go to the documentation of this file.
1 /*
2 * This file is part of OpenTTD.
3 * 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.
4 * 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.
5 * 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/>.
6 */
7
10 #ifndef BUILD_INDUSTRY_H
11 #define BUILD_INDUSTRY_H
12
21 #define MK(x, y, m) {{x, y}, m}
22
23 static const IndustryTileLayout _tile_table_coal_mine_0 {
24 MK(1, 1, 0),
25 MK(1, 2, 2),
26 MK(0, 0, 5),
27 MK(1, 0, 6),
28 MK(2, 0, 3),
29 MK(2, 2, 3),
30 };
31
32 static const IndustryTileLayout _tile_table_coal_mine_1 {
33 MK(1, 1, 0),
34 MK(1, 2, 2),
35 MK(2, 0, 0),
36 MK(2, 1, 2),
37 MK(1, 0, 3),
38 MK(0, 0, 3),
39 MK(0, 1, 4),
40 MK(0, 2, 4),
41 MK(2, 2, 4),
42 };
43
44 static const IndustryTileLayout _tile_table_coal_mine_2 {
45 MK(0, 0, 0),
46 MK(0, 1, 2),
47 MK(0, 2, 5),
48 MK(1, 0, 3),
49 MK(1, 1, 3),
50 MK(1, 2, 6),
51 };
52
53 static const IndustryTileLayout _tile_table_coal_mine_3 {
54 MK(0, 1, 0),
55 MK(0, 2, 2),
56 MK(0, 3, 4),
57 MK(1, 0, 5),
58 MK(1, 1, 0),
59 MK(1, 2, 2),
60 MK(1, 3, 3),
61 MK(2, 0, 6),
62 MK(2, 1, 4),
63 MK(2, 2, 3),
64 };
65
66 static const std::vector<IndustryTileLayout> _tile_table_coal_mine {
67 _tile_table_coal_mine_0,
68 _tile_table_coal_mine_1,
69 _tile_table_coal_mine_2,
70 _tile_table_coal_mine_3,
71 };
72
73 static const IndustryTileLayout _tile_table_power_station_0 {
74 MK(0, 0, 7),
75 MK(0, 1, 9),
76 MK(1, 0, 7),
77 MK(1, 1, 8),
78 MK(2, 0, 7),
79 MK(2, 1, 8),
80 MK(3, 0, 10),
81 MK(3, 1, 10),
82 };
83
84 static const IndustryTileLayout _tile_table_power_station_1 {
85 MK(0, 1, 7),
86 MK(0, 2, 7),
87 MK(1, 0, 8),
88 MK(1, 1, 8),
89 MK(1, 2, 7),
90 MK(2, 0, 9),
91 MK(2, 1, 10),
92 MK(2, 2, 9),
93 };
94
95 static const IndustryTileLayout _tile_table_power_station_2 {
96 MK(0, 0, 7),
97 MK(0, 1, 7),
98 MK(1, 0, 9),
99 MK(1, 1, 8),
100 MK(2, 0, 10),
101 MK(2, 1, 9),
102 };
103
104 static const std::vector<IndustryTileLayout> _tile_table_power_station {
105 _tile_table_power_station_0,
106 _tile_table_power_station_1,
107 _tile_table_power_station_2,
108 };
109
110 static const IndustryTileLayout _tile_table_sawmill_0 {
111 MK(1, 0, 14),
112 MK(1, 1, 12),
113 MK(1, 2, 11),
114 MK(2, 0, 14),
115 MK(2, 1, 13),
116 MK(0, 0, 15),
117 MK(0, 1, 15),
118 MK(0, 2, 12),
119 };
120
121 static const IndustryTileLayout _tile_table_sawmill_1 {
122 MK(0, 0, 15),
123 MK(0, 1, 11),
124 MK(0, 2, 14),
125 MK(1, 0, 15),
126 MK(1, 1, 13),
127 MK(1, 2, 12),
128 MK(2, 0, 11),
129 MK(2, 1, 13),
130 };
131
132 static const std::vector<IndustryTileLayout> _tile_table_sawmill {
133 _tile_table_sawmill_0,
134 _tile_table_sawmill_1,
135 };
136
137 static const IndustryTileLayout _tile_table_forest_0 {
138 MK(0, 0, 16),
139 MK(0, 1, 16),
140 MK(0, 2, 16),
141 MK(0, 3, 16),
142 MK(1, 0, 16),
143 MK(1, 1, 16),
144 MK(1, 2, 16),
145 MK(1, 3, 16),
146 MK(2, 0, 16),
147 MK(2, 1, 16),
148 MK(2, 2, 16),
149 MK(2, 3, 16),
150 MK(3, 0, 16),
151 MK(3, 1, 16),
152 MK(3, 2, 16),
153 MK(3, 3, 16),
154 MK(1, 4, 16),
155 MK(2, 4, 16),
156 };
157
158 static const IndustryTileLayout _tile_table_forest_1 {
159 MK(0, 0, 16),
160 MK(1, 0, 16),
161 MK(2, 0, 16),
162 MK(3, 0, 16),
163 MK(4, 0, 16),
164 MK(0, 1, 16),
165 MK(1, 1, 16),
166 MK(2, 1, 16),
167 MK(3, 1, 16),
168 MK(4, 1, 16),
169 MK(0, 2, 16),
170 MK(1, 2, 16),
171 MK(2, 2, 16),
172 MK(3, 2, 16),
173 MK(4, 2, 16),
174 MK(0, 3, 16),
175 MK(1, 3, 16),
176 MK(2, 3, 16),
177 MK(3, 3, 16),
178 MK(4, 3, 16),
179 MK(1, 4, 16),
180 MK(2, 4, 16),
181 MK(3, 4, 16),
182 };
183
184 static const std::vector<IndustryTileLayout> _tile_table_forest {
185 _tile_table_forest_0,
186 _tile_table_forest_1,
187 };
188
189 static const IndustryTileLayout _tile_table_oil_refinery_0 {
190 MK(0, 0, 20),
191 MK(0, 1, 21),
192 MK(0, 2, 22),
193 MK(0, 3, 21),
194 MK(1, 0, 20),
195 MK(1, 1, 19),
196 MK(1, 2, 22),
197 MK(1, 3, 20),
198 MK(2, 1, 18),
199 MK(2, 2, 18),
200 MK(2, 3, 18),
201 MK(3, 2, 18),
202 MK(3, 3, 18),
203 MK(2, 0, 23),
204 MK(3, 1, 23),
205 };
206
207 static const IndustryTileLayout _tile_table_oil_refinery_1 {
208 MK(0, 0, 18),
209 MK(0, 1, 18),
210 MK(0, 2, 21),
211 MK(0, 3, 22),
212 MK(0, 4, 20),
213 MK(1, 0, 18),
214 MK(1, 1, 18),
215 MK(1, 2, 19),
216 MK(1, 3, 20),
217 MK(2, 0, 18),
218 MK(2, 1, 18),
219 MK(2, 2, 19),
220 MK(2, 3, 22),
221 MK(1, 4, 23),
222 MK(2, 4, 23),
223 };
224
225 static const std::vector<IndustryTileLayout> _tile_table_oil_refinery {
226 _tile_table_oil_refinery_0,
227 _tile_table_oil_refinery_1,
228 };
229
230 static const IndustryTileLayout _tile_table_oil_rig_0 {
231 MK(0, 0, 24),
232 MK(0, 1, 24),
233 MK(0, 2, 25),
234 MK(1, 0, 26),
235 MK(1, 1, 27),
236 MK(1, 2, 28),
237 MK(-4, -4, 255),
238 MK(-4, -3, 255),
239 MK(-4, -2, 255),
240 MK(-4, -1, 255),
241 MK(-4, 0, 255),
242 MK(-4, 1, 255),
243 MK(-4, 2, 255),
244 MK(-4, 3, 255),
245 MK(-4, 4, 255),
246 MK(-4, 5, 255),
247 MK(-4, 6, 255),
248 MK(-3, 6, 255),
249 MK(-2, 6, 255),
250 MK(-1, 6, 255),
251 MK(0, 6, 255),
252 MK(1, 6, 255),
253 MK(2, 6, 255),
254 MK(3, 6, 255),
255 MK(4, 6, 255),
256 MK(5, 6, 255),
257 MK(5, 5, 255),
258 MK(5, 4, 255),
259 MK(5, 3, 255),
260 MK(5, 2, 255),
261 MK(5, 1, 255),
262 MK(5, 0, 255),
263 MK(5, -1, 255),
264 MK(5, -2, 255),
265 MK(5, -3, 255),
266 MK(5, -4, 255),
267 MK(4, -4, 255),
268 MK(3, -4, 255),
269 MK(2, -4, 255),
270 MK(1, -4, 255),
271 MK(0, -4, 255),
272 MK(-1, -4, 255),
273 MK(-2, -4, 255),
274 MK(-3, -4, 255),
275 MK(2, 0, 255),
276 MK(2, -1, 255),
277 MK(1, -1, 255),
278 MK(0, -1, 255),
279 MK(-1, -1, 255),
280 MK(-1, 0, 255),
281 MK(-1, 1, 255),
282 MK(-1, 2, 255),
283 MK(-1, 3, 255),
284 MK(0, 3, 255),
285 MK(1, 3, 255),
286 MK(2, 3, 255),
287 MK(2, 2, 255),
288 MK(2, 1, 255),
289 };
290
291 static const std::vector<IndustryTileLayout> _tile_table_oil_rig {
292 _tile_table_oil_rig_0,
293 };
294
295 static const IndustryTileLayout _tile_table_factory_0 {
296 MK(0, 0, 39),
297 MK(0, 1, 40),
298 MK(1, 0, 41),
299 MK(1, 1, 42),
300 MK(0, 2, 39),
301 MK(0, 3, 40),
302 MK(1, 2, 41),
303 MK(1, 3, 42),
304 MK(2, 1, 39),
305 MK(2, 2, 40),
306 MK(3, 1, 41),
307 MK(3, 2, 42),
308 };
309
310 static const IndustryTileLayout _tile_table_factory_1 {
311 MK(0, 0, 39),
312 MK(0, 1, 40),
313 MK(1, 0, 41),
314 MK(1, 1, 42),
315 MK(2, 0, 39),
316 MK(2, 1, 40),
317 MK(3, 0, 41),
318 MK(3, 1, 42),
319 MK(1, 2, 39),
320 MK(1, 3, 40),
321 MK(2, 2, 41),
322 MK(2, 3, 42),
323 };
324
325 static const std::vector<IndustryTileLayout> _tile_table_factory {
326 _tile_table_factory_0,
327 _tile_table_factory_1,
328 };
329
330 static const IndustryTileLayout _tile_table_printing_works_0 {
331 MK(0, 0, 43),
332 MK(0, 1, 44),
333 MK(1, 0, 45),
334 MK(1, 1, 46),
335 MK(0, 2, 43),
336 MK(0, 3, 44),
337 MK(1, 2, 45),
338 MK(1, 3, 46),
339 MK(2, 1, 43),
340 MK(2, 2, 44),
341 MK(3, 1, 45),
342 MK(3, 2, 46),
343 };
344
345 static const IndustryTileLayout _tile_table_printing_works_1 {
346 MK(0, 0, 43),
347 MK(0, 1, 44),
348 MK(1, 0, 45),
349 MK(1, 1, 46),
350 MK(2, 0, 43),
351 MK(2, 1, 44),
352 MK(3, 0, 45),
353 MK(3, 1, 46),
354 MK(1, 2, 43),
355 MK(1, 3, 44),
356 MK(2, 2, 45),
357 MK(2, 3, 46),
358 };
359
360 static const std::vector<IndustryTileLayout> _tile_table_printing_works {
361 _tile_table_printing_works_0,
362 _tile_table_printing_works_1,
363 };
364
365 static const IndustryTileLayout _tile_table_steel_mill_0 {
366 MK(2, 1, 52),
367 MK(2, 2, 53),
368 MK(3, 1, 54),
369 MK(3, 2, 55),
370 MK(0, 0, 56),
371 MK(1, 0, 57),
372 MK(0, 1, 56),
373 MK(1, 1, 57),
374 MK(0, 2, 56),
375 MK(1, 2, 57),
376 MK(2, 0, 56),
377 MK(3, 0, 57),
378 };
379
380 static const IndustryTileLayout _tile_table_steel_mill_1 {
381 MK(0, 0, 52),
382 MK(0, 1, 53),
383 MK(1, 0, 54),
384 MK(1, 1, 55),
385 MK(2, 0, 52),
386 MK(2, 1, 53),
387 MK(3, 0, 54),
388 MK(3, 1, 55),
389 MK(0, 2, 56),
390 MK(1, 2, 57),
391 MK(2, 2, 56),
392 MK(3, 2, 57),
393 MK(1, 3, 56),
394 MK(2, 3, 57),
395 };
396
397 static const std::vector<IndustryTileLayout> _tile_table_steel_mill {
398 _tile_table_steel_mill_0,
399 _tile_table_steel_mill_1,
400 };
401
402 static const IndustryTileLayout _tile_table_farm_0 {
403 MK(1, 0, 33),
404 MK(1, 1, 34),
405 MK(1, 2, 36),
406 MK(0, 0, 37),
407 MK(0, 1, 37),
408 MK(0, 2, 36),
409 MK(2, 0, 35),
410 MK(2, 1, 38),
411 MK(2, 2, 38),
412 };
413
414 static const IndustryTileLayout _tile_table_farm_1 {
415 MK(1, 1, 33),
416 MK(1, 2, 34),
417 MK(0, 0, 35),
418 MK(0, 1, 36),
419 MK(0, 2, 36),
420 MK(0, 3, 35),
421 MK(1, 0, 37),
422 MK(1, 3, 38),
423 MK(2, 0, 37),
424 MK(2, 1, 37),
425 MK(2, 2, 38),
426 MK(2, 3, 38),
427 };
428
429 static const IndustryTileLayout _tile_table_farm_2 {
430 MK(2, 0, 33),
431 MK(2, 1, 34),
432 MK(0, 0, 36),
433 MK(0, 1, 36),
434 MK(0, 2, 37),
435 MK(0, 3, 37),
436 MK(1, 0, 35),
437 MK(1, 1, 38),
438 MK(1, 2, 38),
439 MK(1, 3, 37),
440 MK(2, 2, 37),
441 MK(2, 3, 35),
442 };
443
444 static const std::vector<IndustryTileLayout> _tile_table_farm {
445 _tile_table_farm_0,
446 _tile_table_farm_1,
447 _tile_table_farm_2,
448 };
449
450 static const IndustryTileLayout _tile_table_copper_mine_0 {
451 MK(0, 0, 47),
452 MK(0, 1, 49),
453 MK(0, 2, 51),
454 MK(1, 0, 47),
455 MK(1, 1, 49),
456 MK(1, 2, 50),
457 MK(2, 0, 51),
458 MK(2, 1, 51),
459 };
460
461 static const IndustryTileLayout _tile_table_copper_mine_1 {
462 MK(0, 0, 50),
463 MK(0, 1, 47),
464 MK(0, 2, 49),
465 MK(1, 0, 47),
466 MK(1, 1, 49),
467 MK(1, 2, 51),
468 MK(2, 0, 51),
469 MK(2, 1, 47),
470 MK(2, 2, 49),
471 };
472
473 static const std::vector<IndustryTileLayout> _tile_table_copper_mine {
474 _tile_table_copper_mine_0,
475 _tile_table_copper_mine_1,
476 };
477
478 static const IndustryTileLayout _tile_table_oil_well_0 {
479 MK(0, 0, 29),
480 MK(1, 0, 29),
481 MK(2, 0, 29),
482 MK(0, 1, 29),
483 MK(0, 2, 29),
484 };
485
486 static const IndustryTileLayout _tile_table_oil_well_1 {
487 MK(0, 0, 29),
488 MK(1, 0, 29),
489 MK(1, 1, 29),
490 MK(2, 2, 29),
491 MK(2, 3, 29),
492 };
493
494 static const std::vector<IndustryTileLayout> _tile_table_oil_well {
495 _tile_table_oil_well_0,
496 _tile_table_oil_well_1,
497 };
498
499 static const IndustryTileLayout _tile_table_bank_0 {
500 MK(0, 0, 58),
501 MK(1, 0, 59),
502 };
503
504 static const std::vector<IndustryTileLayout> _tile_table_bank {
505 _tile_table_bank_0,
506 };
507
508 static const IndustryTileLayout _tile_table_food_process_0 {
509 MK(0, 0, 60),
510 MK(1, 0, 60),
511 MK(2, 0, 60),
512 MK(0, 1, 60),
513 MK(1, 1, 60),
514 MK(2, 1, 60),
515 MK(0, 2, 61),
516 MK(1, 2, 61),
517 MK(2, 2, 63),
518 MK(0, 3, 62),
519 MK(1, 3, 62),
520 MK(2, 3, 63),
521 };
522
523 static const IndustryTileLayout _tile_table_food_process_1 {
524 MK(0, 0, 61),
525 MK(1, 0, 60),
526 MK(2, 0, 61),
527 MK(3, 0, 61),
528 MK(0, 1, 62),
529 MK(1, 1, 63),
530 MK(2, 1, 63),
531 MK(3, 1, 63),
532 MK(0, 2, 60),
533 MK(1, 2, 60),
534 MK(2, 2, 60),
535 MK(3, 2, 60),
536 MK(0, 3, 62),
537 MK(1, 3, 62),
538 };
539
540 static const std::vector<IndustryTileLayout> _tile_table_food_process {
541 _tile_table_food_process_0,
542 _tile_table_food_process_1,
543 };
544
545 static const IndustryTileLayout _tile_table_paper_mill_0 {
546 MK(0, 0, 64),
547 MK(1, 0, 65),
548 MK(2, 0, 66),
549 MK(3, 0, 67),
550 MK(0, 1, 68),
551 MK(1, 1, 69),
552 MK(2, 1, 67),
553 MK(3, 1, 67),
554 MK(0, 2, 66),
555 MK(1, 2, 71),
556 MK(2, 2, 71),
557 MK(3, 2, 70),
558 };
559
560 static const std::vector<IndustryTileLayout> _tile_table_paper_mill {
561 _tile_table_paper_mill_0,
562 };
563
564 static const IndustryTileLayout _tile_table_gold_mine_0 {
565 MK(0, 0, 72),
566 MK(0, 1, 73),
567 MK(0, 2, 74),
568 MK(0, 3, 75),
569 MK(1, 0, 76),
570 MK(1, 1, 77),
571 MK(1, 2, 78),
572 MK(1, 3, 79),
573 MK(2, 0, 80),
574 MK(2, 1, 81),
575 MK(2, 2, 82),
576 MK(2, 3, 83),
577 MK(3, 0, 84),
578 MK(3, 1, 85),
579 MK(3, 2, 86),
580 MK(3, 3, 87),
581 };
582
583 static const std::vector<IndustryTileLayout> _tile_table_gold_mine {
584 _tile_table_gold_mine_0,
585 };
586
587 static const IndustryTileLayout _tile_table_bank2_0 {
588 MK(0, 0, 89),
589 MK(1, 0, 90),
590 };
591
592 static const std::vector<IndustryTileLayout> _tile_table_bank2 {
593 _tile_table_bank2_0,
594 };
595
596 static const IndustryTileLayout _tile_table_diamond_mine_0 {
597 MK(0, 0, 91),
598 MK(0, 1, 92),
599 MK(0, 2, 93),
600 MK(1, 0, 94),
601 MK(1, 1, 95),
602 MK(1, 2, 96),
603 MK(2, 0, 97),
604 MK(2, 1, 98),
605 MK(2, 2, 99),
606 };
607
608 static const std::vector<IndustryTileLayout> _tile_table_diamond_mine {
609 _tile_table_diamond_mine_0,
610 };
611
612 static const IndustryTileLayout _tile_table_iron_mine_0 {
613 MK(0, 0, 100),
614 MK(0, 1, 101),
615 MK(0, 2, 102),
616 MK(0, 3, 103),
617 MK(1, 0, 104),
618 MK(1, 1, 105),
619 MK(1, 2, 106),
620 MK(1, 3, 107),
621 MK(2, 0, 108),
622 MK(2, 1, 109),
623 MK(2, 2, 110),
624 MK(2, 3, 111),
625 MK(3, 0, 112),
626 MK(3, 1, 113),
627 MK(3, 2, 114),
628 MK(3, 3, 115),
629 };
630
631 static const std::vector<IndustryTileLayout> _tile_table_iron_mine {
632 _tile_table_iron_mine_0,
633 };
634
635 static const IndustryTileLayout _tile_table_fruit_plantation_0 {
636 MK(0, 0, 116),
637 MK(0, 1, 116),
638 MK(0, 2, 116),
639 MK(0, 3, 116),
640 MK(1, 0, 116),
641 MK(1, 1, 116),
642 MK(1, 2, 116),
643 MK(1, 3, 116),
644 MK(2, 0, 116),
645 MK(2, 1, 116),
646 MK(2, 2, 116),
647 MK(2, 3, 116),
648 MK(3, 0, 116),
649 MK(3, 1, 116),
650 MK(3, 2, 116),
651 MK(3, 3, 116),
652 MK(4, 0, 116),
653 MK(4, 1, 116),
654 MK(4, 2, 116),
655 MK(4, 3, 116),
656 };
657
658 static const std::vector<IndustryTileLayout> _tile_table_fruit_plantation {
659 _tile_table_fruit_plantation_0,
660 };
661
662 static const IndustryTileLayout _tile_table_rubber_plantation_0 {
663 MK(0, 0, 117),
664 MK(0, 1, 117),
665 MK(0, 2, 117),
666 MK(0, 3, 117),
667 MK(1, 0, 117),
668 MK(1, 1, 117),
669 MK(1, 2, 117),
670 MK(1, 3, 117),
671 MK(2, 0, 117),
672 MK(2, 1, 117),
673 MK(2, 2, 117),
674 MK(2, 3, 117),
675 MK(3, 0, 117),
676 MK(3, 1, 117),
677 MK(3, 2, 117),
678 MK(3, 3, 117),
679 MK(4, 0, 117),
680 MK(4, 1, 117),
681 MK(4, 2, 117),
682 MK(4, 3, 117),
683 };
684
685 static const std::vector<IndustryTileLayout> _tile_table_rubber_plantation {
686 _tile_table_rubber_plantation_0,
687 };
688
689 static const IndustryTileLayout _tile_table_water_supply_0 {
690 MK(0, 0, 118),
691 MK(0, 1, 119),
692 MK(1, 0, 118),
693 MK(1, 1, 119),
694 };
695
696 static const std::vector<IndustryTileLayout> _tile_table_water_supply {
697 _tile_table_water_supply_0,
698 };
699
700 static const IndustryTileLayout _tile_table_water_tower_0 {
701 MK(0, 0, 120),
702 };
703
704 static const std::vector<IndustryTileLayout> _tile_table_water_tower {
705 _tile_table_water_tower_0,
706 };
707
708 static const IndustryTileLayout _tile_table_factory2_0 {
709 MK(0, 0, 121),
710 MK(0, 1, 122),
711 MK(1, 0, 123),
712 MK(1, 1, 124),
713 MK(0, 2, 121),
714 MK(0, 3, 122),
715 MK(1, 2, 123),
716 MK(1, 3, 124),
717 };
718
719 static const IndustryTileLayout _tile_table_factory2_1 {
720 MK(0, 0, 121),
721 MK(0, 1, 122),
722 MK(1, 0, 123),
723 MK(1, 1, 124),
724 MK(2, 0, 121),
725 MK(2, 1, 122),
726 MK(3, 0, 123),
727 MK(3, 1, 124),
728 };
729
730 static const std::vector<IndustryTileLayout> _tile_table_factory2 {
731 _tile_table_factory2_0,
732 _tile_table_factory2_1,
733 };
734
735 static const IndustryTileLayout _tile_table_farm2_0 {
736 MK(1, 0, 33),
737 MK(1, 1, 34),
738 MK(1, 2, 36),
739 MK(0, 0, 37),
740 MK(0, 1, 37),
741 MK(0, 2, 36),
742 MK(2, 0, 35),
743 MK(2, 1, 38),
744 MK(2, 2, 38),
745 };
746
747 static const IndustryTileLayout _tile_table_farm2_1 {
748 MK(1, 1, 33),
749 MK(1, 2, 34),
750 MK(0, 0, 35),
751 MK(0, 1, 36),
752 MK(0, 2, 36),
753 MK(0, 3, 35),
754 MK(1, 0, 37),
755 MK(1, 3, 38),
756 MK(2, 0, 37),
757 MK(2, 1, 37),
758 MK(2, 2, 38),
759 MK(2, 3, 38),
760 };
761
762 static const IndustryTileLayout _tile_table_farm2_2 {
763 MK(2, 0, 33),
764 MK(2, 1, 34),
765 MK(0, 0, 36),
766 MK(0, 1, 36),
767 MK(0, 2, 37),
768 MK(0, 3, 37),
769 MK(1, 0, 35),
770 MK(1, 1, 38),
771 MK(1, 2, 38),
772 MK(1, 3, 37),
773 MK(2, 2, 37),
774 MK(2, 3, 35),
775 };
776
777 static const std::vector<IndustryTileLayout> _tile_table_farm2 {
778 _tile_table_farm2_0,
779 _tile_table_farm2_1,
780 _tile_table_farm2_2,
781 };
782
783 static const IndustryTileLayout _tile_table_lumber_mill_0 {
784 MK(0, 0, 125),
785 MK(0, 1, 126),
786 MK(1, 0, 127),
787 MK(1, 1, 128),
788 };
789
790 static const std::vector<IndustryTileLayout> _tile_table_lumber_mill {
791 _tile_table_lumber_mill_0,
792 };
793
794 static const IndustryTileLayout _tile_table_cotton_candy_0 {
795 MK(0, 0, 129),
796 MK(0, 1, 129),
797 MK(0, 2, 129),
798 MK(0, 3, 129),
799 MK(1, 0, 129),
800 MK(1, 1, 129),
801 MK(1, 2, 129),
802 MK(1, 3, 129),
803 MK(2, 0, 129),
804 MK(2, 1, 129),
805 MK(2, 2, 129),
806 MK(2, 3, 129),
807 MK(3, 0, 129),
808 MK(3, 1, 129),
809 MK(3, 2, 129),
810 MK(3, 3, 129),
811 MK(1, 4, 129),
812 MK(2, 4, 129),
813 };
814
815 static const IndustryTileLayout _tile_table_cotton_candy_1 {
816 MK(0, 0, 129),
817 MK(1, 0, 129),
818 MK(2, 0, 129),
819 MK(3, 0, 129),
820 MK(4, 0, 129),
821 MK(0, 1, 129),
822 MK(1, 1, 129),
823 MK(2, 1, 129),
824 MK(3, 1, 129),
825 MK(4, 1, 129),
826 MK(0, 2, 129),
827 MK(1, 2, 129),
828 MK(2, 2, 129),
829 MK(3, 2, 129),
830 MK(4, 2, 129),
831 MK(0, 3, 129),
832 MK(1, 3, 129),
833 MK(2, 3, 129),
834 MK(3, 3, 129),
835 MK(4, 3, 129),
836 MK(1, 4, 129),
837 MK(2, 4, 129),
838 MK(3, 4, 129),
839 };
840
841 static const std::vector<IndustryTileLayout> _tile_table_cotton_candy {
842 _tile_table_cotton_candy_0,
843 _tile_table_cotton_candy_1,
844 };
845
846 static const IndustryTileLayout _tile_table_candy_factory_0 {
847 MK(0, 0, 131),
848 MK(0, 1, 132),
849 MK(1, 0, 133),
850 MK(1, 1, 134),
851 MK(0, 2, 131),
852 MK(0, 3, 132),
853 MK(1, 2, 133),
854 MK(1, 3, 134),
855 MK(2, 1, 131),
856 MK(2, 2, 132),
857 MK(3, 1, 133),
858 MK(3, 2, 134),
859 };
860
861 static const IndustryTileLayout _tile_table_candy_factory_1 {
862 MK(0, 0, 131),
863 MK(0, 1, 132),
864 MK(1, 0, 133),
865 MK(1, 1, 134),
866 MK(2, 0, 131),
867 MK(2, 1, 132),
868 MK(3, 0, 133),
869 MK(3, 1, 134),
870 MK(1, 2, 131),
871 MK(1, 3, 132),
872 MK(2, 2, 133),
873 MK(2, 3, 134),
874 };
875
876 static const std::vector<IndustryTileLayout> _tile_table_candy_factory {
877 _tile_table_candy_factory_0,
878 _tile_table_candy_factory_1,
879 };
880
881 static const IndustryTileLayout _tile_table_battery_farm_0 {
882 MK(0, 0, 135),
883 MK(0, 1, 135),
884 MK(0, 2, 135),
885 MK(0, 3, 135),
886 MK(1, 0, 135),
887 MK(1, 1, 135),
888 MK(1, 2, 135),
889 MK(1, 3, 135),
890 MK(2, 0, 135),
891 MK(2, 1, 135),
892 MK(2, 2, 135),
893 MK(2, 3, 135),
894 MK(3, 0, 135),
895 MK(3, 1, 135),
896 MK(3, 2, 135),
897 MK(3, 3, 135),
898 MK(4, 0, 135),
899 MK(4, 1, 135),
900 MK(4, 2, 135),
901 MK(4, 3, 135),
902 };
903
904 static const std::vector<IndustryTileLayout> _tile_table_battery_farm {
905 _tile_table_battery_farm_0,
906 };
907
908 static const IndustryTileLayout _tile_table_cola_wells_0 {
909 MK(0, 0, 137),
910 MK(0, 1, 137),
911 MK(0, 2, 137),
912 MK(1, 0, 137),
913 MK(1, 1, 137),
914 MK(1, 2, 137),
915 MK(2, 1, 137),
916 MK(2, 2, 137),
917 };
918
919 static const IndustryTileLayout _tile_table_cola_wells_1 {
920 MK(0, 1, 137),
921 MK(0, 2, 137),
922 MK(0, 3, 137),
923 MK(1, 0, 137),
924 MK(1, 1, 137),
925 MK(1, 2, 137),
926 MK(2, 1, 137),
927 };
928
929 static const std::vector<IndustryTileLayout> _tile_table_cola_wells {
930 _tile_table_cola_wells_0,
931 _tile_table_cola_wells_1,
932 };
933
934 static const IndustryTileLayout _tile_table_toy_shop_0 {
935 MK(0, 0, 138),
936 MK(0, 1, 139),
937 MK(1, 0, 140),
938 MK(1, 1, 141),
939 };
940
941 static const std::vector<IndustryTileLayout> _tile_table_toy_shop {
942 _tile_table_toy_shop_0,
943 };
944
945 static const IndustryTileLayout _tile_table_toy_factory_0 {
946 MK(0, 0, 147),
947 MK(0, 1, 142),
948 MK(1, 0, 147),
949 MK(1, 1, 143),
950 MK(2, 0, 147),
951 MK(2, 1, 144),
952 MK(3, 0, 146),
953 MK(3, 1, 145),
954 };
955
956 static const std::vector<IndustryTileLayout> _tile_table_toy_factory {
957 _tile_table_toy_factory_0,
958 };
959
960 static const IndustryTileLayout _tile_table_plastic_fountain_0 {
961 MK(0, 0, 148),
962 MK(0, 1, 151),
963 MK(0, 2, 154),
964 };
965
966 static const IndustryTileLayout _tile_table_plastic_fountain_1 {
967 MK(0, 0, 148),
968 MK(1, 0, 151),
969 MK(2, 0, 154),
970 };
971
972 static const std::vector<IndustryTileLayout> _tile_table_plastic_fountain {
973 _tile_table_plastic_fountain_0,
974 _tile_table_plastic_fountain_1,
975 };
976
977 static const IndustryTileLayout _tile_table_fizzy_drink_0 {
978 MK(0, 0, 156),
979 MK(0, 1, 157),
980 MK(1, 0, 158),
981 MK(1, 1, 159),
982 };
983
984 static const std::vector<IndustryTileLayout> _tile_table_fizzy_drink {
985 _tile_table_fizzy_drink_0,
986 };
987
988 static const IndustryTileLayout _tile_table_bubble_generator_0 {
989 MK(0, 0, 163),
990 MK(0, 1, 160),
991 MK(1, 0, 163),
992 MK(1, 1, 161),
993 MK(2, 0, 163),
994 MK(2, 1, 162),
995 MK(0, 2, 163),
996 MK(0, 3, 160),
997 MK(1, 2, 163),
998 MK(1, 3, 161),
999 MK(2, 2, 163),
1000 MK(2, 3, 162),
1001 };
1002
1003 static const std::vector<IndustryTileLayout> _tile_table_bubble_generator {
1004 _tile_table_bubble_generator_0,
1005 };
1006
1007 static const IndustryTileLayout _tile_table_toffee_quarry_0 {
1008 MK(0, 0, 164),
1009 MK(1, 0, 165),
1010 MK(2, 0, 166),
1011 };
1012
1013 static const std::vector<IndustryTileLayout> _tile_table_toffee_quarry {
1014 _tile_table_toffee_quarry_0,
1015 };
1016
1017 static const IndustryTileLayout _tile_table_sugar_mine_0 {
1018 MK(0, 0, 167),
1019 MK(0, 1, 168),
1020 MK(1, 0, 169),
1021 MK(1, 1, 170),
1022 MK(2, 0, 171),
1023 MK(2, 1, 172),
1024 MK(3, 0, 173),
1025 MK(3, 1, 174),
1026 };
1027
1028 static const std::vector<IndustryTileLayout> _tile_table_sugar_mine {
1029 _tile_table_sugar_mine_0,
1030 };
1031
1032 #undef MK
1033
1035 static const uint8_t _sawmill_sounds[] = { SND_28_SAWMILL };
1036
1038 static const uint8_t _factory_sounds[] = { SND_03_FACTORY };
1039
1041 static const uint8_t _farm_sounds[] = { SND_24_FARM_1, SND_25_FARM_2, SND_26_FARM_3 };
1042
1044 static const uint8_t _plastic_mine_sounds[] = { SND_33_PLASTIC_MINE };
1045
1046 enum IndustryTypes {
1047 IT_COAL_MINE = 0,
1048 IT_POWER_STATION = 1,
1049 IT_SAWMILL = 2,
1050 IT_FOREST = 3,
1051 IT_OIL_REFINERY = 4,
1052 IT_OIL_RIG = 5,
1053 IT_FACTORY = 6,
1054 IT_PRINTING_WORKS = 7,
1055 IT_STEEL_MILL = 8,
1056 IT_FARM = 9,
1057 IT_COPPER_MINE = 10,
1058 IT_OIL_WELL = 11,
1059 IT_BANK_TEMP = 12,
1060 IT_FOOD_PROCESS = 13,
1061 IT_PAPER_MILL = 14,
1062 IT_GOLD_MINE = 15,
1063 IT_BANK_TROPIC_ARCTIC = 16,
1064 IT_DIAMOND_MINE = 17,
1065 IT_IRON_MINE = 18,
1066 IT_FRUIT_PLANTATION = 19,
1067 IT_RUBBER_PLANTATION = 20,
1068 IT_WATER_SUPPLY = 21,
1069 IT_WATER_TOWER = 22,
1070 IT_FACTORY_2 = 23,
1071 IT_FARM_2 = 24,
1072 IT_LUMBER_MILL = 25,
1073 IT_COTTON_CANDY = 26,
1074 IT_CANDY_FACTORY = 27,
1075 IT_BATTERY_FARM = 28,
1076 IT_COLA_WELLS = 29,
1077 IT_TOY_SHOP = 30,
1078 IT_TOY_FACTORY = 31,
1079 IT_PLASTIC_FOUNTAINS = 32,
1080 IT_FIZZY_DRINK_FACTORY = 33,
1081 IT_BUBBLE_GENERATOR = 34,
1082 IT_TOFFEE_QUARRY = 35,
1083 IT_SUGAR_MINE = 36,
1084 IT_END,
1085 };
1086
1128 #define MI(tbl, sndc, snd, d, pc, ai1, ai2, ai3, ai4, ag1, ag2, ag3, ag4, col, \
1129 c1, c2, c3, proc, p1, r1, p2, r2, m, a1, im1, a2, im2, a3, im3, pr, clim, bev, in, intx, s1, s2, s3) \
1130 {tbl, d, 0, pc, {c1, c2, c3}, proc, \
1131 {INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO}, \
1132 {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}, \
1133 {r1, r2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, m, \
1134 {INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO}, \
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,
1156 INDUSTRYBEH_CAN_SUBSIDENCE,
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,
1196 INDUSTRYBEH_AIRPLANE_ATTACKS,
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,
1206 INDUSTRYBEH_BUILT_ONWATER | INDUSTRYBEH_AFTER_1960 | INDUSTRYBEH_AI_AIRSHIP_ROUTES,
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 MCT_LIVESTOCK_FRUIT, 256, MCT_GRAIN_WHEAT_MAIZE, 256, CT_STEEL, 256,
1215 INDUSTRYLIFE_PROCESSING, 1 << LT_TEMPERATE,
1216 INDUSTRYBEH_CHOPPER_ATTACKS,
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 MCT_GRAIN_WHEAT_MAIZE, 10, MCT_LIVESTOCK_FRUIT, 10, 5,
1244 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1245 INDUSTRYLIFE_ORGANIC, 1 << LT_TEMPERATE | 1 << LT_ARCTIC,
1246 INDUSTRYBEH_PLANT_FIELDS | INDUSTRYBEH_PLANT_ON_BUILT,
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,
1266 INDUSTRYBEH_DONT_INCR_PROD | INDUSTRYBEH_BEFORE_1950,
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 MCT_VALUABLES_GOLD_DIAMONDS, 6, CT_INVALID, 0, 5,
1274 MCT_VALUABLES_GOLD_DIAMONDS, 0, CT_INVALID, 0, CT_INVALID, 0,
1275 INDUSTRYLIFE_BLACK_HOLE, 1 << LT_TEMPERATE,
1276 INDUSTRYBEH_TOWN1200_MORE,
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 MCT_LIVESTOCK_FRUIT, 256, MCT_GRAIN_WHEAT_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 MCT_VALUABLES_GOLD_DIAMONDS, 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 MCT_VALUABLES_GOLD_DIAMONDS, 256, CT_INVALID, 256, CT_INVALID, 256,
1315 INDUSTRYLIFE_BLACK_HOLE, 1 << LT_ARCTIC | 1 << LT_TROPIC,
1316 INDUSTRYBEH_ONLY_INTOWN,
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 MCT_VALUABLES_GOLD_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 MCT_LIVESTOCK_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,
1376 INDUSTRYBEH_ONLY_INTOWN,
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 MCT_GRAIN_WHEAT_MAIZE, 11, CT_INVALID, 0, 5,
1394 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1395 INDUSTRYLIFE_ORGANIC, 1 << LT_TROPIC,
1396 INDUSTRYBEH_PLANT_FIELDS | INDUSTRYBEH_PLANT_ON_BUILT,
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,
1406 INDUSTRYBEH_CUT_TREES,
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,
1456 INDUSTRYBEH_ONLY_NEARTOWN,
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) { \
1536 {INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO, INVALID_CARGO}, \
1537 {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}, \
1538 {ca1, ca2, ca3}, sl, a1, a2, a3, 0, {0, ANIM_STATUS_NO_ANIMATION, 2, 0}, INDTILE_SPECIAL_NONE, true, GRFFileProps(INVALID_INDUSTRYTILE) \
1539 }
1540 static const IndustryTileSpec _origin_industry_tile_specs[NEW_INDUSTRYTILEOFFSET] = {
1541 /* Coal Mine */
1542 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1543 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, true),
1544 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1545 MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1546 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1547 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1548 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1549
1550 /* Power Station */
1551 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1552 MT(1, CT_PASSENGERS, 8, CT_COAL, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1553 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1554 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1555
1556 /* Sawmill */
1557 MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1558 MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1559 MT(1, CT_PASSENGERS, 8, CT_WOOD, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1560 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1561 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1562
1563 /* Forest Artic, temperate */
1564 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, 17, INDUSTRYTILE_NOANIM, false),
1565 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, 16, false),
1566
1567 /* Oil refinery */
1568 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1569 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1570 MT(0, CT_INVALID, 8, CT_OIL, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1571 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1572 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1573 MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1574
1575 /* Oil Rig */
1576 MT(0, CT_INVALID, 8, CT_PASSENGERS, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1577 MT(0, CT_INVALID, 8, CT_MAIL, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1578 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1579 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1580 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1581
1582 /* Oil Wells artic, temperate and sub-tropical */
1583 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1584 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, true ),
1585 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, true ),
1586 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, true ),
1587
1588 /* Farm tropic, arctic and temperate */
1589 MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1590 MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1591 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1592 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1593 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1594 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1595
1596 /* Factory temperate */
1597 MT(8, MCT_GRAIN_WHEAT_MAIZE, 8, MCT_LIVESTOCK_FRUIT, 8, CT_STEEL, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1598 MT(8, MCT_GRAIN_WHEAT_MAIZE, 8, MCT_LIVESTOCK_FRUIT, 8, CT_STEEL, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1599 MT(8, MCT_GRAIN_WHEAT_MAIZE, 8, MCT_LIVESTOCK_FRUIT, 8, CT_STEEL, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1600 MT(8, MCT_GRAIN_WHEAT_MAIZE, 8, MCT_LIVESTOCK_FRUIT, 8, CT_STEEL, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1601
1602 /* Printing works */
1603 MT(0, CT_INVALID, 8, CT_PAPER, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1604 MT(0, CT_INVALID, 8, CT_PAPER, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1605 MT(0, CT_INVALID, 8, CT_PAPER, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1606 MT(0, CT_INVALID, 8, CT_PAPER, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1607
1608 /* Copper ore mine */
1609 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1610 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, true ),
1611 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1612 MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1613 MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1614
1615 /* Steel mill */
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 MT(1, CT_PASSENGERS, 8, CT_IRON_ORE, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1619 MT(1, CT_PASSENGERS, 8, CT_IRON_ORE, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1620 MT(1, CT_PASSENGERS, 8, CT_IRON_ORE, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1621 MT(1, CT_PASSENGERS, 8, CT_IRON_ORE, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1622
1623 /* Bank temperate*/
1624 MT(1, CT_PASSENGERS, 8, MCT_VALUABLES_GOLD_DIAMONDS, 0, CT_INVALID, SLOPE_E, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1625 MT(1, CT_PASSENGERS, 8, MCT_VALUABLES_GOLD_DIAMONDS, 0, CT_INVALID, SLOPE_S, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1626
1627 /* Food processing plant, tropic and arctic. CT_MAIZE or CT_WHEAT, CT_LIVESTOCK or CT_FRUIT*/
1628 MT(8, MCT_GRAIN_WHEAT_MAIZE, 8, MCT_LIVESTOCK_FRUIT, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1629 MT(8, MCT_GRAIN_WHEAT_MAIZE, 8, MCT_LIVESTOCK_FRUIT, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1630 MT(8, MCT_GRAIN_WHEAT_MAIZE, 8, MCT_LIVESTOCK_FRUIT, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1631 MT(8, MCT_GRAIN_WHEAT_MAIZE, 8, MCT_LIVESTOCK_FRUIT, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1632
1633 /* Paper mill */
1634 MT(0, CT_INVALID, 8, CT_WOOD, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1635 MT(0, CT_INVALID, 8, CT_WOOD, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1636 MT(0, CT_INVALID, 8, CT_WOOD, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1637 MT(0, CT_INVALID, 8, CT_WOOD, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1638 MT(0, CT_INVALID, 8, CT_WOOD, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1639 MT(0, CT_INVALID, 8, CT_WOOD, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1640 MT(0, CT_INVALID, 8, CT_WOOD, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1641 MT(0, CT_INVALID, 8, CT_WOOD, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1642
1643 /* Gold mine */
1644 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1645 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1646 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1647 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1648 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1649 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1650 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1651 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1652 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1653 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1654 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1655 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1656 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1657 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1658 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1659 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1660 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, true),
1661
1662 /* Bank Sub Arctic */
1663 MT(0, CT_INVALID, 8, MCT_VALUABLES_GOLD_DIAMONDS, 0, CT_INVALID, SLOPE_E, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1664 MT(0, CT_INVALID, 8, MCT_VALUABLES_GOLD_DIAMONDS, 0, CT_INVALID, SLOPE_S, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1665
1666 /* Diamond mine */
1667 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1668 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1669 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1670 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1671 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1672 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1673 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1674 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1675 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1676
1677 /* Iron ore Mine */
1678 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1679 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1680 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1681 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1682 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1683 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1684 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1685 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1686 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1687 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1688 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1689 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1690 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1691 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1692 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1693 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1694
1695 /* Fruit plantation */
1696 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1697
1698 /* Rubber plantation */
1699 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1700
1701 /* Water supply */
1702 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1703 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1704
1705 /* Water tower */
1706 MT(0, CT_INVALID, 8, CT_WATER, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1707
1708 /* Factory (sub-tropical) */
1709 MT(8, CT_COPPER_ORE, 8, CT_RUBBER, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1710 MT(8, CT_COPPER_ORE, 8, CT_RUBBER, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1711 MT(8, CT_COPPER_ORE, 8, CT_RUBBER, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1712 MT(8, CT_COPPER_ORE, 8, CT_RUBBER, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1713
1714 /* Lumber mill */
1715 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1716 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1717 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1718 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1719
1720 /* Candyfloss forest */
1721 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, 130, INDUSTRYTILE_NOANIM, false),
1722 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, 129, false),
1723
1724 /* Sweet factory */
1725 MT(8, CT_COTTON_CANDY, 8, CT_TOFFEE, 8, CT_SUGAR, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1726 MT(8, CT_COTTON_CANDY, 8, CT_TOFFEE, 8, CT_SUGAR, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1727 MT(8, CT_COTTON_CANDY, 8, CT_TOFFEE, 8, CT_SUGAR, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1728 MT(8, CT_COTTON_CANDY, 8, CT_TOFFEE, 8, CT_SUGAR, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1729
1730 /* Battery farm */
1731 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, 136, INDUSTRYTILE_NOANIM, false),
1732 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, 135, false),
1733
1734 /* Cola wells */
1735 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1736
1737 /* Toy shop */
1738 MT(0, CT_INVALID, 8, CT_TOYS, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1739 MT(0, CT_INVALID, 8, CT_TOYS, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1740 MT(0, CT_INVALID, 8, CT_TOYS, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1741 MT(0, CT_INVALID, 8, CT_TOYS, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1742
1743 /* Toy factory */
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 MT(8, CT_BATTERIES, 8, CT_PLASTIC, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1747 MT(8, CT_BATTERIES, 8, CT_PLASTIC, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1748 MT(8, CT_BATTERIES, 8, CT_PLASTIC, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1749 MT(8, CT_BATTERIES, 8, CT_PLASTIC, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1750
1751 /* Plastic Fountain */
1752 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1753 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1754 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1755 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1756 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1757 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1758 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1759 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1760
1761 /* Fizzy drink factory */
1762 MT(8, CT_BUBBLES, 8, CT_COLA, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1763 MT(8, CT_BUBBLES, 8, CT_COLA, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1764 MT(8, CT_BUBBLES, 8, CT_COLA, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1765 MT(8, CT_BUBBLES, 8, CT_COLA, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1766
1767 /* Bubble generator */
1768 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1769 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1770 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1771 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1772
1773 /* Toffee quarry */
1774 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1775 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1776 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1777
1778 /* Sugar mine */
1779 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1780 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1781 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1782 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1783 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1784 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1785 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1786 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1787 };
1788 #undef MT
1789
1790 #endif /* BUILD_INDUSTRY_H */
INDUSTRYBEH_ONLY_INTOWN
@ INDUSTRYBEH_ONLY_INTOWN
can only be built in towns (arctic/tropic banks, water tower)
Definition: industrytype.h:65
_farm_sounds
static const uint8_t _farm_sounds[]
Array with 3 animal sounds, for farms.
Definition: build_industry.h:1041
CHECK_WATER
@ CHECK_WATER
Industry should be in the desert.
Definition: industrytype.h:43
MCT_GRAIN_WHEAT_MAIZE
@ MCT_GRAIN_WHEAT_MAIZE
Cargo can be grain, wheat or maize.
Definition: cargo_type.h:85
INDUSTRYBEH_AFTER_1960
@ INDUSTRYBEH_AFTER_1960
can only be built after 1960 (oil rigs)
Definition: industrytype.h:70
CHECK_FOREST
@ CHECK_FOREST
Industry should be build above snow-line in arctic climate.
Definition: industrytype.h:39
INDUSTRYBEH_CAN_SUBSIDENCE
@ INDUSTRYBEH_CAN_SUBSIDENCE
can cause a subsidence (coal mine, shaft that collapses)
Definition: industrytype.h:74
INDUSTRYBEH_DONT_INCR_PROD
@ INDUSTRYBEH_DONT_INCR_PROD
do not increase production (oil wells) in the temperate climate
Definition: industrytype.h:68
CHECK_BUBBLEGEN
@ CHECK_BUBBLEGEN
Industry should be in low land.
Definition: industrytype.h:45
SLOPE_S
@ SLOPE_S
the south corner of the tile is raised
Definition: slope_type.h:51
SLOPE_E
@ SLOPE_E
the east corner of the tile is raised
Definition: slope_type.h:52
IndustryTileLayout
std::vector< IndustryTileLayoutTile > IndustryTileLayout
A complete tile layout for an industry is a list of tiles.
Definition: industrytype.h:100
INDUSTRYBEH_PLANT_ON_BUILT
@ INDUSTRYBEH_PLANT_ON_BUILT
Fields are planted around when built (all farms)
Definition: industrytype.h:67
INDUSTRYBEH_AIRPLANE_ATTACKS
@ INDUSTRYBEH_AIRPLANE_ATTACKS
can be exploded by a military airplane (oil refinery)
Definition: industrytype.h:72
INDUSTRYBEH_AI_AIRSHIP_ROUTES
@ INDUSTRYBEH_AI_AIRSHIP_ROUTES
ai will attempt to establish air/ship routes to this industry (oil rig)
Definition: industrytype.h:71
NEW_INDUSTRYOFFSET
static const IndustryType NEW_INDUSTRYOFFSET
original number of industry types
Definition: industry_type.h:25
INDUSTRYBEH_PLANT_FIELDS
@ INDUSTRYBEH_PLANT_FIELDS
periodically plants fields around itself (temp and arctic farms)
Definition: industrytype.h:61
INDUSTRYTILE_NOANIM
static const IndustryGfx INDUSTRYTILE_NOANIM
flag to mark industry tiles as having no animation
Definition: industry_type.h:31
INDUSTRYBEH_BUILT_ONWATER
@ INDUSTRYBEH_BUILT_ONWATER
is built on water (oil rig)
Definition: industrytype.h:63
MI
#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.
Definition: build_industry.h:1128
INDUSTRYBEH_BEFORE_1950
@ INDUSTRYBEH_BEFORE_1950
can only be built before 1950 (oil wells)
Definition: industrytype.h:69
INDUSTRYLIFE_BLACK_HOLE
@ INDUSTRYLIFE_BLACK_HOLE
Like power plants and banks.
Definition: industrytype.h:27
MT
#define MT(ca1, c1, ca2, c2, ca3, c3, sl, a1, a2, a3)
Writes the properties of an industry tile into the IndustryTileSpec struct.
Definition: build_industry.h:1535
CHECK_FARM
@ CHECK_FARM
Industry should be below snow-line in arctic.
Definition: industrytype.h:41
IndustrySpec
Defines the data structure for constructing industry.
Definition: industrytype.h:105
SND_26_FARM_3
@ SND_26_FARM_3
36 == 0x24 Industry producing: farm (3): horse
Definition: sound_type.h:75
INDUSTRYLIFE_PROCESSING
@ INDUSTRYLIFE_PROCESSING
Like factories.
Definition: industrytype.h:30
SND_33_PLASTIC_MINE
@ SND_33_PLASTIC_MINE
51 == 0x33 Industry producing: plastic fountain
Definition: sound_type.h:90
CT_INVALID
static constexpr CargoLabel CT_INVALID
Invalid cargo type.
Definition: cargo_type.h:71
CT_PASSENGERS
static constexpr CargoLabel CT_PASSENGERS
Available types of cargo Labels may be re-used between different climates.
Definition: cargo_type.h:30
CHECK_OIL_RIG
@ CHECK_OIL_RIG
Industries at sea should be positioned near edge of the map.
Definition: industrytype.h:46
_plastic_mine_sounds
static const uint8_t _plastic_mine_sounds[]
Array with...
Definition: build_industry.h:1044
MK
#define MK(x, y, m)
Definition of an industry tiles layout.
Definition: build_industry.h:21
CHECK_LUMBERMILL
@ CHECK_LUMBERMILL
Industry should be in the rain forest.
Definition: industrytype.h:44
INDUSTRYBEH_ONLY_NEARTOWN
@ INDUSTRYBEH_ONLY_NEARTOWN
is always built near towns (toy shop)
Definition: industrytype.h:66
MCT_LIVESTOCK_FRUIT
@ MCT_LIVESTOCK_FRUIT
Cargo can be livestock or fruit.
Definition: cargo_type.h:84
INDUSTRYLIFE_ORGANIC
@ INDUSTRYLIFE_ORGANIC
Like forests.
Definition: industrytype.h:29
_sawmill_sounds
static const uint8_t _sawmill_sounds[]
Array with saw sound, for sawmill.
Definition: build_industry.h:1035
CHECK_NOTHING
@ CHECK_NOTHING
Always succeeds.
Definition: industrytype.h:38
SND_03_FACTORY
@ SND_03_FACTORY
1 == 0x01 Industry producing: factory: whistle
Definition: sound_type.h:40
SND_24_FARM_1
@ SND_24_FARM_1
34 == 0x22 Industry producing: farm (1): sheep
Definition: sound_type.h:73
INDUSTRYBEH_CHOPPER_ATTACKS
@ INDUSTRYBEH_CHOPPER_ATTACKS
can be exploded by a military helicopter (factory)
Definition: industrytype.h:73
MCT_VALUABLES_GOLD_DIAMONDS
@ MCT_VALUABLES_GOLD_DIAMONDS
Cargo can be valuables, gold or diamonds.
Definition: cargo_type.h:86
INDUSTRYBEH_TOWN1200_MORE
@ INDUSTRYBEH_TOWN1200_MORE
can only be built in towns larger than 1200 inhabitants (temperate bank)
Definition: industrytype.h:64
NEW_INDUSTRYTILEOFFSET
static const IndustryGfx NEW_INDUSTRYTILEOFFSET
original number of tiles
Definition: industry_type.h:32
INDUSTRYBEH_CUT_TREES
@ INDUSTRYBEH_CUT_TREES
cuts trees and produce first output cargo from them (lumber mill)
Definition: industrytype.h:62
SND_25_FARM_2
@ SND_25_FARM_2
35 == 0x23 Industry producing: farm (2): cow
Definition: sound_type.h:74
IndustryTileSpec
Defines the data structure of each individual tile of an industry.
Definition: industrytype.h:156
SND_28_SAWMILL
@ SND_28_SAWMILL
38 == 0x26 Industry producing: sawmill
Definition: sound_type.h:77
CHECK_PLANTATION
@ CHECK_PLANTATION
Industry should NOT be in the desert.
Definition: industrytype.h:42
SLOPE_STEEP
@ SLOPE_STEEP
indicates the slope is steep
Definition: slope_type.h:54
CHECK_REFINERY
@ CHECK_REFINERY
Industry should be positioned near edge of the map.
Definition: industrytype.h:40
_factory_sounds
static const uint8_t _factory_sounds[]
Array with whistle sound, for factory.
Definition: build_industry.h:1038
INDUSTRYLIFE_EXTRACTIVE
@ INDUSTRYLIFE_EXTRACTIVE
Like mines.
Definition: industrytype.h:28