diff options
author | Matthew Hoops | 2011-09-26 09:29:31 -0400 |
---|---|---|
committer | Matthew Hoops | 2011-09-26 09:29:31 -0400 |
commit | e343e4c5d816ffb5502f44dfa7f49fc8c2bcca24 (patch) | |
tree | 718132106b22d21496df8dea7e2aeede9b6650fe /engines/pegasus | |
parent | e412b62ffce4297da7df8fc4b71a619fa3a89880 (diff) | |
download | scummvm-rg350-e343e4c5d816ffb5502f44dfa7f49fc8c2bcca24.tar.gz scummvm-rg350-e343e4c5d816ffb5502f44dfa7f49fc8c2bcca24.tar.bz2 scummvm-rg350-e343e4c5d816ffb5502f44dfa7f49fc8c2bcca24.zip |
PEGASUS: Add a debugger command to die
Diffstat (limited to 'engines/pegasus')
-rw-r--r-- | engines/pegasus/console.cpp | 26 | ||||
-rw-r--r-- | engines/pegasus/console.h | 2 |
2 files changed, 27 insertions, 1 deletions
diff --git a/engines/pegasus/console.cpp b/engines/pegasus/console.cpp index d6a8c1e2ec..2c1a761ddf 100644 --- a/engines/pegasus/console.cpp +++ b/engines/pegasus/console.cpp @@ -29,10 +29,34 @@ namespace Pegasus { PegasusConsole::PegasusConsole(PegasusEngine *vm) : GUI::Debugger(), _vm(vm) { - // TODO! :P + DCmd_Register("die", WRAP_METHOD(PegasusConsole, Cmd_Die)); } PegasusConsole::~PegasusConsole() { } +bool PegasusConsole::Cmd_Die(int argc, const char **argv) { + if (argc == 1) { + DebugPrintf("Usage: die <death reason>\n"); + return true; + } + + int reason = atoi(argv[1]); + + bool invalidReason = (reason == 0 || reason > kPlayerWonGame); + + if (!invalidReason && _vm->isDemo()) + invalidReason = (reason != kDeathFallOffCliff) && (reason != kDeathEatenByDinosaur) && + (reason != kDeathStranded) && (reason != kPlayerWonGame); + + + if (invalidReason) { + DebugPrintf("Invalid death reason %d\n", reason); + return true; + } + + _vm->die(atoi(argv[1])); + return false; +} + } // End of namespace Pegasus diff --git a/engines/pegasus/console.h b/engines/pegasus/console.h index f544344c24..07adccd54c 100644 --- a/engines/pegasus/console.h +++ b/engines/pegasus/console.h @@ -38,6 +38,8 @@ public: virtual ~PegasusConsole(); private: + bool Cmd_Die(int argc, const char **argv); + PegasusEngine *_vm; }; |