diff options
-rw-r--r-- | engines/mohawk/riven_graphics.cpp | 1 | ||||
-rw-r--r-- | engines/mohawk/riven_stack.cpp | 18 |
2 files changed, 6 insertions, 13 deletions
diff --git a/engines/mohawk/riven_graphics.cpp b/engines/mohawk/riven_graphics.cpp index d152419661..824372a808 100644 --- a/engines/mohawk/riven_graphics.cpp +++ b/engines/mohawk/riven_graphics.cpp @@ -633,7 +633,6 @@ void RivenGraphics::updateCredits() { // Now flush the new screen _vm->_system->copyRectToScreen(_mainScreen->getPixels(), _mainScreen->pitch, 0, 0, _mainScreen->w, _mainScreen->h); - _vm->_system->updateScreen(); } } diff --git a/engines/mohawk/riven_stack.cpp b/engines/mohawk/riven_stack.cpp index 323cbc0d6a..d3c76edd82 100644 --- a/engines/mohawk/riven_stack.cpp +++ b/engines/mohawk/riven_stack.cpp @@ -186,6 +186,7 @@ void RivenStack::runDemoBoundaryDialog() { void RivenStack::runEndGame(uint16 videoCode, uint32 delay) { _vm->_sound->stopAllSLST(); RivenVideo *video = _vm->_video->openSlot(videoCode); + video->enable(); video->play(); runCredits(videoCode, delay); } @@ -202,27 +203,20 @@ void RivenStack::runCredits(uint16 video, uint32 delay) { if (videoPtr->getCurFrame() >= (int32)videoPtr->getFrameCount() - 1) { if (nextCreditsFrameStart == 0) { // Set us up to start after delay ms - nextCreditsFrameStart = _vm->_system->getMillis() + delay; - } else if (_vm->_system->getMillis() >= nextCreditsFrameStart) { + nextCreditsFrameStart = _vm->getTotalPlayTime() + delay; + } else if (_vm->getTotalPlayTime() >= nextCreditsFrameStart) { // the first two frames stay on for 4 seconds // the rest of the scroll updates happen at 30Hz if (_vm->_gfx->getCurCreditsImage() < 304) - nextCreditsFrameStart = _vm->_system->getMillis() + 4000; + nextCreditsFrameStart = _vm->getTotalPlayTime() + 4000; else - nextCreditsFrameStart = _vm->_system->getMillis() + 1000 / 30; + nextCreditsFrameStart = _vm->getTotalPlayTime() + 1000 / 30; _vm->_gfx->updateCredits(); } - } else { - _vm->_video->updateMovies(); - _vm->_system->updateScreen(); } - Common::Event event; - while (_vm->_system->getEventManager()->pollEvent(event)) - ; - - _vm->_system->delayMillis(10); + _vm->doFrame(); } if (_vm->shouldQuit()) { |