aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Hesse2011-03-29 12:47:20 +0200
committerSven Hesse2011-03-29 12:47:20 +0200
commit97966c36e1ef2a00d30410c9d4daae491c1bd994 (patch)
treec0e613feb4ef02ff4be6d7a679b1f17bc9f25820
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.
-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;