Changeset - r14685:747b0b2e2382
[Not reviewed]
master
0 1 0
rubidium - 15 years ago 2010-02-27 16:27:28
rubidium@openttd.org
(svn r19277) -Fix [FS#3646]: [NewGRF] Ensure prices can't be set to zero. Zero prices break a lot of the internal logic to determine whether something has been done.
1 file changed with 10 insertions and 0 deletions:
0 comments (0 inline, 0 general)
src/economy.cpp
Show inline comments
 
@@ -668,6 +668,16 @@ void RecomputePrices()
 
			price >>= -shift;
 
		}
 

	
 
		/* Make sure the price does not get reduced to zero.
 
		 * Zero breaks quite a few commands that use a zero
 
		 * cost to see whether something got changed or not
 
		 * and based on that cause an error. When the price
 
		 * is zero that fails even when things are done. */
 
		if (price == 0) {
 
			price = Clamp(_price_base_specs[i].start_price, -1, 1);
 
			/* No base price should be zero, but be sure. */
 
			assert(price != 0);
 
		}
 
		/* Store value */
 
		_price[i] = price;
 
	}
0 comments (0 inline, 0 general)