[Scummvm-cvs-logs] SF.net SVN: scummvm:[51085] scummvm/trunk/engines/sci/graphics/compare.cpp

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Wed Jul 21 14:41:17 CEST 2010


Revision: 51085
          http://scummvm.svn.sourceforge.net/scummvm/?rev=51085&view=rev
Author:   m_kiewitz
Date:     2010-07-21 12:41:17 +0000 (Wed, 21 Jul 2010)

Log Message:
-----------
SCI: kSetNowSeen sci2.1

fixes hotspots

Modified Paths:
--------------
    scummvm/trunk/engines/sci/graphics/compare.cpp

Modified: scummvm/trunk/engines/sci/graphics/compare.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/compare.cpp	2010-07-21 12:05:10 UTC (rev 51084)
+++ scummvm/trunk/engines/sci/graphics/compare.cpp	2010-07-21 12:41:17 UTC (rev 51085)
@@ -132,15 +132,36 @@
 
 	view = _cache->getView(viewId);
 
-	if (view->isSci2Hires())
-		_screen->adjustToUpscaledCoordinates(y, x);
+	switch (getSciVersion()) {
+	case SCI_VERSION_2:
+		if (view->isSci2Hires())
+			_screen->adjustToUpscaledCoordinates(y, x);
+		break;
+	case SCI_VERSION_2_1:
+		_coordAdjuster->kernelLocalToGlobal(x, y, readSelector(_segMan, objectReference, SELECTOR(plane)));
+		break;
+	default:
+		break;
+	}
 
 	view->getCelRect(loopNo, celNo, x, y, z, celRect);
 
-	if (view->isSci2Hires()) {
-		_screen->adjustBackUpscaledCoordinates(celRect.top, celRect.left);
-		_screen->adjustBackUpscaledCoordinates(celRect.bottom, celRect.right);
+	switch (getSciVersion()) {
+	case SCI_VERSION_2:
+		if (view->isSci2Hires()) {
+			_screen->adjustBackUpscaledCoordinates(celRect.top, celRect.left);
+			_screen->adjustBackUpscaledCoordinates(celRect.bottom, celRect.right);
+		}
+		break;
+	case SCI_VERSION_2_1: {
+		reg_t planeObj = readSelector(_segMan, objectReference, SELECTOR(plane));
+		_coordAdjuster->kernelGlobalToLocal(celRect.left, celRect.top, planeObj);
+		_coordAdjuster->kernelGlobalToLocal(celRect.right, celRect.bottom, planeObj);
+		break;
 	}
+	default:
+		break;
+	}
 
 	if (lookupSelector(_segMan, objectReference, SELECTOR(nsTop), NULL, NULL) == kSelectorVariable) {
 		writeSelectorValue(_segMan, objectReference, SELECTOR(nsLeft), celRect.left);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list