diff --git a/src/currency.cpp b/src/currency.cpp index bae5f08d12..e812538e3e 100644 --- a/src/currency.cpp +++ b/src/currency.cpp @@ -10,6 +10,8 @@ /** @file currency.cpp Support for different currencies. */ #include "stdafx.h" +#include "core/bitmath_func.hpp" + #include "currency.h" #include "news_func.h" #include "settings_type.h" @@ -107,9 +109,9 @@ byte GetNewgrfCurrencyIdConverted(byte grfcurr_id) * get a mask of the allowed currencies depending on the year * @return mask of currencies */ -uint GetMaskOfAllowedCurrencies() +uint64 GetMaskOfAllowedCurrencies() { - uint mask = 0; + uint64 mask = 0LL; uint i; for (i = 0; i < CURRENCY_END; i++) { @@ -117,9 +119,9 @@ uint GetMaskOfAllowedCurrencies() if (to_euro != CF_NOEURO && to_euro != CF_ISEURO && _cur_year >= to_euro) continue; if (to_euro == CF_ISEURO && _cur_year < 2000) continue; - mask |= (1 << i); + SetBit(mask, i); } - mask |= (1 << CURRENCY_CUSTOM); // always allow custom currency + SetBit(mask, CURRENCY_CUSTOM); // always allow custom currency return mask; } diff --git a/src/currency.h b/src/currency.h index c4476b767b..aa29efdf7f 100644 --- a/src/currency.h +++ b/src/currency.h @@ -85,7 +85,7 @@ extern CurrencySpec _currency_specs[CURRENCY_END]; #define _custom_currency (_currency_specs[CURRENCY_CUSTOM]) #define _currency ((const CurrencySpec*)&_currency_specs[GetGameSettings().locale.currency]) -uint GetMaskOfAllowedCurrencies(); +uint64 GetMaskOfAllowedCurrencies(); void CheckSwitchToEuro(); void ResetCurrencies(bool preserve_custom = true); StringID *BuildCurrencyDropdown(); diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 50b0b880c0..3a20f455f6 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -189,7 +189,7 @@ struct GameOptionsWindow : Window { list = new DropDownList(); *selected_index = this->opt->locale.currency; StringID *items = BuildCurrencyDropdown(); - uint disabled = _game_mode == GM_MENU ? 0 : ~GetMaskOfAllowedCurrencies(); + uint64 disabled = _game_mode == GM_MENU ? 0LL : ~GetMaskOfAllowedCurrencies(); /* Add non-custom currencies; sorted naturally */ for (uint i = 0; i < CURRENCY_END; items++, i++) {