aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/debugger.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2017-12-27 00:32:51 -0500
committerPaul Gilbert2017-12-27 00:32:51 -0500
commit073380ffb76de78c77863d01aa41f2f17b62d00d (patch)
treef282fb9f7b3ff1b475cb969a82997a193de427ef /engines/xeen/debugger.cpp
parentf8f2058d4c7f885c8b2b178d8e9eb96304915f2a (diff)
downloadscummvm-rg350-073380ffb76de78c77863d01aa41f2f17b62d00d.tar.gz
scummvm-rg350-073380ffb76de78c77863d01aa41f2f17b62d00d.tar.bz2
scummvm-rg350-073380ffb76de78c77863d01aa41f2f17b62d00d.zip
XEEN: Added debug commands for changing map & position
Diffstat (limited to 'engines/xeen/debugger.cpp')
-rw-r--r--engines/xeen/debugger.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/engines/xeen/debugger.cpp b/engines/xeen/debugger.cpp
index ee96d5c4a4..5128aa6553 100644
--- a/engines/xeen/debugger.cpp
+++ b/engines/xeen/debugger.cpp
@@ -50,6 +50,8 @@ Debugger::Debugger(XeenEngine *vm) : GUI::Debugger(), _vm(vm) {
registerCmd("dump", WRAP_METHOD(Debugger, cmdDump));
registerCmd("gold", WRAP_METHOD(Debugger, cmdGold));
registerCmd("gems", WRAP_METHOD(Debugger, cmdGems));
+ registerCmd("map", WRAP_METHOD(Debugger, cmdMap));
+ registerCmd("pos", WRAP_METHOD(Debugger, cmdPos));
_spellId = -1;
}
@@ -139,4 +141,41 @@ bool Debugger::cmdGems(int argc, const char **argv) {
return true;
}
+bool Debugger::cmdMap(int argc, const char **argv) {
+ FileManager &files = *g_vm->_files;
+ Map &map = *g_vm->_map;
+ Party &party = *g_vm->_party;
+
+ if (argc < 2) {
+ debugPrintf("map mapId [ sideNum [ xp, yp ]]\n");
+ return true;
+ } else {
+ int mapId = strToInt(argv[1]);
+ bool side = argc < 3 ? g_vm->_files->_isDarkCc : strToInt(argv[2]) != 0;
+ int x = argc < 4 ? 8 : strToInt(argv[3]);
+ int y = argc < 5 ? 8 : strToInt(argv[4]);
+
+ map._loadDarkSide = side;
+ map.load(mapId);
+ party._mazePosition.x = x;
+ party._mazePosition.y = y;
+ party._mazeDirection = DIR_NORTH;
+ return false;
+ }
+}
+
+bool Debugger::cmdPos(int argc, const char **argv) {
+ Party &party = *g_vm->_party;
+
+ if (argc < 3) {
+ debugPrintf("pos xp, yp\n");
+ return true;
+ } else {
+ party._mazePosition.x = strToInt(argv[1]);
+ party._mazePosition.y = strToInt(argv[2]);
+ party._stepped = true;
+ return true;
+ }
+}
+
} // End of namespace Xeen