OpenTTD Source 20241224-master-gf74b0cf984
|
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 "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 | |
uint8_t | GetNewgrfCurrencyIdConverted (uint8_t grfcurr_id) |
Will return the ottd's index correspondence to the ttdpatch's id. | |
uint64_t | GetMaskOfAllowedCurrencies () |
get a mask of the allowed currencies depending on the year | |
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. | |
Variables | |
static const std::array< CurrencySpec, CURRENCY_END > | origin_currency_specs |
The original currency specifications. | |
std::array< CurrencySpec, CURRENCY_END > | _currency_specs |
Array of currencies used by the system. | |
const uint8_t | TTDPatch_To_OTTDIndex [] |
This array represent the position of OpenTTD's currencies, compared to TTDPatch's ones. | |
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. | |
Support for different currencies.
Definition in file currency.cpp.
uint64_t GetMaskOfAllowedCurrencies | ( | ) |
get a mask of the allowed currencies depending on the year
Definition at line 125 of file currency.cpp.
References _currency_specs, CF_ISEURO, CF_NOEURO, CURRENCY_CUSTOM, CURRENCY_END, SetBit(), and TimerGameCalendar::year.
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
grfcurr_id | currency id coming from newgrf |
Definition at line 116 of file currency.cpp.
References lengthof, and TTDPatch_To_OTTDIndex.
Referenced by GlobalVarChangeInfo().
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.
preserve_custom | will 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().
std::array<CurrencySpec, CURRENCY_END> _currency_specs |
Array of currencies used by the system.
Definition at line 77 of file currency.cpp.
Referenced by GameOptionsWindow::BuildDropDownList(), GetCurrency(), GetCustomCurrency(), GetMaskOfAllowedCurrencies(), GlobalVarChangeInfo(), ResetCurrencies(), and GameOptionsWindow::SetStringParameters().
|
static |
The original currency specifications.
Definition at line 29 of file currency.cpp.
Referenced by ResetCurrencies().
const uint8_t TTDPatch_To_OTTDIndex[] |
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 85 of file currency.cpp.
Referenced by GetNewgrfCurrencyIdConverted().