aboutsummaryrefslogtreecommitdiff
path: root/engines/griffon/console.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/griffon/console.cpp')
-rw-r--r--engines/griffon/console.cpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/engines/griffon/console.cpp b/engines/griffon/console.cpp
index f8c51f7a94..4ceb3f8044 100644
--- a/engines/griffon/console.cpp
+++ b/engines/griffon/console.cpp
@@ -27,8 +27,9 @@
namespace Griffon {
Console::Console() {
- _godMode = false;
+ _godMode = kGodModeNone;
registerCmd("godmode", WRAP_METHOD(Console, Cmd_godMode));
+ registerCmd("nodamage", WRAP_METHOD(Console, Cmd_noDamage));
}
bool Console::Cmd_godMode(int argc, const char** argv) {
@@ -38,8 +39,28 @@ bool Console::Cmd_godMode(int argc, const char** argv) {
return true;
}
- _godMode ^= true;
- debugPrintf("God mode is now %s\n", _godMode ? "Enabled" : "Disabled");
+ if (_godMode != kGodModeNone)
+ _godMode = kGodModeNone;
+ else
+ _godMode = kGodModeAll;
+
+ debugPrintf("God mode is now %s\n", _godMode == kGodModeAll ? "Invincibility/Damage" : "Disabled");
+ return true;
+}
+
+bool Console::Cmd_noDamage(int argc, const char** argv) {
+ if (argc != 1) {
+ debugPrintf("Usage: %s\n", argv[0]);
+ debugPrintf("Enables/Disables invincibility\n");
+ return true;
+ }
+
+ if (_godMode != kGodModeNone)
+ _godMode = kGodModeNone;
+ else
+ _godMode = kGodModeNoDamage;
+
+ debugPrintf("God mode is now %s\n", _godMode ? "Invincibility" : "Disabled");
return true;
}