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

OpenTTD Source 13.1

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 _sawmill_sounds[] = { SND_28_SAWMILL };
1036
1038 static const uint8 _factory_sounds[] = { SND_03_FACTORY };
1039
1041 static const uint8 _farm_sounds[] = { SND_24_FARM_1, SND_25_FARM_2, SND_26_FARM_3 };
1042
1044 static const uint8 _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 {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}, \
1132 {r1, r2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, m, \
1133 {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}, \
1134 {{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}}, \
1135 pr, clim, bev, col, in, intx, s1, s2, s3, STR_UNDEFINED, {ai1, ai2, ai3, ai4}, {ag1, ag2, ag3, ag4}, \
1136 sndc, snd, 0, 0, true, GRFFileProps(INVALID_INDUSTRYTYPE)}
1137 /* Format:
1138 tile table count and sounds table
1139 cost multiplier appear chances(4ingame, 4random) map colour
1140 cannot be close to these industries (3 times) check proc
1141 (produced cargo + rate) (twice) minimum cargo moved to station
1142 3 accepted cargo and their corresponding input multiplier
1143 industry life climate availability
1144 industry behaviours
1145 industry name building text
1146 messages : Closure production up production down */
1147 static const IndustrySpec _origin_industry_specs[NEW_INDUSTRYOFFSET] = {
1148 MI(_tile_table_coal_mine, 0, nullptr,
1149 210, 0xB3333333, 2, 3, 0, 0, 8, 8, 0, 0, 1,
1150 IT_POWER_STATION, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1151 CT_COAL, 15, CT_INVALID, 0, 5,
1152 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1153 INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TEMPERATE | 1 << LT_ARCTIC,
1154 INDUSTRYBEH_CAN_SUBSIDENCE,
1155 STR_INDUSTRY_NAME_COAL_MINE, STR_NEWS_INDUSTRY_CONSTRUCTION,
1156 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_COAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1157
1158 MI(_tile_table_power_station, 0, nullptr,
1159 240, 0xFFFFFFFF, 2, 2, 0, 0, 5, 5, 0, 0, 184,
1160 IT_COAL_MINE, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1161 CT_INVALID, 0, CT_INVALID, 0, 5,
1162 CT_COAL, 256, CT_INVALID, 256, CT_INVALID, 256,
1163 INDUSTRYLIFE_BLACK_HOLE, 1 << LT_TEMPERATE | 1 << LT_ARCTIC,
1164 INDUSTRYBEH_NONE,
1165 STR_INDUSTRY_NAME_POWER_STATION, STR_NEWS_INDUSTRY_CONSTRUCTION,
1166 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1167
1168 MI(_tile_table_sawmill, 1, _sawmill_sounds,
1169 224, 0xFFFFFFFF, 2, 0, 0, 0, 5, 0, 0, 0, 194,
1170 IT_FOREST, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1171 CT_GOODS, 0, CT_INVALID, 0, 5,
1172 CT_WOOD, 256, CT_INVALID, 256, CT_INVALID, 256,
1173 INDUSTRYLIFE_PROCESSING, 1 << LT_TEMPERATE,
1174 INDUSTRYBEH_NONE,
1175 STR_INDUSTRY_NAME_SAWMILL, STR_NEWS_INDUSTRY_CONSTRUCTION,
1176 STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1177
1178 MI(_tile_table_forest, 0, nullptr,
1179 200, 0xBFFFFFFF, 3, 4, 0, 0, 5, 5, 0, 0, 86,
1180 IT_SAWMILL, IT_PAPER_MILL, IT_INVALID, CHECK_FOREST,
1181 CT_WOOD, 13, CT_INVALID, 0, 30,
1182 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1183 INDUSTRYLIFE_ORGANIC, 1 << LT_TEMPERATE | 1 << LT_ARCTIC,
1184 INDUSTRYBEH_NONE,
1185 STR_INDUSTRY_NAME_FOREST, STR_NEWS_INDUSTRY_PLANTED,
1186 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM),
1187
1188 MI(_tile_table_oil_refinery, 0, nullptr,
1189 244, 0xFFFFFFFF, 2, 2, 2, 0, 4, 4, 4, 0, 191,
1190 IT_OIL_RIG, IT_INVALID, IT_INVALID, CHECK_REFINERY,
1191 CT_GOODS, 0, CT_INVALID, 0, 5,
1192 CT_OIL, 256, CT_INVALID, 256, CT_INVALID, 256,
1193 INDUSTRYLIFE_PROCESSING, 1 << LT_TEMPERATE | 1 << LT_ARCTIC | 1 << LT_TROPIC,
1194 INDUSTRYBEH_AIRPLANE_ATTACKS,
1195 STR_INDUSTRY_NAME_OIL_REFINERY, STR_NEWS_INDUSTRY_CONSTRUCTION,
1196 STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1197
1198 MI(_tile_table_oil_rig, 0, nullptr,
1199 240, 0x99999999, 6, 0, 0, 0, 0, 0, 0, 0, 152,
1200 IT_OIL_REFINERY, IT_INVALID, IT_INVALID, CHECK_OIL_RIG,
1201 CT_OIL, 15, CT_PASSENGERS, 2, 5,
1202 CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, 0,
1203 INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TEMPERATE,
1204 INDUSTRYBEH_BUILT_ONWATER | INDUSTRYBEH_AFTER_1960 | INDUSTRYBEH_AI_AIRSHIP_ROUTES,
1205 STR_INDUSTRY_NAME_OIL_RIG, STR_NEWS_INDUSTRY_CONSTRUCTION,
1206 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_OIL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1207
1208 MI(_tile_table_factory, 1, _factory_sounds,
1209 208, 0xFFFFFFFF, 2, 0, 0, 0, 5, 0, 0, 0, 174,
1210 IT_FARM, IT_STEEL_MILL, IT_INVALID, CHECK_NOTHING,
1211 CT_GOODS, 0, CT_INVALID, 0, 5,
1212 CT_LIVESTOCK, 256, CT_GRAIN, 256, CT_STEEL, 256,
1213 INDUSTRYLIFE_PROCESSING, 1 << LT_TEMPERATE,
1214 INDUSTRYBEH_CHOPPER_ATTACKS,
1215 STR_INDUSTRY_NAME_FACTORY, STR_NEWS_INDUSTRY_CONSTRUCTION,
1216 STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1217
1218 MI(_tile_table_printing_works, 1, _factory_sounds,
1219 208, 0xFFFFFFFF, 0, 2, 0, 0, 0, 5, 0, 0, 174,
1220 IT_PAPER_MILL, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1221 CT_GOODS, 0, CT_INVALID, 0, 5,
1222 CT_PAPER, 256, CT_INVALID, 256, CT_INVALID, 256,
1223 INDUSTRYLIFE_PROCESSING, 1 << LT_ARCTIC,
1224 INDUSTRYBEH_NONE,
1225 STR_INDUSTRY_NAME_PRINTING_WORKS, STR_NEWS_INDUSTRY_CONSTRUCTION,
1226 STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1227
1228 MI(_tile_table_steel_mill, 0, nullptr,
1229 215, 0xFFFFFFFF, 2, 0, 0, 0, 5, 0, 0, 0, 10,
1230 IT_IRON_MINE, IT_FACTORY, IT_INVALID, CHECK_NOTHING,
1231 CT_STEEL, 0, CT_INVALID, 0, 5,
1232 CT_IRON_ORE, 256, CT_INVALID, 256, CT_INVALID, 256,
1233 INDUSTRYLIFE_PROCESSING, 1 << LT_TEMPERATE,
1234 INDUSTRYBEH_NONE,
1235 STR_INDUSTRY_NAME_STEEL_MILL, STR_NEWS_INDUSTRY_CONSTRUCTION,
1236 STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1237
1238 MI(_tile_table_farm, 3, _farm_sounds,
1239 250, 0xD9999999, 2, 4, 0, 0, 9, 9, 0, 0, 48,
1240 IT_FACTORY, IT_FOOD_PROCESS, IT_INVALID, CHECK_FARM,
1241 CT_GRAIN, 10, CT_LIVESTOCK, 10, 5,
1242 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1243 INDUSTRYLIFE_ORGANIC, 1 << LT_TEMPERATE | 1 << LT_ARCTIC,
1244 INDUSTRYBEH_PLANT_FIELDS | INDUSTRYBEH_PLANT_ON_BUILT,
1245 STR_INDUSTRY_NAME_FARM, STR_NEWS_INDUSTRY_CONSTRUCTION,
1246 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM),
1247
1248 MI(_tile_table_copper_mine, 0, nullptr,
1249 205, 0xB3333333, 0, 0, 3, 0, 0, 0, 4, 0, 10,
1250 IT_FACTORY_2, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1251 CT_COPPER_ORE, 10, CT_INVALID, 0, 5,
1252 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1253 INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TROPIC,
1254 INDUSTRYBEH_NONE,
1255 STR_INDUSTRY_NAME_COPPER_ORE_MINE, STR_NEWS_INDUSTRY_CONSTRUCTION,
1256 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1257
1258 MI(_tile_table_oil_well, 0, nullptr,
1259 220, 0x99999999, 0, 5, 3, 0, 4, 5, 5, 0, 152,
1260 IT_OIL_REFINERY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1261 CT_OIL, 12, CT_INVALID, 0, 5,
1262 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1263 INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TEMPERATE | 1 << LT_ARCTIC | 1 << LT_TROPIC,
1264 INDUSTRYBEH_DONT_INCR_PROD | INDUSTRYBEH_BEFORE_1950,
1265 STR_INDUSTRY_NAME_OIL_WELLS, STR_NEWS_INDUSTRY_CONSTRUCTION,
1266 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_OIL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1267
1268 MI(_tile_table_bank, 0, nullptr,
1269 255, 0xA6666666, 7, 0, 0, 0, 0, 0, 0, 0, 15,
1270 IT_BANK_TEMP, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1271 CT_VALUABLES, 6, CT_INVALID, 0, 5,
1272 CT_VALUABLES, 0, CT_INVALID, 0, CT_INVALID, 0,
1273 INDUSTRYLIFE_BLACK_HOLE, 1 << LT_TEMPERATE,
1274 INDUSTRYBEH_TOWN1200_MORE,
1275 STR_INDUSTRY_NAME_BANK, STR_NEWS_INDUSTRY_CONSTRUCTION,
1276 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1277
1278 MI(_tile_table_food_process, 0, nullptr,
1279 206, 0xFFFFFFFF, 0, 2, 2, 0, 0, 3, 4, 0, 55,
1280 IT_FRUIT_PLANTATION, IT_FARM, IT_FARM_2, CHECK_NOTHING,
1281 CT_FOOD, 0, CT_INVALID, 0, 5,
1282 CT_FRUIT, 256, CT_MAIZE, 256, CT_INVALID, 256,
1283 INDUSTRYLIFE_PROCESSING, 1 << LT_ARCTIC | 1 << LT_TROPIC,
1284 INDUSTRYBEH_NONE,
1285 STR_INDUSTRY_NAME_FOOD_PROCESSING_PLANT, STR_NEWS_INDUSTRY_CONSTRUCTION,
1286 STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1287
1288 MI(_tile_table_paper_mill, 1, _sawmill_sounds,
1289 227, 0xFFFFFFFF, 0, 2, 0, 0, 0, 5, 0, 0, 10,
1290 IT_FOREST, IT_PRINTING_WORKS, IT_INVALID, CHECK_NOTHING,
1291 CT_PAPER, 0, CT_INVALID, 0, 5,
1292 CT_WOOD, 256, CT_INVALID, 256, CT_INVALID, 256,
1293 INDUSTRYLIFE_PROCESSING, 1 << LT_ARCTIC,
1294 INDUSTRYBEH_NONE,
1295 STR_INDUSTRY_NAME_PAPER_MILL, STR_NEWS_INDUSTRY_CONSTRUCTION,
1296 STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1297
1298 MI(_tile_table_gold_mine, 0, nullptr,
1299 208, 0x99999999, 0, 3, 0, 0, 0, 4, 0, 0, 194,
1300 IT_BANK_TROPIC_ARCTIC, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1301 CT_GOLD, 7, CT_INVALID, 0, 5,
1302 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1303 INDUSTRYLIFE_EXTRACTIVE, 1 << LT_ARCTIC,
1304 INDUSTRYBEH_NONE,
1305 STR_INDUSTRY_NAME_GOLD_MINE, STR_NEWS_INDUSTRY_CONSTRUCTION,
1306 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1307
1308 MI(_tile_table_bank2, 0, nullptr,
1309 151, 0xA6666666, 0, 3, 3, 0, 0, 6, 5, 0, 15,
1310 IT_GOLD_MINE, IT_DIAMOND_MINE, IT_INVALID, CHECK_NOTHING,
1311 CT_INVALID, 0, CT_INVALID, 0, 5,
1312 CT_GOLD, 256, CT_INVALID, 256, CT_INVALID, 256,
1313 INDUSTRYLIFE_BLACK_HOLE, 1 << LT_ARCTIC | 1 << LT_TROPIC,
1314 INDUSTRYBEH_ONLY_INTOWN,
1315 STR_INDUSTRY_NAME_BANK_TROPIC_ARCTIC, STR_NEWS_INDUSTRY_CONSTRUCTION,
1316 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1317
1318 MI(_tile_table_diamond_mine, 0, nullptr,
1319 213, 0x99999999, 0, 0, 3, 0, 0, 0, 4, 0, 184,
1320 IT_BANK_TROPIC_ARCTIC, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1321 CT_DIAMONDS, 7, CT_INVALID, 0, 5,
1322 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1323 INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TROPIC,
1324 INDUSTRYBEH_NONE,
1325 STR_INDUSTRY_NAME_DIAMOND_MINE, STR_NEWS_INDUSTRY_CONSTRUCTION,
1326 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1327
1328 MI(_tile_table_iron_mine, 0, nullptr,
1329 220, 0xB3333333, 2, 0, 0, 0, 5, 0, 0, 0, 55,
1330 IT_STEEL_MILL, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1331 CT_IRON_ORE, 10, CT_INVALID, 0, 5,
1332 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1333 INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TEMPERATE,
1334 INDUSTRYBEH_NONE,
1335 STR_INDUSTRY_NAME_IRON_ORE_MINE, STR_NEWS_INDUSTRY_CONSTRUCTION,
1336 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1337
1338 MI(_tile_table_fruit_plantation, 0, nullptr,
1339 225, 0xBFFFFFFF, 0, 0, 2, 0, 0, 0, 4, 0, 86,
1340 IT_FOOD_PROCESS, IT_INVALID, IT_INVALID, CHECK_PLANTATION,
1341 CT_FRUIT, 10, CT_INVALID, 0, 15,
1342 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1343 INDUSTRYLIFE_ORGANIC, 1 << LT_TROPIC,
1344 INDUSTRYBEH_NONE,
1345 STR_INDUSTRY_NAME_FRUIT_PLANTATION, STR_NEWS_INDUSTRY_PLANTED,
1346 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM),
1347
1348 MI(_tile_table_rubber_plantation, 0, nullptr,
1349 218, 0xBFFFFFFF, 0, 0, 3, 0, 0, 0, 4, 0, 39,
1350 IT_FACTORY_2, IT_INVALID, IT_INVALID, CHECK_PLANTATION,
1351 CT_RUBBER, 10, CT_INVALID, 0, 15,
1352 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1353 INDUSTRYLIFE_ORGANIC, 1 << LT_TROPIC,
1354 INDUSTRYBEH_NONE,
1355 STR_INDUSTRY_NAME_RUBBER_PLANTATION, STR_NEWS_INDUSTRY_PLANTED,
1356 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM),
1357
1358 MI(_tile_table_water_supply, 0, nullptr,
1359 199, 0xB3333333, 0, 0, 3, 0, 0, 0, 4, 0, 37,
1360 IT_WATER_TOWER, IT_INVALID, IT_INVALID, CHECK_WATER,
1361 CT_WATER, 12, CT_INVALID, 0, 5,
1362 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1363 INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TROPIC,
1364 INDUSTRYBEH_NONE,
1365 STR_INDUSTRY_NAME_WATER_SUPPLY, STR_NEWS_INDUSTRY_CONSTRUCTION,
1366 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1367
1368 MI(_tile_table_water_tower, 0, nullptr,
1369 115, 0xFFFFFFFF, 0, 0, 4, 0, 0, 0, 8, 0, 208,
1370 IT_WATER_SUPPLY, IT_INVALID, IT_INVALID, CHECK_WATER,
1371 CT_INVALID, 0, CT_INVALID, 0, 5,
1372 CT_WATER, 256, CT_INVALID, 256, CT_INVALID, 256,
1373 INDUSTRYLIFE_BLACK_HOLE, 1 << LT_TROPIC,
1374 INDUSTRYBEH_ONLY_INTOWN,
1375 STR_INDUSTRY_NAME_WATER_TOWER, STR_NEWS_INDUSTRY_CONSTRUCTION,
1376 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1377
1378 MI(_tile_table_factory2, 1, _factory_sounds,
1379 208, 0xFFFFFFFF, 0, 0, 2, 0, 0, 0, 4, 0, 174,
1380 IT_RUBBER_PLANTATION, IT_COPPER_MINE, IT_LUMBER_MILL, CHECK_PLANTATION,
1381 CT_GOODS, 0, CT_INVALID, 0, 5,
1382 CT_RUBBER, 256, CT_COPPER_ORE, 256, CT_WOOD, 256,
1383 INDUSTRYLIFE_PROCESSING, 1 << LT_TROPIC,
1384 INDUSTRYBEH_NONE,
1385 STR_INDUSTRY_NAME_FACTORY_2, STR_NEWS_INDUSTRY_CONSTRUCTION,
1386 STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1387
1388 MI(_tile_table_farm2, 0, nullptr,
1389 250, 0xD9999999, 0, 0, 1, 0, 0, 0, 2, 0, 48,
1390 IT_FOOD_PROCESS, IT_INVALID, IT_INVALID, CHECK_PLANTATION,
1391 CT_MAIZE, 11, CT_INVALID, 0, 5,
1392 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1393 INDUSTRYLIFE_ORGANIC, 1 << LT_TROPIC,
1394 INDUSTRYBEH_PLANT_FIELDS | INDUSTRYBEH_PLANT_ON_BUILT,
1395 STR_INDUSTRY_NAME_FARM_2, STR_NEWS_INDUSTRY_CONSTRUCTION,
1396 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM),
1397
1398 MI(_tile_table_lumber_mill, 0, nullptr,
1399 135, 0xFFFFFFFF, 0, 0, 0, 0, 0, 0, 0, 0, 194,
1400 IT_FACTORY_2, IT_INVALID, IT_INVALID, CHECK_LUMBERMILL,
1401 CT_WOOD, 0, CT_INVALID, 0, 5,
1402 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1403 INDUSTRYLIFE_PROCESSING, 1 << LT_TROPIC,
1404 INDUSTRYBEH_CUT_TREES,
1405 STR_INDUSTRY_NAME_LUMBER_MILL, STR_NEWS_INDUSTRY_CONSTRUCTION,
1406 STR_NEWS_INDUSTRY_CLOSURE_LACK_OF_TREES, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1407
1408 MI(_tile_table_cotton_candy, 0, nullptr,
1409 195, 0xBFFFFFFF, 0, 0, 0, 3, 0, 0, 0, 5, 48,
1410 IT_CANDY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1411 CT_COTTON_CANDY, 13, CT_INVALID, 0, 30,
1412 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1413 INDUSTRYLIFE_ORGANIC, 1 << LT_TOYLAND,
1414 INDUSTRYBEH_NONE,
1415 STR_INDUSTRY_NAME_COTTON_CANDY_FOREST, STR_NEWS_INDUSTRY_PLANTED,
1416 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1417
1418 MI(_tile_table_candy_factory, 0, nullptr,
1419 206, 0xFFFFFFFF, 0, 0, 0, 3, 0, 0, 0, 5, 174,
1420 IT_COTTON_CANDY, IT_TOFFEE_QUARRY, IT_SUGAR_MINE, CHECK_NOTHING,
1421 CT_CANDY, 0, CT_INVALID, 0, 5,
1422 CT_SUGAR, 256, CT_TOFFEE, 256, CT_COTTON_CANDY, 256,
1423 INDUSTRYLIFE_PROCESSING, 1 << LT_TOYLAND,
1424 INDUSTRYBEH_NONE,
1425 STR_INDUSTRY_NAME_CANDY_FACTORY, STR_NEWS_INDUSTRY_CONSTRUCTION,
1426 STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1427
1428 MI(_tile_table_battery_farm, 0, nullptr,
1429 187, 0xB3333333, 0, 0, 0, 3, 0, 0, 0, 4, 39,
1430 IT_TOY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1431 CT_BATTERIES, 11, CT_INVALID, 0, 30,
1432 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1433 INDUSTRYLIFE_ORGANIC, 1 << LT_TOYLAND,
1434 INDUSTRYBEH_NONE,
1435 STR_INDUSTRY_NAME_BATTERY_FARM, STR_NEWS_INDUSTRY_CONSTRUCTION,
1436 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM),
1437
1438 MI(_tile_table_cola_wells, 0, nullptr,
1439 193, 0x99999999, 0, 0, 0, 3, 0, 0, 0, 5, 55,
1440 IT_FIZZY_DRINK_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1441 CT_COLA, 12, CT_INVALID, 0, 5,
1442 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1443 INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TOYLAND,
1444 INDUSTRYBEH_NONE,
1445 STR_INDUSTRY_NAME_COLA_WELLS, STR_NEWS_INDUSTRY_CONSTRUCTION,
1446 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1447
1448 MI(_tile_table_toy_shop, 0, nullptr,
1449 133, 0xFFFFFFFF, 0, 0, 0, 3, 0, 0, 0, 4, 208,
1450 IT_TOY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1451 CT_INVALID, 0, CT_INVALID, 0, 5,
1452 CT_TOYS, 256, CT_INVALID, 256, CT_INVALID, 256,
1453 INDUSTRYLIFE_BLACK_HOLE, 1 << LT_TOYLAND,
1454 INDUSTRYBEH_ONLY_NEARTOWN,
1455 STR_INDUSTRY_NAME_TOY_SHOP, STR_NEWS_INDUSTRY_CONSTRUCTION,
1456 STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1457
1458 MI(_tile_table_toy_factory, 0, nullptr,
1459 163, 0xFFFFFFFF, 0, 0, 0, 3, 0, 0, 0, 5, 10,
1460 IT_PLASTIC_FOUNTAINS, IT_BATTERY_FARM, IT_TOY_SHOP, CHECK_NOTHING,
1461 CT_TOYS, 0, CT_INVALID, 0, 5,
1462 CT_PLASTIC, 256, CT_BATTERIES, 256, CT_INVALID, 256,
1463 INDUSTRYLIFE_PROCESSING, 1 << LT_TOYLAND,
1464 INDUSTRYBEH_NONE,
1465 STR_INDUSTRY_NAME_TOY_FACTORY, STR_NEWS_INDUSTRY_CONSTRUCTION,
1466 STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1467
1468 MI(_tile_table_plastic_fountain, 1, _plastic_mine_sounds,
1469 192, 0xA6666666, 0, 0, 0, 3, 0, 0, 0, 5, 37,
1470 IT_TOY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1471 CT_PLASTIC, 14, CT_INVALID, 0, 5,
1472 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1473 INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TOYLAND,
1474 INDUSTRYBEH_NONE,
1475 STR_INDUSTRY_NAME_PLASTIC_FOUNTAINS, STR_NEWS_INDUSTRY_CONSTRUCTION,
1476 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1477
1478 MI(_tile_table_fizzy_drink, 0, nullptr,
1479 177, 0xFFFFFFFF, 0, 0, 0, 3, 0, 0, 0, 4, 184,
1480 IT_COLA_WELLS, IT_BUBBLE_GENERATOR, IT_INVALID, CHECK_NOTHING,
1481 CT_FIZZY_DRINKS, 0, CT_INVALID, 0, 5,
1482 CT_COLA, 256, CT_BUBBLES, 256, CT_INVALID, 256,
1483 INDUSTRYLIFE_PROCESSING, 1 << LT_TOYLAND,
1484 INDUSTRYBEH_NONE,
1485 STR_INDUSTRY_NAME_FIZZY_DRINK_FACTORY, STR_NEWS_INDUSTRY_CONSTRUCTION,
1486 STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1487
1488 MI(_tile_table_bubble_generator, 0, nullptr,
1489 203, 0xB3333333, 0, 0, 0, 3, 0, 0, 0, 5, 152,
1490 IT_FIZZY_DRINK_FACTORY, IT_INVALID, IT_INVALID, CHECK_BUBBLEGEN,
1491 CT_BUBBLES, 13, CT_INVALID, 0, 5,
1492 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1493 INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TOYLAND,
1494 INDUSTRYBEH_NONE,
1495 STR_INDUSTRY_NAME_BUBBLE_GENERATOR, STR_NEWS_INDUSTRY_CONSTRUCTION,
1496 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1497
1498 MI(_tile_table_toffee_quarry, 0, nullptr,
1499 213, 0xCCCCCCCC, 0, 0, 0, 3, 0, 0, 0, 5, 194,
1500 IT_CANDY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1501 CT_TOFFEE, 10, CT_INVALID, 0, 5,
1502 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1503 INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TOYLAND,
1504 INDUSTRYBEH_NONE,
1505 STR_INDUSTRY_NAME_TOFFEE_QUARRY, STR_NEWS_INDUSTRY_CONSTRUCTION,
1506 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1507
1508 MI(_tile_table_sugar_mine, 0, nullptr,
1509 210, 0xBFFFFFFF, 0, 0, 0, 2, 0, 0, 0, 4, 15,
1510 IT_CANDY_FACTORY, IT_INVALID, IT_INVALID, CHECK_NOTHING,
1511 CT_SUGAR, 11, CT_INVALID, 0, 5,
1512 CT_INVALID, 256, CT_INVALID, 256, CT_INVALID, 256,
1513 INDUSTRYLIFE_EXTRACTIVE, 1 << LT_TOYLAND,
1514 INDUSTRYBEH_NONE,
1515 STR_INDUSTRY_NAME_SUGAR_MINE, STR_NEWS_INDUSTRY_CONSTRUCTION,
1516 STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL),
1517 };
1518 #undef MI
1519
1533 #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)}
1534 static const IndustryTileSpec _origin_industry_tile_specs[NEW_INDUSTRYTILEOFFSET] = {
1535 /* Coal Mine */
1536 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1537 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, true),
1538 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1539 MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1540 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1541 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1542 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1543
1544 /* Power Station */
1545 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1546 MT(1, CT_PASSENGERS, 8, CT_COAL, 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 /* Sawmill */
1551 MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1552 MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1553 MT(1, CT_PASSENGERS, 8, CT_WOOD, 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 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1556
1557 /* Forest Artic, temperate */
1558 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, 17, INDUSTRYTILE_NOANIM, false),
1559 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, 16, false),
1560
1561 /* Oil refinery */
1562 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1563 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1564 MT(0, CT_INVALID, 8, CT_OIL, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1565 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1566 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1567 MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1568
1569 /* Oil Rig */
1570 MT(0, CT_INVALID, 8, CT_PASSENGERS, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1571 MT(0, CT_INVALID, 8, CT_MAIL, 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(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1574 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1575
1576 /* Oil Wells artic, temperate and sub-tropical */
1577 MT(0, CT_INVALID, 0, CT_INVALID, 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, true ),
1579 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, true ),
1580 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, true ),
1581
1582 /* Farm tropic, arctic and temperate */
1583 MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1584 MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1585 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1586 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1587 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1588 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1589
1590 /* Factory temperate */
1591 MT(8, CT_GRAIN, 8, CT_LIVESTOCK, 8, CT_STEEL, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1592 MT(8, CT_GRAIN, 8, CT_LIVESTOCK, 8, CT_STEEL, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
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
1596 /* Printing works */
1597 MT(0, CT_INVALID, 8, CT_PAPER, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1598 MT(0, CT_INVALID, 8, CT_PAPER, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1599 MT(0, CT_INVALID, 8, CT_PAPER, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1600 MT(0, CT_INVALID, 8, CT_PAPER, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1601
1602 /* Copper ore mine */
1603 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1604 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, true ),
1605 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1606 MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1607 MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1608
1609 /* Steel mill */
1610 MT(1, CT_PASSENGERS, 8, CT_IRON_ORE, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1611 MT(1, CT_PASSENGERS, 8, CT_IRON_ORE, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
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
1617 /* Bank temperate*/
1618 MT(1, CT_PASSENGERS, 8, CT_VALUABLES, 0, CT_INVALID, SLOPE_E, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1619 MT(1, CT_PASSENGERS, 8, CT_VALUABLES, 0, CT_INVALID, SLOPE_S, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1620
1621 /* Food processing plant, tropic and arctic. CT_MAIZE or CT_WHEAT, CT_LIVESTOCK or CT_FRUIT*/
1622 MT(8, CT_MAIZE, 8, CT_LIVESTOCK, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1623 MT(8, CT_MAIZE, 8, CT_LIVESTOCK, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
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
1627 /* Paper mill */
1628 MT(0, CT_INVALID, 8, CT_WOOD, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1629 MT(0, CT_INVALID, 8, CT_WOOD, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1630 MT(0, CT_INVALID, 8, CT_WOOD, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1631 MT(0, CT_INVALID, 8, CT_WOOD, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1632 MT(0, CT_INVALID, 8, CT_WOOD, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1633 MT(0, CT_INVALID, 8, CT_WOOD, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
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
1637 /* Gold mine */
1638 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1639 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1640 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1641 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1642 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1643 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
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, true),
1655
1656 /* Bank Sub Arctic */
1657 MT(0, CT_INVALID, 8, CT_GOLD, 0, CT_INVALID, SLOPE_E, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1658 MT(0, CT_INVALID, 8, CT_GOLD, 0, CT_INVALID, SLOPE_S, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1659
1660 /* Diamond mine */
1661 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1662 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1663 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1664 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1665 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1666 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
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
1671 /* Iron ore Mine */
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 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1677 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
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
1689 /* Fruit plantation */
1690 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1691
1692 /* Rubber plantation */
1693 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1694
1695 /* Water supply */
1696 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1697 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1698
1699 /* Water tower */
1700 MT(0, CT_INVALID, 8, CT_WATER, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1701
1702 /* Factory (sub-tropical) */
1703 MT(8, CT_COPPER_ORE, 8, CT_RUBBER, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1704 MT(8, CT_COPPER_ORE, 8, CT_RUBBER, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
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
1708 /* Lumber mill */
1709 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1710 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1711 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1712 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1713
1714 /* Candyfloss forest */
1715 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, 130, INDUSTRYTILE_NOANIM, false),
1716 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, 129, false),
1717
1718 /* Sweet factory */
1719 MT(8, CT_COTTON_CANDY, 8, CT_TOFFEE, 8, CT_SUGAR, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1720 MT(8, CT_COTTON_CANDY, 8, CT_TOFFEE, 8, CT_SUGAR, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
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
1724 /* Battery farm */
1725 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, 136, INDUSTRYTILE_NOANIM, false),
1726 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, 135, false),
1727
1728 /* Cola wells */
1729 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1730
1731 /* Toy shop */
1732 MT(0, CT_INVALID, 8, CT_TOYS, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1733 MT(0, CT_INVALID, 8, CT_TOYS, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1734 MT(0, CT_INVALID, 8, CT_TOYS, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1735 MT(0, CT_INVALID, 8, CT_TOYS, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1736
1737 /* Toy factory */
1738 MT(8, CT_BATTERIES, 8, CT_PLASTIC, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1739 MT(8, CT_BATTERIES, 8, CT_PLASTIC, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
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
1745 /* Plastic Fountain */
1746 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1747 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1748 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1749 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1750 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1751 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
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
1755 /* Fizzy drink factory */
1756 MT(8, CT_BUBBLES, 8, CT_COLA, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1757 MT(8, CT_BUBBLES, 8, CT_COLA, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
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
1761 /* Bubble generator */
1762 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1763 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1764 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1765 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1766
1767 /* Toffee quarry */
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
1772 /* Sugar mine */
1773 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
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 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
1778 MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
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 };
1782 #undef MT
1783
1784 #endif /* BUILD_INDUSTRY_H */
INDUSTRYBEH_ONLY_INTOWN
@ INDUSTRYBEH_ONLY_INTOWN
can only be built in towns (arctic/tropic banks, water tower)
Definition: industrytype.h:67
CHECK_WATER
@ CHECK_WATER
Industry should be in the desert.
Definition: industrytype.h:45
INDUSTRYBEH_AFTER_1960
@ INDUSTRYBEH_AFTER_1960
can only be built after 1960 (oil rigs)
Definition: industrytype.h:72
CHECK_FOREST
@ CHECK_FOREST
Industry should be build above snow-line in arctic climate.
Definition: industrytype.h:41
INDUSTRYBEH_CAN_SUBSIDENCE
@ INDUSTRYBEH_CAN_SUBSIDENCE
can cause a subsidence (coal mine, shaft that collapses)
Definition: industrytype.h:76
INDUSTRYBEH_DONT_INCR_PROD
@ INDUSTRYBEH_DONT_INCR_PROD
do not increase production (oil wells) in the temperate climate
Definition: industrytype.h:70
CHECK_BUBBLEGEN
@ CHECK_BUBBLEGEN
Industry should be in low land.
Definition: industrytype.h:47
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:102
_farm_sounds
static const uint8 _farm_sounds[]
Array with 3 animal sounds, for farms.
Definition: build_industry.h:1041
INDUSTRYBEH_PLANT_ON_BUILT
@ INDUSTRYBEH_PLANT_ON_BUILT
Fields are planted around when built (all farms)
Definition: industrytype.h:69
_sawmill_sounds
static const uint8 _sawmill_sounds[]
Array with saw sound, for sawmill.
Definition: build_industry.h:1035
INDUSTRYBEH_AIRPLANE_ATTACKS
@ INDUSTRYBEH_AIRPLANE_ATTACKS
can be exploded by a military airplane (oil refinery)
Definition: industrytype.h:74
INDUSTRYBEH_AI_AIRSHIP_ROUTES
@ INDUSTRYBEH_AI_AIRSHIP_ROUTES
ai will attempt to establish air/ship routes to this industry (oil rig)
Definition: industrytype.h:73
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:63
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:65
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:71
INDUSTRYLIFE_BLACK_HOLE
@ INDUSTRYLIFE_BLACK_HOLE
Like power plants and banks.
Definition: industrytype.h:29
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:1533
CHECK_FARM
@ CHECK_FARM
Industry should be below snow-line in arctic.
Definition: industrytype.h:43
IndustrySpec
Defines the data structure for constructing industry.
Definition: industrytype.h:107
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:32
SND_33_PLASTIC_MINE
@ SND_33_PLASTIC_MINE
51 == 0x33 Industry producing: plastic fountain
Definition: sound_type.h:90
CHECK_OIL_RIG
@ CHECK_OIL_RIG
Industries at sea should be positioned near edge of the map.
Definition: industrytype.h:48
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:46
INDUSTRYBEH_ONLY_NEARTOWN
@ INDUSTRYBEH_ONLY_NEARTOWN
is always built near towns (toy shop)
Definition: industrytype.h:68
INDUSTRYLIFE_ORGANIC
@ INDUSTRYLIFE_ORGANIC
Like forests.
Definition: industrytype.h:31
CHECK_NOTHING
@ CHECK_NOTHING
Always succeeds.
Definition: industrytype.h:40
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:75
INDUSTRYBEH_TOWN1200_MORE
@ INDUSTRYBEH_TOWN1200_MORE
can only be built in towns larger than 1200 inhabitants (temperate bank)
Definition: industrytype.h:66
NEW_INDUSTRYTILEOFFSET
static const IndustryGfx NEW_INDUSTRYTILEOFFSET
original number of tiles
Definition: industry_type.h:32
_factory_sounds
static const uint8 _factory_sounds[]
Array with whistle sound, for factory.
Definition: build_industry.h:1038
CT_INVALID
@ CT_INVALID
Invalid cargo type.
Definition: cargo_type.h:69
INDUSTRYBEH_CUT_TREES
@ INDUSTRYBEH_CUT_TREES
cuts trees and produce first output cargo from them (lumber mill)
Definition: industrytype.h:64
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:44
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:42
_plastic_mine_sounds
static const uint8 _plastic_mine_sounds[]
Array with...
Definition: build_industry.h:1044
INDUSTRYLIFE_EXTRACTIVE
@ INDUSTRYLIFE_EXTRACTIVE
Like mines.
Definition: industrytype.h:30