[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.52,2.53 script_v2.cpp,2.8,2.9

Pawel Kolodziejski aquadran at users.sourceforge.net
Mon Apr 21 03:21:03 CEST 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv24522

Modified Files:
	intern.h script_v2.cpp 
Log Message:
some changes in v2 variables

Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.52
retrieving revision 2.53
diff -u -d -r2.52 -r2.53
--- intern.h	21 Apr 2003 08:50:16 -0000	2.52
+++ intern.h	21 Apr 2003 10:20:12 -0000	2.53
@@ -194,6 +194,9 @@
 	virtual const char *getOpcodeDesc(int i);
 	virtual void getResultPos();
 	virtual void getResultPosDirect();
+	virtual int getVar();
+	virtual int getVarOrDirectByte(byte mask);
+	virtual int getVarOrDirectWord(byte mask);
 	virtual void ifStateCommon(byte type);
 	virtual void ifNotStateCommon(byte type);
 	virtual void setStateCommon(byte type);

Index: script_v2.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v2.cpp,v
retrieving revision 2.8
retrieving revision 2.9
diff -u -d -r2.8 -r2.9
--- script_v2.cpp	21 Apr 2003 09:03:17 -0000	2.8
+++ script_v2.cpp	21 Apr 2003 10:20:12 -0000	2.9
@@ -366,6 +366,25 @@
 	return _opcodesV2[i].desc;
 }
 
+int Scumm_v2::getVar() {
+	int var_id = fetchScriptByte();
+	if ((var_id >= 14) && (var_id <= 16))
+		return _vars[_vars[var_id]];
+	return _vars[var_id];
+}
+
+int Scumm_v2::getVarOrDirectByte(byte mask) {
+	if (_opcode & mask)
+		return getVar();
+	return fetchScriptByte();
+}
+
+int Scumm_v2::getVarOrDirectWord(byte mask) {
+	if (_opcode & mask)
+		return getVar();
+	return fetchScriptWord();
+}
+
 void Scumm_v2::setStateCommon(byte type) {
 	int obj = getVarOrDirectWord(0x80);
 	putState(obj, getState(obj) | type);
@@ -473,9 +492,9 @@
   bit_var >>= 4;
 
 	if (getVarOrDirectByte(0x80))
-		_bitVars[bit_var >> 3] |= (1 << bit_offset);
+		_vars[bit_var] |= (1 << bit_offset);
 	else
-		_bitVars[bit_var >> 3] &= ~(1 << bit_offset);
+		_vars[bit_var] &= ~(1 << bit_offset);
 }
 
 void Scumm_v2::o2_getBitVar() {
@@ -488,7 +507,7 @@
 	int bit_offset = bit_var & 0x0f;
   bit_var >>= 4;
 
-	_vars[_resultVarNumber] = (_bitVars[bit_var >> 3] & (1 << bit_offset)) ? 1 : 0;
+	_vars[_resultVarNumber] = (_vars[bit_var] & (1 << bit_offset)) ? 1 : 0;
 }
 
 void Scumm_v2::ifStateCommon(byte type) {





More information about the Scummvm-git-logs mailing list