diff --git a/engines/mads/sequence.cpp b/engines/mads/sequence.cpp index b46b5c09694..cbe0471315a 100644 --- a/engines/mads/sequence.cpp +++ b/engines/mads/sequence.cpp @@ -410,7 +410,7 @@ void SequenceList::scan() { Scene &scene = _vm->_game->_scene; for (uint i = 0; i < _entries.size(); ++i) { - if (!_entries[i]._active && (_entries[i]._spritesIndex != -1)) { + if (_entries[i]._active && (_entries[i]._spritesIndex != -1)) { int idx = scene._spriteSlots.add(); setSpriteSlot(i, scene._spriteSlots[idx]); } diff --git a/engines/mads/sprites.cpp b/engines/mads/sprites.cpp index 36cbdbea126..7bd8407c41e 100644 --- a/engines/mads/sprites.cpp +++ b/engines/mads/sprites.cpp @@ -404,16 +404,12 @@ void SpriteSets::remove(int idx) { (*this)[idx] = nullptr; } else { while (size() > 0 && (*this)[size() - 1] == nullptr) { - delete (*this)[size() - 1]; remove_at(size() - 1); } } if (_assetCount > 0) --_assetCount; - else - // FIXME: This is needed, otherwise scene sprites are not cleared in this case - clear(); } }