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 > CargoSourceSink

Public Types

typedef PersistentStorageArray
< int32, 16 > 
PersistentStorage
typedef bool(* EnumIndustryProc )(const Industry *ind, void *data)
 Callback function for Industry::GetRandom.

Public Member Functions

 Industry (TileIndex tile=INVALID_TILE)
void RecomputeProductionMultipliers ()
 Recompute production_rate for current prod_level.
SourceType GetType () const
 Get the type of this entity.
SourceID GetID () const
 Get the source ID corresponding with this entity.
bool AcceptsCargo (CargoID cid) const
 Is this cargo accepted?
bool SuppliesCargo (CargoID cid) const
 Is this cargo produced?
uint GetDestinationWeight (CargoID cid, byte weight_mod) const
 Get the link weight for this as a destination for a specific cargo.
TileArea GetTileForDestination (CargoID cid)
 Get a random destination tile index for this cargo.

Static Public Member Functions

static FORCEINLINE IndustryGetByTile (TileIndex tile)
 Get the industry of the given tile.
static IndustryGetRandom (EnumIndustryProc enum_proc=NULL, IndustryID skip=INVALID_INDUSTRY, void *data=NULL)
 Return a random industry that statisfies some criteria specified with a callback function.
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.

Data Fields

TileArea location
 Location of the industry.
const 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
uint32 produced_accepted_mask
 Bit mask of all cargos that are always accepted and also produced.
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 average_production [2]
 average production during the last months
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.
PersistentStorage psa
 Persistent storage for NewGRF industries.

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


Member Typedef Documentation

typedef bool(* Industry::EnumIndustryProc)(const Industry *ind, void *data)

Callback function for Industry::GetRandom.

Definition at line 132 of file industry.h.


Member Function Documentation

static void Industry::DecIndustryTypeCount ( IndustryType  type  )  [inline, static]

Decrement the count of industries for this type.

Parameters:
type IndustryType to decrement
Precondition:
type < NUM_INDUSTRYTYPES

Definition at line 153 of file industry.h.

References counts, and NUM_INDUSTRYTYPES.

static FORCEINLINE Industry* Industry::GetByTile ( TileIndex  tile  )  [inline, static]

Get the industry of the given tile.

Parameters:
tile the tile to get the industry from
Precondition:
IsTileType(t, MP_INDUSTRY)
Returns:
the industry

Definition at line 126 of file industry.h.

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

Referenced by CmdDeleteTown(), CMSAForest(), CMSAMine(), GetIndustryTileResolver(), GetIndustryType(), GetSmallMapIndustriesPixels(), GetSmallMapVegetationPixels(), and IndustryGetVariable().

uint Industry::GetDestinationWeight ( CargoID  cid,
byte  weight_mod 
) const [virtual]
SourceID Industry::GetID (  )  const [inline, virtual]

Get the source ID corresponding with this entity.

Implements CargoSourceSink.

Definition at line 90 of file industry.h.

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

static uint16 Industry::GetIndustryTypeCount ( IndustryType  type  )  [inline, static]

Get the count of industries for this type.

Parameters:
type IndustryType to query
Precondition:
type < NUM_INDUSTRYTYPES

Definition at line 164 of file industry.h.

References counts, and NUM_INDUSTRYTYPES.

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

Industry * Industry::GetRandom ( EnumIndustryProc  enum_proc = NULL,
IndustryID  skip = INVALID_INDUSTRY,
void *  data = NULL 
) [static]
TileArea Industry::GetTileForDestination ( CargoID  cid  )  [inline, virtual]

Get a random destination tile index for this cargo.

Implements CargoSourceSink.

Definition at line 115 of file industry.h.

References location.

SourceType Industry::GetType (  )  const [inline, virtual]

Get the type of this entity.

Implements CargoSourceSink.

Definition at line 85 of file industry.h.

References ST_INDUSTRY.

static void Industry::IncIndustryTypeCount ( IndustryType  type  )  [inline, static]

Increment the count of industries for this type.

Parameters:
type IndustryType to increment
Precondition:
type < NUM_INDUSTRYTYPES

Definition at line 142 of file industry.h.

References counts, and NUM_INDUSTRYTYPES.

Referenced by DoCreateNewIndustry().

void Industry::PostDestructor ( size_t  index  )  [static]

Invalidating some stuff after removing item from the pool.

Parameters:
index index of deleted item

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

Definition at line 184 of file industry_cmd.cpp.

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

void Industry::RecomputeProductionMultipliers (  ) 

Recompute production_rate for current prod_level.

This function is only valid when not using smooth economy.

Definition at line 2137 of file industry_cmd.cpp.

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

Referenced by ChangeIndustryProduction().

static void Industry::ResetIndustryCounts (  )  [inline, static]

Resets industry counts.

Definition at line 171 of file industry.h.

References counts.


Field Documentation

Way the industry was constructed (.

See also:
IndustryConstructionType)

Definition at line 71 of file industry.h.

Referenced by DoCreateNewIndustry(), and IndustryGetVariable().


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

Generated on Fri Jun 3 05:19:59 2011 for OpenTTD by  doxygen 1.6.1