From 691344ca7e8c514a5d6a735e204e9302fcbc846c Mon Sep 17 00:00:00 2001 From: Ori Avtalion Date: Thu, 30 Oct 2008 01:55:15 +0200 Subject: [PATCH] Implemented "give" item debug command --- debugger.cpp | 24 ++++++++++++++++++++++++ debugger.h | 1 + 2 files changed, 25 insertions(+) diff --git a/debugger.cpp b/debugger.cpp index ad0e5cb..5b80ae6 100644 --- a/debugger.cpp +++ b/debugger.cpp @@ -34,6 +34,7 @@ namespace Kom { Debugger::Debugger(KomEngine *vm) : GUI::Debugger(), _vm(vm) { DCmd_Register("room", WRAP_METHOD(Debugger, Cmd_Room)); + DCmd_Register("give", WRAP_METHOD(Debugger, Cmd_Give)); DCmd_Register("proc", WRAP_METHOD(Debugger, Cmd_Proc)); DCmd_Register("day", WRAP_METHOD(Debugger, Cmd_Day)); DCmd_Register("night", WRAP_METHOD(Debugger, Cmd_Night)); @@ -55,6 +56,29 @@ bool Debugger::Cmd_Room(int argc, const char **argv) { return true; } +bool Debugger::Cmd_Give(int argc, const char **argv) { + if (argc == 2) { + uint16 objId = atoi(argv[1]); + if (objId <= 1) { + DebugPrintf("No such object\n"); + return true; + } + + objId--; + Object *obj = _vm->database()->getObj(objId); + if (obj == NULL) { + DebugPrintf("No such object\n"); + return true; + } else { + if (_vm->database()->giveObject(objId, 0, false)) + DebugPrintf("Got %s\n", obj->desc); + else + DebugPrintf("Could not get %s\n", obj->desc); + } + } + return true; +} + bool Debugger::Cmd_Proc(int argc, const char **argv) { if (argc == 2) { uint16 procNum = atoi(argv[1]); diff --git a/debugger.h b/debugger.h index ab57829..278e294 100644 --- a/debugger.h +++ b/debugger.h @@ -39,6 +39,7 @@ class Debugger : public GUI::Debugger { protected: bool Cmd_Room(int argc, const char **argv); + bool Cmd_Give(int argc, const char **argv); bool Cmd_Proc(int argc, const char **argv); bool Cmd_Day(int argc, const char **argv); bool Cmd_Night(int argc, const char **argv);