aboutsummaryrefslogtreecommitdiff
path: root/engines/dm/console.cpp
diff options
context:
space:
mode:
authorBendegúz Nagy2016-08-26 22:51:17 +0200
committerBendegúz Nagy2016-08-26 23:02:22 +0200
commit50f3cfa625e338276e8a4d38836227877ab93e3a (patch)
tree1b19f1bf9c5ae2fdff42a3e9dca14ce6849241dd /engines/dm/console.cpp
parent36395c5b268e80d01ceda2924a69c0e0d293f220 (diff)
downloadscummvm-rg350-50f3cfa625e338276e8a4d38836227877ab93e3a.tar.gz
scummvm-rg350-50f3cfa625e338276e8a4d38836227877ab93e3a.tar.bz2
scummvm-rg350-50f3cfa625e338276e8a4d38836227877ab93e3a.zip
DM: Add debug command godmode
Diffstat (limited to 'engines/dm/console.cpp')
-rw-r--r--engines/dm/console.cpp42
1 files changed, 40 insertions, 2 deletions
diff --git a/engines/dm/console.cpp b/engines/dm/console.cpp
index e2618507f9..a1600661bc 100644
--- a/engines/dm/console.cpp
+++ b/engines/dm/console.cpp
@@ -30,6 +30,44 @@
namespace DM {
-Console::Console(DM::DMEngine* vm) : _vm(vm) {}
+Console::Console(DM::DMEngine* vm) : _vm(vm) {
+ _debugGodmodeMana = false;
+ _debugGodmodeHP = false;
+ _debugGodmodeStamina = false;
-} \ No newline at end of file
+ registerCmd("godmode", WRAP_METHOD(Console, Cmd_godmode));
+}
+
+bool Console::Cmd_godmode(int argc, const char** argv) {
+ if (argc < 3)
+ goto argumentError;
+
+ bool setFlagTo;
+
+ if (strcmp("on", argv[2]) == 0) {
+ setFlagTo = true;
+ } else if (strcmp("off", argv[2]) == 0) {
+ setFlagTo = false;
+ } else
+ goto argumentError;
+
+ if (strcmp("all", argv[1]) == 0) {
+ _debugGodmodeHP = _debugGodmodeMana = _debugGodmodeStamina = setFlagTo;
+ } else if (strcmp("mana", argv[1]) == 0) {
+ _debugGodmodeMana = setFlagTo;
+ } else if (strcmp("hp", argv[1]) == 0) {
+ _debugGodmodeHP = setFlagTo;
+ } else if (strcmp("stamina", argv[1]) == 0) {
+ _debugGodmodeStamina = setFlagTo;
+ } else
+ goto argumentError;
+
+ debugPrintf("God mode set for %s to %s\n", argv[1], argv[2]);
+ return true;
+
+argumentError:
+ debugPrintf("Usage: %s <all/mana/hp/stamina> <on/off>\n", argv[0]);
+ return true;
+}
+
+}