OpenTTD Source  14.0-beta3
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_idcurrency 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_customwill 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().