From c40b7b184025dfd94962fccce00d8868fdda6662 Mon Sep 17 00:00:00 2001 From: Sven Hesse Date: Sat, 3 Jan 2009 13:32:14 +0000 Subject: Properly using SMKPlayer::getFrameWaitTime() in MoviePlayerSMK::processFrame() svn-id: r35699 --- engines/agos/animation.cpp | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) (limited to 'engines/agos') diff --git a/engines/agos/animation.cpp b/engines/agos/animation.cpp index e21dac68d2..e3ed7016f9 100644 --- a/engines/agos/animation.cpp +++ b/engines/agos/animation.cpp @@ -465,32 +465,15 @@ bool MoviePlayerSMK::processFrame() { copyFrameToBuffer((byte *)screen->pixels, (_vm->_screenWidth - getWidth()) / 2, (_vm->_screenHeight - getHeight()) / 2, _vm->_screenWidth); _vm->_system->unlockScreen(); - if (!getAudioLag() || getFrameWaitTime() || _frameSkipped > getFrameRate()) { - if (_frameSkipped > getFrameRate()) { - warning("force frame %i redraw", getCurFrame()); - _frameSkipped = 0; - } - - if (getAudioLag() > 0) { - while (getAudioLag() > 0) { - _vm->_system->delayMillis(10); - } - // In case the background sound ends prematurely, update - // _ticks so that we can still fall back on the no-sound - // sync case for the subsequent frames. - _ticks = _vm->_system->getMillis(); - } else { - _ticks += getFrameDelay(); - while ((_vm->_system->getMillis() * 100) < _ticks) - _vm->_system->delayMillis(10); - } + uint32 waitTime = getFrameWaitTime(); - return true; + if (!waitTime) { + warning("dropped frame %i", getCurFrame()); + return false; } - warning("dropped frame %i", getCurFrame()); - _frameSkipped++; - return false; + _vm->_system->delayMillis(waitTime); + return true; } /////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3