OpenTTD Source 15.0-RC4
currency.h File Reference

Functions to handle different currencies. More...

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

◆ 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_idcurrency 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_customwill 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

◆ 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().