MADS: Fix a bug in SequenceList::scan()

This resolves the FIXME in SpriteSets::remove()
This commit is contained in:
Filippos Karapetis 2014-05-04 13:57:55 +03:00
parent 17b253a251
commit 68671d77c2
2 changed files with 1 additions and 5 deletions

View file

@ -410,7 +410,7 @@ void SequenceList::scan() {
Scene &scene = _vm->_game->_scene; Scene &scene = _vm->_game->_scene;
for (uint i = 0; i < _entries.size(); ++i) { 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(); int idx = scene._spriteSlots.add();
setSpriteSlot(i, scene._spriteSlots[idx]); setSpriteSlot(i, scene._spriteSlots[idx]);
} }

View file

@ -404,16 +404,12 @@ void SpriteSets::remove(int idx) {
(*this)[idx] = nullptr; (*this)[idx] = nullptr;
} else { } else {
while (size() > 0 && (*this)[size() - 1] == nullptr) { while (size() > 0 && (*this)[size() - 1] == nullptr) {
delete (*this)[size() - 1];
remove_at(size() - 1); remove_at(size() - 1);
} }
} }
if (_assetCount > 0) if (_assetCount > 0)
--_assetCount; --_assetCount;
else
// FIXME: This is needed, otherwise scene sprites are not cleared in this case
clear();
} }
} }