mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-13 02:52:37 +00:00
Fix #11054: Prevent translation of currency codes.
Most languages stick with the 3-letter latin currency codes in the name string, however some translations are... clever... and use the currency symbol instead. Whilst this may look nice, it can cause issues with fonts as some scripts have a specific limited set of fonts which do not include these symbols. Instead, hard code the currency code list and add it when drawing the currency name.
This commit is contained in:
parent
d42a78f3e8
commit
9dd9b8ec74
112
src/currency.cpp
112
src/currency.cpp
@ -21,54 +21,54 @@
|
|||||||
|
|
||||||
#include "safeguards.h"
|
#include "safeguards.h"
|
||||||
|
|
||||||
/* exchange rate prefix symbol_pos
|
/* exchange rate prefix code
|
||||||
* | separator | postfix |
|
* | separator | postfix | symbol_pos
|
||||||
* | | Euro year | | | name
|
* | | Euro year | | | | name
|
||||||
* | | | | | | | */
|
* | | | | | | | | */
|
||||||
/** The original currency specifications. */
|
/** The original currency specifications. */
|
||||||
static const CurrencySpec origin_currency_specs[CURRENCY_END] = {
|
static const CurrencySpec origin_currency_specs[CURRENCY_END] = {
|
||||||
{ 1, "", CF_NOEURO, u8"\u00a3", "", 0, STR_GAME_OPTIONS_CURRENCY_GBP }, ///< british pound
|
{ 1, "", CF_NOEURO, u8"\u00a3", "", "GBP", 0, STR_GAME_OPTIONS_CURRENCY_GBP }, ///< british pound
|
||||||
{ 2, "", CF_NOEURO, "$", "", 0, STR_GAME_OPTIONS_CURRENCY_USD }, ///< american dollar
|
{ 2, "", CF_NOEURO, "$", "", "USD", 0, STR_GAME_OPTIONS_CURRENCY_USD }, ///< american dollar
|
||||||
{ 2, "", CF_ISEURO, u8"\u20ac", "", 0, STR_GAME_OPTIONS_CURRENCY_EUR }, ///< euro
|
{ 2, "", CF_ISEURO, u8"\u20ac", "", "EUR", 0, STR_GAME_OPTIONS_CURRENCY_EUR }, ///< euro
|
||||||
{ 220, "", CF_NOEURO, u8"\u00a5", "", 0, STR_GAME_OPTIONS_CURRENCY_JPY }, ///< japanese yen
|
{ 220, "", CF_NOEURO, u8"\u00a5", "", "JPY", 0, STR_GAME_OPTIONS_CURRENCY_JPY }, ///< japanese yen
|
||||||
{ 27, "", 2002, "", NBSP "S.", 1, STR_GAME_OPTIONS_CURRENCY_ATS }, ///< austrian schilling
|
{ 27, "", 2002, "", NBSP "S.", "ATS", 1, STR_GAME_OPTIONS_CURRENCY_ATS }, ///< austrian schilling
|
||||||
{ 81, "", 2002, "BEF" NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_BEF }, ///< belgian franc
|
{ 81, "", 2002, "BEF" NBSP, "", "BEF", 0, STR_GAME_OPTIONS_CURRENCY_BEF }, ///< belgian franc
|
||||||
{ 2, "", CF_NOEURO, "CHF" NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_CHF }, ///< swiss franc
|
{ 2, "", CF_NOEURO, "CHF" NBSP, "", "CHF", 0, STR_GAME_OPTIONS_CURRENCY_CHF }, ///< swiss franc
|
||||||
{ 41, "", CF_NOEURO, "", NBSP u8"K\u010d", 1, STR_GAME_OPTIONS_CURRENCY_CZK }, ///< czech koruna
|
{ 41, "", CF_NOEURO, "", NBSP u8"K\u010d", "CZK", 1, STR_GAME_OPTIONS_CURRENCY_CZK }, ///< czech koruna
|
||||||
{ 4, "", 2002, "DM" NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_DEM }, ///< deutsche mark
|
{ 4, "", 2002, "DM" NBSP, "", "DEM", 0, STR_GAME_OPTIONS_CURRENCY_DEM }, ///< deutsche mark
|
||||||
{ 11, "", CF_NOEURO, "", NBSP "kr", 1, STR_GAME_OPTIONS_CURRENCY_DKK }, ///< danish krone
|
{ 11, "", CF_NOEURO, "", NBSP "kr", "DKK", 1, STR_GAME_OPTIONS_CURRENCY_DKK }, ///< danish krone
|
||||||
{ 333, "", 2002, "Pts" NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_ESP }, ///< spanish peseta
|
{ 333, "", 2002, "Pts" NBSP, "", "ESP", 0, STR_GAME_OPTIONS_CURRENCY_ESP }, ///< spanish peseta
|
||||||
{ 12, "", 2002, "", NBSP "mk", 1, STR_GAME_OPTIONS_CURRENCY_FIM }, ///< finnish markka
|
{ 12, "", 2002, "", NBSP "mk", "FIM", 1, STR_GAME_OPTIONS_CURRENCY_FIM }, ///< finnish markka
|
||||||
{ 13, "", 2002, "FF" NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_FRF }, ///< french franc
|
{ 13, "", 2002, "FF" NBSP, "", "FRF", 0, STR_GAME_OPTIONS_CURRENCY_FRF }, ///< french franc
|
||||||
{ 681, "", 2002, "", "Dr.", 1, STR_GAME_OPTIONS_CURRENCY_GRD }, ///< greek drachma
|
{ 681, "", 2002, "", "Dr.", "GRD", 1, STR_GAME_OPTIONS_CURRENCY_GRD }, ///< greek drachma
|
||||||
{ 378, "", CF_NOEURO, "", NBSP "Ft", 1, STR_GAME_OPTIONS_CURRENCY_HUF }, ///< hungarian forint
|
{ 378, "", CF_NOEURO, "", NBSP "Ft", "HUF", 1, STR_GAME_OPTIONS_CURRENCY_HUF }, ///< hungarian forint
|
||||||
{ 130, "", CF_NOEURO, "", NBSP "Kr", 1, STR_GAME_OPTIONS_CURRENCY_ISK }, ///< icelandic krona
|
{ 130, "", CF_NOEURO, "", NBSP "Kr", "ISK", 1, STR_GAME_OPTIONS_CURRENCY_ISK }, ///< icelandic krona
|
||||||
{ 3873, "", 2002, "", NBSP "L.", 1, STR_GAME_OPTIONS_CURRENCY_ITL }, ///< italian lira
|
{ 3873, "", 2002, "", NBSP "L.", "ITL", 1, STR_GAME_OPTIONS_CURRENCY_ITL }, ///< italian lira
|
||||||
{ 4, "", 2002, "NLG" NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_NLG }, ///< dutch gulden
|
{ 4, "", 2002, "NLG" NBSP, "", "NLG", 0, STR_GAME_OPTIONS_CURRENCY_NLG }, ///< dutch gulden
|
||||||
{ 12, "", CF_NOEURO, "", NBSP "Kr", 1, STR_GAME_OPTIONS_CURRENCY_NOK }, ///< norwegian krone
|
{ 12, "", CF_NOEURO, "", NBSP "Kr", "NOK", 1, STR_GAME_OPTIONS_CURRENCY_NOK }, ///< norwegian krone
|
||||||
{ 6, "", CF_NOEURO, "", NBSP u8"z\u0142", 1, STR_GAME_OPTIONS_CURRENCY_PLN }, ///< polish zloty
|
{ 6, "", CF_NOEURO, "", NBSP u8"z\u0142", "PLN", 1, STR_GAME_OPTIONS_CURRENCY_PLN }, ///< polish zloty
|
||||||
{ 5, "", CF_NOEURO, "", NBSP "Lei", 1, STR_GAME_OPTIONS_CURRENCY_RON }, ///< romanian leu
|
{ 5, "", CF_NOEURO, "", NBSP "Lei", "RON", 1, STR_GAME_OPTIONS_CURRENCY_RON }, ///< romanian leu
|
||||||
{ 50, "", CF_NOEURO, "", NBSP "p", 1, STR_GAME_OPTIONS_CURRENCY_RUR }, ///< russian rouble
|
{ 50, "", CF_NOEURO, "", NBSP "p", "RUR", 1, STR_GAME_OPTIONS_CURRENCY_RUR }, ///< russian rouble
|
||||||
{ 479, "", 2007, "", NBSP "SIT", 1, STR_GAME_OPTIONS_CURRENCY_SIT }, ///< slovenian tolar
|
{ 479, "", 2007, "", NBSP "SIT", "SIT", 1, STR_GAME_OPTIONS_CURRENCY_SIT }, ///< slovenian tolar
|
||||||
{ 13, "", CF_NOEURO, "", NBSP "Kr", 1, STR_GAME_OPTIONS_CURRENCY_SEK }, ///< swedish krona
|
{ 13, "", CF_NOEURO, "", NBSP "Kr", "SEK", 1, STR_GAME_OPTIONS_CURRENCY_SEK }, ///< swedish krona
|
||||||
{ 3, "", CF_NOEURO, "", NBSP "TL", 1, STR_GAME_OPTIONS_CURRENCY_TRY }, ///< turkish lira
|
{ 3, "", CF_NOEURO, "", NBSP "TL", "TRY", 1, STR_GAME_OPTIONS_CURRENCY_TRY }, ///< turkish lira
|
||||||
{ 60, "", 2009, "", NBSP "Sk", 1, STR_GAME_OPTIONS_CURRENCY_SKK }, ///< slovak koruna
|
{ 60, "", 2009, "", NBSP "Sk", "SKK", 1, STR_GAME_OPTIONS_CURRENCY_SKK }, ///< slovak koruna
|
||||||
{ 4, "", CF_NOEURO, "R$" NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_BRL }, ///< brazil real
|
{ 4, "", CF_NOEURO, "R$" NBSP, "", "BRL", 0, STR_GAME_OPTIONS_CURRENCY_BRL }, ///< brazil real
|
||||||
{ 31, "", 2011, "", NBSP "EEK", 1, STR_GAME_OPTIONS_CURRENCY_EEK }, ///< estonian krooni
|
{ 31, "", 2011, "", NBSP "EEK", "EEK", 1, STR_GAME_OPTIONS_CURRENCY_EEK }, ///< estonian krooni
|
||||||
{ 4, "", 2015, "", NBSP "Lt", 1, STR_GAME_OPTIONS_CURRENCY_LTL }, ///< lithuanian litas
|
{ 4, "", 2015, "", NBSP "Lt", "LTL", 1, STR_GAME_OPTIONS_CURRENCY_LTL }, ///< lithuanian litas
|
||||||
{ 1850, "", CF_NOEURO, u8"\u20a9", "", 0, STR_GAME_OPTIONS_CURRENCY_KRW }, ///< south korean won
|
{ 1850, "", CF_NOEURO, u8"\u20a9", "", "KRW", 0, STR_GAME_OPTIONS_CURRENCY_KRW }, ///< south korean won
|
||||||
{ 13, "", CF_NOEURO, "R" NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_ZAR }, ///< south african rand
|
{ 13, "", CF_NOEURO, "R" NBSP, "", "ZAR", 0, STR_GAME_OPTIONS_CURRENCY_ZAR }, ///< south african rand
|
||||||
{ 1, "", CF_NOEURO, "", "", 2, STR_GAME_OPTIONS_CURRENCY_CUSTOM }, ///< custom currency (add further languages below)
|
{ 1, "", CF_NOEURO, "", "", "", 2, STR_GAME_OPTIONS_CURRENCY_CUSTOM }, ///< custom currency (add further languages below)
|
||||||
{ 3, "", CF_NOEURO, "", NBSP "GEL", 1, STR_GAME_OPTIONS_CURRENCY_GEL }, ///< Georgian Lari
|
{ 3, "", CF_NOEURO, "", NBSP "GEL", "GEL", 1, STR_GAME_OPTIONS_CURRENCY_GEL }, ///< Georgian Lari
|
||||||
{ 4901, "", CF_NOEURO, "", NBSP "Rls", 1, STR_GAME_OPTIONS_CURRENCY_IRR }, ///< Iranian Rial
|
{ 4901, "", CF_NOEURO, "", NBSP "Rls", "IRR", 1, STR_GAME_OPTIONS_CURRENCY_IRR }, ///< Iranian Rial
|
||||||
{ 80, "", CF_NOEURO, "", NBSP "rub", 1, STR_GAME_OPTIONS_CURRENCY_RUB }, ///< New Russian Ruble
|
{ 80, "", CF_NOEURO, "", NBSP "rub", "RUB", 1, STR_GAME_OPTIONS_CURRENCY_RUB }, ///< New Russian Ruble
|
||||||
{ 24, "", CF_NOEURO, "$", "", 0, STR_GAME_OPTIONS_CURRENCY_MXN }, ///< Mexican peso
|
{ 24, "", CF_NOEURO, "$", "", "MXN", 0, STR_GAME_OPTIONS_CURRENCY_MXN }, ///< Mexican peso
|
||||||
{ 40, "", CF_NOEURO, "NTD" NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_NTD }, ///< new taiwan dollar
|
{ 40, "", CF_NOEURO, "NTD" NBSP, "", "NTD", 0, STR_GAME_OPTIONS_CURRENCY_NTD }, ///< new taiwan dollar
|
||||||
{ 8, "", CF_NOEURO, u8"\u00a5", "", 0, STR_GAME_OPTIONS_CURRENCY_CNY }, ///< chinese renminbi
|
{ 8, "", CF_NOEURO, u8"\u00a5", "", "CNY", 0, STR_GAME_OPTIONS_CURRENCY_CNY }, ///< chinese renminbi
|
||||||
{ 10, "", CF_NOEURO, "HKD" NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_HKD }, ///< hong kong dollar
|
{ 10, "", CF_NOEURO, "HKD" NBSP, "", "HKD", 0, STR_GAME_OPTIONS_CURRENCY_HKD }, ///< hong kong dollar
|
||||||
{ 90, "", CF_NOEURO, u8"\u20b9", "", 0, STR_GAME_OPTIONS_CURRENCY_INR }, ///< Indian Rupee
|
{ 90, "", CF_NOEURO, u8"\u20b9", "", "INR", 0, STR_GAME_OPTIONS_CURRENCY_INR }, ///< Indian Rupee
|
||||||
{ 19, "", CF_NOEURO, "Rp", "", 0, STR_GAME_OPTIONS_CURRENCY_IDR }, ///< Indonesian Rupiah
|
{ 19, "", CF_NOEURO, "Rp", "", "IDR", 0, STR_GAME_OPTIONS_CURRENCY_IDR }, ///< Indonesian Rupiah
|
||||||
{ 5, "", CF_NOEURO, "RM", "", 0, STR_GAME_OPTIONS_CURRENCY_MYR }, ///< Malaysian Ringgit
|
{ 5, "", CF_NOEURO, "RM", "", "MYR", 0, STR_GAME_OPTIONS_CURRENCY_MYR }, ///< Malaysian Ringgit
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Array of currencies used by the system */
|
/** Array of currencies used by the system */
|
||||||
@ -162,23 +162,3 @@ void ResetCurrencies(bool preserve_custom)
|
|||||||
_currency_specs[i] = origin_currency_specs[i];
|
_currency_specs[i] = origin_currency_specs[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Build a list of currency names StringIDs to use in a dropdown list
|
|
||||||
* @return Pointer to a (static) array of StringIDs
|
|
||||||
*/
|
|
||||||
StringID *BuildCurrencyDropdown()
|
|
||||||
{
|
|
||||||
/* Allow room for all currencies, plus a terminator entry */
|
|
||||||
static StringID names[CURRENCY_END + 1];
|
|
||||||
uint i;
|
|
||||||
|
|
||||||
/* Add each name */
|
|
||||||
for (i = 0; i < CURRENCY_END; i++) {
|
|
||||||
names[i] = _currency_specs[i].name;
|
|
||||||
}
|
|
||||||
/* Terminate the list */
|
|
||||||
names[i] = INVALID_STRING_ID;
|
|
||||||
|
|
||||||
return names;
|
|
||||||
}
|
|
||||||
|
@ -75,6 +75,7 @@ struct CurrencySpec {
|
|||||||
TimerGameCalendar::Year to_euro; ///< Year of switching to the Euro. May also be #CF_NOEURO or #CF_ISEURO.
|
TimerGameCalendar::Year to_euro; ///< Year of switching to the Euro. May also be #CF_NOEURO or #CF_ISEURO.
|
||||||
std::string prefix; ///< Prefix to apply when formatting money in this currency.
|
std::string prefix; ///< Prefix to apply when formatting money in this currency.
|
||||||
std::string suffix; ///< Suffix to apply when formatting money in this currency.
|
std::string suffix; ///< Suffix to apply when formatting money in this currency.
|
||||||
|
std::string code; ///< 3 letter untranslated code to identify the currency.
|
||||||
/**
|
/**
|
||||||
* The currency symbol is represented by two possible values, prefix and suffix
|
* The currency symbol is represented by two possible values, prefix and suffix
|
||||||
* Usage of one or the other is determined by #symbol_pos.
|
* Usage of one or the other is determined by #symbol_pos.
|
||||||
@ -89,8 +90,8 @@ struct CurrencySpec {
|
|||||||
|
|
||||||
CurrencySpec() = default;
|
CurrencySpec() = default;
|
||||||
|
|
||||||
CurrencySpec(uint16 rate, const char *separator, TimerGameCalendar::Year to_euro, const char *prefix, const char *suffix, byte symbol_pos, StringID name) :
|
CurrencySpec(uint16 rate, const char *separator, TimerGameCalendar::Year to_euro, const char *prefix, const char *suffix, const char *code, byte symbol_pos, StringID name) :
|
||||||
rate(rate), separator(separator), to_euro(to_euro), prefix(prefix), suffix(suffix), symbol_pos(symbol_pos), name(name)
|
rate(rate), separator(separator), to_euro(to_euro), prefix(prefix), suffix(suffix), code(code), symbol_pos(symbol_pos), name(name)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -103,7 +104,6 @@ extern CurrencySpec _currency_specs[CURRENCY_END];
|
|||||||
|
|
||||||
uint64 GetMaskOfAllowedCurrencies();
|
uint64 GetMaskOfAllowedCurrencies();
|
||||||
void ResetCurrencies(bool preserve_custom = true);
|
void ResetCurrencies(bool preserve_custom = true);
|
||||||
StringID *BuildCurrencyDropdown();
|
|
||||||
byte GetNewgrfCurrencyIdConverted(byte grfcurr_id);
|
byte GetNewgrfCurrencyIdConverted(byte grfcurr_id);
|
||||||
|
|
||||||
#endif /* CURRENCY_H */
|
#endif /* CURRENCY_H */
|
||||||
|
@ -951,49 +951,51 @@ STR_GAME_OPTIONS_VOLUME_100 :100%
|
|||||||
STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME :{BLACK}Currency units
|
STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME :{BLACK}Currency units
|
||||||
STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP :{BLACK}Currency units selection
|
STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP :{BLACK}Currency units selection
|
||||||
|
|
||||||
|
STR_GAME_OPTIONS_CURRENCY_CODE :{STRING} ({RAW_STRING})
|
||||||
|
|
||||||
###length 42
|
###length 42
|
||||||
STR_GAME_OPTIONS_CURRENCY_GBP :British Pound (GBP)
|
STR_GAME_OPTIONS_CURRENCY_GBP :British Pound
|
||||||
STR_GAME_OPTIONS_CURRENCY_USD :American Dollar (USD)
|
STR_GAME_OPTIONS_CURRENCY_USD :American Dollar
|
||||||
STR_GAME_OPTIONS_CURRENCY_EUR :Euro (EUR)
|
STR_GAME_OPTIONS_CURRENCY_EUR :Euro
|
||||||
STR_GAME_OPTIONS_CURRENCY_JPY :Japanese Yen (JPY)
|
STR_GAME_OPTIONS_CURRENCY_JPY :Japanese Yen
|
||||||
STR_GAME_OPTIONS_CURRENCY_ATS :Austrian Shilling (ATS)
|
STR_GAME_OPTIONS_CURRENCY_ATS :Austrian Shilling
|
||||||
STR_GAME_OPTIONS_CURRENCY_BEF :Belgian Franc (BEF)
|
STR_GAME_OPTIONS_CURRENCY_BEF :Belgian Franc
|
||||||
STR_GAME_OPTIONS_CURRENCY_CHF :Swiss Franc (CHF)
|
STR_GAME_OPTIONS_CURRENCY_CHF :Swiss Franc
|
||||||
STR_GAME_OPTIONS_CURRENCY_CZK :Czech Koruna (CZK)
|
STR_GAME_OPTIONS_CURRENCY_CZK :Czech Koruna
|
||||||
STR_GAME_OPTIONS_CURRENCY_DEM :Deutschmark (DEM)
|
STR_GAME_OPTIONS_CURRENCY_DEM :Deutschmark
|
||||||
STR_GAME_OPTIONS_CURRENCY_DKK :Danish Krone (DKK)
|
STR_GAME_OPTIONS_CURRENCY_DKK :Danish Krone
|
||||||
STR_GAME_OPTIONS_CURRENCY_ESP :Spanish Peseta (ESP)
|
STR_GAME_OPTIONS_CURRENCY_ESP :Spanish Peseta
|
||||||
STR_GAME_OPTIONS_CURRENCY_FIM :Finnish Markka (FIM)
|
STR_GAME_OPTIONS_CURRENCY_FIM :Finnish Markka
|
||||||
STR_GAME_OPTIONS_CURRENCY_FRF :French Franc (FRF)
|
STR_GAME_OPTIONS_CURRENCY_FRF :French Franc
|
||||||
STR_GAME_OPTIONS_CURRENCY_GRD :Greek Drachma (GRD)
|
STR_GAME_OPTIONS_CURRENCY_GRD :Greek Drachma
|
||||||
STR_GAME_OPTIONS_CURRENCY_HUF :Hungarian Forint (HUF)
|
STR_GAME_OPTIONS_CURRENCY_HUF :Hungarian Forint
|
||||||
STR_GAME_OPTIONS_CURRENCY_ISK :Icelandic Krona (ISK)
|
STR_GAME_OPTIONS_CURRENCY_ISK :Icelandic Krona
|
||||||
STR_GAME_OPTIONS_CURRENCY_ITL :Italian Lira (ITL)
|
STR_GAME_OPTIONS_CURRENCY_ITL :Italian Lira
|
||||||
STR_GAME_OPTIONS_CURRENCY_NLG :Dutch Guilder (NLG)
|
STR_GAME_OPTIONS_CURRENCY_NLG :Dutch Guilder
|
||||||
STR_GAME_OPTIONS_CURRENCY_NOK :Norwegian Krone (NOK)
|
STR_GAME_OPTIONS_CURRENCY_NOK :Norwegian Krone
|
||||||
STR_GAME_OPTIONS_CURRENCY_PLN :Polish Złoty (PLN)
|
STR_GAME_OPTIONS_CURRENCY_PLN :Polish Złoty
|
||||||
STR_GAME_OPTIONS_CURRENCY_RON :Romanian Leu (RON)
|
STR_GAME_OPTIONS_CURRENCY_RON :Romanian Leu
|
||||||
STR_GAME_OPTIONS_CURRENCY_RUR :Russian Rubles (RUR)
|
STR_GAME_OPTIONS_CURRENCY_RUR :Russian Rubles
|
||||||
STR_GAME_OPTIONS_CURRENCY_SIT :Slovenian Tolar (SIT)
|
STR_GAME_OPTIONS_CURRENCY_SIT :Slovenian Tolar
|
||||||
STR_GAME_OPTIONS_CURRENCY_SEK :Swedish Krona (SEK)
|
STR_GAME_OPTIONS_CURRENCY_SEK :Swedish Krona
|
||||||
STR_GAME_OPTIONS_CURRENCY_TRY :Turkish Lira (TRY)
|
STR_GAME_OPTIONS_CURRENCY_TRY :Turkish Lira
|
||||||
STR_GAME_OPTIONS_CURRENCY_SKK :Slovak Koruna (SKK)
|
STR_GAME_OPTIONS_CURRENCY_SKK :Slovak Koruna
|
||||||
STR_GAME_OPTIONS_CURRENCY_BRL :Brazilian Real (BRL)
|
STR_GAME_OPTIONS_CURRENCY_BRL :Brazilian Real
|
||||||
STR_GAME_OPTIONS_CURRENCY_EEK :Estonian Krooni (EEK)
|
STR_GAME_OPTIONS_CURRENCY_EEK :Estonian Krooni
|
||||||
STR_GAME_OPTIONS_CURRENCY_LTL :Lithuanian Litas (LTL)
|
STR_GAME_OPTIONS_CURRENCY_LTL :Lithuanian Litas
|
||||||
STR_GAME_OPTIONS_CURRENCY_KRW :South Korean Won (KRW)
|
STR_GAME_OPTIONS_CURRENCY_KRW :South Korean Won
|
||||||
STR_GAME_OPTIONS_CURRENCY_ZAR :South African Rand (ZAR)
|
STR_GAME_OPTIONS_CURRENCY_ZAR :South African Rand
|
||||||
STR_GAME_OPTIONS_CURRENCY_CUSTOM :Custom...
|
STR_GAME_OPTIONS_CURRENCY_CUSTOM :Custom...
|
||||||
STR_GAME_OPTIONS_CURRENCY_GEL :Georgian Lari (GEL)
|
STR_GAME_OPTIONS_CURRENCY_GEL :Georgian Lari
|
||||||
STR_GAME_OPTIONS_CURRENCY_IRR :Iranian Rial (IRR)
|
STR_GAME_OPTIONS_CURRENCY_IRR :Iranian Rial
|
||||||
STR_GAME_OPTIONS_CURRENCY_RUB :New Russian Ruble (RUB)
|
STR_GAME_OPTIONS_CURRENCY_RUB :New Russian Ruble
|
||||||
STR_GAME_OPTIONS_CURRENCY_MXN :Mexican Peso (MXN)
|
STR_GAME_OPTIONS_CURRENCY_MXN :Mexican Peso
|
||||||
STR_GAME_OPTIONS_CURRENCY_NTD :New Taiwan Dollar (NTD)
|
STR_GAME_OPTIONS_CURRENCY_NTD :New Taiwan Dollar
|
||||||
STR_GAME_OPTIONS_CURRENCY_CNY :Chinese Renminbi (CNY)
|
STR_GAME_OPTIONS_CURRENCY_CNY :Chinese Renminbi
|
||||||
STR_GAME_OPTIONS_CURRENCY_HKD :Hong Kong Dollar (HKD)
|
STR_GAME_OPTIONS_CURRENCY_HKD :Hong Kong Dollar
|
||||||
STR_GAME_OPTIONS_CURRENCY_INR :Indian Rupee (INR)
|
STR_GAME_OPTIONS_CURRENCY_INR :Indian Rupee
|
||||||
STR_GAME_OPTIONS_CURRENCY_IDR :Indonesian Rupiah (IDR)
|
STR_GAME_OPTIONS_CURRENCY_IDR :Indonesian Rupiah
|
||||||
STR_GAME_OPTIONS_CURRENCY_MYR :Malaysian Ringgit (MYR)
|
STR_GAME_OPTIONS_CURRENCY_MYR :Malaysian Ringgit
|
||||||
|
|
||||||
STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Autosave
|
STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Autosave
|
||||||
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Select interval between automatic game saves
|
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Select interval between automatic game saves
|
||||||
|
@ -2710,6 +2710,7 @@ static ChangeInfoResult GlobalVarChangeInfo(uint gvid, int numinfo, int prop, By
|
|||||||
|
|
||||||
if ((newone != STR_UNDEFINED) && (curidx < CURRENCY_END)) {
|
if ((newone != STR_UNDEFINED) && (curidx < CURRENCY_END)) {
|
||||||
_currency_specs[curidx].name = newone;
|
_currency_specs[curidx].name = newone;
|
||||||
|
_currency_specs[curidx].code.clear();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -216,13 +216,19 @@ struct GameOptionsWindow : Window {
|
|||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_GO_CURRENCY_DROPDOWN: { // Setup currencies dropdown
|
case WID_GO_CURRENCY_DROPDOWN: { // Setup currencies dropdown
|
||||||
*selected_index = this->opt->locale.currency;
|
*selected_index = this->opt->locale.currency;
|
||||||
StringID *items = BuildCurrencyDropdown();
|
|
||||||
uint64 disabled = _game_mode == GM_MENU ? 0LL : ~GetMaskOfAllowedCurrencies();
|
uint64 disabled = _game_mode == GM_MENU ? 0LL : ~GetMaskOfAllowedCurrencies();
|
||||||
|
|
||||||
/* Add non-custom currencies; sorted naturally */
|
/* Add non-custom currencies; sorted naturally */
|
||||||
for (uint i = 0; i < CURRENCY_END; items++, i++) {
|
for (const CurrencySpec ¤cy : _currency_specs) {
|
||||||
|
int i = ¤cy - _currency_specs;
|
||||||
if (i == CURRENCY_CUSTOM) continue;
|
if (i == CURRENCY_CUSTOM) continue;
|
||||||
list.emplace_back(new DropDownListStringItem(*items, i, HasBit(disabled, i)));
|
if (currency.code.empty()) {
|
||||||
|
list.emplace_back(new DropDownListStringItem(currency.name, i, HasBit(disabled, i)));
|
||||||
|
} else {
|
||||||
|
SetDParam(0, currency.name);
|
||||||
|
SetDParamStr(1, currency.code);
|
||||||
|
list.emplace_back(new DropDownListStringItem(STR_GAME_OPTIONS_CURRENCY_CODE, i, HasBit(disabled, i)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
std::sort(list.begin(), list.end(), DropDownListStringItem::NatSortFunc);
|
std::sort(list.begin(), list.end(), DropDownListStringItem::NatSortFunc);
|
||||||
|
|
||||||
@ -303,7 +309,17 @@ struct GameOptionsWindow : Window {
|
|||||||
void SetStringParameters(int widget) const override
|
void SetStringParameters(int widget) const override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_GO_CURRENCY_DROPDOWN: SetDParam(0, _currency_specs[this->opt->locale.currency].name); break;
|
case WID_GO_CURRENCY_DROPDOWN: {
|
||||||
|
const CurrencySpec ¤cy = _currency_specs[this->opt->locale.currency];
|
||||||
|
if (currency.code.empty()) {
|
||||||
|
SetDParam(0, currency.name);
|
||||||
|
} else {
|
||||||
|
SetDParam(0, STR_GAME_OPTIONS_CURRENCY_CODE);
|
||||||
|
SetDParam(1, currency.name);
|
||||||
|
SetDParamStr(2, currency.code);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
case WID_GO_AUTOSAVE_DROPDOWN: SetDParam(0, _autosave_dropdown[_settings_client.gui.autosave]); break;
|
case WID_GO_AUTOSAVE_DROPDOWN: SetDParam(0, _autosave_dropdown[_settings_client.gui.autosave]); break;
|
||||||
case WID_GO_LANG_DROPDOWN: SetDParamStr(0, _current_language->own_name); break;
|
case WID_GO_LANG_DROPDOWN: SetDParamStr(0, _current_language->own_name); break;
|
||||||
case WID_GO_BASE_GRF_DROPDOWN: SetDParamStr(0, BaseGraphics::GetUsedSet()->name); break;
|
case WID_GO_BASE_GRF_DROPDOWN: SetDParamStr(0, BaseGraphics::GetUsedSet()->name); break;
|
||||||
@ -763,7 +779,7 @@ static const NWidgetPart _nested_game_options_widgets[] = {
|
|||||||
EndContainer(),
|
EndContainer(),
|
||||||
|
|
||||||
NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME, STR_NULL),
|
NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME, STR_NULL),
|
||||||
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_CURRENCY_DROPDOWN), SetMinimalSize(100, 12), SetDataTip(STR_JUST_STRING, STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP), SetFill(1, 0),
|
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_CURRENCY_DROPDOWN), SetMinimalSize(100, 12), SetDataTip(STR_JUST_STRING2, STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP), SetFill(1, 0),
|
||||||
EndContainer(),
|
EndContainer(),
|
||||||
|
|
||||||
NWidget(NWID_SELECTION, INVALID_COLOUR, WID_GO_SURVEY_SEL),
|
NWidget(NWID_SELECTION, INVALID_COLOUR, WID_GO_SURVEY_SEL),
|
||||||
|
Loading…
Reference in New Issue
Block a user