[Scummvm-cvs-logs] SF.net SVN: scummvm: [21004] scummvm/trunk/engines/scumm

kirben at users.sourceforge.net kirben at users.sourceforge.net
Wed Mar 1 22:07:05 CET 2006


Revision: 21004
Author:   kirben
Date:     2006-03-01 22:06:24 -0800 (Wed, 01 Mar 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm?rev=21004&view=rev

Log Message:
-----------
C64 maniac uses separate bitmasks for actor settings and misc settings

Modified Paths:
--------------
    scummvm/trunk/engines/scumm/actor.cpp
    scummvm/trunk/engines/scumm/actor.h
    scummvm/trunk/engines/scumm/script_c64.cpp
Modified: scummvm/trunk/engines/scumm/actor.cpp
===================================================================
--- scummvm/trunk/engines/scumm/actor.cpp	2006-03-02 05:04:40 UTC (rev 21003)
+++ scummvm/trunk/engines/scumm/actor.cpp	2006-03-02 06:06:24 UTC (rev 21004)
@@ -78,6 +78,7 @@
 		_walkdata.point3.x = 32000;
 		_walkScript = 0;
 		memset(_heTalkQueue, 0, sizeof(_heTalkQueue));
+		_miscflags = 0;
 
 		mode = 1;
 	}

Modified: scummvm/trunk/engines/scumm/actor.h
===================================================================
--- scummvm/trunk/engines/scumm/actor.h	2006-03-02 05:04:40 UTC (rev 21003)
+++ scummvm/trunk/engines/scumm/actor.h	2006-03-02 06:06:24 UTC (rev 21004)
@@ -133,6 +133,9 @@
 	uint16 _sound[32];
 	CostumeData _cost;
 
+	/* C64 maniac specific */
+	byte _miscflags;
+
 	/* HE specific */
 	bool _heNoTalkAnimation;
 	bool _heSkipLimbs;

Modified: scummvm/trunk/engines/scumm/script_c64.cpp
===================================================================
--- scummvm/trunk/engines/scumm/script_c64.cpp	2006-03-02 05:04:40 UTC (rev 21003)
+++ scummvm/trunk/engines/scumm/script_c64.cpp	2006-03-02 06:06:24 UTC (rev 21004)
@@ -690,50 +690,51 @@
 }
 
 void ScummEngine_c64::o_setActorBitVar() {
-	byte flag = getVarOrDirectByte(PARAM_1);
+	byte act = getVarOrDirectByte(PARAM_1);
 	byte mask = getVarOrDirectByte(PARAM_2);
 	byte mod = getVarOrDirectByte(PARAM_3);
 
-	//if (mod)
-	//	_miscFlags[flag] |= mask;
-	//else
-	//	_miscFlags[flag] &= ~mash;
+	Actor *a = derefActor(act, "o_setActorBitVar");
+	if (mod)
+		a->_miscflags |= mask;
+	else
+		a->_miscflags &= ~mask;
 
-	warning("STUB: o_setActorBitVar(%d, %d, %d)", flag, mask, mod);
+	debug(0, "o_setActorBitVar(%d, %d, %d)", act, mask, mod);
 }
 
 void ScummEngine_c64::o_getActorBitVar() {
 	getResultPos();
-	byte flag = getVarOrDirectByte(PARAM_1);
+	byte act = getVarOrDirectByte(PARAM_1);
 	byte mask = getVarOrDirectByte(PARAM_2);
 
-	//setResult((_miscFlags[flag] & mask) ? 1 : 0);
+	Actor *a = derefActor(act, "o_setActorBitVar");
+	setResult((a->_miscflags & mask) ? 1 : 0);
 
-	setResult(0);
-	warning("STUB: o_getActorBitVar(%d, %d)", flag, mask);
+	debug(0, "o_getActorBitVar(%d, %d, %d)", act, mask, (a->_miscflags & mask));
 }
 
 void ScummEngine_c64::o_setBitVar() {
-	int var = getVarOrDirectByte(PARAM_1);
+	byte flag = getVarOrDirectByte(PARAM_1);
 	byte mask = getVarOrDirectByte(PARAM_2);
 	byte mod = getVarOrDirectByte(PARAM_3);
 
 	if (mod)
-		_scummVars[var] |= (1 << mask);
+		_bitVars[flag] |= (1 << mask);
 	else
-		_scummVars[var] &= ~(1 << mask);
+		_bitVars[flag] &= ~(1 << mask);
 
-	debug(0, "o_setBitVar (%d, %d %d)", var, mask, mod);
+	debug(0, "o_setBitVar (%d, %d %d)", flag, mask, mod);
 }
 
 void ScummEngine_c64::o_getBitVar() {
 	getResultPos();
-	int var = getVarOrDirectByte(PARAM_1);
+	byte flag = getVarOrDirectByte(PARAM_1);
 	byte mask = getVarOrDirectByte(PARAM_2);
 
-	setResult((_scummVars[var] & (1 << mask)) ? 1 : 0);
+	setResult((_bitVars[flag] & (1 << mask)) ? 1 : 0);
 
-	debug(0, "o_getBitVar (%d, %d %d)", var, mask, _scummVars[var] & (1 << mask));
+	debug(0, "o_getBitVar (%d, %d %d)", flag, mask, _bitVars[flag] & (1 << mask));
 }
 
 void ScummEngine_c64::o_print_c64() {







More information about the Scummvm-git-logs mailing list