From 536fc4246189cb13a8848dc71bedc00a79c7031a Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 31 Jul 2011 14:13:01 +0000 Subject: (svn r22707) -Codechange: Simplify applying the difficulty settings to prices, and reduce computational errors. (Eddi) --- src/economy.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/economy.cpp b/src/economy.cpp index a55b6c934..c1ea31045 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -652,17 +652,18 @@ void RecomputePrices() default: break; } - if (mod < 1) { - price = price * 3 >> 2; - } else if (mod > 1) { - price = price * 9 >> 3; + switch (mod) { + case 0: price *= 6; break; + case 1: price *= 8; break; // normalised to 1 below + case 2: price *= 9; break; + default: NOT_REACHED(); } /* Apply inflation */ price = (int64)price * _economy.inflation_prices; - /* Apply newgrf modifiers, and remove fractional part of inflation */ - int shift = _price_base_multiplier[i] - 16; + /* Apply newgrf modifiers, remove fractional part of inflation, and normalise on medium difficulty. */ + int shift = _price_base_multiplier[i] - 16 - 3; if (shift >= 0) { price <<= shift; } else { -- cgit v1.2.3-54-g00ecf