OpenTTD Source 20241224-master-gf74b0cf984
economy_func.h File Reference

Functions related to the economy. More...

#include "economy_type.h"
#include "station_type.h"
#include "cargo_type.h"
#include "vehicle_type.h"
#include "company_type.h"
#include "settings_type.h"
#include "core/random_func.hpp"

Go to the source code of this file.

Functions

void ResetPriceBaseMultipliers ()
 Reset changes to the price base multipliers.
 
void SetPriceBaseMultiplier (Price price, int factor)
 Change a price base by the given factor.
 
int UpdateCompanyRatingAndValue (Company *c, bool update)
 if update is set to true, the economy is updated with this score (also the house is updated, should only be true in the on-tick event)
 
void StartupIndustryDailyChanges (bool init_counter)
 Initialize the variables that will maintain the daily industry change system.
 
Money GetTransportedGoodsIncome (uint num_pieces, uint dist, uint16_t transit_periods, CargoID cargo_type)
 
uint MoveGoodsToStation (CargoID type, uint amount, SourceType source_type, SourceID source_id, const StationList &all_stations, Owner exclusivity=INVALID_OWNER)
 
void PrepareUnload (Vehicle *front_v)
 Prepare the vehicle to be unloaded.
 
void LoadUnloadStation (Station *st)
 Load/unload the vehicles in this station according to the order they entered.
 
Money GetPrice (Price index, uint cost_factor, const struct GRFFile *grf_file, int shift=0)
 
void InitializeEconomy ()
 Resets economy to initial values.
 
void RecomputePrices ()
 Computes all prices, payments and maximum loan.
 
bool AddInflation (bool check_year=true)
 Add monthly inflation.
 
bool EconomyIsInRecession ()
 Is the economy in recession?
 
static uint ScaleByInverseCargoScale (uint num, bool town)
 Scale a number by the inverse of the cargo scale setting, e.g.
 
uint ScaleByCargoScale (uint num, bool town)
 Scale a number by the cargo scale setting.
 

Variables

const ScoreInfo _score_info []
 Score info, values used for computing the detailed performance rating.
 
int64_t _score_part [MAX_COMPANIES][SCORE_END]
 
Economy _economy
 
Prices _price
 

Detailed Description

Functions related to the economy.

Definition in file economy_func.h.

Function Documentation

◆ AddInflation()

bool AddInflation ( bool  check_year)

Add monthly inflation.

Parameters
check_yearShall the inflation get stopped after 170 years?
Returns
true if inflation is maxed and nothing was changed

Definition at line 721 of file economy.cpp.

References Economy::infl_amount, Economy::infl_amount_pr, Economy::inflation_payment, Economy::inflation_prices, MAX_INFLATION, and TimerGameConst< struct Calendar >::ORIGINAL_MAX_YEAR.

Referenced by AfterLoadGame().

◆ EconomyIsInRecession()

bool EconomyIsInRecession ( )
inline

Is the economy in recession?

Returns
True if economy is in recession, false otherwise.

Definition at line 49 of file economy_func.h.

References Economy::fluct.

Referenced by TownGenerateCargo(), TransportIndustryGoods(), and IndustryBuildData::TryBuildNewIndustry().

◆ GetTransportedGoodsIncome()

Money GetTransportedGoodsIncome ( uint  num_pieces,
uint  dist,
uint16_t  transit_periods,
CargoID  cargo_type 
)

Definition at line 982 of file economy.cpp.

◆ InitializeEconomy()

void InitializeEconomy ( )

Resets economy to initial values.

Definition at line 951 of file economy.cpp.

References ClearCargoDeliveryMonitoring(), ClearCargoPickupMonitoring(), Economy::inflation_payment, and Economy::inflation_prices.

◆ LoadUnloadStation()

void LoadUnloadStation ( Station st)

Load/unload the vehicles in this station according to the order they entered.

Parameters
stthe station to do the loading/unloading for

Definition at line 1950 of file economy.cpp.

References _cargo_delivery_destinations, LoadUnloadVehicle(), TriggerIndustryProduction(), VS_CRASHED, and VS_STOPPED.

◆ MoveGoodsToStation()

uint MoveGoodsToStation ( CargoID  type,
uint  amount,
SourceType  source_type,
SourceID  source_id,
const StationList all_stations,
Owner  exclusivity = INVALID_OWNER 
)

Definition at line 4394 of file station_cmd.cpp.

◆ PrepareUnload()

◆ RecomputePrices()

◆ ResetPriceBaseMultipliers()

void ResetPriceBaseMultipliers ( )

Reset changes to the price base multipliers.

Definition at line 887 of file economy.cpp.

Referenced by ResetNewGRFData().

◆ ScaleByCargoScale()

uint ScaleByCargoScale ( uint  num,
bool  town 
)
inline

Scale a number by the cargo scale setting.

Parameters
numThe number to scale.
townAre we scaling town production, or industry production?
Returns
The number scaled by the current cargo scale setting. May be 0.

Definition at line 77 of file economy_func.h.

References _settings_game, Chance16(), GameSettings::economy, EconomySettings::industry_cargo_scale, ScaleByInverseCargoScale(), and EconomySettings::town_cargo_scale.

Referenced by ChopLumberMillTrees(), DoCreateNewIndustry(), ProduceIndustryGoodsHelper(), TownGenerateCargo(), and UpdateTownMaxPass().

◆ ScaleByInverseCargoScale()

static uint ScaleByInverseCargoScale ( uint  num,
bool  town 
)
static

Scale a number by the inverse of the cargo scale setting, e.g.

a scale of 25% multiplies the number by 4.

Parameters
numThe number to scale.
townAre we scaling town production, or industry production?
Returns
The number scaled by the inverse of the cargo scale setting, minimum of 1.

Definition at line 60 of file economy_func.h.

References _settings_game, GameSettings::economy, EconomySettings::industry_cargo_scale, and EconomySettings::town_cargo_scale.

Referenced by ScaleByCargoScale().

◆ SetPriceBaseMultiplier()

void SetPriceBaseMultiplier ( Price  price,
int  factor 
)

Change a price base by the given factor.

The price base is altered by factors of two. NewBaseCost = OldBaseCost * 2^n

Parameters
priceIndex of price base to change.
factorAmount to change by.

Definition at line 899 of file economy.cpp.

References Clamp(), and MIN_PRICE_MODIFIER.

Referenced by FinalisePriceBaseMultipliers().

◆ StartupIndustryDailyChanges()

void StartupIndustryDailyChanges ( bool  init_counter)

Initialize the variables that will maintain the daily industry change system.

Parameters
init_counterspecifies if the counter is required to be initialized

Definition at line 909 of file economy.cpp.

References Economy::industry_daily_change_counter, Economy::industry_daily_increment, Map::LogX(), and Map::LogY().

Referenced by ECMYChunkHandler::Load().

◆ UpdateCompanyRatingAndValue()

Variable Documentation

◆ _economy

Economy _economy
extern

Definition at line 104 of file economy.cpp.

◆ _price

Prices _price
extern

Definition at line 105 of file economy.cpp.

◆ _score_info

const ScoreInfo _score_info[]
extern

Score info, values used for computing the detailed performance rating.

Definition at line 90 of file economy.cpp.

Referenced by PerformanceRatingDetailWindow::DrawWidget(), and UpdateCompanyRatingAndValue().

◆ _score_part

int64_t _score_part[MAX_COMPANIES][SCORE_END]
extern

Definition at line 103 of file economy.cpp.