From d4204c3af57ef468d0576362064f52a52594e48f Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 23 Apr 2006 10:50:09 +0000 Subject: [PATCH] (svn r4539) - NewGRF: always check that the action 0x2 feature matches the action 0x1, not just on 'normal' sprite groups. --- newgrf.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/newgrf.c b/newgrf.c index 2d83e53c1f..a8ab78f20e 100644 --- a/newgrf.c +++ b/newgrf.c @@ -1333,6 +1333,14 @@ static void NewSpriteGroup(byte *buf, int len) _cur_grffile->spritegroups[_cur_grffile->spritegroups_count] = NULL; } + if (feature != _cur_grffile->spriteset_feature) { + grfmsg(GMS_WARN, "NewSpriteGroup: sprite set feature 0x%02X does not match action feature 0x%02X, skipping.", + _cur_grffile->spriteset_feature, feature); + /* Clear this group's reference */ + _cur_grffile->spritegroups[setid] = NULL; + return; + } + switch (type) { /* Deterministic Sprite Group */ case 0x81: // Self scope, byte @@ -1449,11 +1457,6 @@ static void NewSpriteGroup(byte *buf, int len) return; } - if (_cur_grffile->spriteset_feature != feature) { - grfmsg(GMS_ERROR, "NewSpriteGroup: Group feature 0x%02X doesn't match set feature 0x%X! Playing it risky and trying to use it anyway.", feature, _cur_grffile->spriteset_feature); - // return; // XXX: we can't because of MB's newstats.grf --pasky - } - if (_cur_grffile->first_spriteset == 0) _cur_grffile->first_spriteset = _cur_grffile->spriteset_start;