OpenTTD Source: src/currency.h File Reference

OpenTTD Source 15.0-RC2

Data Structures | Enumerations | Functions | Variables
currency.h File Reference

Functions to handle different currencies. More...

`#include "timer/timer_game_calendar.h"`
`#include "settings_type.h"`
`#include "strings_type.h"`

Go to the source code of this file.

## Data Structures
struct | CurrencySpec
| Specification of a currency. More...

## Enumerations
enum | Currencies : uint8_t { CURRENCY_GBP , CURRENCY_USD , CURRENCY_EUR , CURRENCY_JPY , CURRENCY_ATS , CURRENCY_BEF , CURRENCY_CHF , CURRENCY_CZK , CURRENCY_DEM , CURRENCY_DKK , CURRENCY_ESP , CURRENCY_FIM , CURRENCY_FRF , CURRENCY_GRD , CURRENCY_HUF , CURRENCY_ISK , CURRENCY_ITL , CURRENCY_NLG , CURRENCY_NOK , CURRENCY_PLN , CURRENCY_RON , CURRENCY_RUR , CURRENCY_SIT , CURRENCY_SEK , CURRENCY_YTL , CURRENCY_SKK , CURRENCY_BRL , CURRENCY_EEK , CURRENCY_LTL , CURRENCY_KRW , CURRENCY_ZAR , CURRENCY_CUSTOM , CURRENCY_GEL , CURRENCY_IRR , CURRENCY_RUB , CURRENCY_MXN , CURRENCY_NTD , CURRENCY_CNY , CURRENCY_HKD , CURRENCY_INR , CURRENCY_IDR , CURRENCY_MYR , CURRENCY_LVL , CURRENCY_PTE , CURRENCY_UAH , CURRENCY_VND , CURRENCY_END }
| This enum gives the currencies a unique id which must be maintained for savegame compatibility and in order to refer to them quickly, especially for referencing the custom one. More...

## Functions
CurrencySpec & | GetCustomCurrency ()
| Get the custom currency.
const CurrencySpec & | GetCurrency ()
| Get the currently selected currency.
uint64_t | GetMaskOfAllowedCurrencies ()
| get a mask of the allowed currencies depending on the year
void | ResetCurrencies (bool preserve_custom=true)
| Will fill _currency_specs array with default values from origin_currency_specs Called only from newgrf.cpp and settings.cpp.
uint8_t | GetNewgrfCurrencyIdConverted (uint8_t grfcurr_id)
| Will return the ottd's index correspondence to the ttdpatch's id.

## Variables
static constexpr TimerGameCalendar::Year | CF_NOEURO {0}
| Currency never switches to the Euro (as far as known).
static constexpr TimerGameCalendar::Year | CF_ISEURO {1}
| Currency is the Euro.
static constexpr TimerGameCalendar::Year | MIN_EURO_YEAR {2000}
| The earliest year custom currencies may switch to the Euro.
std::array< CurrencySpec, CURRENCY_END > | _currency_specs
| Array of currencies used by the system.

## Detailed Description

Functions to handle different currencies.

Definition in file currency.h.

## Enumeration Type Documentation

## ◆ Currencies

enum Currencies : uint8_t

This enum gives the currencies a unique id which must be maintained for savegame compatibility and in order to refer to them quickly, especially for referencing the custom one.

Enumerator
CURRENCY_GBP | British Pound.
CURRENCY_USD | US Dollar.
CURRENCY_EUR | Euro.
CURRENCY_JPY | Japanese Yen.
CURRENCY_ATS | Austrian Schilling.
CURRENCY_BEF | Belgian Franc.
CURRENCY_CHF | Swiss Franc.
CURRENCY_CZK | Czech Koruna.
CURRENCY_DEM | Deutsche Mark.
CURRENCY_DKK | Danish Krona.
CURRENCY_ESP | Spanish Peseta.
CURRENCY_FIM | Finish Markka.
CURRENCY_FRF | French Franc.
CURRENCY_GRD | Greek Drachma.
CURRENCY_HUF | Hungarian Forint.
CURRENCY_ISK | Icelandic Krona.
CURRENCY_ITL | Italian Lira.
CURRENCY_NLG | Dutch Gulden.
CURRENCY_NOK | Norwegian Krone.
CURRENCY_PLN | Polish Zloty.
CURRENCY_RON | Romanian Leu.
CURRENCY_RUR | Russian Rouble.
CURRENCY_SIT | Slovenian Tolar.
CURRENCY_SEK | Swedish Krona.
CURRENCY_YTL | Turkish Lira.
CURRENCY_SKK | Slovak Kornuna.
CURRENCY_BRL | Brazilian Real.
CURRENCY_EEK | Estonian Krooni.
CURRENCY_LTL | Lithuanian Litas.
CURRENCY_KRW | South Korean Won.
CURRENCY_ZAR | South African Rand.
CURRENCY_CUSTOM | Custom currency.
CURRENCY_GEL | Georgian Lari.
CURRENCY_IRR | Iranian Rial.
CURRENCY_RUB | New Russian Ruble.
CURRENCY_MXN | Mexican Peso.
CURRENCY_NTD | New Taiwan Dollar.
CURRENCY_CNY | Chinese Renminbi.
CURRENCY_HKD | Hong Kong Dollar.
CURRENCY_INR | Indian Rupee.
CURRENCY_IDR | Indonesian Rupiah.
CURRENCY_MYR | Malaysian Ringgit.
CURRENCY_LVL | Latvian Lats.
CURRENCY_PTE | Portuguese Escudo.
CURRENCY_UAH | Ukrainian Hryvnia.
CURRENCY_VND | Vietnamese Dong.
CURRENCY_END | always the last item

Definition at line 26 of file currency.h.

## Function Documentation

## ◆ GetCurrency()

const CurrencySpec & GetCurrency | ( |  | ) |
| inline

Get the currently selected currency.

Returns
  Read-only reference to the current currency.

Definition at line 119 of file currency.h.

References _currency_specs, LocaleSettings::currency, GetGameSettings(), and GameSettings::locale.

Referenced by FormatString(), CheatWindow::OnQueryTextFinished(), CompanyWindow::OnQueryTextFinished(), GameOptionsWindow::OnQueryTextFinished(), and PerformanceRatingDetailWindow::UpdateWidgetSize().

## ◆ GetCustomCurrency()

CurrencySpec & GetCustomCurrency | ( |  | ) |
| inline

Get the custom currency.

Returns
  Reference to custom currency.

Definition at line 110 of file currency.h.

References _currency_specs, and CURRENCY_CUSTOM.

Referenced by CustomCurrencyWindow::GetWidgetString(), CustomCurrencyWindow::OnClick(), CustomCurrencyWindow::OnQueryTextFinished(), and SurveySettings().

## ◆ GetMaskOfAllowedCurrencies()

uint64_t GetMaskOfAllowedCurrencies | ( |  | ) |

get a mask of the allowed currencies depending on the year

Returns
  mask of currencies

Definition at line 128 of file currency.cpp.

References _currency_specs, CF_ISEURO, CF_NOEURO, CURRENCY_CUSTOM, CURRENCY_END, SetBit(), and TimerGameCalendar::year.

## ◆ GetNewgrfCurrencyIdConverted()

uint8_t GetNewgrfCurrencyIdConverted | ( | uint8_t | grfcurr_id | ) |

Will return the ottd's index correspondence to the ttdpatch's id.

If the id is bigger than the array, it is a grf written for ottd, thus returning the same id. Only called from newgrf.cpp

Parameters

  grfcurr_id | currency id coming from newgrf

Returns
  the corrected index

Definition at line 119 of file currency.cpp.

References lengthof, and TTDPatch_To_OTTDIndex.

Referenced by GlobalVarChangeInfo().

## ◆ ResetCurrencies()

void ResetCurrencies | ( | bool | preserve_custom | ) |

Will fill _currency_specs array with default values from origin_currency_specs Called only from newgrf.cpp and settings.cpp.

Parameters

  preserve_custom | will not reset custom currency

Definition at line 163 of file currency.cpp.

References _currency_specs, CURRENCY_CUSTOM, CURRENCY_END, and origin_currency_specs.

Referenced by LoadFromConfig(), and ResetNewGRFData().

## Variable Documentation

## ◆ _currency_specs

std::array<CurrencySpec, CURRENCY_END> _currency_specs
| extern

Array of currencies used by the system.

Definition at line 80 of file currency.cpp.

Referenced by GameOptionsWindow::BuildDropDownList(), GetCurrency(), GetCustomCurrency(), GetMaskOfAllowedCurrencies(), GameOptionsWindow::GetWidgetString(), GlobalVarChangeInfo(), and ResetCurrencies().

## ◆ CF_ISEURO

constexpr TimerGameCalendar::Year CF_ISEURO {1}
| staticconstexpr

Currency is the Euro.

Definition at line 18 of file currency.h.

Referenced by GetMaskOfAllowedCurrencies().

## ◆ CF_NOEURO

constexpr TimerGameCalendar::Year CF_NOEURO {0}
| staticconstexpr

Currency never switches to the Euro (as far as known).

Definition at line 17 of file currency.h.

Referenced by GetMaskOfAllowedCurrencies(), CustomCurrencyWindow::GetWidgetString(), CustomCurrencyWindow::OnClick(), and CustomCurrencyWindow::OnQueryTextFinished().

## ◆ MIN_EURO_YEAR

constexpr TimerGameCalendar::Year MIN_EURO_YEAR {2000}
| staticconstexpr

The earliest year custom currencies may switch to the Euro.

Definition at line 19 of file currency.h.

Referenced by CustomCurrencyWindow::OnClick(), and CustomCurrencyWindow::OnQueryTextFinished().