aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/ui/end_credits.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/ui/end_credits.cpp')
-rw-r--r--engines/bladerunner/ui/end_credits.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/engines/bladerunner/ui/end_credits.cpp b/engines/bladerunner/ui/end_credits.cpp
index 57ea6b3e7c..91e8501794 100644
--- a/engines/bladerunner/ui/end_credits.cpp
+++ b/engines/bladerunner/ui/end_credits.cpp
@@ -93,6 +93,7 @@ void EndCredits::show() {
double position = 0.0;
uint32 timeLast = _vm->_time->currentSystem();
+ bool firstPass = true;
while (!_vm->_vqaStopIsRequested && !_vm->shouldQuit()) {
if (position >= textPositions[textCount - 1]) {
@@ -109,6 +110,12 @@ void EndCredits::show() {
}
uint32 timeNow = _vm->_time->currentSystem();
+ if (timeNow - timeLast < _vm->kUpdateFrameTimeInMs && !firstPass) {
+ continue;
+ } else if (firstPass) {
+ firstPass = false;
+ }
+
position += (double)(timeNow - timeLast) * 0.05f; // unsigned difference is intentional
timeLast = timeNow;
@@ -147,8 +154,6 @@ void EndCredits::show() {
_vm->_surfaceFront.fillRect(Common::Rect(0, 452, 640, 480), 0);
_vm->blitToScreen(_vm->_surfaceFront);
-
- _vm->_system->delayMillis(10);
}
_vm->_vqaIsPlaying = false;