aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/debugger.cpp
diff options
context:
space:
mode:
authorTravis Howell2009-05-01 14:31:59 +0000
committerTravis Howell2009-05-01 14:31:59 +0000
commita287eae15de6458350dfd32daeb519d7aed485a6 (patch)
tree8c21588229bb712b99812f83fd47021845cb43d7 /engines/agos/debugger.cpp
parent50ddc0daf0818fc12beb692d03b7e40083f10b1b (diff)
downloadscummvm-rg350-a287eae15de6458350dfd32daeb519d7aed485a6.tar.gz
scummvm-rg350-a287eae15de6458350dfd32daeb519d7aed485a6.tar.bz2
scummvm-rg350-a287eae15de6458350dfd32daeb519d7aed485a6.zip
Add bit2 and bit3 options to debugger.
svn-id: r40231
Diffstat (limited to 'engines/agos/debugger.cpp')
-rw-r--r--engines/agos/debugger.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/engines/agos/debugger.cpp b/engines/agos/debugger.cpp
index 578475bf78..071aaf236d 100644
--- a/engines/agos/debugger.cpp
+++ b/engines/agos/debugger.cpp
@@ -42,6 +42,8 @@ Debugger::Debugger(AGOSEngine *vm)
DCmd_Register("sound", WRAP_METHOD(Debugger, Cmd_PlaySound));
DCmd_Register("voice", WRAP_METHOD(Debugger, Cmd_PlayVoice));
DCmd_Register("bit", WRAP_METHOD(Debugger, Cmd_SetBit));
+ DCmd_Register("bit2", WRAP_METHOD(Debugger, Cmd_SetBit2));
+ DCmd_Register("bit3", WRAP_METHOD(Debugger, Cmd_SetBit2));
DCmd_Register("var", WRAP_METHOD(Debugger, Cmd_SetVar));
DCmd_Register("obj", WRAP_METHOD(Debugger, Cmd_SetObjectFlag));
DCmd_Register("sub", WRAP_METHOD(Debugger, Cmd_StartSubroutine));
@@ -146,6 +148,52 @@ bool Debugger::Cmd_SetBit(int argc, const char **argv) {
return true;
}
+bool Debugger::Cmd_SetBit2(int argc, const char **argv) {
+ uint bit, value;
+ if (argc > 2) {
+ bit = atoi(argv[1]);
+ value = atoi(argv[2]);
+ if (value == 0) {
+ _vm->_bitArrayTwo[bit / 16] &= ~(1 << (bit & 15));
+ DebugPrintf("Set bit2 %d to %d\n", bit, value);
+ } else if (value == 1) {
+ _vm->_bitArrayTwo[bit / 16] |= (1 << (bit & 15));
+ DebugPrintf("Set bit2 %d to %d\n", bit, value);
+ } else
+ DebugPrintf("Bit2 value out of range (0 - 1)\n");
+ } else if (argc > 1) {
+ bit = atoi(argv[1]);
+ value = (_vm->_bitArrayTwo[bit / 16] & (1 << (bit & 15))) != 0;
+ DebugPrintf("Bit2 %d is %d\n", bit, value);
+ } else
+ DebugPrintf("Syntax: bit2 <bitnum> <value>\n");
+
+ return true;
+}
+
+bool Debugger::Cmd_SetBit3(int argc, const char **argv) {
+ uint bit, value;
+ if (argc > 2) {
+ bit = atoi(argv[1]);
+ value = atoi(argv[2]);
+ if (value == 0) {
+ _vm->_bitArrayThree[bit / 16] &= ~(1 << (bit & 15));
+ DebugPrintf("Set bit3 %d to %d\n", bit, value);
+ } else if (value == 1) {
+ _vm->_bitArrayThree[bit / 16] |= (1 << (bit & 15));
+ DebugPrintf("Set bit3 %d to %d\n", bit, value);
+ } else
+ DebugPrintf("Bit3 value out of range (0 - 1)\n");
+ } else if (argc > 1) {
+ bit = atoi(argv[1]);
+ value = (_vm->_bitArrayThree[bit / 16] & (1 << (bit & 15))) != 0;
+ DebugPrintf("Bit3 %d is %d\n", bit, value);
+ } else
+ DebugPrintf("Syntax: bit3 <bitnum> <value>\n");
+
+ return true;
+}
+
bool Debugger::Cmd_SetVar(int argc, const char **argv) {
uint var, value;
if (argc > 1) {