[Scummvm-cvs-logs] scummvm master -> 64979d5e453bd279c88e559d295d47b175a6559b

bluegr bluegr at gmail.com
Tue Dec 30 14:39:07 CET 2014


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
64979d5e45 ZVISION: Fix regression in the handling of multiple animations


Commit: 64979d5e453bd279c88e559d295d47b175a6559b
    https://github.com/scummvm/scummvm/commit/64979d5e453bd279c88e559d295d47b175a6559b
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2014-12-30T15:38:03+02:00

Commit Message:
ZVISION: Fix regression in the handling of multiple animations

A regression from 0c4e0673c3. Thanks to Marisa-Chan for noticing

Changed paths:
    engines/zvision/scripting/effects/animation_effect.cpp
    engines/zvision/scripting/effects/animation_effect.h



diff --git a/engines/zvision/scripting/effects/animation_effect.cpp b/engines/zvision/scripting/effects/animation_effect.cpp
index c3cbc25..511a0db 100644
--- a/engines/zvision/scripting/effects/animation_effect.cpp
+++ b/engines/zvision/scripting/effects/animation_effect.cpp
@@ -88,10 +88,13 @@ bool AnimationEffect::process(uint32 deltaTimeInMillis) {
 	if (it != _playList.end()) {
 		playnode *nod = &(*it);
 
-		if (!_animation->isPlaying()) {
+		if (nod->_curFrame == -1) {
 			// The node is just beginning playback
+			nod->_curFrame = nod->start;
+
 			_animation->start();
 			_animation->seekToFrame(nod->start);
+			_animation->setEndFrame(nod->stop);
 
 			nod->_delay = deltaTimeInMillis; // Force the frame to draw
 			if (nod->slot)
@@ -111,6 +114,7 @@ bool AnimationEffect::process(uint32 deltaTimeInMillis) {
 				return _disposeAfterUse;
 			}
 
+			nod->_curFrame = nod->start;
 			_animation->seekToFrame(nod->start);
 		}
 
@@ -186,9 +190,9 @@ void AnimationEffect::addPlayNode(int32 slot, int x, int y, int x2, int y2, int
 	nod.loop = loops;
 	nod.pos = Common::Rect(x, y, x2 + 1, y2 + 1);
 	nod.start = startFrame;
-	_animation->setEndFrame(CLIP<int>(endFrame, 0, _animation->getFrameCount() - 1));
-
+	nod.stop = CLIP<int>(endFrame, 0, _animation->getFrameCount() - 1);
 	nod.slot = slot;
+	nod._curFrame = -1;
 	nod._delay = 0;
 	nod._scaled = NULL;
 	_playList.push_back(nod);
diff --git a/engines/zvision/scripting/effects/animation_effect.h b/engines/zvision/scripting/effects/animation_effect.h
index a564b83..fd6e24a 100644
--- a/engines/zvision/scripting/effects/animation_effect.h
+++ b/engines/zvision/scripting/effects/animation_effect.h
@@ -48,7 +48,9 @@ public:
 		Common::Rect pos;
 		int32 slot;
 		int32 start;
+		int32 stop;
 		int32 loop;
+		int32 _curFrame;
 		int32 _delay;
 		Graphics::Surface *_scaled;
 	};






More information about the Scummvm-git-logs mailing list