[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