[Scummvm-cvs-logs] CVS: scummvm script.cpp,1.66,1.67

James Brown ender at users.sourceforge.net
Thu Aug 1 20:43:21 CEST 2002


Update of /cvsroot/scummvm/scummvm
In directory usw-pr-cvs1:/tmp/cvs-serv21542

Modified Files:
	script.cpp 
Log Message:
Patch by yot to fix Zak256 markings.



Index: script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/script.cpp,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -d -r1.66 -r1.67
--- script.cpp	16 Jul 2002 21:03:13 -0000	1.66
+++ script.cpp	30 Jul 2002 15:20:30 -0000	1.67
@@ -343,6 +343,16 @@
 		return _vars[var];
 
 	if (var & 0x8000) {
+		if (_gameId == GID_ZAK256) {
+			// Emulate a wierd hack in Zak256 to read individual
+			// bits of a normal global
+			int b = (var & 0x000F);
+			var &= 0x0FFF;
+			var >>= 4;
+			checkRange(_numVariables - 1, 0, var, "Variable %d out of range(rzb)");
+			return (_vars[ var ] & ( 1 << b ) ) ? 1 : 0;
+		}
+
 		var &= 0x7FFF;
 		checkRange(_numBitVariables - 1, 0, var, "Bit variable %d out of range(r)");
 		return (_bitVars[var >> 3] & (1 << (var & 7))) ? 1 : 0;
@@ -380,6 +390,19 @@
 	}
 
 	if (var & 0x8000) {
+		if (_gameId == GID_ZAK256) {
+			// Emulate a wierd hack in Zak256 to read individual
+			// bits of a normal global
+			int b = (var & 0x000F);
+			var &= 0x7FFF;
+			var >>= 4;
+			checkRange(_numVariables - 1, 0, var, "Variable %d out of range(wzb)");
+			if(value)
+ 				_vars[ var ] |= ( 1 << b );
+			else
+				_vars[ var ] &= ~( 1 << b );
+			return;
+		}
 		var &= 0x7FFF;
 		checkRange(_numBitVariables - 1, 0, var, "Bit variable %d out of range(w)");
 





More information about the Scummvm-git-logs mailing list