aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/console.cpp
diff options
context:
space:
mode:
authorSven Hesse2011-08-26 11:49:44 +0200
committerSven Hesse2011-08-26 11:50:37 +0200
commit5bcb89852fadb3f5716a52b467a229dda5fed347 (patch)
tree25f63150c6809dcc217844aa2471f8b593e4aa94 /engines/gob/console.cpp
parent21fd6a2e90d655c47f1e69672ac65fd29b235fd8 (diff)
downloadscummvm-rg350-5bcb89852fadb3f5716a52b467a229dda5fed347.tar.gz
scummvm-rg350-5bcb89852fadb3f5716a52b467a229dda5fed347.tar.bz2
scummvm-rg350-5bcb89852fadb3f5716a52b467a229dda5fed347.zip
GOB: Add a console command to dump the whole variable space
Diffstat (limited to 'engines/gob/console.cpp')
-rw-r--r--engines/gob/console.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/engines/gob/console.cpp b/engines/gob/console.cpp
index b8aed37727..e7296fb81b 100644
--- a/engines/gob/console.cpp
+++ b/engines/gob/console.cpp
@@ -29,6 +29,7 @@ namespace Gob {
GobConsole::GobConsole(GobEngine *vm) : GUI::Debugger(), _vm(vm) {
DCmd_Register("varSize", WRAP_METHOD(GobConsole, cmd_varSize));
+ DCmd_Register("dumpVars", WRAP_METHOD(GobConsole, cmd_dumpVars));
DCmd_Register("var8", WRAP_METHOD(GobConsole, cmd_var8));
DCmd_Register("var16", WRAP_METHOD(GobConsole, cmd_var16));
DCmd_Register("var32", WRAP_METHOD(GobConsole, cmd_var32));
@@ -44,6 +45,23 @@ bool GobConsole::cmd_varSize(int argc, const char **argv) {
return true;
}
+bool GobConsole::cmd_dumpVars(int argc, const char **argv) {
+ if (!_vm->_inter->_variables)
+ return true;
+
+ Common::DumpFile file;
+
+ if (!file.open("variables.dmp"))
+ return true;
+
+ file.write(_vm->_inter->_variables->getAddressOff8(0), _vm->_inter->_variables->getSize());
+
+ file.flush();
+ file.close();
+
+ return true;
+}
+
bool GobConsole::cmd_var8(int argc, const char **argv) {
if (argc == 1) {
DebugPrintf("Usage: var8 <var offset> (<value>)\n");