]> granicus.if.org Git - nethack/commitdiff
more !STATUS_HILITES - option parsing
authorPatR <rankin@nethack.org>
Mon, 2 Oct 2017 01:49:47 +0000 (18:49 -0700)
committerPatR <rankin@nethack.org>
Mon, 2 Oct 2017 01:49:47 +0000 (18:49 -0700)
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.

src/options.c
win/tty/wintty.c

index d5842bb7688880909bf08ab79e1dd5c47cd9a01d..98afaa325dd610b3f485f46fd0b981212b32a582 100644 (file)
@@ -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 } };
 
 /*
index aa9ecfa5e17ac1a7e40cd4a94a28a9d44bd96e0d..821239c68c6fe9cb40eb5da87f1ededa8cc835de 100644 (file)
@@ -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,