From 94f5bec0f61f68f797534b5ee516efafeaa1eedd Mon Sep 17 00:00:00 2001 From: Sven Hesse Date: Tue, 18 Jan 2011 07:03:12 +0000 Subject: [PATCH] GOB: Fix Woodruff video offsets svn-id: r55288 --- graphics/video/coktel_decoder.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/graphics/video/coktel_decoder.cpp b/graphics/video/coktel_decoder.cpp index 97dfebb0a7b..bd09127c146 100644 --- a/graphics/video/coktel_decoder.cpp +++ b/graphics/video/coktel_decoder.cpp @@ -2171,7 +2171,16 @@ bool VMDDecoder::renderFrame(Common::Rect &rect) { Common::Rect realRect = rect; Common::Rect fakeRect = rect; - if ((_blitMode == 1) || (_blitMode == 3)) { + if (_blitMode == 0) { + + realRect = Common::Rect(realRect.left - _x, realRect.top - _y, + realRect.right - _x, realRect.bottom - _y); + + fakeRect = Common::Rect(fakeRect.left - _x, fakeRect.top - _y, + fakeRect.right - _x, fakeRect.bottom - _y); + + } else if ((_blitMode == 1) || (_blitMode == 3)) { + realRect = Common::Rect(rect.left / _bytesPerPixel, rect.top, rect.right / _bytesPerPixel, rect.bottom); @@ -2180,9 +2189,9 @@ bool VMDDecoder::renderFrame(Common::Rect &rect) { fakeRect = Common::Rect(fakeRect.left - _x, fakeRect.top - _y, fakeRect.right - _x, fakeRect.bottom - _y); - } - if (_blitMode == 2) { + } else if (_blitMode == 2) { + fakeRect = Common::Rect(rect.left * _bytesPerPixel, rect.top, rect.right * _bytesPerPixel, rect.bottom); @@ -2191,6 +2200,7 @@ bool VMDDecoder::renderFrame(Common::Rect &rect) { fakeRect = Common::Rect(fakeRect.left - _x * _bytesPerPixel, fakeRect.top - _y, fakeRect.right - _x * _bytesPerPixel, fakeRect.bottom - _y); + } realRect.clip(Common::Rect(_surface.w, _surface.h));