diff options
author | Filippos Karapetis | 2014-11-04 11:52:09 +0200 |
---|---|---|
committer | Filippos Karapetis | 2014-11-04 11:52:09 +0200 |
commit | d8e650b4cbfd76ed448e5ebc2caab3db5b1d1d55 (patch) | |
tree | 91b84853bf72ebb52e441855ded5da5ba8daa7ca /engines/groovie | |
parent | 70fe89b92d81bcdbc827c4467e508b3ad3d26051 (diff) | |
download | scummvm-rg350-d8e650b4cbfd76ed448e5ebc2caab3db5b1d1d55.tar.gz scummvm-rg350-d8e650b4cbfd76ed448e5ebc2caab3db5b1d1d55.tar.bz2 scummvm-rg350-d8e650b4cbfd76ed448e5ebc2caab3db5b1d1d55.zip |
GROOVIE: Handle flag 2 for V2 games (show a whole overlay video)
Diffstat (limited to 'engines/groovie')
-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; |