diff options
author | Paul Gilbert | 2014-01-03 18:09:19 -1000 |
---|---|---|
committer | Paul Gilbert | 2014-01-03 18:09:19 -1000 |
commit | 7d9680058ac51042524f17d2ead7b3a43fa66b35 (patch) | |
tree | 865f6f2270cce32225b8c9b36886e4a0c9c426f2 /engines/voyeur/animation.cpp | |
parent | 3672e3fa16c976c048e5221790e4e8e7e3627808 (diff) | |
download | scummvm-rg350-7d9680058ac51042524f17d2ead7b3a43fa66b35.tar.gz scummvm-rg350-7d9680058ac51042524f17d2ead7b3a43fa66b35.tar.bz2 scummvm-rg350-7d9680058ac51042524f17d2ead7b3a43fa66b35.zip |
VOYEUR: Fixes for decoding RL2 videos with transparency
Diffstat (limited to 'engines/voyeur/animation.cpp')
-rw-r--r-- | engines/voyeur/animation.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/engines/voyeur/animation.cpp b/engines/voyeur/animation.cpp index 5bda66e7fe..42172b7a33 100644 --- a/engines/voyeur/animation.cpp +++ b/engines/voyeur/animation.cpp @@ -355,9 +355,9 @@ void RL2Decoder::RL2VideoTrack::rl2DecodeFrameWithTransparency(int screenOffset) ++screenOffset; --frameSize; } else if (nextByte < 0x80) { - // Raw byte to copy to output + // Single 7-bit pixel to output (128-255) assert(frameSize > 0); - destP[screenOffset] = nextByte; + destP[screenOffset] = nextByte | 0x80; ++screenOffset; --frameSize; } else if (nextByte == 0x80) { @@ -374,7 +374,6 @@ void RL2Decoder::RL2VideoTrack::rl2DecodeFrameWithTransparency(int screenOffset) } else { // Run length of a single pixel value int runLength = _fileStream->readByte(); - nextByte &= 0x7f; runLength = MIN(runLength, frameSize); Common::fill(destP + screenOffset, destP + screenOffset + runLength, nextByte); |