From e343e4c5d816ffb5502f44dfa7f49fc8c2bcca24 Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Mon, 26 Sep 2011 09:29:31 -0400 Subject: PEGASUS: Add a debugger command to die --- engines/pegasus/console.cpp | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'engines/pegasus/console.cpp') 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 \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 -- cgit v1.2.3