From 2fd416b0ac9750916e388e95429700275f98113a Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Sun, 30 Jun 2019 14:44:49 +0300 Subject: SCI32: Extend scaler sanity checks to all SCI32 versions Fixes QFG4 bug #10765. It's preferable to have sanity checks in the code, rather than crashing due to invalid draw rectangles from buggy game scripts. It's no use checking which specific interpreter versions had sanity checks and trust the game scripts of the other interpreters. Thus, it's easier and safer to always enable these sanity checks. --- engines/sci/graphics/celobj32.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'engines/sci/graphics/celobj32.cpp') diff --git a/engines/sci/graphics/celobj32.cpp b/engines/sci/graphics/celobj32.cpp index 1b93aee4aa..f62712d758 100644 --- a/engines/sci/graphics/celobj32.cpp +++ b/engines/sci/graphics/celobj32.cpp @@ -857,9 +857,8 @@ void CelObj::drawUncompHzFlipNoMDNoSkip(Buffer &target, const Common::Rect &targ void CelObj::scaleDrawNoMD(Buffer &target, const Ratio &scaleX, const Ratio &scaleY, const Common::Rect &targetRect, const Common::Point &scaledPosition) const { // In SSCI the checks are > because their rects are BR-inclusive; our checks // are >= because our rects are BR-exclusive - if (g_sci->_features->hasEmptyScaleDrawHack() && - (targetRect.left >= targetRect.right || - targetRect.top >= targetRect.bottom)) { + if (targetRect.left >= targetRect.right || + targetRect.top >= targetRect.bottom) { return; } @@ -872,9 +871,8 @@ void CelObj::scaleDrawNoMD(Buffer &target, const Ratio &scaleX, const Ratio &sca void CelObj::scaleDrawUncompNoMD(Buffer &target, const Ratio &scaleX, const Ratio &scaleY, const Common::Rect &targetRect, const Common::Point &scaledPosition) const { // In SSCI the checks are > because their rects are BR-inclusive; our checks // are >= because our rects are BR-exclusive - if (g_sci->_features->hasEmptyScaleDrawHack() && - (targetRect.left >= targetRect.right || - targetRect.top >= targetRect.bottom)) { + if (targetRect.left >= targetRect.right || + targetRect.top >= targetRect.bottom) { return; } -- cgit v1.2.3