aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Bouclet2018-09-01 06:27:56 +0200
committerBastien Bouclet2018-09-01 06:27:56 +0200
commit3c8a0a3d2ea4cf67960a23b77460e6cf95c64d60 (patch)
tree214d5e3585401c1710a284b85a42ab5d2e49760a
parent33131554c13fbd7d99cc83ccd97193a6c220cc85 (diff)
downloadscummvm-rg350-3c8a0a3d2ea4cf67960a23b77460e6cf95c64d60.tar.gz
scummvm-rg350-3c8a0a3d2ea4cf67960a23b77460e6cf95c64d60.tar.bz2
scummvm-rg350-3c8a0a3d2ea4cf67960a23b77460e6cf95c64d60.zip
MOHAWK: RIVEN: Wait for the sound track to end after the credit
-rw-r--r--engines/mohawk/riven_graphics.cpp2
-rw-r--r--engines/mohawk/riven_stack.cpp17
2 files changed, 2 insertions, 17 deletions
diff --git a/engines/mohawk/riven_graphics.cpp b/engines/mohawk/riven_graphics.cpp
index bc6ebfc382..084019df5e 100644
--- a/engines/mohawk/riven_graphics.cpp
+++ b/engines/mohawk/riven_graphics.cpp
@@ -682,7 +682,7 @@ void RivenGraphics::updateCredits() {
runScheduledTransition();
} else {
- // Otheriwse, we're scrolling
+ // Otherwise, we're scrolling
// This is done by 1) moving the screen up one row and
// 2) adding a new row at the bottom that is the current row of the current image or
// not and it defaults to being empty (a black row).
diff --git a/engines/mohawk/riven_stack.cpp b/engines/mohawk/riven_stack.cpp
index abe7e5a903..17baf94595 100644
--- a/engines/mohawk/riven_stack.cpp
+++ b/engines/mohawk/riven_stack.cpp
@@ -237,7 +237,7 @@ void RivenStack::runCredits(uint16 video, uint32 delay, uint32 videoFrameCountOv
frameCount = videoPtr->getFrameCount();
}
- while (!_vm->hasGameEnded() && _vm->_gfx->getCurCreditsImage() <= kRivenCreditsLastImage) {
+ while (!_vm->hasGameEnded() && !videoPtr->endOfVideo()) {
if (videoPtr->getCurFrame() >= frameCount - 1) {
if (nextCreditsFrameStart == 0) {
videoPtr->disable();
@@ -258,21 +258,6 @@ void RivenStack::runCredits(uint16 video, uint32 delay, uint32 videoFrameCountOv
_vm->doFrame();
}
- // Let the last frame of credits keep scrolling till black
- uint currFrameTime = _vm->getTotalPlayTime();
- nextCreditsFrameStart = currFrameTime + 1000 / 60;
- uint endFrameTime = currFrameTime + 8000; // 8 seconds
- uint sleepTime = 0;
-
- while(currFrameTime < endFrameTime) {
- if (sleepTime > 0)
- _vm->delay(sleepTime);
- nextCreditsFrameStart += 1000 / 60;
- _vm->_gfx->updateCredits();
- _vm->doFrame();
- currFrameTime = _vm->getTotalPlayTime();
- sleepTime = nextCreditsFrameStart - currFrameTime;
- }
_vm->setGameEnded();
}