aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2014-11-04 12:40:08 +0200
committerFilippos Karapetis2014-11-04 12:40:08 +0200
commitc9a60233d587fd67ec00aeb494e8a7c1df4d2a3f (patch)
treedac38880ce86a4c0460c7f3fe7c46a30d7a83bbf
parentd8e650b4cbfd76ed448e5ebc2caab3db5b1d1d55 (diff)
downloadscummvm-rg350-c9a60233d587fd67ec00aeb494e8a7c1df4d2a3f.tar.gz
scummvm-rg350-c9a60233d587fd67ec00aeb494e8a7c1df4d2a3f.tar.bz2
scummvm-rg350-c9a60233d587fd67ec00aeb494e8a7c1df4d2a3f.zip
GROOVIE: More bugfixes for V2 puzzle overlay videos
-rw-r--r--engines/groovie/roq.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/engines/groovie/roq.cpp b/engines/groovie/roq.cpp
index 1996181571..49d6158973 100644
--- a/engines/groovie/roq.cpp
+++ b/engines/groovie/roq.cpp
@@ -169,7 +169,9 @@ bool ROQPlayer::playFrameInternal() {
}
// Wait until the current frame can be shown
- waitFrame();
+ // Don't wait if we're just showing one frame
+ if (!(_alpha && !_flagTwo))
+ waitFrame();
if (_dirty) {
// Update the screen
@@ -177,6 +179,10 @@ bool ROQPlayer::playFrameInternal() {
_syst->copyRectToScreen(src, _bg->pitch, 0, (_syst->getHeight() - _bg->h) / 2, _bg->w, _bg->h);
_syst->updateScreen();
+ // For overlay videos, set the background buffer when the video ends
+ if (_alpha && (!_flagTwo || (_flagTwo && _file->eos())))
+ _bg->copyFrom(*_fg);
+
// Clear the dirty flag
_dirty = false;
}