aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}