aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/animation.cpp
diff options
context:
space:
mode:
authorSven Hesse2009-01-03 13:32:14 +0000
committerSven Hesse2009-01-03 13:32:14 +0000
commitc40b7b184025dfd94962fccce00d8868fdda6662 (patch)
treeedf6c615b37c9a6cb364996facb0aabe743fece8 /engines/agos/animation.cpp
parent0430bb9b3a1189cada3edd3cf18061e06dcad17c (diff)
downloadscummvm-rg350-c40b7b184025dfd94962fccce00d8868fdda6662.tar.gz
scummvm-rg350-c40b7b184025dfd94962fccce00d8868fdda6662.tar.bz2
scummvm-rg350-c40b7b184025dfd94962fccce00d8868fdda6662.zip
Properly using SMKPlayer::getFrameWaitTime() in MoviePlayerSMK::processFrame()
svn-id: r35699
Diffstat (limited to 'engines/agos/animation.cpp')
-rw-r--r--engines/agos/animation.cpp29
1 files changed, 6 insertions, 23 deletions
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;
}
///////////////////////////////////////////////////////////////////////////////