changeset 2846:abdb82e1d366 draft

(svn r3394) - NewGRF fix: ignore non-climate dependent cargo types. The spec is rather vague on this, but we don't support newcargos anyway.
author peter1138 <peter1138@openttd.org>
date Thu, 12 Jan 2006 07:57:40 +0000
parents f251dd80096a
children 5640fc418aac
files newgrf.c
diffstat 1 files changed, 15 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/newgrf.c
+++ b/newgrf.c
@@ -308,7 +308,11 @@
 			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 @@
 			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 @@
 				// 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 */