PEGASUS: Add a debugger command to die

This commit is contained in:
Matthew Hoops 2011-09-26 09:29:31 -04:00
parent e412b62ffc
commit e343e4c5d8
2 changed files with 27 additions and 1 deletions

View File

@ -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

View File

@ -38,6 +38,8 @@ public:
virtual ~PegasusConsole();
private:
bool Cmd_Die(int argc, const char **argv);
PegasusEngine *_vm;
};