diff options
-rw-r--r-- | engines/groovie/roq.cpp | 9 | ||||
-rw-r--r-- | engines/groovie/roq.h | 3 |
2 files changed, 10 insertions, 2 deletions
diff --git a/engines/groovie/roq.cpp b/engines/groovie/roq.cpp index 34689d8aa2..1996181571 100644 --- a/engines/groovie/roq.cpp +++ b/engines/groovie/roq.cpp @@ -77,6 +77,10 @@ uint16 ROQPlayer::loadInternal() { debug(1, " <- 0 "); } + // Flags: + // - 2 For overlay videos, show the whole video + _flagTwo = ((_flags & (1 << 2)) != 0); + // Begin reading the file debugC(1, kDebugVideo, "Groovie::ROQ: Loading video"); @@ -177,8 +181,9 @@ bool ROQPlayer::playFrameInternal() { _dirty = false; } - // Return whether the video has ended - return _file->eos(); + // Report the end of the video if we reached the end of the file or if we + // just wanted to play one frame. + return _file->eos() || (_alpha && !_flagTwo); } bool ROQPlayer::readBlockHeader(ROQBlockHeader &blockHeader) { diff --git a/engines/groovie/roq.h b/engines/groovie/roq.h index 3a85517f59..b720e6a235 100644 --- a/engines/groovie/roq.h +++ b/engines/groovie/roq.h @@ -74,6 +74,9 @@ private: uint32 _codebook2[256 * 4]; byte _codebook4[256 * 4]; + // Flags + bool _flagTwo; + // Buffers Graphics::Surface *_fg, *_bg; Graphics::Surface *_currBuf, *_prevBuf; |