diff options
author | frosch <frosch@openttd.org> | 2009-11-08 18:04:53 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2009-11-08 18:04:53 +0000 |
commit | f48f73f060b388ab51fec8112170cfa8d4b8ca17 (patch) | |
tree | 69fd79a57fa4ce4a62462c8be34c2b380230bc1b /src/economy.cpp | |
parent | 5d3fa809317a84528af338cac7d7903250eb959b (diff) | |
download | openttd-f48f73f060b388ab51fec8112170cfa8d4b8ca17.tar.xz |
(svn r18016) -Codechange: Move the arbitrary basecost multiplier offset (8) to newgrf loading and make the internal state zero-based instead.
Diffstat (limited to 'src/economy.cpp')
-rw-r--r-- | src/economy.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/economy.cpp b/src/economy.cpp index 57d052bea..1d934bd7c 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -109,7 +109,7 @@ int _score_part[MAX_COMPANIES][SCORE_END]; Economy _economy; Prices _price; Money _additional_cash_required; -static byte _price_base_multiplier[PR_END]; +static int8 _price_base_multiplier[PR_END]; Money CalculateCompanyValue(const Company *c) { @@ -652,7 +652,7 @@ void RecomputePrices() price = (int64)price * _economy.inflation_prices; /* Apply newgrf modifiers, and remove fractional part of inflation */ - int shift = _price_base_multiplier[i] - 8 - 16; + int shift = _price_base_multiplier[i] - 16; if (shift >= 0) { price <<= shift; } else { @@ -728,22 +728,20 @@ static void HandleEconomyFluctuations() */ void ResetPriceBaseMultipliers() { - /* 8 means no multiplier. */ - for (Price i = PR_BEGIN; i < PR_END; i++) - _price_base_multiplier[i] = 8; + memset(_price_base_multiplier, 0, sizeof(_price_base_multiplier)); } /** * Change a price base by the given factor. - * The price base is altered by factors of two, with an offset of 8. - * NewBaseCost = OldBaseCost * 2^(n-8) + * The price base is altered by factors of two. + * NewBaseCost = OldBaseCost * 2^n * @param price Index of price base to change. * @param factor Amount to change by. */ -void SetPriceBaseMultiplier(Price price, byte factor) +void SetPriceBaseMultiplier(Price price, int factor) { assert(price < PR_END); - _price_base_multiplier[price] = min(factor, MAX_PRICE_MODIFIER); + _price_base_multiplier[price] = Clamp(factor, MIN_PRICE_MODIFIER, MAX_PRICE_MODIFIER); } /** |