|
OpenTTD Source 20260129-master-g2bb01bd0e4
|
Types related to the economy. More...
Go to the source code of this file.
Data Structures | |
| struct | Economy |
| Data of the economy. More... | |
| struct | ScoreInfo |
| Data structure for storing how the score is computed for a single score id. More... | |
Typedefs | |
| typedef OverflowSafeInt64 | Money |
| using | Prices = EnumClassIndexContainer< std::array< Money, to_underlying(Price::End)>, Price > |
| Prices of everything. | |
| using | PriceMultipliers = EnumClassIndexContainer< std::array< int8_t, to_underlying(Price::End)>, Price > |
| using | Expenses = std::array< Money, EXPENSES_END > |
| Data type for storage of Money for each ExpensesType category. | |
| using | CargoPaymentID = PoolID< uint32_t, struct CargoPaymentIDTag, 0xFF000, 0xFFFFF > |
Variables | |
| static const int | MIN_CARGO_SCALE = 15 |
| Minimum allowed value of town_cargo_scale/industry_cargo_scale. | |
| static const int | MAX_CARGO_SCALE = 300 |
| Maximum allowed value of town_cargo_scale/industry_cargo_scale. | |
| static const int | DEF_CARGO_SCALE = 100 |
| Default value of town_cargo_scale/industry_cargo_scale. | |
| static constexpr int | SCORE_MAX = 1000 |
| The max score that can be in the performance history. | |
| static const int | LOAN_INTERVAL = 10000 |
| The "steps" in loan size, in British Pounds! | |
| static const int64_t | INITIAL_LOAN = 100000 |
| The size of loan for a new company, in British Pounds! | |
| static const int64_t | MAX_LOAN_LIMIT = 2000000000 |
| The max amount possible to configure for a max loan of a company. | |
| static const uint64_t | MAX_INFLATION = (1ull << (63 - 32)) - 1 |
| Maximum inflation (including fractional part) without causing overflows in int64_t price computations. | |
| static const int | MIN_PRICE_MODIFIER = -8 |
| Maximum NewGRF price modifiers. | |
| static const int | MAX_PRICE_MODIFIER = 16 |
| static const int | INVALID_PRICE_MODIFIER = MIN_PRICE_MODIFIER - 1 |
| static const uint | TUNNELBRIDGE_TRACKBIT_FACTOR = 4 |
| Multiplier for how many regular track bits a tunnel/bridge counts. | |
| static const uint | LEVELCROSSING_TRACKBIT_FACTOR = 2 |
| Multiplier for how many regular track bits a level crossing counts. | |
| static const uint | ROAD_DEPOT_TRACKBIT_FACTOR = 2 |
| Multiplier for how many regular track bits a road depot counts. | |
| static const uint | ROAD_STOP_TRACKBIT_FACTOR = 2 |
| Multiplier for how many regular track bits a bay stop counts. | |
| static const uint | LOCK_DEPOT_TILE_FACTOR = 2 |
| Multiplier for how many regular tiles a lock counts. | |
Types related to the economy.
Definition in file economy_type.h.
| using CargoPaymentID = PoolID<uint32_t, struct CargoPaymentIDTag, 0xFF000, 0xFFFFF> |
Definition at line 245 of file economy_type.h.
| using Expenses = std::array<Money, EXPENSES_END> |
Data type for storage of Money for each ExpensesType category.
Definition at line 196 of file economy_type.h.
| typedef OverflowSafeInt64 Money |
Definition at line 17 of file economy_type.h.
| using PriceMultipliers = EnumClassIndexContainer<std::array<int8_t, to_underlying(Price::End)>, Price> |
Definition at line 172 of file economy_type.h.
| using Prices = EnumClassIndexContainer<std::array<Money,to_underlying(Price::End)>, Price> |
|
strong |
Type of the game economy.
| Enumerator | |
|---|---|
| Begin | The lowest valid value. |
| Original | Imitates original TTD economy. |
| Smooth | Makes production changes more often, and in smaller steps. |
| Frozen | Stops production changes and industry closures. |
| End | Economy type end marker. |
Definition at line 20 of file economy_type.h.
| enum ExpensesType : uint8_t |
Types of expenses.
Definition at line 175 of file economy_type.h.
|
strong |
Enumeration of all base prices for use with Prices.
The prices are ordered as they are expected by NewGRF cost multipliers, so don't shuffle them.
Definition at line 93 of file economy_type.h.
| enum PriceCategory : uint8_t |
Categories of a price bases.
Definition at line 201 of file economy_type.h.
|
strong |
Score categories in the detailed performance rating.
| Enumerator | |
|---|---|
| Begin | The lowest valid value. |
| Vehicles | Number of vehicles that turned profit last year. |
| Stations | Number of recently-serviced stations. |
| MinProfit | The profit of the vehicle with the lowest income. |
| MinIncome | Income in the quater with the lowest profit of the last 12 quaters. |
| MaxIncome | Income in the quater with the highest profit of the last 12 quaters. |
| Delivered | Units of cargo delivered in the last four quaters. |
| Cargo | Number of types of cargo delivered in the last four quaters. |
| Money | Amount of money company has in the bank. |
| Loan | The amount of money company can take as a loan. |
| Total | Total points out of possible points ,must always be the last entry. |
| End | Score ID end marker. |
Definition at line 61 of file economy_type.h.
|
static |
Default value of town_cargo_scale/industry_cargo_scale.
Definition at line 41 of file economy_type.h.
|
static |
The size of loan for a new company, in British Pounds!
Definition at line 210 of file economy_type.h.
Referenced by DoStartupNewCompany().
|
static |
Definition at line 231 of file economy_type.h.
|
static |
Multiplier for how many regular track bits a level crossing counts.
Definition at line 236 of file economy_type.h.
Referenced by CmdBuildRoad(), CmdBuildSingleRail(), CmdConvertRail(), CmdRemoveSingleRail(), and RemoveRoad().
|
static |
The "steps" in loan size, in British Pounds!
Definition at line 208 of file economy_type.h.
Referenced by CmdDecreaseLoan(), CmdIncreaseLoan(), CmdSetCompanyMaxLoan(), DoStartupNewCompany(), CompanyFinancesWindow::GetWidgetString(), and RecomputePrices().
|
static |
Multiplier for how many regular tiles a lock counts.
Definition at line 242 of file economy_type.h.
Referenced by CmdBuildShipDepot(), DoBuildLock(), and RemoveLock().
|
static |
Maximum allowed value of town_cargo_scale/industry_cargo_scale.
Above 340, callback-based industries would produce more than once per day, which GRFs do not expect. Towns use the same maximum to match.
Definition at line 39 of file economy_type.h.
|
static |
Maximum inflation (including fractional part) without causing overflows in int64_t price computations.
This allows for 32 bit base prices (21 are currently needed). Considering the sign bit and 16 fractional bits, there are 15 bits left. 170 years of 4% inflation result in a inflation of about 822, so 10 bits are actually enough. Note that NewGRF multipliers share the 16 fractional bits.
Definition at line 222 of file economy_type.h.
Referenced by AddInflation(), and AfterLoadGame().
|
static |
The max amount possible to configure for a max loan of a company.
Definition at line 212 of file economy_type.h.
Referenced by CmdSetCompanyMaxLoan().
|
static |
Definition at line 230 of file economy_type.h.
|
static |
Minimum allowed value of town_cargo_scale/industry_cargo_scale.
Below 13, callback-based industries would produce less than once per month. We round up to 15% because it's a nicer number. Towns use the same minimum to match, and because below this small towns often produce no cargo.
Definition at line 33 of file economy_type.h.
|
static |
Maximum NewGRF price modifiers.
Increasing base prices by factor 65536 should be enough.
Definition at line 229 of file economy_type.h.
Referenced by SetPriceBaseMultiplier().
|
static |
Multiplier for how many regular track bits a road depot counts.
Definition at line 238 of file economy_type.h.
Referenced by CmdBuildRoadDepot(), and CmdConvertRoad().
|
static |
Multiplier for how many regular track bits a bay stop counts.
Definition at line 240 of file economy_type.h.
Referenced by CmdBuildRoadStop(), CmdBuildRoadWaypoint(), CmdConvertRoad(), RemoveRoadStop(), and RemoveRoadWaypointStop().
|
staticconstexpr |
The max score that can be in the performance history.
The scores together of score_info is allowed to be more!
Definition at line 81 of file economy_type.h.
Referenced by PerformanceRatingDetailWindow::DrawWidget(), and UpdateCompanyRatingAndValue().
|
static |
Multiplier for how many regular track bits a tunnel/bridge counts.
Definition at line 234 of file economy_type.h.
Referenced by CmdBuildBridge(), CmdBuildRoad(), CmdBuildTunnel(), CmdConvertRail(), CmdConvertRoad(), DoClearBridge(), DoClearTunnel(), and RemoveRoad().