OpenTTD Source 20241224-master-gf74b0cf984
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 {
  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_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

CurrencySpecGetCustomCurrency ()
 Get the custom currency.
 
const CurrencySpecGetCurrency ()
 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

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 

Romenian 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_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 108 of file currency.h.

References _currency_specs, and CURRENCY_CUSTOM.

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

◆ GetMaskOfAllowedCurrencies()

uint64_t GetMaskOfAllowedCurrencies ( )

get a mask of the allowed currencies depending on the year

Returns
mask of currencies

Definition at line 125 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 116 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 160 of file currency.cpp.

References _currency_specs, CURRENCY_CUSTOM, CURRENCY_END, and origin_currency_specs.

Referenced by LoadFromConfig(), and ResetNewGRFData().

Variable Documentation

◆ _currency_specs

◆ 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::OnClick(), CustomCurrencyWindow::OnQueryTextFinished(), and CustomCurrencyWindow::SetStringParameters().

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