From ab190d2f0b4c102d277b16adf66269d9a6380b81 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Mon, 5 Aug 2013 21:25:41 +0300 Subject: FULLPIPE: Fix Movement::gotoLastFrame() --- engines/fullpipe/statics.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'engines/fullpipe') diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp index 0bb61fb803..d54b1d1c89 100644 --- a/engines/fullpipe/statics.cpp +++ b/engines/fullpipe/statics.cpp @@ -641,14 +641,18 @@ void Movement::removeFirstPhase() { } void Movement::gotoNextFrame(int callback1, int callback2) { + debug(0, "Movement::gotoNextFrame(%d, %d)", callback1, callback2); + if (!callback2) { if (_currMovement) { if ((uint)_currDynamicPhaseIndex == _currMovement->_dynamicPhases.size() - 1 - && !(((DynamicPhase *)(_currMovement->_dynamicPhases.back()))->_countdown)) + && !(((DynamicPhase *)(_currMovement->_dynamicPhases.back()))->_countdown)) { return; + } } else if ((uint)_currDynamicPhaseIndex == _dynamicPhases.size() - 1 - && !(((DynamicPhase *)(_dynamicPhases.back()))->_countdown)) + && !(((DynamicPhase *)(_dynamicPhases.back()))->_countdown)) { return; + } } if (_currDynamicPhase->_countdown) { @@ -751,10 +755,10 @@ void Movement::gotoPrevFrame(int callback1, int callback2) { void Movement::gotoLastFrame() { if (_currMovement) { - while ((uint)_currDynamicPhaseIndex != _currMovement->_dynamicPhases.size()) + while ((uint)_currDynamicPhaseIndex != _currMovement->_dynamicPhases.size() - 1) gotoNextFrame(0, 0); } else { - while ((uint)_currDynamicPhaseIndex != _dynamicPhases.size()) + while ((uint)_currDynamicPhaseIndex != _dynamicPhases.size() - 1) gotoNextFrame(0, 0); } } -- cgit v1.2.3