diff options
Diffstat (limited to 'engines/bladerunner/ui/end_credits.cpp')
-rw-r--r-- | engines/bladerunner/ui/end_credits.cpp | 9 |
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; |