src/newgrf.cpp
changeset 6606 2e867a1c6b7f
parent 6585 7da94b26498a
child 6607 b4f6595855c4
--- a/src/newgrf.cpp	Sat Mar 10 03:33:43 2007 +0000
+++ b/src/newgrf.cpp	Sat Mar 10 09:23:33 2007 +0000
@@ -365,7 +365,7 @@
 			FOR_EACH_OBJECT {
 				uint8 ctype = grf_load_byte(&buf);
 
-				if (ctype < NUM_CARGO) {
+				if (ctype < NUM_CARGO && HASBIT(_cargo_mask, ctype)) {
 					rvi[i].cargo_type = ctype;
 				} else {
 					rvi[i].cargo_type = CT_INVALID;
@@ -557,7 +557,7 @@
 			FOR_EACH_OBJECT {
 				uint8 cargo = grf_load_byte(&buf);
 
-				if (cargo < NUM_CARGO) {
+				if (cargo < NUM_CARGO && HASBIT(_cargo_mask, cargo)) {
 					rvi[i].cargo_type = cargo;
 				} else {
 					rvi[i].cargo_type = CT_INVALID;
@@ -671,7 +671,7 @@
 			FOR_EACH_OBJECT {
 				uint8 cargo = grf_load_byte(&buf);
 
-				if (cargo < NUM_CARGO) {
+				if (cargo < NUM_CARGO && HASBIT(_cargo_mask, cargo)) {
 					svi[i].cargo_type = cargo;
 				} else {
 					svi[i].cargo_type = CT_INVALID;