[Scummvm-cvs-logs] SF.net SVN: scummvm:[49138] scummvm/trunk/engines/parallaction/parallaction .cpp

peres001 at users.sourceforge.net peres001 at users.sourceforge.net
Sat May 22 14:37:07 CEST 2010


Revision: 49138
          http://scummvm.svn.sourceforge.net/scummvm/?rev=49138&view=rev
Author:   peres001
Date:     2010-05-22 12:37:07 +0000 (Sat, 22 May 2010)

Log Message:
-----------
Use the kZoneYourself flag to check zones for self-use in BRA. See patch 3003626.

Modified Paths:
--------------
    scummvm/trunk/engines/parallaction/parallaction.cpp

Modified: scummvm/trunk/engines/parallaction/parallaction.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/parallaction.cpp	2010-05-22 12:36:52 UTC (rev 49137)
+++ scummvm/trunk/engines/parallaction/parallaction.cpp	2010-05-22 12:37:07 UTC (rev 49138)
@@ -687,15 +687,26 @@
 	debugC(5, kDebugExec, "checkZoneBox for %s (type = %x, x = %i, y = %i)", z->_name, type, x, y);
 
 	if (!z->hitRect(x, y)) {
-
 		// check for special zones (items defined in common.loc)
 		if (checkSpecialZoneBox(z, type, x, y))
 			return true;
 
-		if (z->getX() != -1)
+		// check if self-use zone (nothing to do with kFlagsSelfuse)
+		int gameType = getGameType();
+		if (gameType == GType_Nippon) {
+			if (z->getX() != -1) {	// no explicit self-use flag in NS
+				return false;
+			}
+		}
+		if (gameType == GType_BRA) {
+			if (!(z->_flags & kFlagsYourself)) {
+				return false;
+			}
+		}
+		if (!_char._ani->hitFrameRect(x, y)) {
 			return false;
-		if (!_char._ani->hitFrameRect(x, y))
-			return false;
+		}
+		// we get here only if (x,y) hits the character and the zone is marked as self-use
 	}
 
 	// normal Zone


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