diff options
Diffstat (limited to 'engines/gob/console.cpp')
-rw-r--r-- | engines/gob/console.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/engines/gob/console.cpp b/engines/gob/console.cpp index e7296fb81b..76ccb70dca 100644 --- a/engines/gob/console.cpp +++ b/engines/gob/console.cpp @@ -24,22 +24,32 @@ #include "gob/gob.h" #include "gob/inter.h" #include "gob/dataio.h" +#include "gob/cheater.h" namespace Gob { -GobConsole::GobConsole(GobEngine *vm) : GUI::Debugger(), _vm(vm) { +GobConsole::GobConsole(GobEngine *vm) : GUI::Debugger(), _vm(vm), _cheater(0) { 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)); DCmd_Register("varString", WRAP_METHOD(GobConsole, cmd_varString)); + DCmd_Register("cheat", WRAP_METHOD(GobConsole, cmd_cheat)); DCmd_Register("listArchives", WRAP_METHOD(GobConsole, cmd_listArchives)); } GobConsole::~GobConsole() { } +void GobConsole::registerCheater(Cheater *cheater) { + _cheater = cheater; +} + +void GobConsole::unregisterCheater() { + _cheater = 0; +} + bool GobConsole::cmd_varSize(int argc, const char **argv) { DebugPrintf("Size of the variable space: %d bytes\n", _vm->_inter->_variables->getSize()); return true; @@ -155,6 +165,13 @@ bool GobConsole::cmd_varString(int argc, const char **argv) { return true; } +bool GobConsole::cmd_cheat(int argc, const char **argv) { + if (_cheater) + return _cheater->cheat(*this); + + return true; +} + bool GobConsole::cmd_listArchives(int argc, const char **argv) { Common::Array<ArchiveInfo> info; |