From e3947c8019fb2259b620ed79872bdafe60cc0ed2 Mon Sep 17 00:00:00 2001 From: frosch Date: Wed, 15 Jan 2014 21:52:22 +0000 Subject: (svn r26262) -Fix (r25075, r25076): Custom currency was reset on game start. --- src/currency.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/currency.cpp b/src/currency.cpp index 4da6a87f7..52060e21c 100644 --- a/src/currency.cpp +++ b/src/currency.cpp @@ -144,14 +144,14 @@ void CheckSwitchToEuro() * Will fill _currency_specs array with * default values from origin_currency_specs * Called only from newgrf.cpp and settings.cpp. - * @param preserve_custom will not reset custom currency (the latest one on the list) - * if ever it is flagged to true. In which case, the total size of the memory to move - * will be one currency spec less, thus preserving the custom currency from been - * overwritten. + * @param preserve_custom will not reset custom currency */ void ResetCurrencies(bool preserve_custom) { - memcpy(&_currency_specs, &origin_currency_specs, sizeof(origin_currency_specs) - (preserve_custom ? sizeof(_custom_currency) : 0)); + for (uint i = 0; i < CURRENCY_END; i++) { + if (preserve_custom && i == CURRENCY_CUSTOM) continue; + _currency_specs[i] = origin_currency_specs[i]; + } } /** -- cgit v1.2.3-70-g09d2