diff options
-rw-r--r-- | src/economy.cpp | 7 | ||||
-rw-r--r-- | src/saveload/afterload.cpp | 6 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/economy.cpp b/src/economy.cpp index d767524ed..5026e0127 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -676,8 +676,11 @@ void AddInflation(bool check_year) * 12 -> months per year * This is only a good approxiamtion for small values */ - _economy.inflation_prices += min((_economy.inflation_prices * _economy.infl_amount * 54) >> 16, MAX_INFLATION); - _economy.inflation_payment += min((_economy.inflation_payment * _economy.infl_amount_pr * 54) >> 16, MAX_INFLATION); + _economy.inflation_prices += (_economy.inflation_prices * _economy.infl_amount * 54) >> 16; + _economy.inflation_payment += (_economy.inflation_payment * _economy.infl_amount_pr * 54) >> 16; + + if (_economy.inflation_prices > MAX_INFLATION) _economy.inflation_prices = MAX_INFLATION; + if (_economy.inflation_payment > MAX_INFLATION) _economy.inflation_payment = MAX_INFLATION; } /** diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 8a87dcc40..d97aa2aaf 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -2742,6 +2742,12 @@ bool AfterLoadGame() FOR_ALL_COMPANIES(c) c->tree_limit = _settings_game.construction.tree_frame_burst << 16; } + if (IsSavegameVersionBefore(177)) { + /* Fix too high inflation rates */ + if (_economy.inflation_prices > MAX_INFLATION) _economy.inflation_prices = MAX_INFLATION; + if (_economy.inflation_payment > MAX_INFLATION) _economy.inflation_payment = MAX_INFLATION; + } + /* Road stops is 'only' updating some caches */ AfterLoadRoadStops(); AfterLoadLabelMaps(); |