#include "oldpool.h"
#include "core/random_func.hpp"
#include "newgrf_storage.h"
#include "cargo_type.h"
#include "economy_type.h"
#include "map_type.h"
#include "slope_type.h"
#include "date_type.h"
#include "town_type.h"
#include "industry_type.h"
#include "newgrf_string_type.h"
Go to the source code of this file.
Data Structures | |
struct | Industry |
Defines the internal data of a functionnal industry. More... | |
struct | IndustryTileTable |
struct | GRFFileProps |
Data related to the handling of grf files. More... | |
struct | IndustrySpec |
Defines the data structure for constructing industry. More... | |
struct | IndustryTileSpec |
Defines the data structure of each indivudual tile of an industry. More... | |
Defines | |
#define | FOR_ALL_INDUSTRIES_FROM(i, start) for (i = GetIndustry(start); i != NULL; i = (i->index + 1U < GetIndustryPoolSize()) ? GetIndustry(i->index + 1U) : NULL) if (i->IsValid()) |
#define | FOR_ALL_INDUSTRIES(i) FOR_ALL_INDUSTRIES_FROM(i, 0) |
Enumerations | |
enum | { INVALID_INDUSTRY = 0xFFFF, NEW_INDUSTRYOFFSET = 37, NUM_INDUSTRYTYPES = 64, INDUSTRYTILE_NOANIM = 0xFF, NEW_INDUSTRYTILEOFFSET = 175, INVALID_INDUSTRYTYPE = NUM_INDUSTRYTYPES, NUM_INDUSTRYTILES = 512, INVALID_INDUSTRYTILE = NUM_INDUSTRYTILES, INDUSTRY_COMPLETED = 3 } |
enum | { CLEAN_RANDOMSOUNDS, CLEAN_TILELSAYOUT } |
enum | IndustryLifeType { INDUSTRYLIFE_BLACK_HOLE = 0, INDUSTRYLIFE_EXTRACTIVE = 1 << 0, INDUSTRYLIFE_ORGANIC = 1 << 1, INDUSTRYLIFE_PROCESSING = 1 << 2 } |
enum | CheckProc { CHECK_NOTHING, CHECK_FOREST, CHECK_REFINERY, CHECK_FARM, CHECK_PLANTATION, CHECK_WATER, CHECK_LUMBERMILL, CHECK_BUBBLEGEN, CHECK_OIL_RIG, CHECK_END } |
enum | IndustryConstructionType { ICT_UNKNOWN, ICT_NORMAL_GAMEPLAY, ICT_MAP_GENERATION, ICT_SCENARIO_EDITOR } |
How was the industry created. More... | |
enum | IndustryBehaviour { INDUSTRYBEH_NONE = 0, INDUSTRYBEH_PLANT_FIELDS = 1 << 0, INDUSTRYBEH_CUT_TREES = 1 << 1, INDUSTRYBEH_BUILT_ONWATER = 1 << 2, INDUSTRYBEH_TOWN1200_MORE = 1 << 3, INDUSTRYBEH_ONLY_INTOWN = 1 << 4, INDUSTRYBEH_ONLY_NEARTOWN = 1 << 5, INDUSTRYBEH_PLANT_ON_BUILT = 1 << 6, INDUSTRYBEH_DONT_INCR_PROD = 1 << 7, INDUSTRYBEH_BEFORE_1950 = 1 << 8, INDUSTRYBEH_AFTER_1960 = 1 << 9, INDUSTRYBEH_AI_AIRSHIP_ROUTES = 1 << 10, INDUSTRYBEH_AIRPLANE_ATTACKS = 1 << 11, INDUSTRYBEH_CHOPPER_ATTACKS = 1 << 12, INDUSTRYBEH_CAN_SUBSIDENCE = 1 << 13, INDUSTRYBEH_PROD_MULTI_HNDLING = 1 << 14, INDUSTRYBEH_PRODCALLBACK_RANDOM = 1 << 15, INDUSTRYBEH_NOBUILT_MAPCREATION = 1 << 16, INDUSTRYBEH_CANCLOSE_LASTINSTANCE = 1 << 17 } |
Functions | |
DECLARE_ENUM_AS_BIT_SET (IndustryBehaviour) | |
const IndustrySpec * | GetIndustrySpec (IndustryType thistype) |
Array of industries data. | |
const IndustryTileSpec * | GetIndustryTileSpec (IndustryGfx gfx) |
Array of industry tiles data. | |
void | ResetIndustries () |
This function initialize the spec arrays of both industry and industry tiles. | |
void | PlantRandomFarmField (const Industry *i) |
static IndustryGfx | GetTranslatedIndustryTileID (IndustryGfx gfx) |
void | BuildIndustriesLegend () |
Fills an array for the industries legends. | |
static bool | IsValidIndustryID (IndustryID index) |
Check if an Industry exists whithin the pool of industries. | |
static IndustryID | GetMaxIndustryIndex () |
static uint | GetNumIndustries () |
static void | IncIndustryTypeCount (IndustryType type) |
Increment the count of industries for this type. | |
static void | DecIndustryTypeCount (IndustryType type) |
Decrement the count of industries for this type. | |
static uint8 | GetIndustryTypeCount (IndustryType type) |
get the count of industries for this type | |
static void | ResetIndustryCounts () |
Resets both the total_industries and the _industry_counts This way, we centralize all counts activities. | |
static Industry * | GetRandomIndustry () |
Return a random valid industry. | |
Variables | |
IndustrySpec | _industry_specs [NUM_INDUSTRYTYPES] |
IndustryTileSpec | _industry_tile_specs [NUM_INDUSTRYTILES] |
int | _total_industries |
uint16 | _industry_counts [NUM_INDUSTRYTYPES] |
const Industry ** | _industry_sort |
bool | _industry_sort_dirty |
static const uint8 | IT_INVALID = 255 |
Definition in file industry.h.
anonymous enum |
Definition at line 20 of file industry.h.
anonymous enum |
CLEAN_RANDOMSOUNDS | Free the dynamically allocated sounds table. |
CLEAN_TILELSAYOUT | Free the dynamically allocated tile layout structure. |
Definition at line 32 of file industry.h.
enum IndustryBehaviour |
Definition at line 67 of file industry.h.
How was the industry created.
Definition at line 60 of file industry.h.
enum IndustryLifeType |
INDUSTRYLIFE_BLACK_HOLE | Like power plants and banks. |
INDUSTRYLIFE_EXTRACTIVE | Like mines. |
INDUSTRYLIFE_ORGANIC | Like forests. |
INDUSTRYLIFE_PROCESSING | Like factories. |
Definition at line 37 of file industry.h.
static void DecIndustryTypeCount | ( | IndustryType | type | ) | [inline, static] |
Decrement the count of industries for this type.
type | IndustryType to decrement |
Definition at line 306 of file industry.h.
References INVALID_INDUSTRYTYPE.
const IndustrySpec* GetIndustrySpec | ( | IndustryType | thistype | ) |
Array of industries data.
Array of industries data.
This will ensure at once : proper access and not allowing modifications of it.
thistype | of industry (which is the index in _industry_specs) |
Definition at line 114 of file industry_cmd.cpp.
References NUM_INDUSTRYTYPES.
Referenced by BuildIndustriesLegend(), CanCargoServiceIndustry(), ChangeIndustryProduction(), CheckIndustryCloseDownProtection(), CmdBuildIndustry(), CMSAForest(), CMSAMine(), CreateNewIndustryHelper(), DeliverGoodsToIndustry(), Disaster_CoalMine_Init(), Disaster_Helicopter_Init(), DisasterTick_Airplane(), DisasterTick_Helicopter(), GenerateIndustries(), GetCountAndDistanceOfClosestInstance(), GetFloodingBehaviour(), GetIndustryIDAtOffset(), GetSmallMapIndustriesPixels(), IndustryGetVariable(), IndustryProductionCallback(), IsWateredTile(), MaybeNewIndustry(), and PlaceInitialIndustry().
const IndustryTileSpec* GetIndustryTileSpec | ( | IndustryGfx | gfx | ) |
Array of industry tiles data.
Array of industry tiles data.
This will ensure at once : proper access and not allowing modifications of it.
gfx | of industrytile (which is the index in _industry_tile_specs) |
Definition at line 128 of file industry_cmd.cpp.
References INVALID_INDUSTRYTILE.
Referenced by GetIndustryIDAtOffset().
static uint8 GetIndustryTypeCount | ( | IndustryType | type | ) | [inline, static] |
get the count of industries for this type
type | IndustryType to query |
Definition at line 316 of file industry.h.
References INVALID_INDUSTRYTYPE, and min().
Referenced by CheckIndustryCloseDownProtection(), and GetCountAndDistanceOfClosestInstance().
static void IncIndustryTypeCount | ( | IndustryType | type | ) | [inline, static] |
Increment the count of industries for this type.
type | IndustryType to increment |
Definition at line 296 of file industry.h.
References INVALID_INDUSTRYTYPE.
static bool IsValidIndustryID | ( | IndustryID | index | ) | [inline, static] |
Check if an Industry exists whithin the pool of industries.
index | of the desired industry |
Definition at line 269 of file industry.h.
Referenced by GetRandomIndustry().
void ResetIndustries | ( | ) |
This function initialize the spec arrays of both industry and industry tiles.
It adjusts the enabling of the industry too, based on climate availability. This will allow for clearer testings
Definition at line 63 of file industry_cmd.cpp.
References IndustrySpec::enabled, HasBit(), NEW_INDUSTRYOFFSET, and NUM_INDUSTRYTYPES.
Referenced by ResetNewGRFData().