diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/groovie/roq.cpp | 8 |
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; } |