OpenTTD
Functions | Variables
currency.cpp File Reference

Support for different currencies. More...

#include "stdafx.h"
#include "core/bitmath_func.hpp"
#include "currency.h"
#include "news_func.h"
#include "settings_type.h"
#include "date_func.h"
#include "string_type.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 GetMaskOfAllowedCurrencies ()
 get a mask of the allowed currencies depending on the year More...
 
void CheckSwitchToEuro ()
 Verify if the currency chosen by the user is about to be converted to Euro.
 
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...
 
StringIDBuildCurrencyDropdown ()
 Build a list of currency names StringIDs to use in a dropdown list. More...
 

Variables

static const CurrencySpec origin_currency_specs [CURRENCY_END]
 The original currency specifications. More...
 
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...
 

Detailed Description

Support for different currencies.

Definition in file currency.cpp.

Function Documentation

◆ BuildCurrencyDropdown()

StringID* BuildCurrencyDropdown ( )

Build a list of currency names StringIDs to use in a dropdown list.

Returns
Pointer to a (static) array of StringIDs

Definition at line 163 of file currency.cpp.

References CURRENCY_END, and INVALID_STRING_ID.

Referenced by GameOptionsWindow::BuildDropDownList().

◆ GetMaskOfAllowedCurrencies()

uint64 GetMaskOfAllowedCurrencies ( )

get a mask of the allowed currencies depending on the year

Returns
mask of currencies

Definition at line 116 of file currency.cpp.

References _cur_year, CF_ISEURO, CF_NOEURO, CURRENCY_CUSTOM, CURRENCY_END, SetBit(), and CurrencySpec::to_euro.

◆ 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 107 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 151 of file currency.cpp.

References CURRENCY_CUSTOM, and CURRENCY_END.

Variable Documentation

◆ origin_currency_specs

const CurrencySpec origin_currency_specs[CURRENCY_END]
static

The original currency specifications.

Definition at line 30 of file currency.cpp.

◆ TTDPatch_To_OTTDIndex

const byte TTDPatch_To_OTTDIndex[]
Initial value:
=
{
}
Russian Rouble.
Definition: currency.h:48
Finish Markka.
Definition: currency.h:38
Italian Lira.
Definition: currency.h:43
Dutch Gulden.
Definition: currency.h:44
Euro.
Definition: currency.h:29
Japanese Yen.
Definition: currency.h:30
US Dollar.
Definition: currency.h:28
Danish Krona.
Definition: currency.h:36
Spanish Peseta.
Definition: currency.h:37
Swedish Krona.
Definition: currency.h:50
British Pound.
Definition: currency.h:27
Belgian Franc.
Definition: currency.h:32
Greek Drachma.
Definition: currency.h:40
French Franc.
Definition: currency.h:39
Austrian Schilling.
Definition: currency.h:31
Polish Zloty.
Definition: currency.h:46
Swiss Franc.
Definition: currency.h:33
Deutsche Mark.
Definition: currency.h:35
Hungarian Forint.
Definition: currency.h:41

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 76 of file currency.cpp.

Referenced by GetNewgrfCurrencyIdConverted().