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 /video | |
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.
Diffstat (limited to 'video')
-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; |