aboutsummaryrefslogtreecommitdiff
path: root/engines/draci/animation.cpp
diff options
context:
space:
mode:
authorDenis Kasak2009-07-07 14:52:36 +0000
committerDenis Kasak2009-07-07 14:52:36 +0000
commit82e6bcea2f0cf3fb0d44cbdd6fc5ad9240ef20e2 (patch)
tree0fe729a37ac5faa3da51100696455e4f97954851 /engines/draci/animation.cpp
parent79c42abf086911537400750fc356127669bf4c23 (diff)
downloadscummvm-rg350-82e6bcea2f0cf3fb0d44cbdd6fc5ad9240ef20e2.tar.gz
scummvm-rg350-82e6bcea2f0cf3fb0d44cbdd6fc5ad9240ef20e2.tar.bz2
scummvm-rg350-82e6bcea2f0cf3fb0d44cbdd6fc5ad9240ef20e2.zip
* Added AnimationManager::deleteOverlays().
* Fixed bug in AnimationManager::deleteAnimation() that could result in accessing the Common::List::end() sentinel value. svn-id: r42223
Diffstat (limited to 'engines/draci/animation.cpp')
-rw-r--r--engines/draci/animation.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/engines/draci/animation.cpp b/engines/draci/animation.cpp
index e553942c63..bb0cb44b10 100644
--- a/engines/draci/animation.cpp
+++ b/engines/draci/animation.cpp
@@ -232,15 +232,26 @@ void AnimationManager::deleteAnimation(int id) {
Common::List<Animation *>::iterator it;
for (it = _animations.begin(); it != _animations.end(); ++it) {
- if ((*it)->getID() == id)
+ if ((*it)->getID() == id) {
+ (*it)->deleteFrames();
+ _animations.erase(it);
break;
+ }
}
+}
+
+void AnimationManager::deleteOverlays() {
- (*it)->deleteFrames();
+ Common::List<Animation *>::iterator it;
- _animations.erase(it);
+ for (it = _animations.begin(); it != _animations.end(); ++it) {
+ if((*it)->getID() == kOverlayImage)
+ (*it)->deleteFrames();
+
+ _animations.erase(it);
+ }
}
-
+
void AnimationManager::deleteAll() {
Common::List<Animation *>::iterator it;