mirror of https://github.com/OpenTTD/OpenTTD
(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.
parent
d9b2bf78c5
commit
e338c26504
|
@ -668,6 +668,16 @@ void RecomputePrices()
|
||||||
price >>= -shift;
|
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 */
|
/* Store value */
|
||||||
_price[i] = price;
|
_price[i] = price;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue