[Scummvm-cvs-logs] SF.net SVN: scummvm:[42223] scummvm/branches/gsoc2009-draci/engines/draci

dkasak13 at users.sourceforge.net dkasak13 at users.sourceforge.net
Tue Jul 7 16:52:36 CEST 2009


Revision: 42223
          http://scummvm.svn.sourceforge.net/scummvm/?rev=42223&view=rev
Author:   dkasak13
Date:     2009-07-07 14:52:36 +0000 (Tue, 07 Jul 2009)

Log Message:
-----------
* Added AnimationManager::deleteOverlays().
* Fixed bug in AnimationManager::deleteAnimation() that could result in accessing the Common::List::end() sentinel value.

Modified Paths:
--------------
    scummvm/branches/gsoc2009-draci/engines/draci/animation.cpp
    scummvm/branches/gsoc2009-draci/engines/draci/animation.h

Modified: scummvm/branches/gsoc2009-draci/engines/draci/animation.cpp
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/animation.cpp	2009-07-07 14:22:39 UTC (rev 42222)
+++ scummvm/branches/gsoc2009-draci/engines/draci/animation.cpp	2009-07-07 14:52:36 UTC (rev 42223)
@@ -232,15 +232,26 @@
 	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;

Modified: scummvm/branches/gsoc2009-draci/engines/draci/animation.h
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/animation.h	2009-07-07 14:22:39 UTC (rev 42222)
+++ scummvm/branches/gsoc2009-draci/engines/draci/animation.h	2009-07-07 14:52:36 UTC (rev 42223)
@@ -91,6 +91,7 @@
 	void stop(int id);
 
 	void deleteAnimation(int id);
+	void deleteOverlays();
 	void deleteAll();
 
 	void drawScene(Surface *surf);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list