Mercurial > hg > openttd
changeset 17903:62089c39f660 draft
(svn r22707) -Codechange: Simplify applying the difficulty settings to prices, and reduce computational errors. (Eddi)
author | frosch <frosch@openttd.org> |
---|---|
date | Sun, 31 Jul 2011 14:13:01 +0000 |
parents | ec936cb32175 |
children | d114b7d640d4 |
files | src/economy.cpp |
diffstat | 1 files changed, 7 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/economy.cpp +++ b/src/economy.cpp @@ -652,17 +652,18 @@ 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 {