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:
+3
-2
@@ -674,9 +674,10 @@ enum optset_restrictions {
|
|||||||
set_gameview = 3, /* may be set via extern program, displayed in game */
|
set_gameview = 3, /* may be set via extern program, displayed in game */
|
||||||
set_in_game = 4, /* may be set via extern program or set in the game */
|
set_in_game = 4, /* may be set via extern program or set in the game */
|
||||||
set_wizonly = 5, /* may be set set in the game if wizmode */
|
set_wizonly = 5, /* may be set set in the game if wizmode */
|
||||||
set_hidden = 6 /* placeholder for prefixed entries, never show it */
|
set_wiznofuz = 6, /* wizard-mode only, but not by fuzzer */
|
||||||
|
set_hidden = 7 /* placeholder for prefixed entries, never show it */
|
||||||
};
|
};
|
||||||
#define SET__IS_VALUE_VALID(s) ((s < set_in_sysconf) || (s > set_wizonly))
|
#define SET__IS_VALUE_VALID(s) ((s < set_in_sysconf) || (s > set_wiznofuz))
|
||||||
|
|
||||||
#define FEATURE_NOTICE_VER(major, minor, patch) \
|
#define FEATURE_NOTICE_VER(major, minor, patch) \
|
||||||
(((unsigned long) major << 24) | ((unsigned long) minor << 16) \
|
(((unsigned long) major << 24) | ((unsigned long) minor << 16) \
|
||||||
|
|||||||
@@ -180,6 +180,14 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
|||||||
Yes, Yes, No, No, NoAlias,
|
Yes, Yes, No, No, NoAlias,
|
||||||
"load DECGraphics display symbols into symset")
|
"load DECGraphics display symbols into symset")
|
||||||
#endif
|
#endif
|
||||||
|
NHOPTB(debug_fuzzer, Advanced, 0, opt_in, set_wiznofuz,
|
||||||
|
Off, Yes, No, No, NoAlias, &iflags.debug_fuzzer)
|
||||||
|
NHOPTB(debug_hunger, Advanced, 0, opt_in, set_wiznofuz,
|
||||||
|
Off, Yes, No, No, NoAlias, &iflags.debug_hunger)
|
||||||
|
NHOPTB(debug_mongen, Advanced, 0, opt_in, set_wiznofuz,
|
||||||
|
Off, Yes, No, No, NoAlias, &iflags.debug_mongen)
|
||||||
|
NHOPTB(debug_overwrite_stairs, Advanced, 0, opt_in, set_wiznofuz,
|
||||||
|
Off, Yes, No, No, NoAlias, &iflags.debug_overwrite_stairs)
|
||||||
NHOPTC(disclose, Advanced, sizeof flags.end_disclose * 2,
|
NHOPTC(disclose, Advanced, sizeof flags.end_disclose * 2,
|
||||||
opt_in, set_in_game,
|
opt_in, set_in_game,
|
||||||
Yes, Yes, No, Yes, NoAlias,
|
Yes, Yes, No, Yes, NoAlias,
|
||||||
|
|||||||
+14
-1
@@ -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))
|
if (!g.opt_initial && (allopt[optidx].setwhere == set_in_config))
|
||||||
return optn_err;
|
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);
|
op = string_for_opt(opts, TRUE);
|
||||||
if (op != empty_optstr) {
|
if (op != empty_optstr) {
|
||||||
int ln;
|
int ln;
|
||||||
@@ -8090,7 +8094,7 @@ doset(void) /* changing options via menu by Per Liboriussen */
|
|||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
startpass = set_gameview;
|
startpass = set_gameview;
|
||||||
endpass = (wizard) ? set_wizonly : set_in_game;
|
endpass = (wizard) ? set_wiznofuz : set_in_game;
|
||||||
|
|
||||||
if (!made_fmtstr && !iflags.menu_tab_sep) {
|
if (!made_fmtstr && !iflags.menu_tab_sep) {
|
||||||
Sprintf(fmtstr_doset, "%%s%%-%us [%%s]",
|
Sprintf(fmtstr_doset, "%%s%%-%us [%%s]",
|
||||||
@@ -8114,6 +8118,9 @@ doset(void) /* changing options via menu by Per Liboriussen */
|
|||||||
continue; /* obsolete */
|
continue; /* obsolete */
|
||||||
if (allopt[i].setwhere == set_wizonly && !wizard)
|
if (allopt[i].setwhere == set_wizonly && !wizard)
|
||||||
continue;
|
continue;
|
||||||
|
if (allopt[i].setwhere == set_wiznofuz
|
||||||
|
&& (!wizard || iflags.debug_fuzzer))
|
||||||
|
continue;
|
||||||
if ((is_wc_option(name) && !wc_supported(name))
|
if ((is_wc_option(name) && !wc_supported(name))
|
||||||
|| (is_wc2_option(name) && !wc2_supported(name)))
|
|| (is_wc2_option(name) && !wc2_supported(name)))
|
||||||
continue;
|
continue;
|
||||||
@@ -8729,6 +8736,9 @@ option_help(void)
|
|||||||
if ((allopt[i].opttyp != BoolOpt || !allopt[i].addr)
|
if ((allopt[i].opttyp != BoolOpt || !allopt[i].addr)
|
||||||
|| (allopt[i].setwhere == set_wizonly && !wizard))
|
|| (allopt[i].setwhere == set_wizonly && !wizard))
|
||||||
continue;
|
continue;
|
||||||
|
if (allopt[i].setwhere == set_wiznofuz
|
||||||
|
&& (!wizard || iflags.debug_fuzzer))
|
||||||
|
continue;
|
||||||
optname = allopt[i].name;
|
optname = allopt[i].name;
|
||||||
if ((is_wc_option(optname) && !wc_supported(optname))
|
if ((is_wc_option(optname) && !wc_supported(optname))
|
||||||
|| (is_wc2_option(optname) && !wc2_supported(optname)))
|
|| (is_wc2_option(optname) && !wc2_supported(optname)))
|
||||||
@@ -8743,6 +8753,9 @@ option_help(void)
|
|||||||
if (allopt[i].opttyp != CompOpt
|
if (allopt[i].opttyp != CompOpt
|
||||||
|| (allopt[i].setwhere == set_wizonly && !wizard))
|
|| (allopt[i].setwhere == set_wizonly && !wizard))
|
||||||
continue;
|
continue;
|
||||||
|
if (allopt[i].setwhere == set_wiznofuz
|
||||||
|
&& (!wizard || iflags.debug_fuzzer))
|
||||||
|
continue;
|
||||||
optname = allopt[i].name;
|
optname = allopt[i].name;
|
||||||
if ((is_wc_option(optname) && !wc_supported(optname))
|
if ((is_wc_option(optname) && !wc_supported(optname))
|
||||||
|| (is_wc2_option(optname) && !wc2_supported(optname)))
|
|| (is_wc2_option(optname) && !wc2_supported(optname)))
|
||||||
|
|||||||
Reference in New Issue
Block a user