[Scummvm-cvs-logs] SF.net SVN: scummvm:[53544] scummvm/trunk/engines/gob
drmccoy at users.sourceforge.net
drmccoy at users.sourceforge.net
Sat Oct 16 19:25:08 CEST 2010
Revision: 53544
http://scummvm.svn.sourceforge.net/scummvm/?rev=53544&view=rev
Author: drmccoy
Date: 2010-10-16 17:25:08 +0000 (Sat, 16 Oct 2010)
Log Message:
-----------
GOB: Extend debug console variable command a bit
...So that it's actually useful
Modified Paths:
--------------
scummvm/trunk/engines/gob/console.cpp
scummvm/trunk/engines/gob/console.h
Modified: scummvm/trunk/engines/gob/console.cpp
===================================================================
--- scummvm/trunk/engines/gob/console.cpp 2010-10-16 17:06:10 UTC (rev 53543)
+++ scummvm/trunk/engines/gob/console.cpp 2010-10-16 17:25:08 UTC (rev 53544)
@@ -30,7 +30,11 @@
namespace Gob {
GobConsole::GobConsole(GobEngine *vm) : GUI::Debugger(), _vm(vm) {
- DCmd_Register("var", WRAP_METHOD(GobConsole, Cmd_Var));
+ DCmd_Register("varSize", WRAP_METHOD(GobConsole, cmd_varSize));
+ DCmd_Register("var8", WRAP_METHOD(GobConsole, cmd_var8));
+ DCmd_Register("var16", WRAP_METHOD(GobConsole, cmd_var16));
+ DCmd_Register("var32", WRAP_METHOD(GobConsole, cmd_var32));
+ DCmd_Register("varString", WRAP_METHOD(GobConsole, cmd_varString));
}
GobConsole::~GobConsole() {
@@ -42,22 +46,102 @@
void GobConsole::postEnter() {
}
-bool GobConsole::Cmd_Var(int argc, const char **argv) {
+bool GobConsole::cmd_varSize(int argc, const char **argv) {
+ DebugPrintf("Size of the variable space: %d bytes\n", _vm->_inter->_variables->getSize());
+ return true;
+}
+
+bool GobConsole::cmd_var8(int argc, const char **argv) {
if (argc == 1) {
- DebugPrintf("Usage: var <var> (<value>)\n");
+ DebugPrintf("Usage: var8 <var offset> (<value>)\n");
return true;
}
uint32 varNum = atoi(argv[1]);
+ if (varNum >= _vm->_inter->_variables->getSize()) {
+ DebugPrintf("Variable offset out of range\n");
+ return true;
+ }
+
if (argc > 2) {
uint32 varVal = atoi(argv[2]);
- _vm->_inter->_variables->writeVar32(varNum, varVal);
+ _vm->_inter->_variables->writeOff8(varNum, varVal);
}
- DebugPrintf("%d = %d\n", varNum, _vm->_inter->_variables->readVar32(varNum));
+ DebugPrintf("var8_%d = %d\n", varNum, _vm->_inter->_variables->readOff8(varNum));
return true;
}
+bool GobConsole::cmd_var16(int argc, const char **argv) {
+ if (argc == 1) {
+ DebugPrintf("Usage: var16 <var offset> (<value>)\n");
+ return true;
+ }
+
+ uint32 varNum = atoi(argv[1]);
+
+ if ((varNum + 1) >= _vm->_inter->_variables->getSize()) {
+ DebugPrintf("Variable offset out of range\n");
+ return true;
+ }
+
+ if (argc > 2) {
+ uint32 varVal = atoi(argv[2]);
+ _vm->_inter->_variables->writeOff16(varNum, varVal);
+ }
+
+ DebugPrintf("var16_%d = %d\n", varNum, _vm->_inter->_variables->readOff16(varNum));
+
+ return true;
+}
+
+bool GobConsole::cmd_var32(int argc, const char **argv) {
+ if (argc == 1) {
+ DebugPrintf("Usage: var32 <var offset> (<value>)\n");
+ return true;
+ }
+
+ uint32 varNum = atoi(argv[1]);
+
+ if ((varNum + 3) >= _vm->_inter->_variables->getSize()) {
+ DebugPrintf("Variable offset out of range\n");
+ return true;
+ }
+
+ if (argc > 2) {
+ uint32 varVal = atoi(argv[2]);
+ _vm->_inter->_variables->writeOff32(varNum, varVal);
+ }
+
+ DebugPrintf("var8_%d = %d\n", varNum, _vm->_inter->_variables->readOff32(varNum));
+
+ return true;
+}
+
+bool GobConsole::cmd_varString(int argc, const char **argv) {
+ if (argc == 1) {
+ DebugPrintf("Usage: varString <var offset> (<value>)\n");
+ return true;
+ }
+
+ uint32 varNum = atoi(argv[1]);
+
+ if (varNum >= _vm->_inter->_variables->getSize()) {
+ DebugPrintf("Variable offset out of range\n");
+ return true;
+ }
+
+ if (argc > 2) {
+ uint32 maxLength = _vm->_inter->_variables->getSize() - varNum;
+
+ Common::strlcpy(_vm->_inter->_variables->getAddressOffString(varNum), argv[2], maxLength);
+ }
+
+ DebugPrintf("varString_%d = \"%s\"\n", varNum, _vm->_inter->_variables->getAddressOffString(varNum));
+
+ return true;
+}
+
} // End of namespace Gob
Modified: scummvm/trunk/engines/gob/console.h
===================================================================
--- scummvm/trunk/engines/gob/console.h 2010-10-16 17:06:10 UTC (rev 53543)
+++ scummvm/trunk/engines/gob/console.h 2010-10-16 17:25:08 UTC (rev 53544)
@@ -44,7 +44,11 @@
private:
GobEngine *_vm;
- bool Cmd_Var(int argc, const char **argv);
+ bool cmd_varSize(int argc, const char **argv);
+ bool cmd_var8(int argc, const char **argv);
+ bool cmd_var16(int argc, const char **argv);
+ bool cmd_var32(int argc, const char **argv);
+ bool cmd_varString(int argc, const char **argv);
};
} // End of namespace Mohawk
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list