(svn r9092) -Codechange: (NewGRF) (re r8885) Also set cargo type as invalid if the chosen type is not available in the current climate.

This commit is contained in:
peter1138 2007-03-10 09:23:33 +00:00
parent b57ef910f8
commit ec5b2c600b

View File

@ -365,7 +365,7 @@ static bool RailVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf
FOR_EACH_OBJECT { FOR_EACH_OBJECT {
uint8 ctype = grf_load_byte(&buf); uint8 ctype = grf_load_byte(&buf);
if (ctype < NUM_CARGO) { if (ctype < NUM_CARGO && HASBIT(_cargo_mask, ctype)) {
rvi[i].cargo_type = ctype; rvi[i].cargo_type = ctype;
} else { } else {
rvi[i].cargo_type = CT_INVALID; rvi[i].cargo_type = CT_INVALID;
@ -557,7 +557,7 @@ static bool RoadVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf
FOR_EACH_OBJECT { FOR_EACH_OBJECT {
uint8 cargo = grf_load_byte(&buf); uint8 cargo = grf_load_byte(&buf);
if (cargo < NUM_CARGO) { if (cargo < NUM_CARGO && HASBIT(_cargo_mask, cargo)) {
rvi[i].cargo_type = cargo; rvi[i].cargo_type = cargo;
} else { } else {
rvi[i].cargo_type = CT_INVALID; rvi[i].cargo_type = CT_INVALID;
@ -671,7 +671,7 @@ static bool ShipVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf
FOR_EACH_OBJECT { FOR_EACH_OBJECT {
uint8 cargo = grf_load_byte(&buf); uint8 cargo = grf_load_byte(&buf);
if (cargo < NUM_CARGO) { if (cargo < NUM_CARGO && HASBIT(_cargo_mask, cargo)) {
svi[i].cargo_type = cargo; svi[i].cargo_type = cargo;
} else { } else {
svi[i].cargo_type = CT_INVALID; svi[i].cargo_type = CT_INVALID;