aboutsummaryrefslogtreecommitdiff
path: root/video
diff options
context:
space:
mode:
authorSven Hesse2011-03-29 12:47:20 +0200
committerSven Hesse2011-03-29 12:47:20 +0200
commit97966c36e1ef2a00d30410c9d4daae491c1bd994 (patch)
treec0e613feb4ef02ff4be6d7a679b1f17bc9f25820 /video
parent8291732c946039de5d6e85e6552039fb78616d9c (diff)
downloadscummvm-rg350-97966c36e1ef2a00d30410c9d4daae491c1bd994.tar.gz
scummvm-rg350-97966c36e1ef2a00d30410c9d4daae491c1bd994.tar.bz2
scummvm-rg350-97966c36e1ef2a00d30410c9d4daae491c1bd994.zip
VIDEO: Add a workaround for the Inca 2 wisdom gate video
When decompressing directly onto the output surface fails (because it's too small), retry decompressing into the video buffer first, which then gets blitted onto the output surface.
Diffstat (limited to 'video')
-rw-r--r--video/coktel_decoder.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/video/coktel_decoder.cpp b/video/coktel_decoder.cpp
index faf32eaffa..ef92e5f35e 100644
--- a/video/coktel_decoder.cpp
+++ b/video/coktel_decoder.cpp
@@ -1381,9 +1381,9 @@ bool IMDDecoder::renderFrame(Common::Rect &rect) {
const int offsetY = (_y + rect.top) * _surface.pitch;
const int offset = offsetX + offsetY;
- deLZ77((byte *)_surface.pixels + offset, dataPtr, dataSize,
- _surface.w * _surface.h * _surface.bytesPerPixel - offset);
- return true;
+ if (deLZ77((byte *)_surface.pixels + offset, dataPtr, dataSize,
+ _surface.w * _surface.h * _surface.bytesPerPixel - offset))
+ return true;
}
_videoBufferLen[1] = deLZ77(_videoBuffer[1], dataPtr, dataSize, _videoBufferSize);
@@ -2249,9 +2249,9 @@ bool VMDDecoder::renderFrame(Common::Rect &rect) {
const int offsetY = (_y + rect.top) * _surface.pitch;
const int offset = offsetX - offsetY;
- deLZ77((byte *)_surface.pixels + offset, dataPtr, dataSize,
- _surface.w * _surface.h * _surface.bytesPerPixel - offset);
- return true;
+ if (deLZ77((byte *)_surface.pixels + offset, dataPtr, dataSize,
+ _surface.w * _surface.h * _surface.bytesPerPixel - offset))
+ return true;
}
srcBuffer = 1;