From 82e6bcea2f0cf3fb0d44cbdd6fc5ad9240ef20e2 Mon Sep 17 00:00:00 2001 From: Denis Kasak Date: Tue, 7 Jul 2009 14:52:36 +0000 Subject: * Added AnimationManager::deleteOverlays(). * Fixed bug in AnimationManager::deleteAnimation() that could result in accessing the Common::List::end() sentinel value. svn-id: r42223 --- engines/draci/animation.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'engines/draci/animation.cpp') 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::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::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::iterator it; -- cgit v1.2.3