aboutsummaryrefslogtreecommitdiff
path: root/engines/mads
diff options
context:
space:
mode:
authorFilippos Karapetis2014-05-04 13:57:55 +0300
committerFilippos Karapetis2014-05-04 14:03:39 +0300
commit68671d77c2028d41b6b848eb5bf6f40cc2c36f7a (patch)
treede1b25163441197c6cc49ac19278fd5e9afef11f /engines/mads
parent17b253a2519c021b36cd9f4ed00af9e051369068 (diff)
downloadscummvm-rg350-68671d77c2028d41b6b848eb5bf6f40cc2c36f7a.tar.gz
scummvm-rg350-68671d77c2028d41b6b848eb5bf6f40cc2c36f7a.tar.bz2
scummvm-rg350-68671d77c2028d41b6b848eb5bf6f40cc2c36f7a.zip
MADS: Fix a bug in SequenceList::scan()
This resolves the FIXME in SpriteSets::remove()
Diffstat (limited to 'engines/mads')
-rw-r--r--engines/mads/sequence.cpp2
-rw-r--r--engines/mads/sprites.cpp4
2 files changed, 1 insertions, 5 deletions
diff --git a/engines/mads/sequence.cpp b/engines/mads/sequence.cpp
index b46b5c0969..cbe0471315 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 36cbdbea12..7bd8407c41 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();
}
}