aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--video/coktel_decoder.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/video/coktel_decoder.cpp b/video/coktel_decoder.cpp
index c8beb3b604..faf32eaffa 100644
--- a/video/coktel_decoder.cpp
+++ b/video/coktel_decoder.cpp
@@ -1377,11 +1377,12 @@ bool IMDDecoder::renderFrame(Common::Rect &rect) {
if ((type == 2) && (rect.width() == _surface.w) && (_x == 0)) {
// Directly uncompress onto the video surface
- int offsetX = rect.left * _surface.bytesPerPixel;
- int offsetY = (_y + rect.top) * _surface.pitch;
+ const int offsetX = rect.left * _surface.bytesPerPixel;
+ const int offsetY = (_y + rect.top) * _surface.pitch;
+ const int offset = offsetX + offsetY;
- deLZ77((byte *)_surface.pixels + offsetX + offsetY, dataPtr, dataSize,
- _surface.w * _surface.h * _surface.bytesPerPixel);
+ deLZ77((byte *)_surface.pixels + offset, dataPtr, dataSize,
+ _surface.w * _surface.h * _surface.bytesPerPixel - offset);
return true;
}
@@ -2244,11 +2245,12 @@ bool VMDDecoder::renderFrame(Common::Rect &rect) {
if ((type == 2) && (rect.width() == _surface.w) && (_x == 0) && (_blitMode == 0)) {
// Directly uncompress onto the video surface
- int offsetX = rect.left * _surface.bytesPerPixel;
- int offsetY = (_y + rect.top) * _surface.pitch;
+ const int offsetX = rect.left * _surface.bytesPerPixel;
+ const int offsetY = (_y + rect.top) * _surface.pitch;
+ const int offset = offsetX - offsetY;
- deLZ77((byte *)_surface.pixels + offsetX + offsetY, dataPtr, dataSize,
- _surface.w * _surface.h * _surface.bytesPerPixel);
+ deLZ77((byte *)_surface.pixels + offset, dataPtr, dataSize,
+ _surface.w * _surface.h * _surface.bytesPerPixel - offset);
return true;
}