summaryrefslogtreecommitdiff
path: root/src/currency.h
diff options
context:
space:
mode:
authorplanetmaker <planetmaker@openttd.org>2013-03-09 16:16:17 +0000
committerplanetmaker <planetmaker@openttd.org>2013-03-09 16:16:17 +0000
commitc22bbf5293d5727a061ed9839d8ab397710b81d0 (patch)
tree4cecdc676abac4ad4e40c898a73e18c7f479c94c /src/currency.h
parent54915063f041d552f2eb86e39bd1637cacbaa32b (diff)
downloadopenttd-c22bbf5293d5727a061ed9839d8ab397710b81d0.tar.xz
(svn r25072) -Codechange: Don't require the custom currency to be the last defined one
Diffstat (limited to 'src/currency.h')
-rw-r--r--src/currency.h47
1 files changed, 42 insertions, 5 deletions
diff --git a/src/currency.h b/src/currency.h
index 40a110968..586b6197c 100644
--- a/src/currency.h
+++ b/src/currency.h
@@ -17,8 +17,46 @@
static const int CF_NOEURO = 0; ///< Currency never switches to the Euro (as far as known).
static const int CF_ISEURO = 1; ///< Currency _is_ the Euro.
-static const uint NUM_CURRENCY = 32; ///< Number of currencies.
-static const int CUSTOM_CURRENCY_ID = NUM_CURRENCY - 1; ///< Index of the custom currency.
+
+/**
+ * This enum gives the currencies a unique id in order to refer
+ * quickly to them, especially the custom one. And to ensure
+ */
+enum Currencies {
+ 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_END, ///< always the last item
+};
/** Specification of a currency. */
struct CurrencySpec {
@@ -40,11 +78,10 @@ struct CurrencySpec {
StringID name;
};
-
-extern CurrencySpec _currency_specs[NUM_CURRENCY];
+extern CurrencySpec _currency_specs[CURRENCY_END];
/* XXX small hack, but makes the rest of the code a bit nicer to read */
-#define _custom_currency (_currency_specs[CUSTOM_CURRENCY_ID])
+#define _custom_currency (_currency_specs[CURRENCY_CUSTOM])
#define _currency ((const CurrencySpec*)&_currency_specs[GetGameSettings().locale.currency])
uint GetMaskOfAllowedCurrencies();