[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