diff options
author | peter1138 <peter1138@openttd.org> | 2006-01-12 07:57:40 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2006-01-12 07:57:40 +0000 |
commit | 2067b2e7b48fa1491cdf89206e496637822128e8 (patch) | |
tree | 555bf0b107d0be3c97df100f8ba4e1321534972a | |
parent | be288e4d1b462d51c8de2375f908aa667abda58c (diff) | |
download | openttd-2067b2e7b48fa1491cdf89206e496637822128e8.tar.xz |
(svn r3394) - NewGRF fix: ignore non-climate dependent cargo types. The spec is rather vague on this, but we don't support newcargos anyway.
-rw-r--r-- | newgrf.c | 18 |
1 files changed, 15 insertions, 3 deletions
@@ -308,7 +308,11 @@ static bool RailVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf FOR_EACH_OBJECT { uint8 ctype = grf_load_byte(&buf); - rvi[i].cargo_type = ctype; + if (ctype < NUM_CARGO) { + rvi[i].cargo_type = ctype; + } else { + grfmsg(GMS_NOTICE, "RailVehicleChangeInfo: Invalid cargo type %d, ignoring.", ctype); + } } } break; case 0x16: { /* Weight */ @@ -492,7 +496,11 @@ static bool RoadVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf FOR_EACH_OBJECT { uint8 cargo = grf_load_byte(&buf); - rvi[i].cargo_type = cargo; + if (cargo < NUM_CARGO) { + rvi[i].cargo_type = cargo; + } else { + grfmsg(GMS_NOTICE, "RoadVehicleChangeInfo: Invalid cargo type %d, ignoring.", cargo); + } } } break; case 0x11: { /* Cost factor */ @@ -610,7 +618,11 @@ static bool ShipVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf // assume otherwise. cargo = local_cargo_id_ctype[cargo]; #endif - svi[i].cargo_type = cargo; + if (cargo < NUM_CARGO) { + svi[i].cargo_type = cargo; + } else { + grfmsg(GMS_NOTICE, "ShipVehicleChangeInfo: Invalid cargo type %d, ignoring.", cargo); + } } } break; case 0x0D: { /* Cargo capacity */ |