mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-11 16:54:42 +00:00
(svn r25075) -Codechange: Allow for more than 32 currencies
This commit is contained in:
parent
bd301e8475
commit
fae3cbae9f
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
|
@ -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++) {
|
||||
|
Loading…
Reference in New Issue
Block a user