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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Tue Oct 26 18:21:00 CEST 2010


Revision: 53853
          http://scummvm.svn.sourceforge.net/scummvm/?rev=53853&view=rev
Author:   m_kiewitz
Date:     2010-10-26 16:21:00 +0000 (Tue, 26 Oct 2010)

Log Message:
-----------
SCI: kAnimate bit 2 is hoyle 4 exclusive

adjusted comments about that and also renamed the bit, also added additional TODO, because hoyle 4 has special code that gets into action, when bit 0 is not set, but bit 2 is

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

Modified: scummvm/trunk/engines/sci/graphics/animate.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/animate.cpp	2010-10-26 15:29:04 UTC (rev 53852)
+++ scummvm/trunk/engines/sci/graphics/animate.cpp	2010-10-26 16:21:00 UTC (rev 53853)
@@ -286,16 +286,12 @@
 			view->getCelRect(it->loopNo, it->celNo, it->x, it->y, it->z, it->celRect);
 		}
 
-		// This statement must be here for Hoyle4, otherwise cards are unclickable.
-		// This is probably one of the experimental features that were occasionally
-		// added to SCI interpreters; the corresponding check is absent in many SSCI
-		// versions. m_kiewitz knew about this flag before I (lskovlun) implemented it, 
-		// so it is possible that more test cases are known. Also, some presently open
-		// SCI1.1 bugs may be fixed by this and should be re-tested with this patch generalized.
-
-		// NOTE: *this* breaks at least eco quest 2. One should go through interpreters and check
-		//  the code before enabling it for more games (TODO)
-		if ((g_sci->getGameId() == GID_HOYLE4) && (it->scaleSignal & kScaleSignalDontSetNsrect))
+		// Checking for this bit must be here for Hoyle4, otherwise cards are unclickable.
+		//  This feature is not included in the other SCI1.1 interpreters and MUST NOT be
+		//  checked in those cases, otherwise we will break games (e.g. EcoQuest 2, room 200)
+		// TODO: hoyle 4 has different code inside kAnimate and even special code, when bit 0 is not
+		//  set, but bit 2 is
+		if ((g_sci->getGameId() == GID_HOYLE4) && (it->scaleSignal & kScaleSignalHoyle4DontSetNsrect))
 			setNsRect = false;
 
 		if (setNsRect) {

Modified: scummvm/trunk/engines/sci/graphics/animate.h
===================================================================
--- scummvm/trunk/engines/sci/graphics/animate.h	2010-10-26 15:29:04 UTC (rev 53852)
+++ scummvm/trunk/engines/sci/graphics/animate.h	2010-10-26 16:21:00 UTC (rev 53853)
@@ -51,9 +51,9 @@
 };
 
 enum ViewScaleSignals {
-	kScaleSignalDoScaling		= 0x0001, // enables scaling when drawing that cel (involves scaleX and scaleY)
-	kScaleSignalGlobalScaling	= 0x0002, // means that global scaling shall get applied on that cel (sets scaleX/scaleY)
-	kScaleSignalDontSetNsrect	= 0x0004  // do not set nsRect inside kAnimate(); for a test case see bug #3038424 
+	kScaleSignalDoScaling			= 0x0001, // enables scaling when drawing that cel (involves scaleX and scaleY)
+	kScaleSignalGlobalScaling		= 0x0002, // means that global scaling shall get applied on that cel (sets scaleX/scaleY)
+	kScaleSignalHoyle4DontSetNsrect	= 0x0004  // HOYLE4-exclusive: do not set nsRect inside kAnimate(); for a test case see bug #3038424
 
 };
 


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