(svn r3045) -NewGRF, Codechange: Don't attempt to map and empty sprite group to a vehicle.
authorpeter1138
Sat, 15 Oct 2005 07:40:22 +0000
changeset 2516 b11f1229cefd
parent 2515 480538b48b0f
child 2517 b90693227193
(svn r3045) -NewGRF, Codechange: Don't attempt to map and empty sprite group to a vehicle.
newgrf.c
--- a/newgrf.c	Fri Oct 14 20:10:12 2005 +0000
+++ b/newgrf.c	Sat Oct 15 07:40:22 2005 +0000
@@ -1608,8 +1608,8 @@
 				uint8 ctype = grf_load_byte(&bp);
 				uint16 groupid = grf_load_word(&bp);
 
-				if (groupid >= _cur_grffile->spritegroups_count) {
-					grfmsg(GMS_WARN, "VehicleMapSpriteGroup: Spriteset %x out of range %x, skipping.",
+				if (groupid >= _cur_grffile->spritegroups_count || _cur_grffile->spritegroups[groupid] == NULL) {
+					grfmsg(GMS_WARN, "VehicleMapSpriteGroup: Spriteset %x out of range %x or empty, skipping.",
 					       groupid, _cur_grffile->spritegroups_count);
 					return;
 				}
@@ -1628,8 +1628,8 @@
 			byte *bp = buf + 4 + idcount + cidcount * 3;
 			uint16 groupid = grf_load_word(&bp);
 
-			if (groupid >= _cur_grffile->spritegroups_count) {
-				grfmsg(GMS_WARN, "VehicleMapSpriteGroup: Spriteset %x out of range %x, skipping.",
+			if (groupid >= _cur_grffile->spritegroups_count || _cur_grffile->spritegroups[groupid] == NULL) {
+				grfmsg(GMS_WARN, "VehicleMapSpriteGroup: Spriteset %x out of range %x or empty, skipping.",
 				       groupid, _cur_grffile->spritegroups_count);
 				return;
 			}
@@ -1700,8 +1700,8 @@
 
 			DEBUG(grf, 8) ("VehicleMapSpriteGroup: * [%d] Cargo type %x, group id %x", c, ctype, groupid);
 
-			if (groupid >= _cur_grffile->spritegroups_count) {
-				grfmsg(GMS_WARN, "VehicleMapSpriteGroup: Spriteset %x out of range %x, skipping.", groupid, _cur_grffile->spritegroups_count);
+			if (groupid >= _cur_grffile->spritegroups_count || _cur_grffile->spritegroups[groupid] == NULL) {
+				grfmsg(GMS_WARN, "VehicleMapSpriteGroup: Spriteset %x out of range %x or empty, skipping.", groupid, _cur_grffile->spritegroups_count);
 				return;
 			}
 
@@ -1727,8 +1727,8 @@
 			uint8 engine = buf[3 + i] + _vehshifts[feature];
 
 			// Don't tell me you don't love duplicated code!
-			if (groupid >= _cur_grffile->spritegroups_count) {
-				grfmsg(GMS_WARN, "VehicleMapSpriteGroup: Spriteset %x out of range %x, skipping.", groupid, _cur_grffile->spritegroups_count);
+			if (groupid >= _cur_grffile->spritegroups_count || _cur_grffile->spritegroups[groupid] == NULL) {
+				grfmsg(GMS_WARN, "VehicleMapSpriteGroup: Spriteset %x out of range %x or empty, skipping.", groupid, _cur_grffile->spritegroups_count);
 				return;
 			}