aboutsummaryrefslogtreecommitdiff
path: root/engines/voyeur/animation.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2014-01-03 18:09:19 -1000
committerPaul Gilbert2014-01-03 18:09:19 -1000
commit7d9680058ac51042524f17d2ead7b3a43fa66b35 (patch)
tree865f6f2270cce32225b8c9b36886e4a0c9c426f2 /engines/voyeur/animation.cpp
parent3672e3fa16c976c048e5221790e4e8e7e3627808 (diff)
downloadscummvm-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.cpp5
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);