OpenTTD Source: src/currency.h File Reference

OpenTTD Source 14.0-beta1

Data Structures | Macros | Enumerations | Functions | Variables
currency.h File Reference
`#include "timer/timer_game_calendar.h"`
`#include "string_func.h"`
`#include "strings_type.h"`

Go to the source code of this file.

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

## Macros
#define | _custom_currency (_currency_specs[CURRENCY_CUSTOM])
#define | _currency ((const CurrencySpec*)&_currency_specs[GetGameSettings().locale.currency])

## 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_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
uint64_t | GetMaskOfAllowedCurrencies ()
| get a mask of the allowed currencies depending on the year More...
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. More...
byte | GetNewgrfCurrencyIdConverted (byte grfcurr_id)
| Will return the ottd's index correspondence to the ttdpatch's id. More...

## 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.
CurrencySpec | _currency_specs [CURRENCY_END]
| 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_END | always the last item

Definition at line 26 of file currency.h.

## Function Documentation

## ◆ GetMaskOfAllowedCurrencies()

uint64_t GetMaskOfAllowedCurrencies | ( |  | ) |

get a mask of the allowed currencies depending on the year

Returns
  mask of currencies

Definition at line 124 of file currency.cpp.

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

## ◆ GetNewgrfCurrencyIdConverted()

byte GetNewgrfCurrencyIdConverted | ( | byte | 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 115 of file currency.cpp.

References lengthof, and TTDPatch_To_OTTDIndex.

## ◆ 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 159 of file currency.cpp.

References _currency_specs, CURRENCY_CUSTOM, CURRENCY_END, and origin_currency_specs.

Referenced by LoadFromConfig().