OpenTTD
Public Member Functions | Static Public Member Functions | Data Fields | Static Protected Attributes
Industry Struct Reference

Defines the internal data of a functional industry. More...

#include <industry.h>

Inheritance diagram for Industry:
Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_industry_pool >

Public Member Functions

 Industry (TileIndex tile=INVALID_TILE)
 
void RecomputeProductionMultipliers ()
 Recompute production_rate for current prod_level. More...
 
bool TileBelongsToIndustry (TileIndex tile) const
 Check if a given tile belongs to this industry. More...
 
- Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_industry_pool >
void * operator new (size_t size)
 Allocates space for new Titem. More...
 
void * operator new (size_t size, size_t index)
 Allocates space for new Titem with given index. More...
 
void * operator new (size_t size, void *ptr)
 Allocates space for new Titem at given memory address. More...
 
void operator delete (void *p)
 Marks Titem as free. More...
 

Static Public Member Functions

static IndustryGetByTile (TileIndex tile)
 Get the industry of the given tile. More...
 
static IndustryGetRandom ()
 Return a random valid industry. More...
 
static void PostDestructor (size_t index)
 Invalidating some stuff after removing item from the pool. More...
 
static void IncIndustryTypeCount (IndustryType type)
 Increment the count of industries for this type. More...
 
static void DecIndustryTypeCount (IndustryType type)
 Decrement the count of industries for this type. More...
 
static uint16 GetIndustryTypeCount (IndustryType type)
 Get the count of industries for this type. More...
 
static void ResetIndustryCounts ()
 Resets industry counts. More...
 
- Static Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_industry_pool >
static bool CanAllocateItem (size_t n=1)
 Helper functions so we can use PoolItem::Function() instead of _poolitem_pool.Function() More...
 
static bool CleaningPool ()
 Returns current state of pool cleaning - yes or no. More...
 
static bool IsValidID (size_t index)
 Tests whether given index can be used to get valid (non-NULL) Titem. More...
 
static Titem * Get (size_t index)
 Returns Titem with given index. More...
 
static Titem * GetIfValid (size_t index)
 Returns Titem with given index. More...
 
static size_t GetPoolSize ()
 Returns first unused index. More...
 
static size_t GetNumItems ()
 Returns number of valid items in the pool. More...
 
static void PostDestructor (size_t index)
 Dummy function called after destructor of each member. More...
 

Data Fields

TileArea location
 Location of the industry.
 
Towntown
 Nearest town.
 
CargoID produced_cargo [2]
 2 production cargo slots
 
uint16 produced_cargo_waiting [2]
 amount of cargo produced per cargo
 
uint16 incoming_cargo_waiting [3]
 incoming cargo waiting to be processed
 
byte production_rate [2]
 production rate for each cargo
 
byte prod_level
 general production level
 
CargoID accepts_cargo [3]
 3 input cargo slots
 
uint16 this_month_production [2]
 stats of this month's production per cargo
 
uint16 this_month_transported [2]
 stats of this month's transport per cargo
 
byte last_month_pct_transported [2]
 percentage transported per cargo in the last full month
 
uint16 last_month_production [2]
 total units produced per cargo in the last full month
 
uint16 last_month_transported [2]
 total units transported per cargo in the last full month
 
uint16 counter
 used for animation and/or production (if available cargo)
 
IndustryType type
 type of industry.
 
OwnerByte owner
 owner of the industry. Which SHOULD always be (imho) OWNER_NONE
 
byte random_colour
 randomized colour of the industry, for display purpose
 
Year last_prod_year
 last year of production
 
byte was_cargo_delivered
 flag that indicate this has been the closest industry chosen for cargo delivery by a station. see DeliverGoodsToIndustry
 
PartOfSubsidyByte part_of_subsidy
 NOSAVE: is this industry a source/destination of a subsidy?
 
OwnerByte founder
 Founder of the industry.
 
Date construction_date
 Date of the construction of the industry.
 
uint8 construction_type
 Way the industry was constructed (. More...
 
Date last_cargo_accepted_at
 Last day cargo was accepted by this industry.
 
byte selected_layout
 Which tile layout was used when creating the industry.
 
uint16 random
 Random value used for randomisation of all kinds of things.
 
PersistentStoragepsa
 Persistent storage for NewGRF industries.
 
- Data Fields inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_industry_pool >
Tindex index
 Index of this pool item.
 

Static Protected Attributes

static uint16 counts [NUM_INDUSTRYTYPES]
 Number of industries per type ingame.
 

Detailed Description

Defines the internal data of a functional industry.

Definition at line 39 of file industry.h.

Member Function Documentation

◆ DecIndustryTypeCount()

static void Industry::DecIndustryTypeCount ( IndustryType  type)
inlinestatic

Decrement the count of industries for this type.

Parameters
typeIndustryType to decrement
Precondition
type < NUM_INDUSTRYTYPES

Definition at line 118 of file industry.h.

◆ GetByTile()

static Industry* Industry::GetByTile ( TileIndex  tile)
inlinestatic

◆ GetIndustryTypeCount()

static uint16 Industry::GetIndustryTypeCount ( IndustryType  type)
inlinestatic

Get the count of industries for this type.

Parameters
typeIndustryType to query
Precondition
type < NUM_INDUSTRYTYPES

Definition at line 129 of file industry.h.

Referenced by CheckIndustries(), GetCurrentTotalNumberOfIndustries(), and IndustryBuildData::TryBuildNewIndustry().

◆ GetRandom()

Industry * Industry::GetRandom ( )
static

◆ IncIndustryTypeCount()

static void Industry::IncIndustryTypeCount ( IndustryType  type)
inlinestatic

Increment the count of industries for this type.

Parameters
typeIndustryType to increment
Precondition
type < NUM_INDUSTRYTYPES

Definition at line 107 of file industry.h.

Referenced by DoCreateNewIndustry().

◆ PostDestructor()

void Industry::PostDestructor ( size_t  index)
static

Invalidating some stuff after removing item from the pool.

Parameters
indexindex of deleted item

Definition at line 191 of file industry_cmd.cpp.

References InvalidateWindowData(), Station::RecomputeIndustriesNearForAll(), and WC_INDUSTRY_DIRECTORY.

Referenced by GetByTile().

◆ RecomputeProductionMultipliers()

void Industry::RecomputeProductionMultipliers ( )

Recompute production_rate for current prod_level.

This function is only valid when not using smooth economy.

Definition at line 2191 of file industry_cmd.cpp.

References GetIndustrySpec(), and type.

◆ ResetIndustryCounts()

static void Industry::ResetIndustryCounts ( )
inlinestatic

Resets industry counts.

Definition at line 136 of file industry.h.

References counts.

◆ TileBelongsToIndustry()

bool Industry::TileBelongsToIndustry ( TileIndex  tile) const
inline

Check if a given tile belongs to this industry.

Parameters
tileThe tile to check.
Returns
True if the tile is part of this industry.

Definition at line 83 of file industry.h.

References GetIndustryIndex(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_industry_pool >::index, IsTileType(), and MP_INDUSTRY.

Referenced by ChopLumberMillTrees(), GetIndustryIDAtOffset(), and TriggerIndustry().

Field Documentation

◆ construction_type

uint8 Industry::construction_type

Way the industry was constructed (.

See also
IndustryConstructionType)

Definition at line 65 of file industry.h.


The documentation for this struct was generated from the following files: