OpenTTD Source 20250516-master-g521d0465d9
industry_type.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 INDUSTRY_TYPE_H
11#define INDUSTRY_TYPE_H
12
13#include "core/pool_type.hpp"
14
16
17typedef uint16_t IndustryGfx;
18typedef uint8_t IndustryType;
19struct Industry;
20
21struct IndustrySpec;
22struct IndustryTileSpec;
23
25enum class IndustryRandomTrigger : uint8_t {
26 TileLoop,
29};
31
41
42static const IndustryType NUM_INDUSTRYTYPES_PER_GRF = 128;
43
44static const IndustryType NEW_INDUSTRYOFFSET = 37;
45static const IndustryType NUM_INDUSTRYTYPES = 240;
46static const IndustryType IT_INVALID = 0xFF;
47
48static const IndustryGfx NUM_INDUSTRYTILES_PER_GRF = 255;
49
50static const IndustryGfx INDUSTRYTILE_NOANIM = 0xFF;
51static const IndustryGfx NEW_INDUSTRYTILEOFFSET = 175;
52static const IndustryGfx NUM_INDUSTRYTILES = 512;
53static const IndustryGfx INVALID_INDUSTRYTILE = NUM_INDUSTRYTILES;
54
55static const int INDUSTRY_COMPLETED = 3;
56
57static const int INDUSTRY_NUM_INPUTS = 16;
58static const int INDUSTRY_NUM_OUTPUTS = 16;
59static const int INDUSTRY_ORIGINAL_NUM_INPUTS = 3;
60static const int INDUSTRY_ORIGINAL_NUM_OUTPUTS = 2;
61
62
63void CheckIndustries();
64
65#endif /* INDUSTRY_TYPE_H */
Enum-as-bit-set wrapper.
static const IndustryGfx NEW_INDUSTRYTILEOFFSET
original number of tiles
static const IndustryGfx INDUSTRYTILE_NOANIM
flag to mark industry tiles as having no animation
IndustryRandomTrigger
Available industry random triggers.
@ IndustryTick
The industry has been triggered via its tick.
@ TileLoop
The tile of the industry has been triggered during the tileloop.
@ CargoReceived
Cargo has been delivered.
static const IndustryType NEW_INDUSTRYOFFSET
original number of industry types
static const int INDUSTRY_ORIGINAL_NUM_INPUTS
Original number of accepted cargo types.
static const int INDUSTRY_NUM_OUTPUTS
Number of cargo types an industry can produce.
static const IndustryGfx NUM_INDUSTRYTILES_PER_GRF
Maximum number of industry tiles per NewGRF; limited to 255 to allow extending Action3 with an extend...
static const int INDUSTRY_NUM_INPUTS
Number of cargo types an industry can accept.
static const IndustryType NUM_INDUSTRYTYPES
total number of industry types, new and old; limited to 240 because we need some special ids like IT_...
static const IndustryGfx INVALID_INDUSTRYTILE
one above amount is considered invalid
void CheckIndustries()
Verify whether the generated industries are complete, and warn the user if not.
static const int INDUSTRY_ORIGINAL_NUM_OUTPUTS
Original number of produced cargo types.
IndustryAnimationTrigger
Animation triggers of the industries.
@ CargoDistributed
Trigger when cargo is distributed.
@ ConstructionStageChanged
Trigger whenever the construction stage changes.
static const IndustryGfx NUM_INDUSTRYTILES
total number of industry tiles, new and old
static const int INDUSTRY_COMPLETED
final stage of industry construction.
static const IndustryType NUM_INDUSTRYTYPES_PER_GRF
maximum number of industry types per NewGRF; limited to 128 because bit 7 has a special meaning in so...
Definition of Pool, structure used to access PoolItems, and PoolItem, base structure for Vehicle,...
Defines the data structure for constructing industry.
Defines the data structure of each individual tile of an industry.
Defines the internal data of a functional industry.
Definition industry.h:64
Templated helper to make a PoolID a single POD value.
Definition pool_type.hpp:43