aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk/riven_stack.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mohawk/riven_stack.cpp')
-rw-r--r--engines/mohawk/riven_stack.cpp18
1 files changed, 6 insertions, 12 deletions
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()) {