aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner
diff options
context:
space:
mode:
authorPeter Kohaut2019-02-24 19:45:03 +0100
committerPeter Kohaut2019-02-24 19:47:27 +0100
commit096e870b7bc15710a6650635cfea1b774303220b (patch)
tree53a18dd37c2180b99af76ea750212dbfc02cd67c /engines/bladerunner
parent902b2278a57c801c78d7edaa99db9df0f6c00a49 (diff)
downloadscummvm-rg350-096e870b7bc15710a6650635cfea1b774303220b.tar.gz
scummvm-rg350-096e870b7bc15710a6650635cfea1b774303220b.tar.bz2
scummvm-rg350-096e870b7bc15710a6650635cfea1b774303220b.zip
BLADERUNNER: Fixed quick video playback in few occasions
Overlays were played too quickly after using KIA. After outtakes finished, scene videos were playing too quickly. When ScummVM was not updating game and it was not paused (eg window drag) scene videos were played too quickly.
Diffstat (limited to 'engines/bladerunner')
-rw-r--r--engines/bladerunner/vqa_player.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/engines/bladerunner/vqa_player.cpp b/engines/bladerunner/vqa_player.cpp
index 9a1c89a5bc..040bb5817c 100644
--- a/engines/bladerunner/vqa_player.cpp
+++ b/engines/bladerunner/vqa_player.cpp
@@ -132,12 +132,14 @@ int VQAPlayer::update(bool forceDraw, bool advanceFrame, bool useTime, Graphics:
}
}
if (useTime) {
- if (_frameNextTime == 0) {
+ _frameNextTime += 60000 / 15;
+
+ // In some cases (as overlay paused by kia or game window is moved) new time might be still in the past.
+ // This can cause rapid playback of video where every refresh renders different frame of the video.
+ // Can be avoided by setting next time to the future.
+ if (_frameNextTime < now) {
_frameNextTime = now + 60000 / 15;
}
- else {
- _frameNextTime += 60000 / 15;
- }
}
_frameNext++;
result = _frame;