aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/debugger.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2014-05-20 07:31:56 +0300
committerFilippos Karapetis2014-05-20 07:31:56 +0300
commit5a87fd42f06eae1f19671ea6e32b9f5bd6b1f60d (patch)
treef698a80ab11747e7e04c09a28c5d8a522bdc8914 /engines/mads/debugger.cpp
parent59d7f8bfc00456eb34357d2eba12223f80c0f0f9 (diff)
downloadscummvm-rg350-5a87fd42f06eae1f19671ea6e32b9f5bd6b1f60d.tar.gz
scummvm-rg350-5a87fd42f06eae1f19671ea6e32b9f5bd6b1f60d.tar.bz2
scummvm-rg350-5a87fd42f06eae1f19671ea6e32b9f5bd6b1f60d.zip
MADS: Add more debugger commands for items
Diffstat (limited to 'engines/mads/debugger.cpp')
-rw-r--r--engines/mads/debugger.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/engines/mads/debugger.cpp b/engines/mads/debugger.cpp
index 8baafddc69..0b69ee81fb 100644
--- a/engines/mads/debugger.cpp
+++ b/engines/mads/debugger.cpp
@@ -41,6 +41,8 @@ Debugger::Debugger(MADSEngine *vm) : GUI::Debugger(), _vm(vm) {
DCmd_Register("show_quote", WRAP_METHOD(Debugger, Cmd_ShowQuote));
DCmd_Register("show_vocab", WRAP_METHOD(Debugger, Cmd_ShowVocab));
DCmd_Register("dump_vocab", WRAP_METHOD(Debugger, Cmd_DumpVocab));
+ DCmd_Register("show_item", WRAP_METHOD(Debugger, Cmd_ShowItem));
+ DCmd_Register("dump_items", WRAP_METHOD(Debugger, Cmd_DumpItems));
DCmd_Register("item", WRAP_METHOD(Debugger, Cmd_Item));
}
@@ -242,6 +244,52 @@ bool Debugger::Cmd_DumpVocab(int argc, const char **argv) {
return true;
}
+bool Debugger::Cmd_ShowItem(int argc, const char **argv) {
+ InventoryObjects &objects = _vm->_game->_objects;
+
+ if (argc != 2) {
+ for (uint32 i = 0; i < objects.size(); i++) {
+ Common::String desc = _vm->_game->_scene.getVocab(objects[i]._descId);
+ DebugPrintf("%03d: '%s'\n", i, desc.c_str());
+ }
+ } else {
+ int vocabId = strToInt(argv[1]);
+ Common::String desc = _vm->_game->_scene.getVocab(objects[vocabId]._descId);
+ DebugPrintf("%03d: '%s'\n", vocabId, desc.c_str());
+ }
+
+ return true;
+}
+
+bool Debugger::Cmd_DumpItems(int argc, const char **argv) {
+ InventoryObjects &objects = _vm->_game->_objects;
+
+ Common::DumpFile outFile;
+ outFile.open("items.txt");
+
+ for (uint32 i = 0; i < objects.size(); i++) {
+ Common::String curId = Common::String::format("%d", i);
+ Common::String desc = _vm->_game->_scene.getVocab(objects[i]._descId);
+ desc.toUppercase();
+
+ for (uint j = 0; j < desc.size(); j++) {
+ if (desc[j] == ' ' || desc[j] == '-')
+ desc.setChar('_', j);
+ }
+
+ Common::String cur = "\tOBJ_" + desc + " = " + curId + ",\n";
+
+ outFile.writeString(cur.c_str());
+ }
+
+ outFile.flush();
+ outFile.close();
+
+ DebugPrintf("Game items dumped\n");
+
+ return true;
+}
+
bool Debugger::Cmd_Item(int argc, const char **argv) {
InventoryObjects &objects = _vm->_game->_objects;