# HG changeset patch # User peter1138 # Date 1129362022 0 # Node ID 4659ceee4dcb109bf6f0dabe925e112cbb09407e # Parent 673474334b9edab277dd370f5d453556121f4543 (svn r3045) -NewGRF, Codechange: Don't attempt to map and empty sprite group to a vehicle. diff -r 673474334b9e -r 4659ceee4dcb 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; }