OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

Data Structures | Typedefs | Enumerations | Variables
economy_type.h File Reference

Types related to the economy. More...

`#include "core/overflowsafe_type.hpp"`
`#include "core/enum_type.hpp"`

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...
struct | EnumPropsT< ExpensesType >
| Define basic enum properties for ExpensesType. More...
struct | PriceBaseSpec
| Describes properties of price bases. More...

## Typedefs
typedef OverflowSafeInt64 | Money
typedef Money | Prices [PR_END]
| Prices of everything.
typedef int8 | PriceMultipliers [PR_END]
typedef TinyEnumT< ExpensesType > | ExpensesTypeByte
| typedefing-enumification of ExpensesType
typedef uint32 | CargoPaymentID

## Enumerations
enum | ScoreID { SCORE_BEGIN = 0, SCORE_VEHICLES = 0, SCORE_STATIONS = 1, SCORE_MIN_PROFIT = 2, SCORE_MIN_INCOME = 3, SCORE_MAX_INCOME = 4, SCORE_DELIVERED = 5, SCORE_CARGO = 6, SCORE_MONEY = 7, SCORE_LOAN = 8, SCORE_TOTAL = 9, SCORE_END = 10, SCORE_MAX = 1000 }
| Score categories in the detailed performance rating. More...
enum | Price { PR_BEGIN = 0, PR_STATION_VALUE = 0, PR_BUILD_RAIL, PR_BUILD_ROAD, PR_BUILD_SIGNALS, PR_BUILD_BRIDGE, PR_BUILD_DEPOT_TRAIN, PR_BUILD_DEPOT_ROAD, PR_BUILD_DEPOT_SHIP, PR_BUILD_TUNNEL, PR_BUILD_STATION_RAIL, PR_BUILD_STATION_RAIL_LENGTH, PR_BUILD_STATION_AIRPORT, PR_BUILD_STATION_BUS, PR_BUILD_STATION_TRUCK, PR_BUILD_STATION_DOCK, PR_BUILD_VEHICLE_TRAIN, PR_BUILD_VEHICLE_WAGON, PR_BUILD_VEHICLE_AIRCRAFT, PR_BUILD_VEHICLE_ROAD, PR_BUILD_VEHICLE_SHIP, PR_BUILD_TREES, PR_TERRAFORM, PR_CLEAR_GRASS, PR_CLEAR_ROUGH, PR_CLEAR_ROCKS, PR_CLEAR_FIELDS, PR_CLEAR_TREES, PR_CLEAR_RAIL, PR_CLEAR_SIGNALS, PR_CLEAR_BRIDGE, PR_CLEAR_DEPOT_TRAIN, PR_CLEAR_DEPOT_ROAD, PR_CLEAR_DEPOT_SHIP, PR_CLEAR_TUNNEL, PR_CLEAR_WATER, PR_CLEAR_STATION_RAIL, PR_CLEAR_STATION_AIRPORT, PR_CLEAR_STATION_BUS, PR_CLEAR_STATION_TRUCK, PR_CLEAR_STATION_DOCK, PR_CLEAR_HOUSE, PR_CLEAR_ROAD, PR_RUNNING_TRAIN_STEAM, PR_RUNNING_TRAIN_DIESEL, PR_RUNNING_TRAIN_ELECTRIC, PR_RUNNING_AIRCRAFT, PR_RUNNING_ROADVEH, PR_RUNNING_SHIP, PR_BUILD_INDUSTRY, PR_CLEAR_INDUSTRY, PR_BUILD_OBJECT, PR_CLEAR_OBJECT, PR_BUILD_WAYPOINT_RAIL, PR_CLEAR_WAYPOINT_RAIL, PR_BUILD_WAYPOINT_BUOY, PR_CLEAR_WAYPOINT_BUOY, PR_TOWN_ACTION, PR_BUILD_FOUNDATION, PR_BUILD_INDUSTRY_RAW, PR_BUILD_TOWN, PR_BUILD_CANAL, PR_CLEAR_CANAL, PR_BUILD_AQUEDUCT, PR_CLEAR_AQUEDUCT, PR_BUILD_LOCK, PR_CLEAR_LOCK, PR_INFRASTRUCTURE_RAIL, PR_INFRASTRUCTURE_ROAD, PR_INFRASTRUCTURE_WATER, PR_INFRASTRUCTURE_STATION, PR_INFRASTRUCTURE_AIRPORT, PR_END, INVALID_PRICE = 0xFF }
| Enumeration of all base prices for use with Prices. More...
enum | ExpensesType { EXPENSES_CONSTRUCTION = 0, EXPENSES_NEW_VEHICLES, EXPENSES_TRAIN_RUN, EXPENSES_ROADVEH_RUN, EXPENSES_AIRCRAFT_RUN, EXPENSES_SHIP_RUN, EXPENSES_PROPERTY, EXPENSES_TRAIN_INC, EXPENSES_ROADVEH_INC, EXPENSES_AIRCRAFT_INC, EXPENSES_SHIP_INC, EXPENSES_LOAN_INT, EXPENSES_OTHER, EXPENSES_END, INVALID_EXPENSES = 0xFF }
| Types of expenses. More...
enum | PriceCategory { PCAT_NONE, PCAT_RUNNING, PCAT_CONSTRUCTION }
| Categories of a price bases. More...

## Variables
static const int | LOAN_INTERVAL = 10000
| The "steps" in loan size, in British Pounds!
static const uint64 | MAX_INFLATION = (1ull << (63 - 32)) - 1
| Maximum inflation (including fractional part) without causing overflows in int64 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 | LOCK_DEPOT_TILE_FACTOR = 2
| Multiplier for how many regular tiles a lock counts.

## Detailed Description

Types related to the economy.

Definition in file economy_type.h.

## Typedef Documentation

typedef Money Prices[PR_END]

Prices of everything.

See Also
  Price

Definition at line 146 of file economy_type.h.

## Enumeration Type Documentation

enum ExpensesType

Types of expenses.

Enumerator:

  EXPENSES_CONSTRUCTION | Construction costs.
  EXPENSES_NEW_VEHICLES | New vehicles.
  EXPENSES_TRAIN_RUN | Running costs trains.
  EXPENSES_ROADVEH_RUN | Running costs road vehicles.
  EXPENSES_AIRCRAFT_RUN | Running costs aircrafts.
  EXPENSES_SHIP_RUN | Running costs ships.
  EXPENSES_PROPERTY | Property costs.
  EXPENSES_TRAIN_INC | Income from trains.
  EXPENSES_ROADVEH_INC | Income from road vehicles.
  EXPENSES_AIRCRAFT_INC | Income from aircrafts.
  EXPENSES_SHIP_INC | Income from ships.
  EXPENSES_LOAN_INT | Interest payments over the loan.
  EXPENSES_OTHER | Other expenses.
  EXPENSES_END | Number of expense types.
  INVALID_EXPENSES | Invalid expense type.

Definition at line 150 of file economy_type.h.

enum Price

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 67 of file economy_type.h.

enum PriceCategory

Categories of a price bases.

Enumerator:

  PCAT_NONE | Not affected by difficulty settings.
  PCAT_RUNNING | Price is affected by "vehicle running cost" difficulty setting.
  PCAT_CONSTRUCTION | Price is affected by "construction cost" difficulty setting.

Definition at line 175 of file economy_type.h.

enum ScoreID

Score categories in the detailed performance rating.

Enumerator:

  SCORE_TOTAL | This must always be the last entry.
  SCORE_END | How many scores are there..
  SCORE_MAX | The max score that can be in the performance history.

Definition at line 38 of file economy_type.h.

## Variable Documentation

const uint LEVELCROSSING_TRACKBIT_FACTOR = 2
| static

Multiplier for how many regular track bits a level crossing counts.

Definition at line 216 of file economy_type.h.

Referenced by AfterLoadCompanyStats(), CmdBuildRoad(), CmdBuildSingleRail(), CmdConvertRail(), CmdRemoveSingleRail(), and RemoveRoad().

const uint LOCK_DEPOT_TILE_FACTOR = 2
| static

Multiplier for how many regular tiles a lock counts.

Definition at line 218 of file economy_type.h.

Referenced by AfterLoadCompanyStats(), CmdBuildShipDepot(), DoBuildLock(), and RemoveLock().

const uint64 MAX_INFLATION = (1ull << (63 - 32)) - 1
| static

Maximum inflation (including fractional part) without causing overflows in int64 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.

See Also
  MAX_PRICE_MODIFIER

Definition at line 202 of file economy_type.h.

Referenced by AddInflation(), and AfterLoadGame().

const int MIN_PRICE_MODIFIER = -8
| static

Maximum NewGRF price modifiers.

Increasing base prices by factor 65536 should be enough.

See Also
  MAX_INFLATION

Definition at line 209 of file economy_type.h.

Referenced by SetPriceBaseMultiplier().

const uint TUNNELBRIDGE_TRACKBIT_FACTOR = 4
| static

Multiplier for how many regular track bits a tunnel/bridge counts.

Definition at line 214 of file economy_type.h.

Referenced by AfterLoadCompanyStats(), CmdBuildBridge(), CmdBuildRoad(), CmdBuildTunnel(), CmdConvertRail(), DoClearBridge(), DoClearTunnel(), and RemoveRoad().