# 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"`

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, byte transit_days, CargoID cargo_type)
uint | MoveGoodsToStation (CargoID type, uint amount, SourceType source_type, SourceID source_id, const StationList *all_stations)
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.
void | AddInflation (bool check_year=true)
| Add monthly inflation.

## Variables

const ScoreInfo | _score_info []
int | _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

void AddInflation | ( | bool | check_year | ) |

Add monthly inflation.

Parameters:

  | check_year | Shall the inflation get stopped after 170 years?

Definition at line 600 of file economy.cpp.

References _cur_year, _settings_game, GameSettings::game_creation, Economy::infl_amount, Economy::infl_amount_pr, Economy::inflation_payment, Economy::inflation_prices, MAX_INFLATION, min(), ORIGINAL_BASE_YEAR, ORIGINAL_MAX_YEAR, and GameCreationSettings::starting_year.

void LoadUnloadStation | ( | Station * | st | ) |

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

Parameters:

  | st | the station to do the loading/unloading for

Definition at line 1408 of file economy.cpp.

References SmallVector< T, S >::Begin(), GoodsEntry::cargo, SmallVector< T, S >::Clear(), CargoList< Tinst >::Count(), SmallVector< T, S >::End(), Station::goods, LoadUnloadVehicle(), NUM_CARGO, TriggerIndustryProduction(), and Vehicle::vehstatus.

void PrepareUnload | ( | Vehicle * | front_v | ) |

Prepare the vehicle to be unloaded.

Parameters:

  | front_v | the vehicle to be unloaded

Definition at line 1100 of file economy.cpp.

References Vehicle::cargo, Vehicle::cargo_cap, Vehicle::cargo_payment, ClrBit(), Vehicle::current_order, CargoList< Tinst >::Empty(), Order::GetUnloadType(), Vehicle::load_unload_ticks, Vehicle::Next(), OUFB_NO_UNLOAD, SetBit(), and Vehicle::vehicle_flags.

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:

  | price | Index of price base to change.
  | factor | Amount to change by.

Definition at line 759 of file economy.cpp.

References Clamp().

Referenced by FinalisePriceBaseMultipliers().

void StartupIndustryDailyChanges | ( | bool | init_counter | ) |

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

Parameters:

  | init_counter | specifies if the counter is required to be initialized

Definition at line 769 of file economy.cpp.

References Economy::industry_daily_change_counter, Economy::industry_daily_increment, MapLogX(), and MapLogY().

Referenced by Load_ECMY().

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)

Parameters:

  | update | the economy with calculated score
  | c | company been evaluated

Returns:
  actual score of this company

Definition at line 161 of file economy.cpp.

References CalculateCompanyValue(), Company::cargo_types, Clamp(), ClampToI32(), CountBits(), BaseStation::facilities, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem< Tpool >::index, Vehicle::IsPrimaryVehicle(), max(), min(), ScoreInfo::needed, BaseStation::owner, CompanyEconomyEntry::performance_history, Vehicle::profit_last_year, ScoreInfo::score, SCORE_END, SCORE_MAX, SCORE_TOTAL, SetWindowDirty(), and BaseVehicle::type.

Referenced by CmdBuildCompanyHQ().