mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 14:27:16 +00:00
(svn r3034) -NewGRF: Improve error checking of setting price bases.
This commit is contained in:
parent
0321dc9fc5
commit
5551b423fc
@ -775,7 +775,7 @@ static byte price_base_multiplier[NUM_PRICES];
|
||||
*/
|
||||
void ResetPriceBaseMultipliers(void)
|
||||
{
|
||||
int i;
|
||||
uint i;
|
||||
|
||||
// 8 means no multiplier.
|
||||
for (i = 0; i < NUM_PRICES; i++)
|
||||
@ -789,10 +789,10 @@ void ResetPriceBaseMultipliers(void)
|
||||
* @param price Index of price base to change.
|
||||
* @param factor Amount to change by.
|
||||
*/
|
||||
void SetPriceBaseMultiplier(int price, byte factor)
|
||||
void SetPriceBaseMultiplier(uint price, byte factor)
|
||||
{
|
||||
if (price < NUM_PRICES)
|
||||
price_base_multiplier[price] = factor;
|
||||
assert(price < NUM_PRICES);
|
||||
price_base_multiplier[price] = factor;
|
||||
}
|
||||
|
||||
void StartupEconomy(void)
|
||||
|
@ -4,7 +4,7 @@
|
||||
#define ECONOMY_H
|
||||
|
||||
void ResetPriceBaseMultipliers(void);
|
||||
void SetPriceBaseMultiplier(int price, byte factor);
|
||||
void SetPriceBaseMultiplier(uint price, byte factor);
|
||||
|
||||
typedef struct {
|
||||
// Maximum possible loan
|
||||
|
7
newgrf.c
7
newgrf.c
@ -1070,8 +1070,13 @@ static bool GlobalVarChangeInfo(uint gvid, int numinfo, int prop, byte **bufp, i
|
||||
case 0x08: { /* Cost base factor */
|
||||
FOR_EACH_OBJECT {
|
||||
byte factor = grf_load_byte(&buf);
|
||||
uint price = gvid + i;
|
||||
|
||||
SetPriceBaseMultiplier(gvid + i, factor);
|
||||
if (price < NUM_PRICES) {
|
||||
SetPriceBaseMultiplier(price, factor);
|
||||
} else {
|
||||
grfmsg(GMS_WARN, "GlobalVarChangeInfo: Price %d out of range, ignoring.", price);
|
||||
}
|
||||
}
|
||||
} break;
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user