From: PatR Date: Mon, 2 Oct 2017 01:49:47 +0000 (-0700) Subject: more !STATUS_HILITES - option parsing X-Git-Tag: NetHack-3.6.1_RC01~326 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=67aaf4ef4c230d68a2ad08c1f87ce08e3ff22e08;p=nethack more !STATUS_HILITES - option parsing When built without STATUS_HILITES, don't treat highlighting options as if they were unknown. This may need some tweaking; the feedback feels a bit intrusive so perhaps 'statushilites' and 'hilite_status' should just be ignored when not available. 'hitpointbar' now relies on wc2 handling instead of being conditionally present. --- diff --git a/src/options.c b/src/options.c index d5842bb76..98afaa325 100644 --- a/src/options.c +++ b/src/options.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 options.c $NHDT-Date: 1505214875 2017/09/12 11:14:35 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.302 $ */ +/* NetHack 3.6 options.c $NHDT-Date: 1506908974 2017/10/02 01:49:34 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.309 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -131,9 +131,7 @@ static struct Bool_Opt { { "help", &flags.help, TRUE, SET_IN_GAME }, { "hilite_pet", &iflags.wc_hilite_pet, FALSE, SET_IN_GAME }, /*WC*/ { "hilite_pile", &iflags.hilite_pile, FALSE, SET_IN_GAME }, -#ifdef STATUS_HILITES { "hitpointbar", &iflags.wc2_hitpointbar, FALSE, SET_IN_GAME }, /*WC2*/ -#endif #ifndef MAC { "ignintr", &flags.ignintr, FALSE, SET_IN_GAME }, #else @@ -2172,8 +2170,9 @@ boolean tinitial, tfrom_file; symset[PRIMARY].name = dupstr(op); if (!read_sym_file(PRIMARY)) { clear_symsetentry(PRIMARY, TRUE); - config_error_add("Unable to load symbol set \"%s\" from \"%s\"", - op, SYMBOLS); + config_error_add( + "Unable to load symbol set \"%s\" from \"%s\"", + op, SYMBOLS); return FALSE; } else { switch_symbols(symset[PRIMARY].name != (char *) 0); @@ -2866,7 +2865,8 @@ boolean tinitial, tfrom_file; op++; } if (badopt) { - config_error_add("Unknown %s parameter '%s'", "pickup_types", op); + config_error_add("Unknown %s parameter '%s'", + "pickup_types", op); return FALSE; } } @@ -3351,6 +3351,7 @@ boolean tinitial, tfrom_file; return FALSE; return retval; } + #ifdef WINCHAIN fullname = "windowchain"; if (match_optname(opts, fullname, 3, TRUE)) { @@ -3465,9 +3466,9 @@ boolean tinitial, tfrom_file; return retval; } } -#ifdef STATUS_HILITES /* hilite fields in status prompt */ if (match_optname(opts, "hilite_status", 13, TRUE)) { +#ifdef STATUS_HILITES if (duplicate) complain_about_duplicate(opts, 1); op = string_for_opt(opts, TRUE); @@ -3481,11 +3482,16 @@ boolean tinitial, tfrom_file; if (!parse_status_hl1(op, tfrom_file)) return FALSE; return retval; +#else + config_error_add("'hilite_status' is not supported"); + return FALSE; +#endif } /* control over whether highlights should be displayed, and for how long */ fullname = "statushilites"; if (match_optname(opts, fullname, 9, TRUE)) { +#ifdef STATUS_HILITES if (negated) { iflags.hilite_delta = 0L; } else { @@ -3497,8 +3503,11 @@ boolean tinitial, tfrom_file; if (!tfrom_file) reset_status_hilites(); return retval; - } +#else + config_error_add("'statushilites' is not supported"); + return FALSE; #endif + } #if defined(BACKWARD_COMPAT) fullname = "DECgraphics"; @@ -3673,9 +3682,11 @@ boolean tinitial, tfrom_file; || boolopt[i].addr == &iflags.hilite_pile || boolopt[i].addr == &iflags.hilite_pet) { need_redraw = TRUE; - } else if ((boolopt[i].addr) == &iflags.wc2_hitpointbar) { +#ifdef STATUS_HILITES + } else if (boolopt[i].addr == &iflags.wc2_hitpointbar) { status_initialize(REASSESS_ONLY); need_redraw = TRUE; +#endif #ifdef TEXTCOLOR } else if (boolopt[i].addr == &iflags.use_color) { need_redraw = TRUE; @@ -6037,10 +6048,10 @@ struct wc_Opt wc2_options[] = { { "fullscreen", WC2_FULLSCREEN }, { "softkeyboard", WC2_SOFTKEYBOARD }, { "wraptext", WC2_WRAPTEXT }, { "use_darkgray", WC2_DARKGRAY }, -#ifdef STATUS_HILITES { "hitpointbar", WC2_HITPOINTBAR }, { "hilite_status", WC2_HILITE_STATUS }, -#endif + /* statushilites doesn't have its own bit */ + { "statushilites", WC2_HILITE_STATUS }, { (char *) 0, 0L } }; /* diff --git a/win/tty/wintty.c b/win/tty/wintty.c index aa9ecfa5e..821239c68 100644 --- a/win/tty/wintty.c +++ b/win/tty/wintty.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 wintty.c $NHDT-Date: 1506903624 2017/10/02 00:20:24 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.139 $ */ +/* NetHack 3.6 wintty.c $NHDT-Date: 1506908980 2017/10/02 01:49:40 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.140 $ */ /* Copyright (c) David Cohrs, 1991 */ /* NetHack may be freely redistributed. See license for details. */ @@ -53,20 +53,22 @@ extern NEARDATA winid WIN_STATUS; /* Interface definition, for windows.c */ struct window_procs tty_procs = { "tty", + (0 #ifdef MSDOS - WC_TILED_MAP | WC_ASCII_MAP | + | WC_TILED_MAP | WC_ASCII_MAP #endif #if defined(WIN32CON) - WC_MOUSE_SUPPORT | + | WC_MOUSE_SUPPORT #endif - WC_COLOR | WC_HILITE_PET | WC_INVERSE | WC_EIGHT_BIT_IN, + | WC_COLOR | WC_HILITE_PET | WC_INVERSE | WC_EIGHT_BIT_IN), + (0 #if defined(SELECTSAVED) - WC2_SELECTSAVED | + | WC2_SELECTSAVED #endif #if defined(STATUS_HILITES) - WC2_HITPOINTBAR | WC2_FLUSH_STATUS | + | WC2_HILITE_STATUS | WC2_HITPOINTBAR | WC2_FLUSH_STATUS #endif - WC2_DARKGRAY, + | WC2_DARKGRAY), tty_init_nhwindows, tty_player_selection, tty_askname, tty_get_nh_event, tty_exit_nhwindows, tty_suspend_nhwindows, tty_resume_nhwindows, tty_create_nhwindow, tty_clear_nhwindow, tty_display_nhwindow,