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.
bool TileBelongsToIndustry (TileIndex tile) const
 Check if a given tile belongs to this industry.
- 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.
void * operator new (size_t size, size_t index)
 Allocates space for new Titem with given index.
void * operator new (size_t size, void *ptr)
 Allocates space for new Titem at given memory address.
void operator delete (void *p)
 Marks Titem as free.

Static Public Member Functions

static IndustryGetByTile (TileIndex tile)
 Get the industry of the given tile.
static IndustryGetRandom ()
 Return a random valid industry.
static void PostDestructor (size_t index)
 Invalidating some stuff after removing item from the pool.
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 uint16 GetIndustryTypeCount (IndustryType type)
 Get the count of industries for this type.
static void ResetIndustryCounts ()
 Resets industry counts.
- 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()
static bool CleaningPool ()
 Returns current state of pool cleaning - yes or no.
static bool IsValidID (size_t index)
 Tests whether given index can be used to get valid (non-NULL) Titem.
static Titem * Get (size_t index)
 Returns Titem with given index.
static Titem * GetIfValid (size_t index)
 Returns Titem with given index.
static size_t GetPoolSize ()
 Returns first unused index.
static size_t GetNumItems ()
 Returns number of valid items in the pool.

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 (.
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.
byte random_triggers
 Triggers for the random.
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

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 119 of file industry.h.

References counts, NUM_INDUSTRYTYPES, and type.

static Industry* Industry::GetByTile ( TileIndex  tile)
inlinestatic
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 130 of file industry.h.

References counts, NUM_INDUSTRYTYPES, and type.

Referenced by CheckIndustries(), CheckIndustryCloseDownProtection(), SmallMapWindow::DrawWidget(), GetCountAndDistanceOfClosestInstance(), GetCurrentTotalNumberOfIndustries(), and IndustryBuildData::TryBuildNewIndustry().

Industry * Industry::GetRandom ( )
static
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 108 of file industry.h.

References counts, NUM_INDUSTRYTYPES, and type.

Referenced by DoCreateNewIndustry().

void Industry::PostDestructor ( size_t  index)
static

Invalidating some stuff after removing item from the pool.

Parameters
indexindex of deleted item

Reimplemented from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_industry_pool >.

Definition at line 191 of file industry_cmd.cpp.

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

void Industry::RecomputeProductionMultipliers ( )

Recompute production_rate for current prod_level.

This function is only valid when not using smooth economy.

Definition at line 2185 of file industry_cmd.cpp.

References CeilDiv(), GetIndustrySpec(), min(), PRODLEVEL_DEFAULT, production_rate, and IndustrySpec::UsesSmoothEconomy().

Referenced by ChangeIndustryProduction(), and DoCreateNewIndustry().

static void Industry::ResetIndustryCounts ( )
inlinestatic

Resets industry counts.

Definition at line 137 of file industry.h.

References counts.

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 84 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(), IndustriesScopeResolver::GetVariable(), and TriggerIndustry().

Field Documentation

uint8 Industry::construction_type

Way the industry was constructed (.

See Also
IndustryConstructionType)

Definition at line 65 of file industry.h.

Referenced by DoCreateNewIndustry(), and IndustriesScopeResolver::GetVariable().


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