diff options
author | Sven Hesse | 2011-03-29 12:47:20 +0200 |
---|---|---|
committer | Sven Hesse | 2011-03-29 12:47:20 +0200 |
commit | 97966c36e1ef2a00d30410c9d4daae491c1bd994 (patch) | |
tree | c0e613feb4ef02ff4be6d7a679b1f17bc9f25820 | |
parent | 8291732c946039de5d6e85e6552039fb78616d9c (diff) | |
download | scummvm-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.cpp | 12 |
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; |