diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/economy.cpp | 13 |
1 files 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 { |