diff options
author | Sven Hesse | 2011-08-26 11:49:44 +0200 |
---|---|---|
committer | Sven Hesse | 2011-08-26 11:50:37 +0200 |
commit | 5bcb89852fadb3f5716a52b467a229dda5fed347 (patch) | |
tree | 25f63150c6809dcc217844aa2471f8b593e4aa94 /engines/gob/console.cpp | |
parent | 21fd6a2e90d655c47f1e69672ac65fd29b235fd8 (diff) | |
download | scummvm-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.cpp | 18 |
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"); |