summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/deh_cheat.c10
-rw-r--r--src/deh_main.c15
-rw-r--r--src/deh_main.h1
3 files changed, 24 insertions, 2 deletions
diff --git a/src/deh_cheat.c b/src/deh_cheat.c
index f501adbf..89e5d219 100644
--- a/src/deh_cheat.c
+++ b/src/deh_cheat.c
@@ -120,7 +120,10 @@ static void DEH_CheatParseLine(deh_context_t *context, char *line, void *tag)
break;
}
- cheat->seq->sequence[i] = unsvalue[i];
+ if (deh_apply_cheats)
+ {
+ cheat->seq->sequence[i] = unsvalue[i];
+ }
++i;
// Absolute limit - don't exceed
@@ -132,7 +135,10 @@ static void DEH_CheatParseLine(deh_context_t *context, char *line, void *tag)
}
}
- cheat->seq->sequence[i] = '\0';
+ if (deh_apply_cheats)
+ {
+ cheat->seq->sequence[i] = '\0';
+ }
}
deh_section_t deh_section_cheat =
diff --git a/src/deh_main.c b/src/deh_main.c
index b70a3384..616b30e0 100644
--- a/src/deh_main.c
+++ b/src/deh_main.c
@@ -67,6 +67,10 @@ boolean deh_allow_long_strings = false;
boolean deh_allow_long_cheats = false;
+// If false, dehacked cheat replacements are ignored.
+
+boolean deh_apply_cheats = true;
+
//
// List of section types:
//
@@ -382,6 +386,17 @@ void DEH_Init(void)
InitialiseSections();
//!
+ // @category mod
+ //
+ // Ignore cheats in dehacked files.
+ //
+
+ if (M_CheckParm("-nocheats") > 0)
+ {
+ deh_apply_cheats = false;
+ }
+
+ //!
// @arg <files>
// @category mod
//
diff --git a/src/deh_main.h b/src/deh_main.h
index 388c56de..6afe07f3 100644
--- a/src/deh_main.h
+++ b/src/deh_main.h
@@ -61,6 +61,7 @@ char *DEH_String(char *s);
extern boolean deh_allow_long_strings;
extern boolean deh_allow_long_cheats;
+extern boolean deh_apply_cheats;
#endif /* #ifndef DEH_MAIN_H */