add a master off/on switch for sounds
sounds can be set in the config file or on the fly with the Options menu. This also adds a mechanism for specifying a terminology preference for a boolean option in the options menu. The choices are: Term_False, Term_Off, Term_Disabled Term_False, the default, will use the terms "false" and "true" in the Options menu. Term_Off will use the terms "off" and "on" in the Options menu. Term_Disabled will use the terms "disabled" and "enabled" in the Options menu. I didn't review any of the existing options to see if one of the new alternative terms might be a better fit. They were all left at the default.
This commit is contained in:
@@ -265,6 +265,7 @@ struct instance_flags {
|
||||
boolean perm_invent; /* keep full inventories up until dismissed */
|
||||
boolean renameallowed; /* can change hero name during role selection */
|
||||
boolean renameinprogress; /* we are changing hero name */
|
||||
boolean sounds; /* master on/off switch for using soundlib */
|
||||
boolean status_updates; /* allow updates to bottom status lines;
|
||||
* disable to avoid excessive noise when using
|
||||
* a screen reader (use ^X to review status) */
|
||||
|
||||
@@ -20,6 +20,9 @@ enum Off_On { Off, On };
|
||||
enum OptSection {
|
||||
OptS_General, OptS_Behavior, OptS_Map, OptS_Status, OptS_Advanced
|
||||
};
|
||||
enum menu_terminology_preference {
|
||||
Term_False, Term_Off, Term_Disabled, num_terms
|
||||
};
|
||||
|
||||
struct allopt_t {
|
||||
const char *name;
|
||||
@@ -33,6 +36,7 @@ struct allopt_t {
|
||||
enum Y_N valok;
|
||||
enum Y_N dupeok;
|
||||
enum Y_N pfx;
|
||||
enum menu_terminology_preference termpref;
|
||||
boolean opt_in_out, *addr;
|
||||
int (*optfn)(int, int, boolean, char *, char *);
|
||||
const char *alias;
|
||||
@@ -50,7 +54,7 @@ struct allopt_t {
|
||||
#define NoAlias ((const char *) 0)
|
||||
|
||||
#if defined(NHOPT_PROTO)
|
||||
#define NHOPTB(a, sec, b, c, s, i, n, v, d, al, bp) /*empty*/
|
||||
#define NHOPTB(a, sec, b, c, s, i, n, v, d, al, bp, termp) /*empty*/
|
||||
#define NHOPTC(a, sec, b, c, s, n, v, d, h, al, z) \
|
||||
static int optfn_##a(int, int, boolean, char *, char *);
|
||||
#define NHOPTP(a, sec, b, c, s, n, v, d, h, al, z) \
|
||||
@@ -59,23 +63,23 @@ static int pfxfn_##a(int, int, boolean, char *, char *);
|
||||
static int optfn_##a(int, int, boolean, char *, char *);
|
||||
|
||||
#elif defined(NHOPT_ENUM)
|
||||
#define NHOPTB(a, sec, b, c, s, i, n, v, d, al, bp) opt_##a,
|
||||
#define NHOPTC(a, sec, b, c, s, n, v, d, h, al, z) opt_##a,
|
||||
#define NHOPTP(a, sec, b, c, s, n, v, d, h, al, z) pfx_##a,
|
||||
#define NHOPTO(m, sec, a, b, c, s, n, v, d, al, z) opt_##a,
|
||||
#define NHOPTB(a, sec, b, c, s, i, n, v, d, al, bp, termp) opt_##a,
|
||||
#define NHOPTC(a, sec, b, c, s, n, v, d, h, al, z) opt_##a,
|
||||
#define NHOPTP(a, sec, b, c, s, n, v, d, h, al, z) pfx_##a,
|
||||
#define NHOPTO(m, sec, a, b, c, s, n, v, d, al, z) opt_##a,
|
||||
|
||||
#elif defined(NHOPT_PARSE)
|
||||
#define NHOPTB(a, sec, b, c, s, i, n, v, d, al, bp) \
|
||||
{ #a, OptS_##sec, 0, b, opt_##a, s, BoolOpt, n, v, d, No, c, \
|
||||
#define NHOPTB(a, sec, b, c, s, i, n, v, d, al, bp, termp) \
|
||||
{ #a, OptS_##sec, 0, b, opt_##a, s, BoolOpt, n, v, d, No, termp, c, \
|
||||
bp, &optfn_boolean, al, (const char *) 0, (const char *) 0, i, 0, 0 },
|
||||
#define NHOPTC(a, sec, b, c, s, n, v, d, h, al, z) \
|
||||
{ #a, OptS_##sec, 0, b, opt_##a, s, CompOpt, n, v, d, No, c, \
|
||||
{ #a, OptS_##sec, 0, b, opt_##a, s, CompOpt, n, v, d, No, 0, c, \
|
||||
(boolean *) 0, &optfn_##a, al, z, (const char *) 0, Off, h, 0 },
|
||||
#define NHOPTP(a, sec, b, c, s, n, v, d, h, al, z) \
|
||||
{ #a, OptS_##sec, 0, b, pfx_##a, s, CompOpt, n, v, d, Yes, c, \
|
||||
{ #a, OptS_##sec, 0, b, pfx_##a, s, CompOpt, n, v, d, Yes, 0, c, \
|
||||
(boolean *) 0, &pfxfn_##a, al, z, #a, Off, h, 0 },
|
||||
#define NHOPTO(m, sec, a, b, c, s, n, v, d, al, z) \
|
||||
{ m, OptS_##sec, 0, b, opt_##a, s, OthrOpt, n, v, d, No, c, \
|
||||
{ m, OptS_##sec, 0, b, opt_##a, s, OthrOpt, n, v, d, No, 0, c, \
|
||||
(boolean *) 0, &optfn_##a, al, z, (const char *) 0, On, On, 0 },
|
||||
|
||||
/* this is not reliable because TILES_IN_GLYPHMAP might be defined
|
||||
@@ -89,7 +93,7 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* B:nm, ln, opt_*, setwhere?, on?, negat?, val?, dup?, hndlr? Alias, bool_p */
|
||||
/* B:nm, ln, opt_*, setwhere?, on?, negat?, val?, dup?, hndlr? Alias, bool_p, term */
|
||||
/* C:nm, ln, opt_*, setwhere?, negateok?, valok?, dupok?, hndlr? Alias, desc */
|
||||
/* P:pfx, ln, opt_*, setwhere?, negateok?, valok?, dupok?, hndlr? Alias, desc*/
|
||||
|
||||
@@ -129,7 +133,7 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
/* end of special ordering; remainder of entries are in alphabetical order
|
||||
*/
|
||||
NHOPTB(acoustics, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.acoustics)
|
||||
On, Yes, No, No, NoAlias, &flags.acoustics, Term_False)
|
||||
/* NHOPTC(align) -- moved to top */
|
||||
NHOPTC(align_message, Advanced, 20, opt_in, set_gameview,
|
||||
Yes, Yes, No, Yes, NoAlias, "message window alignment")
|
||||
@@ -144,26 +148,27 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
#endif
|
||||
#ifdef ALTMETA
|
||||
NHOPTB(altmeta, Advanced, 0, opt_out, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &iflags.altmeta)
|
||||
Off, Yes, No, No, NoAlias, &iflags.altmeta, Term_False)
|
||||
#else
|
||||
NHOPTB(altmeta, Advanced, 0, opt_out, set_in_config,
|
||||
Off, Yes, No, No, NoAlias, (boolean *) 0)
|
||||
Off, Yes, No, No, NoAlias, (boolean *) 0, Term_False)
|
||||
#endif
|
||||
NHOPTB(ascii_map, Advanced, 0, opt_in, set_in_game,
|
||||
ascii_map_Def, Yes, No, No, NoAlias, &iflags.wc_ascii_map)
|
||||
ascii_map_Def, Yes, No, No, NoAlias, &iflags.wc_ascii_map,
|
||||
Term_False)
|
||||
NHOPTB(autodescribe, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &iflags.autodescribe)
|
||||
On, Yes, No, No, NoAlias, &iflags.autodescribe, Term_False)
|
||||
NHOPTB(autodig, Behavior, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &flags.autodig)
|
||||
Off, Yes, No, No, NoAlias, &flags.autodig, Term_False)
|
||||
NHOPTB(autoopen, Behavior, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.autoopen)
|
||||
On, Yes, No, No, NoAlias, &flags.autoopen, Term_False)
|
||||
NHOPTB(autopickup, Behavior, 0, opt_out, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &flags.pickup)
|
||||
Off, Yes, No, No, NoAlias, &flags.pickup, Term_False)
|
||||
NHOPTO("autopickup exceptions", Behavior, o_autopickup_exceptions, BUFSZ,
|
||||
opt_in, set_in_game,
|
||||
No, Yes, No, NoAlias, "edit autopickup exceptions")
|
||||
NHOPTB(autoquiver, Behavior, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &flags.autoquiver)
|
||||
Off, Yes, No, No, NoAlias, &flags.autoquiver, Term_False)
|
||||
NHOPTC(autounlock, Behavior, 80, opt_out, set_in_game,
|
||||
Yes, Yes, No, Yes, NoAlias,
|
||||
"action to take when encountering locked door or chest")
|
||||
@@ -171,15 +176,15 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
No, Yes, No, NoAlias, "edit key binds")
|
||||
#if defined(MICRO) && !defined(AMIGA)
|
||||
NHOPTB(BIOS, Advanced, 0, opt_in, set_in_config,
|
||||
Off, Yes, No, No, NoAlias, &iflags.BIOS)
|
||||
Off, Yes, No, No, NoAlias, &iflags.BIOS, Term_False)
|
||||
#else
|
||||
NHOPTB(BIOS, Advanced, 0, opt_in, set_in_config,
|
||||
Off, No, No, No, NoAlias, (boolean *) 0)
|
||||
Off, No, No, No, NoAlias, (boolean *) 0, Term_False)
|
||||
#endif
|
||||
NHOPTB(blind, Advanced, 0, opt_in, set_in_config,
|
||||
Off, Yes, No, No, "permablind", &u.uroleplay.blind)
|
||||
Off, Yes, No, No, "permablind", &u.uroleplay.blind, Term_False)
|
||||
NHOPTB(bones, Advanced, 0, opt_out, set_in_config,
|
||||
On, Yes, No, No, NoAlias, &flags.bones)
|
||||
On, Yes, No, No, NoAlias, &flags.bones, Term_False)
|
||||
#ifdef BACKWARD_COMPAT
|
||||
NHOPTC(boulder, Advanced, 1, opt_in, set_in_game,
|
||||
No, Yes, No, No, NoAlias,
|
||||
@@ -190,35 +195,36 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
"name of your starting pet if it is a kitten")
|
||||
#ifdef INSURANCE
|
||||
NHOPTB(checkpoint, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.ins_chkpt)
|
||||
On, Yes, No, No, NoAlias, &flags.ins_chkpt, Term_False)
|
||||
#else
|
||||
NHOPTB(checkpoint, Advanced, 0, opt_out, set_in_config,
|
||||
Off, No, No, No, NoAlias, (boolean *) 0)
|
||||
Off, No, No, No, NoAlias, (boolean *) 0, Term_False)
|
||||
#endif
|
||||
NHOPTB(cmdassist, Behavior, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &iflags.cmdassist)
|
||||
On, Yes, No, No, NoAlias, &iflags.cmdassist, Term_False)
|
||||
NHOPTB(color, Map, 0, opt_in, set_in_game,
|
||||
On, Yes, No, No, "colour", &iflags.wc_color)
|
||||
On, Yes, No, No, "colour", &iflags.wc_color, Term_False)
|
||||
NHOPTB(confirm, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.confirm)
|
||||
On, Yes, No, No, NoAlias, &flags.confirm, Term_False)
|
||||
#ifdef CURSES_GRAPHICS
|
||||
NHOPTC(cursesgraphics, Advanced, 70, opt_in, set_in_config,
|
||||
No, Yes, No, No, NoAlias,
|
||||
"load curses display symbols into symset")
|
||||
#endif
|
||||
NHOPTB(dark_room, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.dark_room)
|
||||
On, Yes, No, No, NoAlias, &flags.dark_room, Term_False)
|
||||
#ifdef BACKWARD_COMPAT
|
||||
NHOPTC(DECgraphics, Advanced, 70, opt_in, set_in_config,
|
||||
Yes, Yes, No, No, NoAlias,
|
||||
"load DECGraphics display symbols into symset")
|
||||
#endif
|
||||
NHOPTB(debug_hunger, Advanced, 0, opt_in, set_wiznofuz,
|
||||
Off, Yes, No, No, NoAlias, &iflags.debug_hunger)
|
||||
Off, Yes, No, No, NoAlias, &iflags.debug_hunger, Term_False)
|
||||
NHOPTB(debug_mongen, Advanced, 0, opt_in, set_wiznofuz,
|
||||
Off, Yes, No, No, NoAlias, &iflags.debug_mongen)
|
||||
Off, Yes, No, No, NoAlias, &iflags.debug_mongen, Term_False)
|
||||
NHOPTB(debug_overwrite_stairs, Advanced, 0, opt_in, set_wiznofuz,
|
||||
Off, Yes, No, No, NoAlias, &iflags.debug_overwrite_stairs)
|
||||
Off, Yes, No, No, NoAlias, &iflags.debug_overwrite_stairs,
|
||||
Term_False)
|
||||
NHOPTC(disclose, Advanced, sizeof flags.end_disclose * 2,
|
||||
opt_in, set_in_game,
|
||||
Yes, Yes, No, Yes, NoAlias,
|
||||
@@ -233,15 +239,16 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
No, Yes, No, No, NoAlias,
|
||||
"list of symbols to use in drawing special effects")
|
||||
NHOPTB(eight_bit_tty, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &iflags.wc_eight_bit_input)
|
||||
Off, Yes, No, No, NoAlias, &iflags.wc_eight_bit_input,
|
||||
Term_False)
|
||||
NHOPTB(extmenu, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &iflags.extmenu)
|
||||
Off, Yes, No, No, NoAlias, &iflags.extmenu, Term_False)
|
||||
NHOPTB(female, Advanced, 0, opt_in, set_in_config,
|
||||
Off, Yes, No, No, "male", &flags.female)
|
||||
Off, Yes, No, No, "male", &flags.female, Term_False)
|
||||
NHOPTB(fireassist, Behavior, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &iflags.fireassist)
|
||||
On, Yes, No, No, NoAlias, &iflags.fireassist, Term_False)
|
||||
NHOPTB(fixinv, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.invlet_constant)
|
||||
On, Yes, No, No, NoAlias, &flags.invlet_constant, Term_False)
|
||||
NHOPTC(font_map, Advanced, 40, opt_in, set_gameview,
|
||||
Yes, Yes, Yes, No, NoAlias, "font to use in the map window")
|
||||
NHOPTC(font_menu, Advanced, 40, opt_in, set_gameview,
|
||||
@@ -264,32 +271,32 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
NHOPTC(font_text, Advanced, 40, opt_in, set_gameview,
|
||||
Yes, Yes, Yes, No, NoAlias, "font to use in text windows")
|
||||
NHOPTB(force_invmenu, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &iflags.force_invmenu)
|
||||
Off, Yes, No, No, NoAlias, &iflags.force_invmenu, Term_False)
|
||||
NHOPTC(fruit, General, PL_FSIZ, opt_in, set_in_game,
|
||||
No, Yes, No, No, NoAlias, "name of a fruit you enjoy eating")
|
||||
NHOPTB(fullscreen, Advanced, 0, opt_in, set_in_config,
|
||||
Off, Yes, No, No, NoAlias, &iflags.wc2_fullscreen)
|
||||
Off, Yes, No, No, NoAlias, &iflags.wc2_fullscreen, Term_False)
|
||||
/* NHOPTC(gender) -- moved to top */
|
||||
NHOPTC(glyph, Advanced, 40, opt_in, set_in_game,
|
||||
No, Yes, Yes, No, NoAlias,
|
||||
"set representation of a glyph to a unicode value and color")
|
||||
NHOPTB(goldX, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &flags.goldX)
|
||||
Off, Yes, No, No, NoAlias, &flags.goldX, Term_False)
|
||||
NHOPTB(guicolor, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &iflags.wc2_guicolor)
|
||||
On, Yes, No, No, NoAlias, &iflags.wc2_guicolor, Term_False)
|
||||
NHOPTB(help, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.help)
|
||||
On, Yes, No, No, NoAlias, &flags.help, Term_False)
|
||||
NHOPTB(herecmd_menu, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &iflags.herecmd_menu)
|
||||
Off, Yes, No, No, NoAlias, &iflags.herecmd_menu, Term_False)
|
||||
#if defined(MAC)
|
||||
NHOPTC(hicolor, Advanced, 15, opt_in, set_in_config,
|
||||
No, Yes, No, No, NoAlias,
|
||||
"same as palette, only order is reversed")
|
||||
#endif
|
||||
NHOPTB(hilite_pet, Map, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &iflags.wc_hilite_pet)
|
||||
Off, Yes, No, No, NoAlias, &iflags.wc_hilite_pet, Term_False)
|
||||
NHOPTB(hilite_pile, Map, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &iflags.hilite_pile)
|
||||
Off, Yes, No, No, NoAlias, &iflags.hilite_pile, Term_False)
|
||||
#ifdef STATUS_HILITES
|
||||
NHOPTC(hilite_status, Advanced, 13, opt_out, set_in_game,
|
||||
Yes, Yes, Yes, No, NoAlias,
|
||||
@@ -299,7 +306,7 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
Yes, Yes, Yes, No, NoAlias, "(not available)")
|
||||
#endif
|
||||
NHOPTB(hitpointbar, Status, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &iflags.wc2_hitpointbar)
|
||||
Off, Yes, No, No, NoAlias, &iflags.wc2_hitpointbar, Term_False)
|
||||
NHOPTC(horsename, Advanced, PL_PSIZ, opt_in, set_gameview,
|
||||
No, Yes, No, No, NoAlias,
|
||||
"name of your starting pet if it is a pony")
|
||||
@@ -310,36 +317,36 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
#endif
|
||||
#ifndef MAC
|
||||
NHOPTB(ignintr, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &flags.ignintr)
|
||||
Off, Yes, No, No, NoAlias, &flags.ignintr, Term_False)
|
||||
#else
|
||||
NHOPTB(ignintr, Advanced, 0, opt_in, set_in_config,
|
||||
Off, Yes, No, No, NoAlias, (boolean *) 0)
|
||||
Off, Yes, No, No, NoAlias, (boolean *) 0, Term_False)
|
||||
#endif
|
||||
NHOPTB(implicit_uncursed, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.implicit_uncursed)
|
||||
On, Yes, No, No, NoAlias, &flags.implicit_uncursed, Term_False)
|
||||
#if 0 /* obsolete - pre-OSX Mac */
|
||||
NHOPTB(large_font, Advanced, 0, opt_in, set_in_config,
|
||||
Off, Yes, No, No, NoAlias, &iflags.obsolete)
|
||||
#endif
|
||||
NHOPTB(legacy, Advanced, 0, opt_out, set_in_config,
|
||||
On, Yes, No, No, NoAlias, &flags.legacy)
|
||||
On, Yes, No, No, NoAlias, &flags.legacy, Term_False)
|
||||
NHOPTB(lit_corridor, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &flags.lit_corridor)
|
||||
Off, Yes, No, No, NoAlias, &flags.lit_corridor, Term_False)
|
||||
NHOPTB(lootabc, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &flags.lootabc)
|
||||
Off, Yes, No, No, NoAlias, &flags.lootabc, Term_False)
|
||||
#if defined(BACKWARD_COMPAT) && defined(MAC_GRAPHICS_ENV)
|
||||
NHOPTC(Macgraphics, Advanced, 70, opt_in, set_in_config,
|
||||
No, Yes, No, No, NoAlias,
|
||||
"load MACGraphics display symbols into symset")
|
||||
#endif
|
||||
NHOPTB(mail, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.biff)
|
||||
On, Yes, No, No, NoAlias, &flags.biff, Term_False)
|
||||
NHOPTC(map_mode, Advanced, 20, opt_in, set_gameview,
|
||||
Yes, Yes, No, No, NoAlias, "map display mode under Windows")
|
||||
NHOPTB(mention_decor, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &flags.mention_decor)
|
||||
Off, Yes, No, No, NoAlias, &flags.mention_decor, Term_False)
|
||||
NHOPTB(mention_walls, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &flags.mention_walls)
|
||||
Off, Yes, No, No, NoAlias, &flags.mention_walls, Term_False)
|
||||
NHOPTC(menu_deselect_all, Advanced, 4, opt_in, set_in_config,
|
||||
No, Yes, No, No, NoAlias, "deselect all items in a menu")
|
||||
NHOPTC(menu_deselect_page, Advanced, 4, opt_in, set_in_config,
|
||||
@@ -359,13 +366,14 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
NHOPTC(menu_next_page, Advanced, 4, opt_in, set_in_config,
|
||||
No, Yes, No, No, NoAlias, "go to the next menu page")
|
||||
NHOPTB(menu_objsyms, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &iflags.menu_head_objsym)
|
||||
Off, Yes, No, No, NoAlias, &iflags.menu_head_objsym,
|
||||
Term_False)
|
||||
#ifdef TTY_GRAPHICS
|
||||
NHOPTB(menu_overlay, Advanced, 0, opt_in, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &iflags.menu_overlay)
|
||||
On, Yes, No, No, NoAlias, &iflags.menu_overlay, Term_False)
|
||||
#else
|
||||
NHOPTB(menu_overlay, Advanced, 0, opt_in, set_in_config,
|
||||
Off, No, No, No, NoAlias, (boolean *) 0)
|
||||
Off, No, No, No, NoAlias, (boolean *) 0, Term_False)
|
||||
#endif
|
||||
NHOPTC(menu_previous_page, Advanced, 4, opt_in, set_in_config,
|
||||
No, Yes, No, No, NoAlias, "go to the previous menu page")
|
||||
@@ -381,9 +389,9 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
NHOPTC(menu_shift_right, Advanced, 4, opt_in, set_in_config,
|
||||
No, Yes, No, No, NoAlias, "pan current menu page right")
|
||||
NHOPTB(menu_tab_sep, Advanced, 0, opt_in, set_wizonly,
|
||||
Off, Yes, No, No, NoAlias, &iflags.menu_tab_sep)
|
||||
Off, Yes, No, No, NoAlias, &iflags.menu_tab_sep, Term_False)
|
||||
NHOPTB(menucolors, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, Yes, No, NoAlias, &iflags.use_menu_color)
|
||||
Off, Yes, Yes, No, NoAlias, &iflags.use_menu_color, Term_False)
|
||||
NHOPTO("menu colors", Status, o_menu_colors, BUFSZ, opt_in, set_in_game,
|
||||
No, Yes, No, NoAlias, "edit menu colors")
|
||||
NHOPTC(menuinvertmode, Advanced, 5, opt_in, set_in_game,
|
||||
@@ -396,7 +404,7 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
opt_in, set_in_game,
|
||||
No, Yes, No, NoAlias, "edit message types")
|
||||
NHOPTB(monpolycontrol, Advanced, 0, opt_in, set_wizonly,
|
||||
Off, Yes, No, No, NoAlias, &iflags.mon_polycontrol)
|
||||
Off, Yes, No, No, NoAlias, &iflags.mon_polycontrol, Term_False)
|
||||
NHOPTC(monsters, Advanced, MAXMCLASSES, opt_in, set_in_config,
|
||||
No, Yes, No, No, NoAlias,
|
||||
"list of symbols to use for monsters")
|
||||
@@ -417,15 +425,15 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
/* NHOPTC(name) -- moved to top */
|
||||
#ifdef NEWS
|
||||
NHOPTB(news, Advanced, 0, opt_in, set_in_config,
|
||||
Off, Yes, No, No, NoAlias, &iflags.news)
|
||||
Off, Yes, No, No, NoAlias, &iflags.news, Term_False)
|
||||
#else
|
||||
NHOPTB(news, Advanced, 0, opt_in, set_in_config,
|
||||
Off, No, No, No, NoAlias, (boolean *) 0)
|
||||
Off, No, No, No, NoAlias, (boolean *) 0, Term_False)
|
||||
#endif
|
||||
NHOPTB(nudist, Advanced, 0, opt_in, set_in_config,
|
||||
Off, Yes, No, No, NoAlias, &u.uroleplay.nudist)
|
||||
Off, Yes, No, No, NoAlias, &u.uroleplay.nudist, Term_False)
|
||||
NHOPTB(null, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.null)
|
||||
On, Yes, No, No, NoAlias, &flags.null, Term_False)
|
||||
NHOPTC(number_pad, General, 1, opt_in, set_in_game,
|
||||
No, Yes, No, Yes, NoAlias,
|
||||
"use the number pad for movement")
|
||||
@@ -451,7 +459,7 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
Yes, Yes, Yes, Yes, "prayconfirm",
|
||||
"extra prompting in certain situations")
|
||||
NHOPTB(perm_invent, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &iflags.perm_invent)
|
||||
Off, Yes, No, No, NoAlias, &iflags.perm_invent, Term_False)
|
||||
NHOPTC(petattr, Advanced, 88, opt_in, set_in_game, /* curses only */
|
||||
No, Yes, No, No, NoAlias, "attributes for highlighting pets")
|
||||
/* pettype is ignored for some roles */
|
||||
@@ -461,7 +469,7 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
No, Yes, No, Yes, NoAlias,
|
||||
"maximum burden picked up before prompt")
|
||||
NHOPTB(pickup_thrown, Behavior, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.pickup_thrown)
|
||||
On, Yes, No, No, NoAlias, &flags.pickup_thrown, Term_False)
|
||||
NHOPTC(pickup_types, Behavior, MAXOCLASSES, opt_in, set_in_game,
|
||||
No, Yes, No, Yes, NoAlias,
|
||||
"types of objects to pick up automatically")
|
||||
@@ -473,23 +481,23 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
"choose character via dialog or prompts")
|
||||
/* NHOPTC(playmode) -- moved to top */
|
||||
NHOPTB(popup_dialog, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &iflags.wc_popup_dialog)
|
||||
Off, Yes, No, No, NoAlias, &iflags.wc_popup_dialog, Term_False)
|
||||
NHOPTB(preload_tiles, Advanced, 0, opt_out, set_in_config, /* MSDOS only */
|
||||
On, Yes, No, No, NoAlias, &iflags.wc_preload_tiles)
|
||||
On, Yes, No, No, NoAlias, &iflags.wc_preload_tiles, Term_False)
|
||||
NHOPTB(pushweapon, Behavior, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &flags.pushweapon)
|
||||
Off, Yes, No, No, NoAlias, &flags.pushweapon, Term_False)
|
||||
NHOPTB(quick_farsight, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &flags.quick_farsight)
|
||||
Off, Yes, No, No, NoAlias, &flags.quick_farsight, Term_False)
|
||||
/* NHOPTC(race) -- moved to top */
|
||||
#ifdef MICRO
|
||||
NHOPTB(rawio, Advanced, 0, opt_in, set_in_config,
|
||||
Off, Yes, No, No, NoAlias, &iflags.rawio)
|
||||
Off, Yes, No, No, NoAlias, &iflags.rawio, Term_False)
|
||||
#else
|
||||
NHOPTB(rawio, Advanced, 0, opt_in, set_in_config,
|
||||
Off, No, No, No, NoAlias, (boolean *) 0)
|
||||
Off, No, No, No, NoAlias, (boolean *) 0, Term_False)
|
||||
#endif
|
||||
NHOPTB(rest_on_space, Advanced, 0, opt_in, set_in_game, Off,
|
||||
Yes, No, No, NoAlias, &flags.rest_on_space)
|
||||
Yes, No, No, NoAlias, &flags.rest_on_space, Term_False)
|
||||
NHOPTC(roguesymset, Advanced, 70, opt_in, set_in_game,
|
||||
No, Yes, No, Yes, NoAlias,
|
||||
"load a set of rogue display symbols from symbols file")
|
||||
@@ -498,11 +506,11 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
Yes, Yes, No, Yes, NoAlias,
|
||||
"display frequency when `running' or `travelling'")
|
||||
NHOPTB(safe_pet, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.safe_dog)
|
||||
On, Yes, No, No, NoAlias, &flags.safe_dog, Term_False)
|
||||
NHOPTB(safe_wait, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.safe_wait)
|
||||
On, Yes, No, No, NoAlias, &flags.safe_wait, Term_False)
|
||||
NHOPTB(sanity_check, Advanced, 0, opt_in, set_wizonly,
|
||||
Off, Yes, No, No, NoAlias, &iflags.sanity_check)
|
||||
Off, Yes, No, No, NoAlias, &iflags.sanity_check, Term_False)
|
||||
NHOPTC(scores, Advanced, 32, opt_in, set_in_game,
|
||||
No, Yes, No, No, NoAlias,
|
||||
"the parts of the score list you wish to see")
|
||||
@@ -513,22 +521,23 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
Yes, Yes, No, No, NoAlias,
|
||||
"scroll map when this far from the edge")
|
||||
NHOPTB(selectsaved, Advanced, 0, opt_out, set_in_config,
|
||||
On, Yes, No, No, NoAlias, &iflags.wc2_selectsaved)
|
||||
On, Yes, No, No, NoAlias, &iflags.wc2_selectsaved, Term_False)
|
||||
NHOPTB(showexp, Status, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &flags.showexp)
|
||||
Off, Yes, No, No, NoAlias, &flags.showexp, Term_False)
|
||||
NHOPTB(showrace, Map, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &flags.showrace)
|
||||
Off, Yes, No, No, NoAlias, &flags.showrace, Term_False)
|
||||
#ifdef SCORE_ON_BOTL
|
||||
NHOPTB(showscore, Status, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &flags.showscore)
|
||||
Off, Yes, No, No, NoAlias, &flags.showscore, Term_False)
|
||||
#else
|
||||
NHOPTB(showscore, Status, 0, opt_in, set_in_config,
|
||||
Off, Yes, No, No, NoAlias, (boolean *) 0)
|
||||
Off, Yes, No, No, NoAlias, (boolean *) 0, Term_False)
|
||||
#endif
|
||||
NHOPTB(silent, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.silent)
|
||||
On, Yes, No, No, NoAlias, &flags.silent, Term_False)
|
||||
NHOPTB(softkeyboard, Advanced, 0, opt_in, set_in_config,
|
||||
Off, Yes, No, No, NoAlias, &iflags.wc2_softkeyboard)
|
||||
Off, Yes, No, No, NoAlias, &iflags.wc2_softkeyboard,
|
||||
Term_False)
|
||||
NHOPTC(sortdiscoveries, Advanced, 0, opt_in, set_in_game,
|
||||
Yes, Yes, No, Yes, NoAlias,
|
||||
"preferred order when displaying discovered objects")
|
||||
@@ -536,21 +545,28 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
No, Yes, No, Yes, NoAlias,
|
||||
"sort object selection lists by description")
|
||||
NHOPTB(sortpack, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.sortpack)
|
||||
On, Yes, No, No, NoAlias, &flags.sortpack, Term_False)
|
||||
NHOPTC(sortvanquished, Advanced, 0, opt_in, set_in_game,
|
||||
Yes, Yes, No, Yes, NoAlias,
|
||||
"preferred order when displaying vanquished monsters")
|
||||
NHOPTC(soundlib, Advanced, WINTYPELEN, opt_in, set_gameview,
|
||||
No, Yes, No, No, NoAlias,
|
||||
"soundlib interface to use (if any)")
|
||||
#ifdef SND_LIB_INTEGRATED
|
||||
NHOPTB(sounds, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &iflags.sounds, Term_Off)
|
||||
#else
|
||||
NHOPTB(sounds, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &iflags.sounds, Term_Off)
|
||||
#endif
|
||||
NHOPTB(sparkle, Map, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.sparkle)
|
||||
On, Yes, No, No, NoAlias, &flags.sparkle, Term_False)
|
||||
NHOPTB(splash_screen, Advanced, 0, opt_out, set_in_config,
|
||||
On, Yes, No, No, NoAlias, &iflags.wc_splash_screen)
|
||||
On, Yes, No, No, NoAlias, &iflags.wc_splash_screen, Term_False)
|
||||
NHOPTB(standout, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &flags.standout)
|
||||
Off, Yes, No, No, NoAlias, &flags.standout, Term_False)
|
||||
NHOPTB(status_updates, Advanced, 0, opt_out, set_in_config,
|
||||
On, Yes, No, No, NoAlias, &iflags.status_updates)
|
||||
On, Yes, No, No, NoAlias, &iflags.status_updates, Term_False)
|
||||
NHOPTO("status condition fields", Status, o_status_cond, BUFSZ,
|
||||
opt_in, set_in_game,
|
||||
No, Yes, No, NoAlias, "edit status condition fields")
|
||||
@@ -588,43 +604,45 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
NHOPTC(tile_width, Advanced, 20, opt_in, set_gameview,
|
||||
Yes, Yes, No, No, NoAlias, "width of tiles")
|
||||
NHOPTB(tiled_map, Advanced, 0, opt_in, set_in_game,
|
||||
tiled_map_Def, Yes, No, No, NoAlias, &iflags.wc_tiled_map)
|
||||
tiled_map_Def, Yes, No, No, NoAlias, &iflags.wc_tiled_map,
|
||||
Term_False)
|
||||
NHOPTB(time, Status, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &flags.time)
|
||||
Off, Yes, No, No, NoAlias, &flags.time, Term_False)
|
||||
#ifdef TIMED_DELAY
|
||||
NHOPTB(timed_delay, Map, 0, opt_out, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &flags.nap)
|
||||
Off, Yes, No, No, NoAlias, &flags.nap, Term_False)
|
||||
#else
|
||||
NHOPTB(timed_delay, Map, 0, opt_in, set_in_config,
|
||||
Off, No, No, No, NoAlias, (boolean *) 0)
|
||||
Off, No, No, No, NoAlias, (boolean *) 0, Term_False)
|
||||
#endif
|
||||
NHOPTB(tombstone, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.tombstone)
|
||||
On, Yes, No, No, NoAlias, &flags.tombstone, Term_False)
|
||||
NHOPTB(toptenwin, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &iflags.toptenwin)
|
||||
Off, Yes, No, No, NoAlias, &iflags.toptenwin, Term_False)
|
||||
NHOPTC(traps, Advanced, MAXTCHARS + 1, opt_in, set_in_config,
|
||||
No, Yes, No, No, NoAlias,
|
||||
"list of symbols to use in drawing traps")
|
||||
NHOPTB(travel, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.travelcmd)
|
||||
On, Yes, No, No, NoAlias, &flags.travelcmd, Term_False)
|
||||
#ifdef DEBUG
|
||||
NHOPTB(travel_debug, Advanced, 0, opt_out, set_wizonly,
|
||||
Off, Yes, No, No, NoAlias, &iflags.trav_debug)
|
||||
Off, Yes, No, No, NoAlias, &iflags.trav_debug, Term_False)
|
||||
#else
|
||||
NHOPTB(travel_debug, Advanced, 0, opt_out, set_wizonly,
|
||||
Off, No, No, No, NoAlias, (boolean *) 0)
|
||||
Off, No, No, No, NoAlias, (boolean *) 0, Term_False)
|
||||
#endif
|
||||
NHOPTB(use_darkgray, Advanced, 0, opt_out, set_in_config,
|
||||
On, Yes, No, No, NoAlias, &iflags.wc2_darkgray)
|
||||
On, Yes, No, No, NoAlias, &iflags.wc2_darkgray, Term_False)
|
||||
NHOPTB(use_inverse, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &iflags.wc_inverse)
|
||||
On, Yes, No, No, NoAlias, &iflags.wc_inverse, Term_False)
|
||||
NHOPTB(use_truecolor, Advanced, 0, opt_in, set_in_config,
|
||||
Off, Yes, No, No, "use_truecolour", &iflags.use_truecolor)
|
||||
Off, Yes, No, No, "use_truecolour",
|
||||
&iflags.use_truecolor, Term_False)
|
||||
NHOPTC(vary_msgcount, Advanced, 20, opt_in, set_gameview,
|
||||
No, Yes, No, No, NoAlias, "show more old messages at a time")
|
||||
#if defined(NO_VERBOSE_GRANULARITY)
|
||||
NHOPTB(verbose, Advanced, 0, opt_out, set_in_game,
|
||||
On, Yes, No, No, NoAlias, &flags.verbose)
|
||||
On, Yes, No, No, NoAlias, &flags.verbose, Term_False)
|
||||
#endif
|
||||
#ifdef MSDOS
|
||||
NHOPTC(video, Advanced, 20, opt_in, set_in_config,
|
||||
@@ -646,17 +664,17 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
#endif
|
||||
#ifdef TTY_TILES_ESCCODES
|
||||
NHOPTB(vt_tiledata, Advanced, 0, opt_in, set_in_config,
|
||||
Off, Yes, No, No, NoAlias, &iflags.vt_tiledata)
|
||||
Off, Yes, No, No, NoAlias, &iflags.vt_tiledata, Term_False)
|
||||
#else
|
||||
NHOPTB(vt_tiledata, Advanced, 0, opt_in, set_in_config,
|
||||
Off, Yes, No, No, NoAlias, (boolean *) 0)
|
||||
Off, Yes, No, No, NoAlias, (boolean *) 0, Term_False)
|
||||
#endif
|
||||
#ifdef TTY_SOUND_ESCCODES
|
||||
NHOPTB(vt_sounddata, Advanced, 0, opt_in, set_in_config,
|
||||
Off, Yes, No, No, NoAlias, &iflags.vt_sounddata)
|
||||
Off, Yes, No, No, NoAlias, &iflags.vt_sounddata, Term_False)
|
||||
#else
|
||||
NHOPTB(vt_sounddata, Advanced, 0, opt_in, set_in_config,
|
||||
Off, Yes, No, No, NoAlias, (boolean *) 0)
|
||||
Off, Yes, No, No, NoAlias, (boolean *) 0, Term_False)
|
||||
#endif
|
||||
NHOPTC(warnings, Advanced, 10, opt_in, set_in_config,
|
||||
No, Yes, No, No, NoAlias, "display characters for warnings")
|
||||
@@ -667,9 +685,9 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
Yes, Yes, No, Yes, NoAlias,
|
||||
"filter coordinate locations when targeting next or previous")
|
||||
NHOPTB(whatis_menu, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &iflags.getloc_usemenu)
|
||||
Off, Yes, No, No, NoAlias, &iflags.getloc_usemenu, Term_False)
|
||||
NHOPTB(whatis_moveskip, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &iflags.getloc_moveskip)
|
||||
Off, Yes, No, No, NoAlias, &iflags.getloc_moveskip, Term_False)
|
||||
NHOPTC(windowborders, Advanced, 9, opt_in, set_in_game,
|
||||
Yes, Yes, No, Yes, NoAlias, "0 (off), 1 (on), 2 (auto)")
|
||||
#ifdef WINCHAIN
|
||||
@@ -681,11 +699,11 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
"the foreground/background colors of windows")
|
||||
/* NHOPTC(windowtype) -- moved to top */
|
||||
NHOPTB(wizmgender, Advanced, 0, opt_in, set_wizonly,
|
||||
Off, Yes, No, No, NoAlias, &iflags.wizmgender)
|
||||
Off, Yes, No, No, NoAlias, &iflags.wizmgender, Term_False)
|
||||
NHOPTB(wizweight, Advanced, 0, opt_in, set_wizonly,
|
||||
Off, Yes, No, No, NoAlias, &iflags.wizweight)
|
||||
Off, Yes, No, No, NoAlias, &iflags.wizweight, Term_False)
|
||||
NHOPTB(wraptext, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &iflags.wc2_wraptext)
|
||||
Off, Yes, No, No, NoAlias, &iflags.wc2_wraptext, Term_False)
|
||||
|
||||
/*
|
||||
* Prefix-based Options
|
||||
|
||||
@@ -357,14 +357,14 @@ SoundAchievement(0, sa2_xpleveldown, level);
|
||||
|
||||
#define Play_usersound(filename, vol, idx) \
|
||||
do { \
|
||||
if (!Deaf && soundprocs.sound_play_usersound \
|
||||
if (iflags.sounds && !Deaf && soundprocs.sound_play_usersound \
|
||||
&& ((soundprocs.sound_triggers & SOUND_TRIGGER_USERSOUNDS) != 0)) \
|
||||
(*soundprocs.sound_play_usersound)((filename), (vol), (idx)); \
|
||||
} while(0)
|
||||
|
||||
#define Soundeffect(seid, vol) \
|
||||
do { \
|
||||
if (!Deaf && soundprocs.sound_soundeffect \
|
||||
if (iflags.sounds && !Deaf && soundprocs.sound_soundeffect \
|
||||
&& ((soundprocs.sound_triggers & SOUND_TRIGGER_SOUNDEFFECTS) != 0)) \
|
||||
(*soundprocs.sound_soundeffect)(emptystr, (seid), (vol)); \
|
||||
} while(0)
|
||||
@@ -372,14 +372,14 @@ SoundAchievement(0, sa2_xpleveldown, level);
|
||||
/* Player's perspective, not the hero's; no Deaf suppression */
|
||||
#define SoundeffectEvenIfDeaf(seid, vol) \
|
||||
do { \
|
||||
if (!soundprocs.sound_soundeffect \
|
||||
if (iflags.sounds && !soundprocs.sound_soundeffect \
|
||||
&& ((soundprocs.sound_triggers & SOUND_TRIGGER_SOUNDEFFECTS) != 0)) \
|
||||
(*soundprocs.sound_soundeffect)(emptystr, (seid), (vol)); \
|
||||
} while(0)
|
||||
|
||||
#define Hero_playnotes(instrument, str, vol) \
|
||||
do { \
|
||||
if (!Deaf && soundprocs.sound_hero_playnotes \
|
||||
if (iflags.sounds && !Deaf && soundprocs.sound_hero_playnotes \
|
||||
&& ((soundprocs.sound_triggers & SOUND_TRIGGER_HEROMUSIC) != 0)) \
|
||||
(*soundprocs.sound_hero_playnotes)((instrument), (str), (vol)); \
|
||||
} while(0)
|
||||
@@ -389,7 +389,7 @@ SoundAchievement(0, sa2_xpleveldown, level);
|
||||
/* Player's perspective, not the hero's; no Deaf suppression */
|
||||
#define SoundAchievement(arg1, arg2, avals) \
|
||||
do { \
|
||||
if (soundprocs.sound_achievement \
|
||||
if (iflags.sounds && soundprocs.sound_achievement \
|
||||
&& ((soundprocs.sound_triggers & SOUND_TRIGGER_ACHIEVEMENTS) != 0)) \
|
||||
(*soundprocs.sound_achievement)((arg1), (arg2), (avals)); \
|
||||
} while(0)
|
||||
|
||||
Reference in New Issue
Block a user