February 2020 options.c overhaul
combine boolean and compound options into a single allopt[] array for
processing in options.c.
move the definitions of the options into new include/optlist.h file which
uses a set of macros to define them appropriately.
during compile of options.c each option described in include/optlist.h:
1. automatically results in a function prototype for an optfn called
optfn_xxxx (xxxx is the option name).
2. automatically results in an opt_xxxx enum value for referencing
its index throughout options.c (xxxx is the option name).
3. is used to initialize an element of the allopt[] array at index
opt_xxxx (xxxx is the option name) based on the settings in the
NHOPTB, NHOPTC, NHOPTP macros. Those macros only live during the
compilation of include/optlist.h.
each optfn_xxxx() function can be called with a req id of: do_init, do_set,
get_val or do_handler.
req do_init is called from options_init, and if initialization or memory
allocation or other initialization for that particular option is needed,
it can be done in response to the init req.
req do_set is called from parseoptions() for each option it encounters
and the optfn_xxxx() function is expected to react and set the option
based on the string values that parseoptions() passes to it.
req get_val expects each optfn_xxxx() function to write the current
option value into the buffer it is passed.
req do_handler is called during doset() operations in response to player
selections most likely from the 'O' option-setting menu, but only if the
option is identified as having do_handler support in the allopts[]
'has_handler' boolean flag. Not every optfn_xxxx() does.
function special_handling() is eliminated. It's code has been redistributed
to individual handler functions for the option or purpose that they serve.
moved reglyph_darkroom() function from options.c to display.c
This commit is contained in:
@@ -691,8 +691,8 @@ Two things control whether any preference setting appears in the
|
||||
'O' command options menu during the game:
|
||||
1. The option must be marked as being supported by having its
|
||||
bit set in the window_procs wincap or wincap2 mask.
|
||||
2. The option must have its optflag field set to SET_IN_GAME in order
|
||||
to be able to set the option, or marked DISP_IN_GAME if you just
|
||||
2. The option must have its optflag field set to set_in_game in order
|
||||
to be able to set the option, or marked set_gameview if you just
|
||||
want to reveal what the option is set to.
|
||||
Both conditions must be true to be able to see or set the option from
|
||||
within NetHack.
|
||||
@@ -703,8 +703,8 @@ the wc_ options can be altered by calling
|
||||
set_wc_option_mod_status(optmask, status)
|
||||
The default value for the wc2_ options can be altered by calling
|
||||
set_wc2_option_mod_status(optmask, status)
|
||||
In each case, set the option modification status to one of SET_IN_FILE,
|
||||
DISP_IN_GAME, or SET_IN_GAME.
|
||||
In each case, set the option modification status to one of set_in_config,
|
||||
set_gameview, or set_in_game.
|
||||
|
||||
The setting of any wincap or wincap2 option is handled by the NetHack
|
||||
core option processing code. You do not have to provide a parser in
|
||||
@@ -874,7 +874,7 @@ the option's bit in the port's wincap mask. The port can choose to adjust
|
||||
for the change to an option that it receives notification about, or ignore it.
|
||||
The former approach is recommended. If you don't want to deal with a
|
||||
user-initiated setting change, then the port should call
|
||||
set_wc_option_mod_status(mask, SET_IN_FILE) to make the option invisible to
|
||||
set_wc_option_mod_status(mask, set_in_config) to make the option invisible to
|
||||
the user.
|
||||
|
||||
Functions available for the window port to call:
|
||||
@@ -883,16 +883,16 @@ set_wc_option_mod_status(optmask, status)
|
||||
-- Adjust the optflag field for a set of wincap options to
|
||||
specify whether the port wants the option to appear
|
||||
in the 'O' command options menu, The second parameter,
|
||||
"status" can be set to SET_IN_FILE, DISP_IN_GAME,
|
||||
or SET_IN_GAME (SET_IN_FILE implies that the option
|
||||
"status" can be set to set_in_config, set_gameview,
|
||||
or set_in_game (set_in_config implies that the option
|
||||
is completely hidden during the game).
|
||||
|
||||
set_wc2_option_mod_status(optmask, status)
|
||||
-- Adjust the optflag field for a set of wincap2 options to
|
||||
specify whether the port wants the option to appear
|
||||
in the 'O' command options menu, The second parameter,
|
||||
"status" can be set to SET_IN_FILE, DISP_IN_GAME,
|
||||
or SET_IN_GAME (SET_IN_FILE implies that the option
|
||||
"status" can be set to set_in_config, set_gameview,
|
||||
or set_in_game (set_in_config implies that the option
|
||||
is completely hidden during the game).
|
||||
|
||||
set_option_mod_status(optnam, status)
|
||||
|
||||
@@ -127,11 +127,10 @@ struct conditions_t {
|
||||
};
|
||||
extern const struct conditions_t conditions[CONDITION_COUNT];
|
||||
|
||||
enum condchoice { opt_in, opt_out};
|
||||
struct condtests_t {
|
||||
enum blconditions c;
|
||||
const char *useroption;
|
||||
enum condchoice opt;
|
||||
enum optchoice opt;
|
||||
boolean enabled;
|
||||
boolean choice;
|
||||
boolean test;
|
||||
|
||||
@@ -107,6 +107,8 @@ struct sinfo {
|
||||
int in_moveloop;
|
||||
int in_impossible;
|
||||
int in_self_recover;
|
||||
int in_parseoptions; /* in parseoptions */
|
||||
int config_error_ready; /* config_error_add is ready, available */
|
||||
#ifdef PANICLOG
|
||||
int in_paniclog;
|
||||
#endif
|
||||
|
||||
@@ -384,6 +384,7 @@ E void FDECL(flush_screen, (int));
|
||||
E int FDECL(back_to_glyph, (XCHAR_P, XCHAR_P));
|
||||
E int FDECL(zapdir_to_glyph, (int, int, int));
|
||||
E int FDECL(glyph_at, (XCHAR_P, XCHAR_P));
|
||||
E void NDECL(reglyph_darkroom);
|
||||
E void NDECL(set_wall_state);
|
||||
E void FDECL(unset_seenv, (struct rm *, int, int, int, int));
|
||||
E int FDECL(warning_of, (struct monst *));
|
||||
@@ -1847,7 +1848,6 @@ E int FDECL(shiny_obj, (CHAR_P));
|
||||
|
||||
/* ### options.c ### */
|
||||
|
||||
E void NDECL(reglyph_darkroom);
|
||||
E boolean FDECL(match_optname, (const char *, const char *, int, BOOLEAN_P));
|
||||
E void NDECL(initoptions);
|
||||
E void NDECL(initoptions_init);
|
||||
|
||||
@@ -86,6 +86,8 @@ typedef xchar boolean; /* 0 or 1 */
|
||||
#define FALSE ((boolean) 0)
|
||||
#endif
|
||||
|
||||
enum optchoice { opt_in, opt_out};
|
||||
|
||||
/*
|
||||
* type nhsym: loadable symbols go into this type
|
||||
*/
|
||||
|
||||
@@ -497,19 +497,19 @@ enum bodypart_types {
|
||||
#define TELEDS_TELEPORT 2
|
||||
|
||||
/*
|
||||
* Option flags
|
||||
* Each higher number includes the characteristics of the numbers
|
||||
* below it.
|
||||
* option setting restrictions
|
||||
*/
|
||||
/* XXX This should be replaced with a bitmap. */
|
||||
#define SET_IN_SYS 0 /* system config file option only */
|
||||
#define SET_IN_FILE 1 /* config file option only */
|
||||
#define SET_VIA_PROG 2 /* may be set via extern program, not seen in game */
|
||||
#define DISP_IN_GAME 3 /* may be set via extern program, displayed in game \
|
||||
*/
|
||||
#define SET_IN_GAME 4 /* may be set via extern program or set in the game */
|
||||
#define SET_IN_WIZGAME 5 /* may be set set in the game if wizmode */
|
||||
#define SET__IS_VALUE_VALID(s) ((s < SET_IN_SYS) || (s > SET_IN_WIZGAME))
|
||||
|
||||
enum optset_restrictions {
|
||||
set_in_sysconf = 0, /* system config file option only */
|
||||
set_in_config = 1, /* config file option only */
|
||||
set_viaprog = 2, /* may be set via extern program, not seen in game */
|
||||
set_gameview = 3, /* may be set via extern program, displayed in game */
|
||||
set_in_game = 4, /* may be set set in the game if wizmode */
|
||||
set_wizonly = 5, /* may be set via extern program or set in the game */
|
||||
set_hidden = 6 /* placeholder for prefixed entries, never show it */
|
||||
};
|
||||
#define SET__IS_VALUE_VALID(s) ((s < set_in_sysconf) || (s > set_wizonly))
|
||||
|
||||
#define FEATURE_NOTICE_VER(major, minor, patch) \
|
||||
(((unsigned long) major << 24) | ((unsigned long) minor << 16) \
|
||||
|
||||
566
include/optlist.h
Normal file
566
include/optlist.h
Normal file
@@ -0,0 +1,566 @@
|
||||
/* NetHack 3.7 optlist.h */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
#ifndef OPTLIST_H
|
||||
#define OPTLIST_H
|
||||
|
||||
/*
|
||||
* NOTE: If you add (or delete) an option, please review:
|
||||
* doc/options.doc
|
||||
*
|
||||
* It contains how-to info and outlines some required/suggested
|
||||
* updates that should accompany your change.
|
||||
*/
|
||||
|
||||
extern int FDECL(optfn_boolean, (int, int, BOOLEAN_P, char *, char *));
|
||||
enum OptType {BoolOpt, CompOpt};
|
||||
enum Y_N {No, Yes};
|
||||
enum Off_On {Off, On};
|
||||
|
||||
struct allopt_t {
|
||||
const char *name;
|
||||
int minmatch;
|
||||
int expectedbuf;
|
||||
int idx;
|
||||
enum optset_restrictions setwhere;
|
||||
enum OptType opttyp;
|
||||
enum Y_N negateok;
|
||||
enum Y_N valok;
|
||||
enum Y_N dupeok;
|
||||
enum Y_N pfx;
|
||||
boolean opt_in_out, *addr;
|
||||
int FDECL((*optfn), (int, int, BOOLEAN_P, char *, char *));
|
||||
const char *alias;
|
||||
const char *descr;
|
||||
const char *prefixgw;
|
||||
boolean initval, has_handler, unused;
|
||||
};
|
||||
|
||||
#endif /* OPTLIST_H */
|
||||
|
||||
#if defined(NHOPT_PROTO) || defined(NHOPT_ENUM) || defined(NHOPT_PARSE)
|
||||
|
||||
#define NoAlias ((const char *) 0)
|
||||
|
||||
#if defined(NHOPT_PROTO)
|
||||
#define NHOPTB(a, b, c, s, i, n, v, d, al, bp)
|
||||
#define NHOPTC(a, b, c, s, n, v, d, h, al, z) \
|
||||
int FDECL(optfn_##a, (int, int, BOOLEAN_P, char *, char *));
|
||||
#define NHOPTP(a, b, c, s, n, v, d, h, al, z) \
|
||||
int FDECL(pfxfn_##a, (int, int, BOOLEAN_P, char *, char *));
|
||||
|
||||
#elif defined(NHOPT_ENUM)
|
||||
#define NHOPTB(a, b, c, s, i, n, v, d, al, bp) \
|
||||
opt_##a,
|
||||
#define NHOPTC(a, b, c, s, n, v, d, h, al, z) \
|
||||
opt_##a,
|
||||
#define NHOPTP(a, b, c, s, n, v, d, h, al, z) \
|
||||
pfx_##a,
|
||||
|
||||
#elif defined(NHOPT_PARSE)
|
||||
#define NHOPTB(a, b, c, s, i, n, v, d, al, bp) \
|
||||
{ #a, 0, b, opt_##a, s, BoolOpt, n, v, d, No, c, bp, &optfn_boolean, \
|
||||
al, (const char *) 0, (const char *) 0, i, 0, 0 },
|
||||
#define NHOPTC(a, b, c, s, n, v, d, h, al, z) \
|
||||
{ #a, 0, b, opt_##a, s, CompOpt, n, v, d, No, c, (boolean *) 0, &optfn_##a, \
|
||||
al, z, (const char *) 0, Off, h, 0 },
|
||||
#define NHOPTP(a, b, c, s, n, v, d, h, al, z) \
|
||||
{ #a, 0, b, pfx_##a, s, CompOpt, n, v, d, Yes, c, (boolean *) 0, &pfxfn_##a, \
|
||||
al, z, #a, Off, h, 0 },
|
||||
#endif
|
||||
|
||||
/* B:nm, ln, opt_*, setwhere?, on?, negat?, val?, dup?, hndlr? Alias, boolptr */
|
||||
/* C:nm, ln, opt_*, setwhere?, on?, negat?, val?, dup?, hndlr? Alias, descr */
|
||||
/* P:pfx, ln, opt_*, setwhere?, on?, negat?, val?, dup?, hndlr? Alias, descr */
|
||||
|
||||
NHOPTB(acoustics, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.acoustics)
|
||||
NHOPTC(align, 8, opt_in, set_gameview, No, Yes, No, No, NoAlias,
|
||||
"your starting alignment (lawful, neutral, or chaotic)")
|
||||
NHOPTC(align_message, 20, opt_in, set_gameview, Yes, Yes, No, Yes, NoAlias,
|
||||
"message window alignment")
|
||||
NHOPTC(align_status, 20, opt_in, set_gameview, No, Yes, No, Yes, NoAlias,
|
||||
"status window alignment")
|
||||
NHOPTC(altkeyhandler, 20, opt_in, set_in_game, No, Yes, No, No, NoAlias,
|
||||
"alternate key handler")
|
||||
#if defined(SYSFLAGS) && defined(AMIGA)
|
||||
NHOPTB(altmeta, 0, opt_out, set_in_config, On, No, No, No, NoAlias,
|
||||
&sysflags.altmeta)
|
||||
#else
|
||||
#ifdef ALTMETA
|
||||
NHOPTB(altmeta, 0, opt_out, set_in_config, Off, No, No, No, NoAlias,
|
||||
&iflags.altmeta)
|
||||
#else
|
||||
NHOPTB(altmeta, 0, opt_out, set_in_config, Off, No, No, No, NoAlias,
|
||||
(boolean *) 0)
|
||||
#endif
|
||||
#endif
|
||||
NHOPTB(ascii_map, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&iflags.wc_ascii_map)
|
||||
#if defined(SYSFLAGS) && defined(MFLOPPY)
|
||||
NHOPTB(asksavedisk, 0, opt_in, set_gameview, Off, No, No, No, NoAlias,
|
||||
&sysflags.asksavedisk)
|
||||
#else
|
||||
NHOPTB(asksavedisk, 0, opt_in, set_gameview, Off, No, No, No, NoAlias,
|
||||
(boolean *) 0)
|
||||
#endif
|
||||
NHOPTB(autodescribe, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&iflags.autodescribe)
|
||||
NHOPTB(autodig, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&flags.autodig)
|
||||
NHOPTB(autoopen, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.autoopen)
|
||||
NHOPTB(autopickup, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.pickup)
|
||||
NHOPTB(autoquiver, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&flags.autoquiver)
|
||||
NHOPTB(autounlock, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.autounlock)
|
||||
#if defined(MICRO) && !defined(AMIGA)
|
||||
NHOPTB(BIOS, 0, opt_in, set_in_config, Off, Yes, No, No, NoAlias,
|
||||
&iflags.BIOS)
|
||||
#else
|
||||
NHOPTB(BIOS, 0, opt_in, set_in_config, Off, No, No, No, NoAlias,
|
||||
(boolean *) 0)
|
||||
#endif
|
||||
NHOPTB(blind, 0, opt_in, set_in_config, Off, Yes, No, No, NoAlias,
|
||||
&u.uroleplay.blind)
|
||||
NHOPTB(bones, 0, opt_out, set_in_config, On, Yes, No, No, NoAlias,
|
||||
&flags.bones)
|
||||
#ifdef BACKWARD_COMPAT
|
||||
NHOPTC(boulder, 1, opt_in, set_in_game , No, Yes, No, No, NoAlias,
|
||||
"deprecated (use S_boulder in sym file instead)")
|
||||
#endif
|
||||
NHOPTC(catname, PL_PSIZ, opt_in, set_gameview, No, Yes, No, No, NoAlias,
|
||||
"the name of your (first) cat (e.g., catname:Tabby)")
|
||||
#ifdef INSURANCE
|
||||
NHOPTB(checkpoint, 0, opt_out, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&flags.ins_chkpt)
|
||||
#else
|
||||
NHOPTB(checkpoint, 0, opt_out, set_in_game, Off, No, No, No, NoAlias,
|
||||
(boolean *) 0)
|
||||
#endif
|
||||
NHOPTB(clicklook, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&iflags.clicklook)
|
||||
NHOPTB(cmdassist, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&iflags.cmdassist)
|
||||
NHOPTB(color, 0, opt_in, set_in_game, Off, Yes, No, No, "colour",
|
||||
&iflags.wc_color)
|
||||
NHOPTB(confirm, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.confirm)
|
||||
#ifdef CURSES_GRAPHICS
|
||||
NHOPTC(cursesgraphics, 70, opt_in, set_in_config, No, Yes, No, No, NoAlias,
|
||||
"load curses display symbols")
|
||||
#endif
|
||||
NHOPTB(dark_room, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.dark_room)
|
||||
#ifdef BACKWARD_COMPAT
|
||||
NHOPTC(DECgraphics, 70, opt_in, set_in_config, Yes, Yes, No, No, NoAlias,
|
||||
"load DECGraphics display symbols")
|
||||
#endif
|
||||
NHOPTC(disclose, sizeof flags.end_disclose * 2,
|
||||
opt_in, set_in_game, Yes, Yes, No, Yes, NoAlias,
|
||||
"the kinds of information to disclose at end of game")
|
||||
NHOPTC(dogname, PL_PSIZ, opt_in, set_gameview, No, Yes, No, No, NoAlias,
|
||||
"the name of your (first) dog (e.g., dogname:Fang)")
|
||||
NHOPTC(dungeon, MAXDCHARS + 1,opt_in, set_in_config, No, Yes, No, No, NoAlias,
|
||||
"the symbols to use in drawing the dungeon map")
|
||||
NHOPTC(effects, MAXECHARS + 1, opt_in, set_in_config, No, Yes, No, No, NoAlias,
|
||||
"the symbols to use in drawing special effects")
|
||||
NHOPTB(eight_bit_tty, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&iflags.wc_eight_bit_input)
|
||||
NHOPTB(extmenu, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&iflags.extmenu)
|
||||
NHOPTB(female, 0, opt_in, set_in_config, Off, Yes, No, No, "male",
|
||||
&flags.female)
|
||||
NHOPTB(fixinv, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.invlet_constant)
|
||||
NHOPTC(font_map, 40, opt_in, set_gameview, Yes, Yes, Yes, No, NoAlias,
|
||||
"the font to use in the map window")
|
||||
NHOPTC(font_menu, 40, opt_in, set_gameview, Yes, Yes, Yes, No, NoAlias,
|
||||
"the font to use in menus")
|
||||
NHOPTC(font_message, 40, opt_in, set_gameview, Yes, Yes, Yes, No, NoAlias,
|
||||
"the font to use in the message window")
|
||||
NHOPTC(font_size_map, 20, opt_in, set_gameview, Yes, Yes, Yes, No, NoAlias,
|
||||
"the size of the map font")
|
||||
NHOPTC(font_size_menu, 20, opt_in, set_gameview, Yes, Yes, Yes, No, NoAlias,
|
||||
"the size of the menu font")
|
||||
NHOPTC(font_size_message, 20, opt_in, set_gameview, Yes, Yes, Yes, No, NoAlias,
|
||||
"the size of the message font")
|
||||
NHOPTC(font_size_status, 20, opt_in, set_gameview, Yes, Yes, Yes, No, NoAlias,
|
||||
"the size of the status font")
|
||||
NHOPTC(font_size_text, 20, opt_in, set_gameview, Yes, Yes, Yes, No, NoAlias,
|
||||
"the size of the text font")
|
||||
NHOPTC(font_status, 40, opt_in, set_gameview, Yes, Yes, Yes, No, NoAlias,
|
||||
"the font to use in status window")
|
||||
NHOPTC(font_text, 40, opt_in, set_gameview, Yes, Yes, Yes, No, NoAlias,
|
||||
"the font to use in text windows")
|
||||
NHOPTB(force_invmenu, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&iflags.force_invmenu)
|
||||
NHOPTC(fruit, PL_FSIZ, opt_in, set_in_game, No, Yes, No, No, NoAlias,
|
||||
"the name of a fruit you enjoy eating")
|
||||
NHOPTB(fullscreen, 0, opt_in, set_in_config, Off, Yes, No, No, NoAlias,
|
||||
&iflags.wc2_fullscreen)
|
||||
NHOPTC(gender, 8, opt_in, set_gameview, No, Yes, No, No, NoAlias,
|
||||
"your starting gender (male or female)")
|
||||
NHOPTB(goldX, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&flags.goldX)
|
||||
NHOPTB(guicolor, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&iflags.wc2_guicolor)
|
||||
NHOPTB(help, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.help)
|
||||
NHOPTB(herecmd_menu, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&iflags.herecmd_menu)
|
||||
#if defined(MAC)
|
||||
NHOPTC(hicolor, 15, opt_in, set_in_config, No, Yes, No, No, NoAlias,
|
||||
"same as palette, only order is reversed")
|
||||
#endif
|
||||
NHOPTB(hilite_pet, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&iflags.wc_hilite_pet)
|
||||
NHOPTB(hilite_pile, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&iflags.hilite_pile)
|
||||
#ifdef STATUS_HILITES
|
||||
NHOPTC(hilite_status, 13, opt_out, set_in_game, Yes, Yes, Yes, No, NoAlias,
|
||||
"hilite_status")
|
||||
#endif
|
||||
NHOPTB(hitpointbar, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&iflags.wc2_hitpointbar)
|
||||
NHOPTC(horsename, PL_PSIZ, opt_in, set_gameview, No, Yes, No, No, NoAlias,
|
||||
"the name of your (first) horse (e.g., horsename:Silver)")
|
||||
#ifdef BACKWARD_COMPAT
|
||||
NHOPTC(IBMgraphics, 70, opt_in, set_in_config, Yes, Yes, No, No, NoAlias,
|
||||
"load IBMGraphics display symbols")
|
||||
#endif
|
||||
#ifndef MAC
|
||||
NHOPTB(ignintr, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&flags.ignintr)
|
||||
#else
|
||||
NHOPTB(ignintr, 0, opt_in, set_in_config, Off, Yes, No, No, NoAlias,
|
||||
(boolean *) 0)
|
||||
#endif
|
||||
NHOPTB(implicit_uncursed, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.implicit_uncursed)
|
||||
NHOPTB(large_font, 0, opt_in, set_in_config, Off, Yes, No, No, NoAlias,
|
||||
&iflags.obsolete)
|
||||
NHOPTB(legacy, 0, opt_out, set_in_config, On, Yes, No, No, NoAlias,
|
||||
&flags.legacy)
|
||||
NHOPTB(lit_corridor, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&flags.lit_corridor)
|
||||
NHOPTB(lootabc, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&flags.lootabc)
|
||||
#ifdef BACKWARD_COMPAT
|
||||
#ifdef MAC_GRAPHICS_ENV
|
||||
NHOPTC(Macgraphics, 70, opt_in, set_in_config, No, Yes, No, No, NoAlias,
|
||||
"load MACGraphics display symbols")
|
||||
#endif
|
||||
#endif
|
||||
NHOPTB(mail, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.biff)
|
||||
NHOPTC(map_mode, 20, opt_in, set_gameview, Yes, Yes, No, No, NoAlias,
|
||||
"map display mode under Windows")
|
||||
NHOPTB(mention_decor, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&flags.mention_decor)
|
||||
NHOPTB(mention_walls, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&flags.mention_walls)
|
||||
NHOPTC(menu_deselect_all, 4, opt_in, set_in_config, No, No, No, No, NoAlias,
|
||||
"deselect all items in a menu")
|
||||
NHOPTC(menu_deselect_page, 4, opt_in, set_in_config, No, No, No, No, NoAlias,
|
||||
"deselect all items on this page of a menu")
|
||||
NHOPTC(menu_first_page, 4, opt_in, set_in_config, No, No, No, No, NoAlias,
|
||||
"jump to the first page in a menu")
|
||||
NHOPTC(menu_headings, 4, opt_in, set_in_game, No, Yes, No, Yes, NoAlias,
|
||||
"display style for menu headings")
|
||||
NHOPTC(menu_invert_all, 4, opt_in, set_in_config, No, No, No, No, NoAlias,
|
||||
"invert all items in a menu")
|
||||
NHOPTC(menu_invert_page, 4, opt_in, set_in_config, No, No, No, No, NoAlias,
|
||||
"invert all items on this page of a menu")
|
||||
NHOPTC(menu_last_page, 4, opt_in, set_in_config, No, No, No, No, NoAlias,
|
||||
"jump to the last page in a menu")
|
||||
NHOPTC(menu_next_page, 4, opt_in, set_in_config, No, No, No, No, NoAlias,
|
||||
"goto the next menu page")
|
||||
NHOPTB(menu_objsyms, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&iflags.menu_head_objsym)
|
||||
#ifdef TTY_GRAPHICS
|
||||
NHOPTB(menu_overlay, 0, opt_in, set_in_game, On, No, No, No, NoAlias,
|
||||
&iflags.menu_overlay)
|
||||
#else
|
||||
NHOPTB(menu_overlay, 0, opt_in, set_in_config, Off, No, No, No, NoAlias,
|
||||
(boolean *) 0)
|
||||
#endif
|
||||
NHOPTC(menu_previous_page, 4, opt_in, set_in_config, No, No, No, No, NoAlias,
|
||||
"goto the previous menu page")
|
||||
NHOPTC(menu_search, 4, opt_in, set_in_config, No, No, No, No, NoAlias,
|
||||
"search for a menu item")
|
||||
NHOPTC(menu_select_all, 4, opt_in, set_in_config, No, No, No, No, NoAlias,
|
||||
"select all items in a menu")
|
||||
NHOPTC(menu_select_page, 4, opt_in, set_in_config, No, No, No, No, NoAlias,
|
||||
"select all items on this page of a menu")
|
||||
NHOPTB(menu_tab_sep, 0, opt_in, set_wizonly, Off, Yes, No, No, NoAlias,
|
||||
&iflags.menu_tab_sep)
|
||||
NHOPTB(menucolors, 0, opt_in, set_in_game, Off, Yes, Yes, No, NoAlias,
|
||||
&iflags.use_menu_color)
|
||||
NHOPTC(menuinvertmode, 5, opt_in, set_in_game, No, Yes, No, No, NoAlias,
|
||||
"behaviour of menu iverts")
|
||||
NHOPTC(menustyle, MENUTYPELEN, opt_in, set_in_game, Yes, Yes, No, Yes, NoAlias,
|
||||
"user interface for object selection")
|
||||
NHOPTB(monpolycontrol, 0, opt_in, set_wizonly, Off, Yes, No, No, NoAlias,
|
||||
&iflags.mon_polycontrol)
|
||||
NHOPTC(monsters, MAXMCLASSES, opt_in, set_in_config, No, Yes, No, No, NoAlias,
|
||||
"the symbols to use for monsters")
|
||||
NHOPTC(mouse_support, 0, opt_in, set_in_game, No, Yes, No, No, NoAlias,
|
||||
"game receives click info from mouse")
|
||||
#if defined(TTY_GRAPHICS) || defined(CURSES_GRAPHICS)
|
||||
NHOPTC(msg_window, 1, opt_in, set_in_game, Yes, Yes, No, Yes, NoAlias,
|
||||
"the type of message window required")
|
||||
#else
|
||||
NHOPTC(msg_window, 1, opt_in, set_in_config, Yes, Yes, No, Yes, NoAlias,
|
||||
"the type of message window required")
|
||||
#endif
|
||||
NHOPTC(msghistory, 5, opt_in, set_gameview, Yes, Yes, No, No, NoAlias,
|
||||
"number of top line messages to save")
|
||||
NHOPTC(name, PL_NSIZ, opt_in, set_gameview, No, Yes, No, No, NoAlias,
|
||||
"your character's name (e.g., name:Merlin-W)")
|
||||
#ifdef NEWS
|
||||
NHOPTB(news, 0, opt_in, set_in_config, Off, Yes, No, No, NoAlias,
|
||||
&iflags.news)
|
||||
#else
|
||||
NHOPTB(news, 0, opt_in, set_in_config, Off, No, No, No, NoAlias,
|
||||
(boolean *) 0)
|
||||
#endif
|
||||
NHOPTB(nudist, 0, opt_in, set_in_config, Off, Yes, No, No, NoAlias,
|
||||
&u.uroleplay.nudist)
|
||||
NHOPTB(null, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.null)
|
||||
NHOPTC(number_pad, 1, opt_in, set_in_game, No, Yes, No, Yes, NoAlias,
|
||||
"use the number pad for movement")
|
||||
NHOPTC(objects, MAXOCLASSES, opt_in, set_in_config, No, Yes, No, No, NoAlias,
|
||||
"the symbols to use for objects")
|
||||
NHOPTC(packorder, MAXOCLASSES, opt_in, set_in_game, No, Yes, No, No, NoAlias,
|
||||
"the inventory order of the items in your pack")
|
||||
#ifdef CHANGE_COLOR
|
||||
#ifndef WIN32
|
||||
NHOPTC(palette, 15, opt_in, set_in_game, No, Yes, No, "hicolor",
|
||||
"palette (00c/880/-fff is blue/yellow/reverse white)")
|
||||
#else
|
||||
NHOPTC(palette, 15, opt_in, set_in_config, No, Yes, No, "hicolor",
|
||||
"palette (adjust an RGB color in palette (color-R-G-B)")
|
||||
#endif
|
||||
#endif
|
||||
NHOPTC(paranoid_confirmation, 28, opt_in, set_in_game, Yes, Yes, Yes, Yes,
|
||||
"prayconfirm", "extra prompting in certain situations")
|
||||
NHOPTB(perm_invent, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&iflags.perm_invent)
|
||||
NHOPTC(petattr, 88, opt_in, set_in_game, No, Yes, No, No, NoAlias,
|
||||
"attributes for highlighting pets")
|
||||
NHOPTC(pettype, 4, opt_in, set_gameview, Yes, Yes, No, No, NoAlias,
|
||||
"your preferred initial pet type")
|
||||
NHOPTC(pickup_burden, 20, opt_in, set_in_game, No, Yes, No, Yes, NoAlias,
|
||||
"maximum burden picked up before prompt")
|
||||
NHOPTB(pickup_thrown, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.pickup_thrown)
|
||||
NHOPTC(pickup_types, MAXOCLASSES, opt_in, set_in_game, No, Yes, No, Yes, NoAlias,
|
||||
"types of objects to pick up automatically")
|
||||
NHOPTC(pile_limit, 24, opt_in, set_in_game, Yes, Yes, No, No, NoAlias,
|
||||
"threshold for \"there are many objects here\"")
|
||||
NHOPTC(player_selection, 12, opt_in, set_gameview, No, Yes, No, No, NoAlias,
|
||||
"choose character via dialog or prompts")
|
||||
NHOPTC(playmode, 8, opt_in, set_gameview, No, Yes, No, No, NoAlias,
|
||||
"normal play, non-scoring explore mode, or debug mode")
|
||||
NHOPTB(popup_dialog, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&iflags.wc_popup_dialog)
|
||||
NHOPTB(preload_tiles, 0, opt_out, set_in_config, On, Yes, No, No, NoAlias,
|
||||
&iflags.wc_preload_tiles)
|
||||
NHOPTB(pushweapon, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&flags.pushweapon)
|
||||
NHOPTB(quick_farsight, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&flags.quick_farsight)
|
||||
NHOPTC(race, PL_CSIZ, opt_in, set_gameview, No, Yes, No, No, NoAlias,
|
||||
"your starting race (e.g., Human, Elf)")
|
||||
#ifdef MICRO
|
||||
NHOPTB(rawio, 0, opt_in, set_in_config, Off, Yes, No, No, NoAlias,
|
||||
&iflags.rawio)
|
||||
#else
|
||||
NHOPTB(rawio, 0, opt_in, set_in_config, Off, No, No, No, NoAlias,
|
||||
(boolean *) 0)
|
||||
#endif
|
||||
NHOPTB(rest_on_space, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&flags.rest_on_space)
|
||||
NHOPTC(roguesymset, 70, opt_in, set_in_game, No, Yes, No, Yes, NoAlias,
|
||||
"load a set of rogue display symbols from the symbols file")
|
||||
NHOPTC(role, PL_CSIZ, opt_in, set_gameview, No, Yes, No, No, "character",
|
||||
"your starting role (e.g., Barbarian, Valkyrie)")
|
||||
NHOPTC(runmode, sizeof "teleport", opt_in, set_in_game, Yes, Yes, No, Yes,
|
||||
NoAlias, "display frequency when `running' or `travelling'")
|
||||
NHOPTB(safe_pet, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.safe_dog)
|
||||
NHOPTB(sanity_check, 0, opt_in, set_wizonly, Off, Yes, No, No, NoAlias,
|
||||
&iflags.sanity_check)
|
||||
NHOPTC(scores, 32, opt_in, set_in_game, No, Yes, No, No, NoAlias,
|
||||
"the parts of the score list you wish to see")
|
||||
NHOPTC(scroll_amount, 20, opt_in, set_gameview, Yes, Yes, No, No, NoAlias,
|
||||
"amount to scroll map when scroll_margin is reached")
|
||||
NHOPTC(scroll_margin, 20, opt_in, set_gameview, Yes, Yes, No, No, NoAlias,
|
||||
"scroll map when this far from the edge")
|
||||
NHOPTB(selectsaved, 0, opt_out, set_in_config, On, Yes, No, No, NoAlias,
|
||||
&iflags.wc2_selectsaved)
|
||||
NHOPTB(showexp, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&flags.showexp)
|
||||
NHOPTB(showrace, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&flags.showrace)
|
||||
#ifdef SCORE_ON_BOTL
|
||||
NHOPTB(showscore, 0, opt_in, set_in_game, Off, No, No, No, NoAlias,
|
||||
&flags.showscore)
|
||||
#else
|
||||
NHOPTB(showscore, 0, opt_in, set_in_config, Off, No, No, No, NoAlias,
|
||||
(boolean *) 0)
|
||||
#endif
|
||||
NHOPTB(silent, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.silent)
|
||||
NHOPTB(softkeyboard, 0, opt_in, set_in_config, Off, Yes, No, No, NoAlias,
|
||||
&iflags.wc2_softkeyboard)
|
||||
NHOPTC(sortloot, 4, opt_in, set_in_game, No, Yes, No, Yes, NoAlias,
|
||||
"sort object selection lists by description")
|
||||
NHOPTB(sortpack, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.sortpack)
|
||||
NHOPTB(sparkle, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.sparkle)
|
||||
NHOPTB(splash_screen, 0, opt_out, set_in_config, On, Yes, No, No, NoAlias,
|
||||
&iflags.wc_splash_screen)
|
||||
NHOPTB(standout, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&flags.standout)
|
||||
NHOPTB(status_updates, 0, opt_out, set_in_config, On, Yes, No, No, NoAlias,
|
||||
&iflags.status_updates)
|
||||
#ifdef STATUS_HILITES
|
||||
NHOPTC(statushilites, 20, opt_in, set_in_game, Yes, Yes, Yes, No, NoAlias,
|
||||
"0=no status highlighting, N=show highlights for N turns")
|
||||
#else
|
||||
NHOPTC(statushilites, 20, opt_in, set_in_config, Yes, Yes, Yes, No, NoAlias,
|
||||
"highlight control")
|
||||
#endif
|
||||
#ifdef CURSES_GRAPHICS
|
||||
NHOPTC(statuslines, 20, opt_in, set_in_game, No, Yes, No, No, NoAlias,
|
||||
"2 or 3 lines for horizontal (bottom or top) status display")
|
||||
#else
|
||||
NHOPTC(statuslines, 20, opt_in, set_in_config, No, Yes, No, No, NoAlias,
|
||||
"2 or 3 lines for status display")
|
||||
#endif
|
||||
#ifdef WIN32
|
||||
NHOPTC(subkeyvalue, 7, opt_in, set_in_config, No, Yes, Yes, No, NoAlias,
|
||||
"override keystroke value")
|
||||
#endif
|
||||
NHOPTC(suppress_alert, 8, opt_in, set_in_game, No, Yes, Yes, No, NoAlias,
|
||||
"suppress alerts about version-specific features")
|
||||
NHOPTC(symset, 70, opt_in, set_in_game, No, Yes, No, Yes, NoAlias,
|
||||
"load a set of display symbols from the symbols file")
|
||||
NHOPTC(term_cols, 6, opt_in, set_in_config, No, Yes, No, No, "termcolumns",
|
||||
"number of columns")
|
||||
NHOPTC(term_rows, 6, opt_in, set_in_config, No, Yes, No, No, NoAlias,
|
||||
"number of rows")
|
||||
NHOPTC(tile_file, 70, opt_in, set_gameview, No, Yes, No, No, NoAlias,
|
||||
"name of tile file")
|
||||
NHOPTC(tile_height, 20, opt_in, set_gameview, Yes, Yes, No, No, NoAlias,
|
||||
"height of tiles")
|
||||
NHOPTC(tile_width, 20, opt_in, set_gameview, Yes, Yes, No, No, NoAlias,
|
||||
"width of tiles")
|
||||
NHOPTB(tiled_map, 0, opt_in, set_in_config, On, Yes, No, No, NoAlias,
|
||||
&iflags.wc_tiled_map)
|
||||
NHOPTB(time, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&flags.time)
|
||||
#ifdef TIMED_DELAY
|
||||
NHOPTB(timed_delay, 0, opt_out, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&flags.nap)
|
||||
#else
|
||||
NHOPTB(timed_delay, 0, opt_in, set_in_game, Off, No, No, No, NoAlias,
|
||||
(boolean *) 0)
|
||||
#endif
|
||||
NHOPTB(tombstone, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.tombstone)
|
||||
NHOPTB(toptenwin, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&iflags.toptenwin)
|
||||
NHOPTC(traps, MAXTCHARS + 1, opt_in, set_in_config, No, Yes, No, No, NoAlias,
|
||||
"the symbols to use in drawing traps")
|
||||
NHOPTB(travel, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.travelcmd)
|
||||
#ifdef DEBUG
|
||||
NHOPTB(travel_debug, 0, opt_out, set_wizonly, Off, Yes, No, No, NoAlias,
|
||||
&iflags.trav_debug)
|
||||
#else
|
||||
NHOPTB(travel_debug, 0, opt_out, set_wizonly, Off, No, No, No, NoAlias,
|
||||
(boolean *) 0)
|
||||
#endif
|
||||
NHOPTB(use_darkgray, 0, opt_out, set_in_config, On, Yes, No, No, NoAlias,
|
||||
&iflags.wc2_darkgray)
|
||||
#ifdef WIN32
|
||||
NHOPTB(use_inverse, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&iflags.wc_inverse)
|
||||
#else
|
||||
NHOPTB(use_inverse, 0, opt_in, set_in_game, On, No, No, No, NoAlias,
|
||||
(boolean *) 0)
|
||||
#endif
|
||||
NHOPTC(vary_msgcount, 20, opt_in, set_gameview, No, Yes, No, No, NoAlias,
|
||||
"show more old messages at a time")
|
||||
NHOPTB(verbose, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias,
|
||||
&flags.verbose)
|
||||
#ifdef MSDOS
|
||||
NHOPTC(video, 20, opt_in, set_in_config, No, Yes, No, No, NoAlias,
|
||||
"method of video updating")
|
||||
#endif
|
||||
#ifdef VIDEOSHADES
|
||||
NHOPTC(videocolors, 40, opt_in, set_gameview, No, Yes, No, "videocolours",
|
||||
"color mappings for internal screen routines")
|
||||
NHOPTC(videoshades, 32, opt_in, set_gameview, No, Yes, No, No, NoAlias,
|
||||
"gray shades to map to black/gray/white")
|
||||
#endif
|
||||
#ifdef MSDOS
|
||||
NHOPTC(video_width, 10, opt_in, set_gameview, No, Yes, No, No, NoAlias,
|
||||
"video width")
|
||||
NHOPTC(video_height, 10, opt_in, set_gameview, No, Yes, No, No, NoAlias,
|
||||
"video height")
|
||||
#endif
|
||||
NHOPTC(warnings, 10, opt_in, set_in_config, No, Yes, No, No, NoAlias,
|
||||
"display characters for warnings")
|
||||
NHOPTC(whatis_coord, 1, opt_in, set_in_game, Yes, Yes, No, Yes, NoAlias,
|
||||
"show coordinates when auto-describing cursor position")
|
||||
NHOPTC(whatis_filter, 1, opt_in, set_in_game, Yes, Yes, No, Yes, NoAlias,
|
||||
"filter coordinate locations when targeting next or previous")
|
||||
NHOPTB(whatis_menu, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&iflags.getloc_usemenu)
|
||||
NHOPTB(whatis_moveskip, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&iflags.getloc_moveskip)
|
||||
NHOPTC(windowborders, 9, opt_in, set_in_game, Yes, Yes, No, No, NoAlias,
|
||||
"0 (off), 1 (on), 2 (auto)")
|
||||
#ifdef WINCHAIN
|
||||
NHOPTC(windowchain, WINTYPELEN, opt_in, set_in_sysconf, No, Yes, No, No,
|
||||
NoAlias, "window processor to use")
|
||||
#endif
|
||||
NHOPTC(windowcolors, 80, opt_in, set_gameview, No, Yes, No, No, NoAlias,
|
||||
"the foreground/background colors of windows")
|
||||
NHOPTC(windowtype, WINTYPELEN, opt_in, set_gameview, No, Yes, No, No, NoAlias,
|
||||
"windowing system to use")
|
||||
NHOPTB(wizweight, 0, opt_in, set_wizonly, Off, Yes, No, No, NoAlias,
|
||||
&iflags.wizweight)
|
||||
NHOPTB(wraptext, 0, opt_in, set_in_game, Off, Yes, No, No, NoAlias,
|
||||
&iflags.wc2_wraptext)
|
||||
/*
|
||||
* Prefix-based Options
|
||||
*/
|
||||
|
||||
NHOPTP(cond_, 0, opt_in, set_hidden, No, No, Yes, Yes, NoAlias,
|
||||
"prefix for cond_ options")
|
||||
NHOPTP(font, 0, opt_in, set_hidden, Yes, Yes, Yes, No, NoAlias,
|
||||
"prefix for font options")
|
||||
#if defined(MICRO) && !defined(AMIGA)
|
||||
/* included for compatibility with old NetHack.cnf files */
|
||||
NHOPTP(IBM_, 0, opt_in, set_hidden, No, No, Yes, NoAlias,
|
||||
"prefix for old micro IBM_ options")
|
||||
#endif /* MICRO */
|
||||
|
||||
#undef NoAlias
|
||||
#undef NHOPTB
|
||||
#undef NHOPTC
|
||||
#undef NHOPTP
|
||||
|
||||
#endif /* NHOPT_PROTO || NHOPT_ENUM || NHOPT_PARSE */
|
||||
|
||||
/* end of optlist */
|
||||
|
||||
@@ -1459,6 +1459,38 @@ redraw_map()
|
||||
flush_screen(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* =======================================================
|
||||
*/
|
||||
void
|
||||
reglyph_darkroom()
|
||||
{
|
||||
xchar x, y;
|
||||
|
||||
for (x = 0; x < COLNO; x++)
|
||||
for (y = 0; y < ROWNO; y++) {
|
||||
struct rm *lev = &levl[x][y];
|
||||
|
||||
if (!flags.dark_room || !iflags.use_color
|
||||
|| Is_rogue_level(&u.uz)) {
|
||||
if (lev->glyph == cmap_to_glyph(S_darkroom))
|
||||
lev->glyph = lev->waslit ? cmap_to_glyph(S_room)
|
||||
: GLYPH_NOTHING;
|
||||
} else {
|
||||
if (lev->glyph == cmap_to_glyph(S_room) && lev->seenv
|
||||
&& lev->waslit && !cansee(x, y))
|
||||
lev->glyph = cmap_to_glyph(S_darkroom);
|
||||
else if (lev->glyph == GLYPH_NOTHING
|
||||
&& lev->typ == ROOM && lev->seenv && !cansee(x, y))
|
||||
lev->glyph = cmap_to_glyph(S_darkroom);
|
||||
}
|
||||
}
|
||||
if (flags.dark_room && iflags.use_color)
|
||||
g.showsyms[S_darkroom] = g.showsyms[S_room];
|
||||
else
|
||||
g.showsyms[S_darkroom] = g.showsyms[SYM_NOTHING + SYM_OFF_X];
|
||||
}
|
||||
|
||||
/* ======================================================================== */
|
||||
/* Glyph Buffering (3rd screen) =========================================== */
|
||||
|
||||
|
||||
58
src/files.c
58
src/files.c
@@ -2099,7 +2099,7 @@ int src;
|
||||
char *envp;
|
||||
#endif
|
||||
|
||||
if (src == SET_IN_SYS) {
|
||||
if (src == set_in_sysconf) {
|
||||
/* SYSCF_FILE; if we can't open it, caller will bail */
|
||||
if (filename && *filename) {
|
||||
set_configfile_name(fqname(filename, SYSCONFPREFIX, 0));
|
||||
@@ -2108,7 +2108,7 @@ int src;
|
||||
fp = (FILE *) 0;
|
||||
return fp;
|
||||
}
|
||||
/* If src != SET_IN_SYS, "filename" is an environment variable, so it
|
||||
/* If src != set_in_sysconf, "filename" is an environment variable, so it
|
||||
* should hang around. If set, it is expected to be a full path name
|
||||
* (if relevant)
|
||||
*/
|
||||
@@ -2556,7 +2556,7 @@ char *origbuf;
|
||||
(void) strncpy(g.catname, bufp, PL_PSIZ - 1);
|
||||
|
||||
#ifdef SYSCF
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "WIZARDS", 7)) {
|
||||
} else if (src == set_in_sysconf && match_varname(buf, "WIZARDS", 7)) {
|
||||
if (sysopt.wizards)
|
||||
free((genericptr_t) sysopt.wizards);
|
||||
sysopt.wizards = dupstr(bufp);
|
||||
@@ -2568,15 +2568,15 @@ char *origbuf;
|
||||
free((genericptr_t) sysopt.fmtd_wizard_list);
|
||||
sysopt.fmtd_wizard_list = build_english_list(sysopt.wizards);
|
||||
}
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "SHELLERS", 8)) {
|
||||
} else if (src == set_in_sysconf && match_varname(buf, "SHELLERS", 8)) {
|
||||
if (sysopt.shellers)
|
||||
free((genericptr_t) sysopt.shellers);
|
||||
sysopt.shellers = dupstr(bufp);
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "EXPLORERS", 7)) {
|
||||
} else if (src == set_in_sysconf && match_varname(buf, "EXPLORERS", 7)) {
|
||||
if (sysopt.explorers)
|
||||
free((genericptr_t) sysopt.explorers);
|
||||
sysopt.explorers = dupstr(bufp);
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "DEBUGFILES", 5)) {
|
||||
} else if (src == set_in_sysconf && match_varname(buf, "DEBUGFILES", 5)) {
|
||||
/* if showdebug() has already been called (perhaps we've added
|
||||
some debugpline() calls to option processing) and has found
|
||||
a value for getenv("DEBUGFILES"), don't override that */
|
||||
@@ -2585,17 +2585,17 @@ char *origbuf;
|
||||
free((genericptr_t) sysopt.debugfiles);
|
||||
sysopt.debugfiles = dupstr(bufp);
|
||||
}
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "DUMPLOGFILE", 7)) {
|
||||
} else if (src == set_in_sysconf && match_varname(buf, "DUMPLOGFILE", 7)) {
|
||||
#ifdef DUMPLOG
|
||||
if (sysopt.dumplogfile)
|
||||
free((genericptr_t) sysopt.dumplogfile);
|
||||
sysopt.dumplogfile = dupstr(bufp);
|
||||
#endif
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "GENERICUSERS", 12)) {
|
||||
} else if (src == set_in_sysconf && match_varname(buf, "GENERICUSERS", 12)) {
|
||||
if (sysopt.genericusers)
|
||||
free((genericptr_t) sysopt.genericusers);
|
||||
sysopt.genericusers = dupstr(bufp);
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "BONES_POOLS", 10)) {
|
||||
} else if (src == set_in_sysconf && match_varname(buf, "BONES_POOLS", 10)) {
|
||||
/* max value of 10 guarantees (N % bones.pools) will be one digit
|
||||
so we don't lose control of the length of bones file names */
|
||||
n = atoi(bufp);
|
||||
@@ -2603,32 +2603,32 @@ char *origbuf;
|
||||
/* note: right now bones_pools==0 is the same as bones_pools==1,
|
||||
but we could change that and make bones_pools==0 become an
|
||||
indicator to suppress bones usage altogether */
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "SUPPORT", 7)) {
|
||||
} else if (src == set_in_sysconf && match_varname(buf, "SUPPORT", 7)) {
|
||||
if (sysopt.support)
|
||||
free((genericptr_t) sysopt.support);
|
||||
sysopt.support = dupstr(bufp);
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "RECOVER", 7)) {
|
||||
} else if (src == set_in_sysconf && match_varname(buf, "RECOVER", 7)) {
|
||||
if (sysopt.recover)
|
||||
free((genericptr_t) sysopt.recover);
|
||||
sysopt.recover = dupstr(bufp);
|
||||
} else if (src == SET_IN_SYS
|
||||
} else if (src == set_in_sysconf
|
||||
&& match_varname(buf, "CHECK_SAVE_UID", 14)) {
|
||||
n = atoi(bufp);
|
||||
sysopt.check_save_uid = n;
|
||||
} else if (src == SET_IN_SYS
|
||||
} else if (src == set_in_sysconf
|
||||
&& match_varname(buf, "CHECK_PLNAME", 12)) {
|
||||
n = atoi(bufp);
|
||||
sysopt.check_plname = n;
|
||||
} else if (match_varname(buf, "SEDUCE", 6)) {
|
||||
n = !!atoi(bufp); /* XXX this could be tighter */
|
||||
/* allow anyone to turn it off, but only sysconf to turn it on*/
|
||||
if (src != SET_IN_SYS && n != 0) {
|
||||
if (src != set_in_sysconf && n != 0) {
|
||||
config_error_add("Illegal value in SEDUCE");
|
||||
return FALSE;
|
||||
}
|
||||
sysopt.seduce = n;
|
||||
sysopt_seduce_set(sysopt.seduce);
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "MAXPLAYERS", 10)) {
|
||||
} else if (src == set_in_sysconf && match_varname(buf, "MAXPLAYERS", 10)) {
|
||||
n = atoi(bufp);
|
||||
/* XXX to get more than 25, need to rewrite all lock code */
|
||||
if (n < 0 || n > 25) {
|
||||
@@ -2636,35 +2636,35 @@ char *origbuf;
|
||||
return FALSE;
|
||||
}
|
||||
sysopt.maxplayers = n;
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "PERSMAX", 7)) {
|
||||
} else if (src == set_in_sysconf && match_varname(buf, "PERSMAX", 7)) {
|
||||
n = atoi(bufp);
|
||||
if (n < 1) {
|
||||
config_error_add("Illegal value in PERSMAX (minimum is 1).");
|
||||
return FALSE;
|
||||
}
|
||||
sysopt.persmax = n;
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "PERS_IS_UID", 11)) {
|
||||
} else if (src == set_in_sysconf && match_varname(buf, "PERS_IS_UID", 11)) {
|
||||
n = atoi(bufp);
|
||||
if (n != 0 && n != 1) {
|
||||
config_error_add("Illegal value in PERS_IS_UID (must be 0 or 1).");
|
||||
return FALSE;
|
||||
}
|
||||
sysopt.pers_is_uid = n;
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "ENTRYMAX", 8)) {
|
||||
} else if (src == set_in_sysconf && match_varname(buf, "ENTRYMAX", 8)) {
|
||||
n = atoi(bufp);
|
||||
if (n < 10) {
|
||||
config_error_add("Illegal value in ENTRYMAX (minimum is 10).");
|
||||
return FALSE;
|
||||
}
|
||||
sysopt.entrymax = n;
|
||||
} else if ((src == SET_IN_SYS) && match_varname(buf, "POINTSMIN", 9)) {
|
||||
} else if ((src == set_in_sysconf) && match_varname(buf, "POINTSMIN", 9)) {
|
||||
n = atoi(bufp);
|
||||
if (n < 1) {
|
||||
config_error_add("Illegal value in POINTSMIN (minimum is 1).");
|
||||
return FALSE;
|
||||
}
|
||||
sysopt.pointsmin = n;
|
||||
} else if (src == SET_IN_SYS
|
||||
} else if (src == set_in_sysconf
|
||||
&& match_varname(buf, "MAX_STATUENAME_RANK", 10)) {
|
||||
n = atoi(bufp);
|
||||
if (n < 1) {
|
||||
@@ -2675,7 +2675,7 @@ char *origbuf;
|
||||
sysopt.tt_oname_maxrank = n;
|
||||
|
||||
/* SYSCF PANICTRACE options */
|
||||
} else if (src == SET_IN_SYS
|
||||
} else if (src == set_in_sysconf
|
||||
&& match_varname(buf, "PANICTRACE_LIBC", 15)) {
|
||||
n = atoi(bufp);
|
||||
#if defined(PANICTRACE) && defined(PANICTRACE_LIBC)
|
||||
@@ -2685,7 +2685,7 @@ char *origbuf;
|
||||
}
|
||||
#endif
|
||||
sysopt.panictrace_libc = n;
|
||||
} else if (src == SET_IN_SYS
|
||||
} else if (src == set_in_sysconf
|
||||
&& match_varname(buf, "PANICTRACE_GDB", 14)) {
|
||||
n = atoi(bufp);
|
||||
#if defined(PANICTRACE)
|
||||
@@ -2695,7 +2695,7 @@ char *origbuf;
|
||||
}
|
||||
#endif
|
||||
sysopt.panictrace_gdb = n;
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "GDBPATH", 7)) {
|
||||
} else if (src == set_in_sysconf && match_varname(buf, "GDBPATH", 7)) {
|
||||
#if defined(PANICTRACE) && !defined(VMS)
|
||||
if (!file_exists(bufp)) {
|
||||
config_error_add("File specified in GDBPATH does not exist.");
|
||||
@@ -2705,7 +2705,7 @@ char *origbuf;
|
||||
if (sysopt.gdbpath)
|
||||
free((genericptr_t) sysopt.gdbpath);
|
||||
sysopt.gdbpath = dupstr(bufp);
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "GREPPATH", 7)) {
|
||||
} else if (src == set_in_sysconf && match_varname(buf, "GREPPATH", 7)) {
|
||||
#if defined(PANICTRACE) && !defined(VMS)
|
||||
if (!file_exists(bufp)) {
|
||||
config_error_add("File specified in GREPPATH does not exist.");
|
||||
@@ -2716,13 +2716,13 @@ char *origbuf;
|
||||
free((genericptr_t) sysopt.greppath);
|
||||
sysopt.greppath = dupstr(bufp);
|
||||
/* SYSCF SAVE and BONES format options */
|
||||
} else if (src == SET_IN_SYS
|
||||
} else if (src == set_in_sysconf
|
||||
&& match_varname(buf, "SAVEFORMAT", 10)) {
|
||||
parseformat(sysopt.saveformat, bufp);
|
||||
} else if (src == SET_IN_SYS
|
||||
} else if (src == set_in_sysconf
|
||||
&& match_varname(buf, "BONESFORMAT", 11)) {
|
||||
parseformat(sysopt.bonesformat, bufp);
|
||||
} else if (src == SET_IN_SYS
|
||||
} else if (src == set_in_sysconf
|
||||
&& match_varname(buf, "ACCESSIBILITY", 13)) {
|
||||
n = atoi(bufp);
|
||||
if (n < 0 || n > 1) {
|
||||
@@ -2731,7 +2731,7 @@ char *origbuf;
|
||||
}
|
||||
sysopt.accessibility = n;
|
||||
#ifdef WIN32
|
||||
} else if (src == SET_IN_SYS
|
||||
} else if (src == set_in_sysconf
|
||||
&& match_varname(buf, "portable_device_paths", 8)) {
|
||||
n = atoi(bufp);
|
||||
if (n < 0 || n > 1) {
|
||||
@@ -2967,6 +2967,7 @@ boolean secure;
|
||||
|
||||
tmp->next = config_error_data;
|
||||
config_error_data = tmp;
|
||||
g.program_state.config_error_ready = TRUE;
|
||||
}
|
||||
|
||||
static boolean
|
||||
@@ -3042,6 +3043,7 @@ config_error_done()
|
||||
}
|
||||
config_error_data = tmp->next;
|
||||
free(tmp);
|
||||
g.program_state.config_error_ready = FALSE;
|
||||
return n;
|
||||
}
|
||||
|
||||
|
||||
11105
src/options.c
11105
src/options.c
File diff suppressed because it is too large
Load Diff
@@ -499,10 +499,10 @@ HACKINCL = align.h amiconf.h artifact.h artilist.h attrib.h beconf.h botl.h \
|
||||
func_tab.h global.h hack.h lint.h macconf.h mextra.h mfndpos.h \
|
||||
micro.h mkroom.h \
|
||||
monattk.h mondata.h monflag.h monst.h monsym.h obj.h objclass.h \
|
||||
os2conf.h patchlevel.h pcconf.h permonst.h prop.h rect.h region.h \
|
||||
rm.h sp_lev.h spell.h sys.h system.h tcap.h timeout.h tosconf.h \
|
||||
tradstdc.h trampoli.h trap.h unixconf.h vision.h vmsconf.h wintty.h \
|
||||
wincurs.h winX.h winprocs.h wintype.h you.h youprop.h
|
||||
optlist.h os2conf.h patchlevel.h pcconf.h permonst.h prop.h rect.h \
|
||||
region.h rm.h sp_lev.h spell.h sys.h system.h tcap.h timeout.h \
|
||||
tosconf.h tradstdc.h trampoli.h trap.h unixconf.h vision.h vmsconf.h \
|
||||
wintty.h wincurs.h winX.h winprocs.h wintype.h you.h youprop.h
|
||||
|
||||
HSOURCES = $(HACKINCL) date.h onames.h pm.h vis_tab.h dgn_file.h
|
||||
|
||||
@@ -1118,7 +1118,7 @@ objects.o: objects.c $(CONFIG_H) ../include/obj.h ../include/objclass.h \
|
||||
../include/prop.h ../include/skills.h ../include/color.h
|
||||
objnam.o: objnam.c $(HACK_H)
|
||||
options.o: options.c $(CONFIG_H) ../include/objclass.h ../include/flag.h \
|
||||
$(HACK_H) ../include/tcap.h
|
||||
$(HACK_H) ../include/tcap.h ../include/optlist.h
|
||||
pager.o: pager.c $(HACK_H) ../include/dlb.h
|
||||
pickup.o: pickup.c $(HACK_H)
|
||||
pline.o: pline.c $(HACK_H)
|
||||
|
||||
@@ -158,7 +158,7 @@ mswin_init_nhwindows(int *argc, char **argv)
|
||||
* non-console applications
|
||||
*/
|
||||
iflags.toptenwin = 1;
|
||||
set_option_mod_status("toptenwin", SET_IN_FILE);
|
||||
set_option_mod_status("toptenwin", set_in_config);
|
||||
|
||||
/* initialize map tiles bitmap */
|
||||
initMapTiles();
|
||||
@@ -176,14 +176,14 @@ mswin_init_nhwindows(int *argc, char **argv)
|
||||
| WC_MAP_MODE | WC_FONT_MESSAGE | WC_FONT_STATUS | WC_FONT_MENU
|
||||
| WC_FONT_TEXT | WC_FONTSIZ_MESSAGE | WC_FONTSIZ_STATUS
|
||||
| WC_FONTSIZ_MENU | WC_FONTSIZ_TEXT | WC_VARY_MSGCOUNT,
|
||||
SET_IN_GAME);
|
||||
set_in_game);
|
||||
|
||||
/* WC2 options */
|
||||
set_wc2_option_mod_status(WC2_FULLSCREEN | WC2_SOFTKEYBOARD, SET_IN_FILE);
|
||||
set_wc2_option_mod_status(WC2_FULLSCREEN | WC2_SOFTKEYBOARD, set_in_config);
|
||||
GetNHApp()->bFullScreen = iflags.wc2_fullscreen;
|
||||
GetNHApp()->bUseSIP = iflags.wc2_softkeyboard;
|
||||
|
||||
set_wc2_option_mod_status(WC2_WRAPTEXT, SET_IN_GAME);
|
||||
set_wc2_option_mod_status(WC2_WRAPTEXT, set_in_game);
|
||||
GetNHApp()->bWrapText = iflags.wc2_wraptext;
|
||||
|
||||
/* create the main nethack window */
|
||||
|
||||
@@ -2068,8 +2068,10 @@ $(O)o_init.o: o_init.c $(HACK_H)
|
||||
$(O)objects.o: objects.c $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
|
||||
$(INCL)\prop.h $(INCL)\skills.h $(INCL)\color.h
|
||||
$(O)objnam.o: objnam.c $(HACK_H)
|
||||
$(O)options.o: options.c $(CONFIG_H) $(INCL)\objclass.h $(INCL)\flag.h \
|
||||
$(O)options.o: options.c $(INCL)\optlist.h $(CONFIG_H) $(INCL)\objclass.h $(INCL)\flag.h \
|
||||
$(HACK_H) $(INCL)\tcap.h
|
||||
$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) /EP options.c >$(@B).preproc
|
||||
$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ options.c
|
||||
$(O)pager.o: pager.c $(HACK_H) $(INCL)\dlb.h
|
||||
$(O)pickup.o: pickup.c $(HACK_H)
|
||||
$(O)pline.o: pline.c $(HACK_H)
|
||||
|
||||
@@ -339,7 +339,7 @@ int *wid, *hgt;
|
||||
{
|
||||
*wid = console.width;
|
||||
*hgt = console.height;
|
||||
set_option_mod_status("mouse_support", SET_IN_GAME);
|
||||
set_option_mod_status("mouse_support", set_in_game);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -209,7 +209,7 @@ test_portable_config(
|
||||
/* assure_syscf_file(); */
|
||||
config_error_init(TRUE, tmppath, FALSE);
|
||||
/* ... and _must_ parse correctly. */
|
||||
if (read_config_file(tmppath, SET_IN_SYS)
|
||||
if (read_config_file(tmppath, set_in_sysconf)
|
||||
&& sysopt.portable_device_paths)
|
||||
retval = TRUE;
|
||||
(void) config_error_done();
|
||||
|
||||
@@ -1492,8 +1492,8 @@ char **argv;
|
||||
window_list[i].type = NHW_NONE;
|
||||
|
||||
/* add another option that can be set */
|
||||
set_wc_option_mod_status(WC_TILED_MAP, SET_IN_GAME);
|
||||
set_option_mod_status("mouse_support", SET_IN_GAME);
|
||||
set_wc_option_mod_status(WC_TILED_MAP, set_in_game);
|
||||
set_option_mod_status("mouse_support", set_in_game);
|
||||
|
||||
load_default_resources(); /* create default_resource_data[] */
|
||||
|
||||
|
||||
@@ -778,11 +778,11 @@ curses_character_dialog(const char **choices, const char *prompt)
|
||||
void
|
||||
curses_init_options()
|
||||
{
|
||||
/* change these from DISP_IN_GAME to SET_IN_GAME */
|
||||
set_wc_option_mod_status(WC_ALIGN_MESSAGE | WC_ALIGN_STATUS, SET_IN_GAME);
|
||||
/* change these from set_gameview to set_in_game */
|
||||
set_wc_option_mod_status(WC_ALIGN_MESSAGE | WC_ALIGN_STATUS, set_in_game);
|
||||
|
||||
/* Remove a few options that are irrelevant to this windowport */
|
||||
set_option_mod_status("eight_bit_tty", SET_IN_FILE);
|
||||
set_option_mod_status("eight_bit_tty", set_in_config);
|
||||
|
||||
/* If we don't have a symset defined, load the curses symset by default */
|
||||
if (!g.symset[PRIMARY].explicitly)
|
||||
|
||||
@@ -162,15 +162,15 @@ curses_init_nhwindows(int *argcp UNUSED,
|
||||
curses_init_nhcolors();
|
||||
} else {
|
||||
iflags.use_color = FALSE;
|
||||
set_option_mod_status("color", SET_IN_FILE);
|
||||
set_option_mod_status("color", set_in_config);
|
||||
iflags.wc2_guicolor = FALSE;
|
||||
set_wc2_option_mod_status(WC2_GUICOLOR, SET_IN_FILE);
|
||||
set_wc2_option_mod_status(WC2_GUICOLOR, set_in_config);
|
||||
}
|
||||
#else
|
||||
iflags.use_color = FALSE;
|
||||
set_option_mod_status("color", SET_IN_FILE);
|
||||
set_option_mod_status("color", set_in_config);
|
||||
iflags.wc2_guicolor = FALSE;
|
||||
set_wc2_option_mod_status(WC2_GUICOLOR, SET_IN_FILE);
|
||||
set_wc2_option_mod_status(WC2_GUICOLOR, set_in_config);
|
||||
#endif
|
||||
noecho();
|
||||
raw();
|
||||
|
||||
@@ -159,7 +159,7 @@ char **argv;
|
||||
| WC_FONT_STATUS | WC_FONT_MENU | WC_FONT_TEXT
|
||||
| WC_FONTSIZ_MESSAGE | WC_FONTSIZ_MAP | WC_FONTSIZ_STATUS
|
||||
| WC_FONTSIZ_MENU | WC_FONTSIZ_TEXT | WC_VARY_MSGCOUNT,
|
||||
SET_IN_GAME);
|
||||
set_in_game);
|
||||
if (iflags.wc_align_message == 0)
|
||||
iflags.wc_align_message = ALIGN_TOP;
|
||||
if (iflags.wc_align_status == 0)
|
||||
|
||||
@@ -440,14 +440,14 @@ char **argv UNUSED;
|
||||
tty_putstr(BASE_WINDOW, 0, "");
|
||||
tty_display_nhwindow(BASE_WINDOW, FALSE);
|
||||
|
||||
/* 'statuslines' defaults to SET_IN_FILE, allowed but invisible;
|
||||
/* 'statuslines' defaults to set_in_config, allowed but invisible;
|
||||
make it dynamically settable if feasible, otherwise visible */
|
||||
if (tty_procs.wincap2 & WC2_STATUSLINES)
|
||||
set_wc2_option_mod_status(WC2_STATUSLINES,
|
||||
#ifndef CLIPPING
|
||||
(LI < 1 + ROWNO + 2) ? DISP_IN_GAME :
|
||||
#endif
|
||||
SET_IN_GAME);
|
||||
set_in_game);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -213,16 +213,16 @@ mswin_init_nhwindows(int *argc, char **argv)
|
||||
* non-console applications
|
||||
*/
|
||||
iflags.toptenwin = 1;
|
||||
set_option_mod_status("toptenwin", SET_IN_FILE);
|
||||
//set_option_mod_status("perm_invent", SET_IN_FILE);
|
||||
set_option_mod_status("mouse_support", SET_IN_GAME);
|
||||
set_option_mod_status("toptenwin", set_in_config);
|
||||
//set_option_mod_status("perm_invent", set_in_config);
|
||||
set_option_mod_status("mouse_support", set_in_game);
|
||||
|
||||
/* initialize map tiles bitmap */
|
||||
initMapTiles();
|
||||
|
||||
/* set tile-related options to readonly */
|
||||
set_wc_option_mod_status(WC_TILE_WIDTH | WC_TILE_HEIGHT | WC_TILE_FILE,
|
||||
DISP_IN_GAME);
|
||||
set_gameview);
|
||||
|
||||
/* set font-related options to change in the game */
|
||||
set_wc_option_mod_status(
|
||||
@@ -231,7 +231,7 @@ mswin_init_nhwindows(int *argc, char **argv)
|
||||
| WC_FONT_STATUS | WC_FONT_MENU | WC_FONT_TEXT
|
||||
| WC_FONTSIZ_MESSAGE | WC_FONTSIZ_STATUS | WC_FONTSIZ_MENU
|
||||
| WC_FONTSIZ_TEXT | WC_VARY_MSGCOUNT,
|
||||
SET_IN_GAME);
|
||||
set_in_game);
|
||||
|
||||
mswin_color_from_string(iflags.wc_foregrnd_menu, &menu_fg_brush,
|
||||
&menu_fg_color);
|
||||
|
||||
Reference in New Issue
Block a user