Expose some debug flags in options

Show and allow changing the debugging flags in options:

debug_fuzzer: turn on the fuzzer
debug_hunger: prevent hunger
debug_mongen: prevent monster generation
debug_overwrite_stairs: allow level generation overwrite stairs

These are wizard-mode only, cannot be set via config file,
and the fuzzer cannot change these either.
This commit is contained in:
Pasi Kallinen
2022-08-17 14:28:04 +03:00
parent 5c7f2945da
commit c05a6f3199
3 changed files with 25 additions and 3 deletions

View File

@@ -4494,6 +4494,10 @@ optfn_boolean(int optidx, int req, boolean negated, char *opts, char *op)
if (!g.opt_initial && (allopt[optidx].setwhere == set_in_config))
return optn_err;
/* options that must NOT come from config file */
if (g.opt_initial && allopt[optidx].setwhere == set_wiznofuz)
return optn_err;
op = string_for_opt(opts, TRUE);
if (op != empty_optstr) {
int ln;
@@ -8090,7 +8094,7 @@ doset(void) /* changing options via menu by Per Liboriussen */
else
#endif
startpass = set_gameview;
endpass = (wizard) ? set_wizonly : set_in_game;
endpass = (wizard) ? set_wiznofuz : set_in_game;
if (!made_fmtstr && !iflags.menu_tab_sep) {
Sprintf(fmtstr_doset, "%%s%%-%us [%%s]",
@@ -8114,6 +8118,9 @@ doset(void) /* changing options via menu by Per Liboriussen */
continue; /* obsolete */
if (allopt[i].setwhere == set_wizonly && !wizard)
continue;
if (allopt[i].setwhere == set_wiznofuz
&& (!wizard || iflags.debug_fuzzer))
continue;
if ((is_wc_option(name) && !wc_supported(name))
|| (is_wc2_option(name) && !wc2_supported(name)))
continue;
@@ -8729,6 +8736,9 @@ option_help(void)
if ((allopt[i].opttyp != BoolOpt || !allopt[i].addr)
|| (allopt[i].setwhere == set_wizonly && !wizard))
continue;
if (allopt[i].setwhere == set_wiznofuz
&& (!wizard || iflags.debug_fuzzer))
continue;
optname = allopt[i].name;
if ((is_wc_option(optname) && !wc_supported(optname))
|| (is_wc2_option(optname) && !wc2_supported(optname)))
@@ -8743,6 +8753,9 @@ option_help(void)
if (allopt[i].opttyp != CompOpt
|| (allopt[i].setwhere == set_wizonly && !wizard))
continue;
if (allopt[i].setwhere == set_wiznofuz
&& (!wizard || iflags.debug_fuzzer))
continue;
optname = allopt[i].name;
if ((is_wc_option(optname) && !wc_supported(optname))
|| (is_wc2_option(optname) && !wc2_supported(optname)))