OpenTTD Source: src/currency.cpp File Reference

OpenTTD Source 14.0-beta3

Functions | Variables
currency.cpp File Reference
`#include "stdafx.h"`
`#include "core/bitmath_func.hpp"`
`#include "currency.h"`
`#include "news_func.h"`
`#include "settings_type.h"`
`#include "string_type.h"`
`#include "timer/timer.h"`
`#include "timer/timer_game_calendar.h"`
`#include "table/strings.h"`
`#include "safeguards.h"`

Go to the source code of this file.

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

## Variables
static const CurrencySpec | origin_currency_specs [CURRENCY_END]
| The original currency specifications.
CurrencySpec | _currency_specs [CURRENCY_END]
| Array of currencies used by the system.
const byte | TTDPatch_To_OTTDIndex []
| This array represent the position of OpenTTD's currencies, compared to TTDPatch's ones. More...
static IntervalTimer< TimerGameCalendar > | _check_switch_to_euro ({TimerGameCalendar::YEAR, TimerGameCalendar::Priority::NONE}, [](auto) { if(_currency_specs[_settings_game.locale.currency].to_euro !=CF_NOEURO &&_currency_specs[_settings_game.locale.currency].to_euro !=CF_ISEURO &&TimerGameCalendar::year >=_currency_specs[_settings_game.locale.currency].to_euro) { _settings_game.locale.currency=2;AddNewsItem(STR_NEWS_EURO_INTRODUCTION, NT_ECONOMY, NF_NORMAL);} })
| Verify if the currency chosen by the user is about to be converted to Euro.

## Detailed Description

Support for different currencies.

Definition in file currency.cpp.

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

## Variable Documentation

## ◆ TTDPatch_To_OTTDIndex

const byte TTDPatch_To_OTTDIndex[]

Initial value:
=
{
CURRENCY_GBP,
CURRENCY_USD,
CURRENCY_FRF,
CURRENCY_DEM,
CURRENCY_JPY,
CURRENCY_ESP,
CURRENCY_HUF,
CURRENCY_PLN,
CURRENCY_ATS,
CURRENCY_BEF,
CURRENCY_DKK,
CURRENCY_FIM,
CURRENCY_GRD,
CURRENCY_CHF,
CURRENCY_NLG,
CURRENCY_ITL,
CURRENCY_SEK,
CURRENCY_RUR,
CURRENCY_EUR,
}

This array represent the position of OpenTTD's currencies, compared to TTDPatch's ones.

When a grf sends currencies, they are based on the order defined by TTDPatch. So, we must reindex them to our own order.

Definition at line 84 of file currency.cpp.

Referenced by GetNewgrfCurrencyIdConverted().

CURRENCY_DEM
@ CURRENCY_DEM
Deutsche Mark.
Definition: currency.h:35
CURRENCY_HUF
@ CURRENCY_HUF
Hungarian Forint.
Definition: currency.h:41
CURRENCY_RUR
@ CURRENCY_RUR
Russian Rouble.
Definition: currency.h:48
CURRENCY_PLN
@ CURRENCY_PLN
Polish Zloty.
Definition: currency.h:46
CURRENCY_BEF
@ CURRENCY_BEF
Belgian Franc.
Definition: currency.h:32
CURRENCY_GBP
@ CURRENCY_GBP
British Pound.
Definition: currency.h:27
CURRENCY_CHF
@ CURRENCY_CHF
Swiss Franc.
Definition: currency.h:33
CURRENCY_USD
@ CURRENCY_USD
US Dollar.
Definition: currency.h:28
CURRENCY_DKK
@ CURRENCY_DKK
Danish Krona.
Definition: currency.h:36
CURRENCY_FIM
@ CURRENCY_FIM
Finish Markka.
Definition: currency.h:38
CURRENCY_ESP
@ CURRENCY_ESP
Spanish Peseta.
Definition: currency.h:37
CURRENCY_SEK
@ CURRENCY_SEK
Swedish Krona.
Definition: currency.h:50
CURRENCY_GRD
@ CURRENCY_GRD
Greek Drachma.
Definition: currency.h:40
CURRENCY_ITL
@ CURRENCY_ITL
Italian Lira.
Definition: currency.h:43
CURRENCY_NLG
@ CURRENCY_NLG
Dutch Gulden.
Definition: currency.h:44
CURRENCY_JPY
@ CURRENCY_JPY
Japanese Yen.
Definition: currency.h:30
CURRENCY_EUR
@ CURRENCY_EUR
Euro.
Definition: currency.h:29
CURRENCY_FRF
@ CURRENCY_FRF
French Franc.
Definition: currency.h:39
CURRENCY_ATS
@ CURRENCY_ATS
Austrian Schilling.
Definition: currency.h:31