[Scummvm-cvs-logs] scummvm master -> bfa26ffc44f80e4eb3d8590f5f865cda6a5188b7

bluegr md5 at scummvm.org
Mon Jun 13 15:45:27 CEST 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
bfa26ffc44 SCI: Reverted commit db7dea3


Commit: bfa26ffc44f80e4eb3d8590f5f865cda6a5188b7
    https://github.com/scummvm/scummvm/commit/bfa26ffc44f80e4eb3d8590f5f865cda6a5188b7
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-06-13T06:43:04-07:00

Commit Message:
SCI: Reverted commit db7dea3

The original check was correct, and the associated MG bug (#3049515) has
actually been fixed with another commit.

Fixes bug (regression) #3315639 - "Character Glitches in KQ4 SCI".
Many thanks to waltervn and wjp for their help on this

Changed paths:
    engines/sci/graphics/compare.cpp



diff --git a/engines/sci/graphics/compare.cpp b/engines/sci/graphics/compare.cpp
index 1dbe279..3183ffa 100644
--- a/engines/sci/graphics/compare.cpp
+++ b/engines/sci/graphics/compare.cpp
@@ -84,7 +84,14 @@ reg_t GfxCompare::canBeHereCheckRectList(reg_t checkObject, const Common::Rect &
 				curRect.right = readSelectorValue(_segMan, curObject, SELECTOR(brRight));
 				curRect.bottom = readSelectorValue(_segMan, curObject, SELECTOR(brBottom));
 				// Check if curRect is within checkRect
-				if (checkRect.contains(curRect))
+				// This behavior is slightly odd, but it's how the original SCI
+				// engine did it: a rect cannot be contained within itself
+				// (there is no equality). Do NOT change this to contains(), as
+				// it breaks KQ4 early (bug #3315639).
+				if (curRect.right > checkRect.left &&
+					curRect.left < checkRect.right &&
+					curRect.bottom > checkRect.top &&
+					curRect.top < checkRect.bottom)
 					return curObject;
 			}
 		}






More information about the Scummvm-git-logs mailing list