]> granicus.if.org Git - nethack/commitdiff
groundwork for window port interface change to add_menu
authornhmall <nhmall@nethack.org>
Sun, 22 Dec 2019 23:28:24 +0000 (18:28 -0500)
committernhmall <nhmall@nethack.org>
Sun, 22 Dec 2019 23:28:24 +0000 (18:28 -0500)
groundwork only - window port interface change

This changes the last parameter for add_menu() from a boolean
to an unsigned int, to allow additional itemflags in future
beyond just the "preselected" that the original boolean offered.

There shouldn't be any functionality changes with this groundwork-only
change, and if there are it is unintentional and should be reported.

54 files changed:
doc/window.doc
include/hack.h
include/macwin.h
include/winX.h
include/wincurs.h
include/wingem.h
include/winprocs.h
include/wintty.h
include/wintype.h
src/apply.c
src/artifact.c
src/botl.c
src/cmd.c
src/do_name.c
src/dungeon.c
src/end.c
src/invent.c
src/nhlua.c
src/o_init.c
src/options.c
src/pager.c
src/pickup.c
src/restore.c
src/role.c
src/spell.c
src/teleport.c
src/weapon.c
src/windows.c
sys/amiga/winami.c
sys/amiga/winami.p
sys/amiga/winmenu.c
sys/amiga/winproto.h
sys/mac/macwin.c
sys/wince/mhmsg.h
sys/wince/mswproc.c
sys/wince/winMS.h
win/Qt/qt_bind.cpp
win/Qt/qt_bind.h
win/Qt3/qt3_win.cpp
win/Qt3/qt3_win.h
win/chain/wc_chainin.c
win/chain/wc_chainout.c
win/chain/wc_trace.c
win/curses/cursinit.c
win/curses/cursmain.c
win/curses/cursmesg.c
win/gem/wingem.c
win/gnome/gnbind.c
win/share/safeproc.c
win/tty/wintty.c
win/win32/mhmenu.c
win/win32/mhmsg.h
win/win32/mswproc.c
win/win32/winMS.h

index 3758bf55b65dd54d1c7a47720b4ef8f12e604efb..5d82c613d7fbca7abe52d72715f0212befc1831c 100644 (file)
@@ -310,7 +310,7 @@ start_menu(window)
                   be used for menus.
 add_menu(windid window, int glyph, const anything identifier,
                                char accelerator, char groupacc,
-                               int attr, char *str, boolean preselected)
+                               int attr, char *str, unsigned itemflags)
                -- Add a text line str to the given menu window.  If identifier
                   is 0, then the line cannot be selected (e.g. a title).
                   Otherwise, identifier is the value returned if the line is
@@ -337,8 +337,8 @@ add_menu(windid window, int glyph, const anything identifier,
                   the menu command (or their user defined aliases), it loses.
                   The menu commands and aliases take care not to interfere
                   with the default object class symbols.
-               -- If you want this choice to be preselected when the
-                  menu is displayed, set preselected to TRUE.
+               -- itemflags on this item (such as MENU_ITEMFLAGS_UNSELECTED,
+                   MENU_ITEMFLAGS_PRESELECTED, etc.).
 
 end_menu(window, prompt)
                -- Stop adding entries to the menu and flushes the window
index d22197b6150e80f090833375873147d7f2cbe728..baedf773a7258a809c1cd28cdd31fb857af2db9a 100644 (file)
@@ -490,9 +490,6 @@ enum bodypart_types {
 #define MENU_FULL 2
 #define MENU_PARTIAL 3
 
-#define MENU_SELECTED TRUE
-#define MENU_UNSELECTED FALSE
-
 /*
  * Option flags
  * Each higher number includes the characteristics of the numbers
index b9b6ede14ee3e302800e9ba20b7b1c2458ff83c8..3e33c847f35e489d7aaf09897050b217ef363f79 100644 (file)
@@ -227,7 +227,7 @@ E void FDECL(mac_curs, (winid, int, int));
 E void FDECL(mac_putstr, (winid, int, const char *));
 E void FDECL(mac_start_menu, (winid));
 E void FDECL(mac_add_menu, (winid, int, const anything *, CHAR_P, CHAR_P, int,
-                            const char *, BOOLEAN_P));
+                            const char *, unsigned int));
 E void FDECL(mac_end_menu, (winid, const char *));
 E int FDECL(mac_select_menu, (winid, int, menu_item **));
 #ifdef CLIPPING
index a1a56052815168694e23f9315d6247818587e855..93a3c109658550c22fb8f5e0fccc1311ecf02bc0 100644 (file)
@@ -418,7 +418,7 @@ E void FDECL(X11_putstr, (winid, int, const char *));
 E void FDECL(X11_display_file, (const char *, BOOLEAN_P));
 E void FDECL(X11_start_menu, (winid));
 E void FDECL(X11_add_menu, (winid, int, const ANY_P *, CHAR_P, CHAR_P, int,
-                            const char *, BOOLEAN_P));
+                            const char *, unsigned int));
 E void FDECL(X11_end_menu, (winid, const char *));
 E int FDECL(X11_select_menu, (winid, int, MENU_ITEM_P **));
 E void NDECL(X11_update_inventory);
index 8ae45e10ea4d46c84f1f9c1655fa5994c22437a7..07da384ac491671ef3cdd65fb77385a7863bb552 100644 (file)
@@ -82,7 +82,7 @@ extern void curses_display_file(const char *filename, BOOLEAN_P must_exist);
 extern void curses_start_menu(winid wid);
 extern void curses_add_menu(winid wid, int glyph, const ANY_P * identifier,
                             CHAR_P accelerator, CHAR_P group_accel, int attr,
-                            const char *str, BOOLEAN_P presel);
+                            const char *str, unsigned int itemflags);
 extern void curses_end_menu(winid wid, const char *prompt);
 extern int curses_select_menu(winid wid, int how, MENU_ITEM_P **selected);
 extern void curses_update_inventory(void);
index 61c7e7c87dcdd1f1508a688efb5064631603d67e..376b732d9f7815ed8293bc9357d3e601b3c493fc 100644 (file)
@@ -71,7 +71,7 @@ E void FDECL(Gem_putstr, (winid, int, const char *));
 E void FDECL(Gem_display_file, (const char *, BOOLEAN_P));
 E void FDECL(Gem_start_menu, (winid));
 E void FDECL(Gem_add_menu, (winid, int, const ANY_P *, CHAR_P, CHAR_P, int,
-                            const char *, BOOLEAN_P));
+                            const char *, unsigned int));
 E void FDECL(Gem_end_menu, (winid, const char *));
 E int FDECL(Gem_select_menu, (winid, int, MENU_ITEM_P **));
 E char FDECL(Gem_message_menu, (CHAR_P, int, const char *));
index 55b2b061135b9e27bc056c238a10fd2519e4963d..8c266e4ffe8af2896df0d3e1b3ec8ccef71f4c59 100644 (file)
@@ -32,7 +32,7 @@ struct window_procs {
     void FDECL((*win_display_file), (const char *, BOOLEAN_P));
     void FDECL((*win_start_menu), (winid));
     void FDECL((*win_add_menu), (winid, int, const ANY_P *, CHAR_P, CHAR_P,
-                                 int, const char *, BOOLEAN_P));
+                                 int, const char *, unsigned int));
     void FDECL((*win_end_menu), (winid, const char *));
     int FDECL((*win_select_menu), (winid, int, MENU_ITEM_P **));
     char FDECL((*win_message_menu), (CHAR_P, int, const char *));
@@ -331,7 +331,7 @@ struct chain_procs {
     void FDECL((*win_display_file), (CARGS, const char *, BOOLEAN_P));
     void FDECL((*win_start_menu), (CARGS, winid));
     void FDECL((*win_add_menu), (CARGS, winid, int, const ANY_P *, CHAR_P,
-                                 CHAR_P, int, const char *, BOOLEAN_P));
+                                 CHAR_P, int, const char *, unsigned int));
     void FDECL((*win_end_menu), (CARGS, winid, const char *));
     int FDECL((*win_select_menu), (CARGS, winid, int, MENU_ITEM_P **));
     char FDECL((*win_message_menu), (CARGS, CHAR_P, int, const char *));
@@ -405,7 +405,7 @@ extern void FDECL(safe_putmixed, (winid, int, const char *));
 extern void FDECL(safe_display_file, (const char *, BOOLEAN_P));
 extern void FDECL(safe_start_menu, (winid));
 extern void FDECL(safe_add_menu, (winid, int, const ANY_P *, CHAR_P, CHAR_P,
-                                  int, const char *, BOOLEAN_P));
+                                  int, const char *, unsigned int));
 extern void FDECL(safe_end_menu, (winid, const char *));
 extern int FDECL(safe_select_menu, (winid, int, MENU_ITEM_P **));
 extern char FDECL(safe_message_menu, (CHAR_P, int, const char *));
index a42ed22d42062cd5044b46cb1dbbbd1f765e4b0a..30e257e970176563f61f64f1d0600e2926ebe88b 100644 (file)
 /* menu structure */
 typedef struct tty_mi {
     struct tty_mi *next;
-    anything identifier; /* user identifier */
-    long count;          /* user count */
-    char *str;           /* description string (including accelerator) */
-    int attr;            /* string attribute */
-    boolean selected;    /* TRUE if selected by user */
-    char selector;       /* keyboard accelerator */
-    char gselector;      /* group accelerator */
+    anything identifier;    /* user identifier */
+    long count;             /* user count */
+    char *str;              /* description string (including accelerator) */
+    int attr;               /* string attribute */
+    boolean selected;       /* TRUE if selected by user */
+    unsigned int itemflags; /* */
+    char selector;          /* keyboard accelerator */
+    char gselector;         /* group accelerator */
 } tty_menu_item;
 
 /* descriptor for tty-based windows */
@@ -191,7 +192,7 @@ E void FDECL(tty_putstr, (winid, int, const char *));
 E void FDECL(tty_display_file, (const char *, BOOLEAN_P));
 E void FDECL(tty_start_menu, (winid));
 E void FDECL(tty_add_menu, (winid, int, const ANY_P *, CHAR_P, CHAR_P, int,
-                            const char *, BOOLEAN_P));
+                            const char *, unsigned int));
 E void FDECL(tty_end_menu, (winid, const char *));
 E int FDECL(tty_select_menu, (winid, int, MENU_ITEM_P **));
 E char FDECL(tty_message_menu, (CHAR_P, int, const char *));
index 26afbca3f914e319a4c91c836c4f6de2d3a8bcbd..550afad3a82fba2449ba123599327831c0822332 100644 (file)
@@ -54,8 +54,9 @@ enum any_types {
 
 /* menu return list */
 typedef struct mi {
-    anything item; /* identifier */
-    long count;    /* count */
+    anything item;     /* identifier */
+    long count;        /* count */
+    unsigned itemflags; /* item flags */
 } menu_item;
 #define MENU_ITEM_P struct mi
 
@@ -105,6 +106,10 @@ typedef struct mi {
 #define MENU_UNSELECT_PAGE      '\\'
 #define MENU_INVERT_PAGE        '~'
 #define MENU_SEARCH             ':'
+
+#define MENU_ITEMFLAGS_NONE     0x0000000
+#define MENU_ITEMFLAGS_SELECTED 0x0000001
+
 /* clang-format on */
 
 #endif /* WINTYPE_H */
index 6451187e986139865e786b14ee7240e5125e7c29..2eb8c2372bbb6377a9bb203402f48b71e8fd659f 100644 (file)
@@ -3178,14 +3178,14 @@ struct obj *obj;
         any.a_int++;
         Sprintf(buf, "an object on the %s", surface(cc.x, cc.y));
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
-                 MENU_UNSELECTED);
+                 MENU_ITEMFLAGS_NONE);
         any.a_int++;
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "a monster",
-                 MENU_UNSELECTED);
+                 MENU_ITEMFLAGS_NONE);
         any.a_int++;
         Sprintf(buf, "the %s", surface(cc.x, cc.y));
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
-                 MENU_UNSELECTED);
+                 MENU_ITEMFLAGS_NONE);
         end_menu(tmpwin, "Aim for what?");
         tohit = rn2(4);
         if (select_menu(tmpwin, PICK_ONE, &selected) > 0
index e25fedb24568b077fe138837bc8840eabacaeceb..b0a81989de07429b520f15f904821b00f7e3038c 100644 (file)
@@ -1524,7 +1524,7 @@ struct obj *obj;
                     continue;
                 any.a_int = i + 1;
                 add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                         g.dungeons[i].dname, MENU_UNSELECTED);
+                         g.dungeons[i].dname, MENU_ITEMFLAGS_NONE);
                 num_ok_dungeons++;
                 last_ok_dungeon = i;
             }
index d5454aa8273eb540cade6f1b5d10891994ed7140..37594ff7c0bcc7461a6b1683b22d499ec45b515a 100644 (file)
@@ -1930,7 +1930,7 @@ int arrmin, arrmax;
         any = cg.zeroany;
         any.a_int = i + adj;
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                 arr[i], MENU_UNSELECTED);
+                 arr[i], MENU_ITEMFLAGS_NONE);
     }
 
     end_menu(tmpwin, querystr);
@@ -2305,7 +2305,7 @@ query_conditions()
         any = cg.zeroany;
         any.a_ulong = valid_conditions[i].bitmask;
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                 valid_conditions[i].id, MENU_UNSELECTED);
+                 valid_conditions[i].id, MENU_ITEMFLAGS_NONE);
     }
 
     end_menu(tmpwin, "Choose status conditions");
@@ -2874,7 +2874,7 @@ status_hilite_menu_choose_field()
         any = cg.zeroany;
         any.a_int = (i + 1);
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                 initblstats[i].fldname, MENU_UNSELECTED);
+                 initblstats[i].fldname, MENU_ITEMFLAGS_NONE);
     }
 
     end_menu(tmpwin, "Select a hilite field:");
@@ -2913,7 +2913,7 @@ int fld;
         any.a_int = onlybeh = BL_TH_ALWAYS_HILITE;
         Sprintf(buf, "Always highlight %s", initblstats[fld].fldname);
         add_menu(tmpwin, NO_GLYPH, &any, 'a', 0, ATR_NONE,
-                 buf, MENU_UNSELECTED);
+                 buf, MENU_ITEMFLAGS_NONE);
         nopts++;
     }
 
@@ -2921,7 +2921,7 @@ int fld;
         any = cg.zeroany;
         any.a_int = onlybeh = BL_TH_CONDITION;
         add_menu(tmpwin, NO_GLYPH, &any, 'b', 0, ATR_NONE,
-                 "Bitmask of conditions", MENU_UNSELECTED);
+                 "Bitmask of conditions", MENU_ITEMFLAGS_NONE);
         nopts++;
     }
 
@@ -2930,7 +2930,7 @@ int fld;
         any.a_int = onlybeh = BL_TH_UPDOWN;
         Sprintf(buf, "%s value changes", initblstats[fld].fldname);
         add_menu(tmpwin, NO_GLYPH, &any, 'c', 0, ATR_NONE,
-                 buf, MENU_UNSELECTED);
+                 buf, MENU_ITEMFLAGS_NONE);
         nopts++;
     }
 
@@ -2939,7 +2939,7 @@ int fld;
         any = cg.zeroany;
         any.a_int = onlybeh = BL_TH_VAL_ABSOLUTE;
         add_menu(tmpwin, NO_GLYPH, &any, 'n', 0, ATR_NONE,
-                 "Number threshold", MENU_UNSELECTED);
+                 "Number threshold", MENU_ITEMFLAGS_NONE);
         nopts++;
     }
 
@@ -2947,7 +2947,7 @@ int fld;
         any = cg.zeroany;
         any.a_int = onlybeh = BL_TH_VAL_PERCENTAGE;
         add_menu(tmpwin, NO_GLYPH, &any, 'p', 0, ATR_NONE,
-                 "Percentage threshold", MENU_UNSELECTED);
+                 "Percentage threshold", MENU_ITEMFLAGS_NONE);
         nopts++;
     }
 
@@ -2957,7 +2957,7 @@ int fld;
         any.a_int = onlybeh = BL_TH_TEXTMATCH;
         Sprintf(buf, "%s text match", initblstats[fld].fldname);
         add_menu(tmpwin, NO_GLYPH, &any, 't', 0, ATR_NONE,
-                 buf, MENU_UNSELECTED);
+                 buf, MENU_ITEMFLAGS_NONE);
         nopts++;
     }
 
@@ -3004,7 +3004,7 @@ boolean ltok, gtok;
         any = cg.zeroany;
         any.a_int = 10 + LT_VALUE;
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                 buf, MENU_UNSELECTED);
+                 buf, MENU_ITEMFLAGS_NONE);
 
         if (str) {
             Sprintf(buf, "%s or %s",
@@ -3012,7 +3012,7 @@ boolean ltok, gtok;
             any = cg.zeroany;
             any.a_int = 10 + LE_VALUE;
             add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                     buf, MENU_UNSELECTED);
+                     buf, MENU_ITEMFLAGS_NONE);
         }
     }
 
@@ -3023,7 +3023,7 @@ boolean ltok, gtok;
     any = cg.zeroany;
     any.a_int = 10 + EQ_VALUE;
     add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-             buf, MENU_UNSELECTED);
+             buf, MENU_ITEMFLAGS_NONE);
 
     if (gtok) {
         if (str) {
@@ -3032,7 +3032,7 @@ boolean ltok, gtok;
             any = cg.zeroany;
             any.a_int = 10 + GE_VALUE;
             add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                     buf, MENU_UNSELECTED);
+                     buf, MENU_ITEMFLAGS_NONE);
         }
 
         if (str)
@@ -3043,7 +3043,7 @@ boolean ltok, gtok;
         any = cg.zeroany;
         any.a_int = 10 + GT_VALUE;
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-             buf, MENU_UNSELECTED);
+             buf, MENU_ITEMFLAGS_NONE);
     }
     Sprintf(buf, "Select field %s value:", initblstats[fld].fldname);
     end_menu(tmpwin, buf);
@@ -3545,25 +3545,28 @@ int fld;
                 any = cg.zeroany;
                 any.a_int = hlstr->id;
                 add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                         hlstr->str, MENU_UNSELECTED);
+                         hlstr->str, MENU_ITEMFLAGS_NONE);
             }
             hlstr = hlstr->next;
         }
     } else {
         any = cg.zeroany;
         Sprintf(buf, "No current hilites for %s", initblstats[fld].fldname);
-        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_UNSELECTED);
+        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+                 MENU_ITEMFLAGS_NONE);
     }
 
     /* separator line */
     any = cg.zeroany;
-    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
+             MENU_ITEMFLAGS_NONE);
 
     if (count) {
         any = cg.zeroany;
         any.a_int = -1;
         add_menu(tmpwin, NO_GLYPH, &any, 'X', 0, ATR_NONE,
-                 "Remove selected hilites", MENU_UNSELECTED);
+                 "Remove selected hilites",
+                 MENU_ITEMFLAGS_NONE);
     }
 
 #ifndef SCORE_ON_BOTL
@@ -3579,7 +3582,7 @@ int fld;
         any = cg.zeroany;
         any.a_int = -2;
         add_menu(tmpwin, NO_GLYPH, &any, 'Z', 0, ATR_NONE,
-                 "Add a new hilite", MENU_UNSELECTED);
+                 "Add a new hilite", MENU_ITEMFLAGS_NONE);
     }
 
     Sprintf(buf, "Current %s hilites:", initblstats[fld].fldname);
@@ -3675,10 +3678,12 @@ shlmenu_redo:
         any = cg.zeroany;
         any.a_int = -1;
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                 "View all hilites in config format", MENU_UNSELECTED);
+                 "View all hilites in config format",
+                 MENU_ITEMFLAGS_NONE);
 
         any = cg.zeroany;
-        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
+        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
+                 MENU_ITEMFLAGS_NONE);
     }
 
     for (i = 0; i < MAXBLSTATS; i++) {
@@ -3699,7 +3704,7 @@ shlmenu_redo:
         if (count)
             Sprintf(eos(buf), " (%d defined)", count);
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                 buf, MENU_UNSELECTED);
+                 buf, MENU_ITEMFLAGS_NONE);
     }
 
     end_menu(tmpwin, "Status hilites:");
index fa9e4cae6a3301de54e349eb4d5febc59d21fabd..542574a6410f45a3ad699c33624a3b557f7af965 100644 (file)
--- a/src/cmd.c
+++ b/src/cmd.c
@@ -378,9 +378,10 @@ doextlist(VOID_ARGS)
         any = cg.zeroany;
         start_menu(menuwin);
         add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                 "Extended Commands List", MENU_UNSELECTED);
+                 "Extended Commands List",
+                 MENU_ITEMFLAGS_NONE);
         add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                 "", MENU_UNSELECTED);
+                 "", MENU_ITEMFLAGS_NONE);
 
         Strcpy(buf, menumode ? "Show" : "Hide");
         Strcat(buf, " commands that don't autocomplete");
@@ -388,7 +389,7 @@ doextlist(VOID_ARGS)
             Strcat(buf, " (those not marked with [A])");
         any.a_int = 1;
         add_menu(menuwin, NO_GLYPH, &any, 'a', 0, ATR_NONE, buf,
-                 MENU_UNSELECTED);
+                 MENU_ITEMFLAGS_NONE);
 
         if (!*searchbuf) {
             any.a_int = 2;
@@ -398,7 +399,8 @@ doextlist(VOID_ARGS)
                having ':' as an explicit selector overrides the default
                menu behavior for it; we retain 's' as a group accelerator */
             add_menu(menuwin, NO_GLYPH, &any, ':', 's', ATR_NONE,
-                     "Search extended commands", MENU_UNSELECTED);
+                     "Search extended commands",
+                     MENU_ITEMFLAGS_NONE);
         } else {
             Strcpy(buf, "Show all, clear search");
             if (strlen(buf) + strlen(searchbuf) + strlen(" (\"\")") < QBUFSZ)
@@ -410,18 +412,18 @@ doextlist(VOID_ARGS)
                work for interfaces which support ':' to search; use as a
                general menu command takes precedence over group accelerator */
             add_menu(menuwin, NO_GLYPH, &any, 's', ':', ATR_NONE,
-                     buf, MENU_UNSELECTED);
+                     buf, MENU_ITEMFLAGS_NONE);
         }
         if (wizard) {
             any.a_int = 4;
             add_menu(menuwin, NO_GLYPH, &any, 'z', 0, ATR_NONE,
                      onelist ? "Show debugging commands in separate section"
                      : "Show all alphabetically, including debugging commands",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
         }
         any = cg.zeroany;
         add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                 "", MENU_UNSELECTED);
+                 "", MENU_ITEMFLAGS_NONE);
         menushown[0] = menushown[1] = 0;
         n = 0;
         for (pass = 0; pass <= 1; ++pass) {
@@ -463,7 +465,8 @@ doextlist(VOID_ARGS)
                 if (!menushown[pass]) {
                     Strcpy(buf, headings[pass]);
                     add_menu(menuwin, NO_GLYPH, &any, 0, 0,
-                             iflags.menu_headings, buf, MENU_UNSELECTED);
+                             iflags.menu_headings, buf,
+                             MENU_ITEMFLAGS_NONE);
                     menushown[pass] = 1;
                 }
                 Sprintf(buf, " %-14s %-3s %s",
@@ -471,16 +474,16 @@ doextlist(VOID_ARGS)
                         (efp->flags & AUTOCOMPLETE) ? "[A]" : " ",
                         efp->ef_desc);
                 add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                         buf, MENU_UNSELECTED);
+                         buf, MENU_ITEMFLAGS_NONE);
                 ++n;
             }
             if (n)
                 add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                         "", MENU_UNSELECTED);
+                         "", MENU_ITEMFLAGS_NONE);
         }
         if (*searchbuf && !n)
             add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                     "no matches", MENU_UNSELECTED);
+                     "no matches", MENU_ITEMFLAGS_NONE);
 
         end_menu(menuwin, (char *) 0);
         n = select_menu(menuwin, PICK_ONE, &selected);
@@ -617,7 +620,7 @@ extcmd_via_menu()
                     Sprintf(buf, fmtstr, prompt);
                     any.a_char = prevaccelerator;
                     add_menu(win, NO_GLYPH, &any, any.a_char, 0, ATR_NONE,
-                             buf, FALSE);
+                             buf, MENU_ITEMFLAGS_NONE);
                     acount = 0;
                     if (!(accelerator != prevaccelerator || one_per_line))
                         wastoolong = TRUE;
@@ -641,7 +644,7 @@ extcmd_via_menu()
             Sprintf(buf, fmtstr, prompt);
             any.a_char = prevaccelerator;
             add_menu(win, NO_GLYPH, &any, any.a_char, 0, ATR_NONE, buf,
-                     FALSE);
+                     MENU_ITEMFLAGS_NONE);
         }
         Sprintf(prompt, "Extended Command: %s", cbuf);
         end_menu(win, prompt);
@@ -1488,7 +1491,8 @@ wiz_intrinsic(VOID_ARGS)
             }
             if (p == FIRE_RES) {
                 any.a_int = 0;
-                add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "--", FALSE);
+                add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "--",
+                         MENU_ITEMFLAGS_NONE);
             }
             any.a_int = i + 1; /* +1: avoid 0 */
             oldtimeout = u.uprops[p].intrinsic & TIMEOUT;
@@ -1496,7 +1500,8 @@ wiz_intrinsic(VOID_ARGS)
                 Sprintf(buf, "%-27s [%li]", propname, oldtimeout);
             else
                 Sprintf(buf, "%s", propname);
-            add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
+            add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+                     MENU_ITEMFLAGS_NONE);
         }
         end_menu(win, "Which intrinsics?");
         n = select_menu(win, PICK_ANY, &pick_list);
@@ -1623,29 +1628,29 @@ doterrain(VOID_ARGS)
     any.a_int = 1;
     add_menu(men, NO_GLYPH, &any, 0, 0, ATR_NONE,
              "known map without monsters, objects, and traps",
-             MENU_SELECTED);
+             MENU_ITEMFLAGS_SELECTED);
     any.a_int = 2;
     add_menu(men, NO_GLYPH, &any, 0, 0, ATR_NONE,
              "known map without monsters and objects",
-             MENU_UNSELECTED);
+             MENU_ITEMFLAGS_NONE);
     any.a_int = 3;
     add_menu(men, NO_GLYPH, &any, 0, 0, ATR_NONE,
              "known map without monsters",
-             MENU_UNSELECTED);
+             MENU_ITEMFLAGS_NONE);
     if (discover || wizard) {
         any.a_int = 4;
         add_menu(men, NO_GLYPH, &any, 0, 0, ATR_NONE,
                  "full map without monsters, objects, and traps",
-                 MENU_UNSELECTED);
+                 MENU_ITEMFLAGS_NONE);
         if (wizard) {
             any.a_int = 5;
             add_menu(men, NO_GLYPH, &any, 0, 0, ATR_NONE,
                      "internal levl[][].typ codes in base-36",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
             any.a_int = 6;
             add_menu(men, NO_GLYPH, &any, 0, 0, ATR_NONE,
                      "legend of base-36 levl[][].typ codes",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
         }
     }
     end_menu(men, "View which?");
@@ -1715,7 +1720,8 @@ const char *buf;
         anything any;
 
         any = cg.zeroany;
-        add_menu(g.en_win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
+        add_menu(g.en_win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+                 MENU_ITEMFLAGS_NONE);
     } else
         putstr(g.en_win, 0, buf);
 }
@@ -3163,64 +3169,78 @@ minimal_enlightenment()
     tmpwin = create_nhwindow(NHW_MENU);
     start_menu(tmpwin);
     add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
-             "Starting", FALSE);
+             "Starting", MENU_ITEMFLAGS_NONE);
 
     /* Starting name, race, role, gender */
     Sprintf(buf, fmtstr, "name", g.plname);
-    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+             MENU_ITEMFLAGS_NONE);
     Sprintf(buf, fmtstr, "race", g.urace.noun);
-    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+             MENU_ITEMFLAGS_NONE);
     Sprintf(buf, fmtstr, "role",
             (flags.initgend && g.urole.name.f) ? g.urole.name.f : g.urole.name.m);
-    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+             MENU_ITEMFLAGS_NONE);
     Sprintf(buf, fmtstr, "gender", genders[flags.initgend].adj);
-    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+             MENU_ITEMFLAGS_NONE);
 
     /* Starting alignment */
     Sprintf(buf, fmtstr, "alignment", align_str(u.ualignbase[A_ORIGINAL]));
-    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+             MENU_ITEMFLAGS_NONE);
 
     /* Current name, race, role, gender */
-    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", FALSE);
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
+             MENU_ITEMFLAGS_NONE);
     add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
-             "Current", FALSE);
+             "Current", MENU_ITEMFLAGS_NONE);
     Sprintf(buf, fmtstr, "race", Upolyd ? g.youmonst.data->mname : g.urace.noun);
-    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+             MENU_ITEMFLAGS_NONE);
     if (Upolyd) {
         Sprintf(buf, fmtstr, "role (base)",
                 (u.mfemale && g.urole.name.f) ? g.urole.name.f
                                             : g.urole.name.m);
-        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
+        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+                 MENU_ITEMFLAGS_NONE);
     } else {
         Sprintf(buf, fmtstr, "role",
                 (flags.female && g.urole.name.f) ? g.urole.name.f
                                                : g.urole.name.m);
-        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
+        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+                 MENU_ITEMFLAGS_NONE);
     }
     /* don't want poly_gender() here; it forces `2' for non-humanoids */
     genidx = is_neuter(g.youmonst.data) ? 2 : flags.female;
     Sprintf(buf, fmtstr, "gender", genders[genidx].adj);
-    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+             MENU_ITEMFLAGS_NONE);
     if (Upolyd && (int) u.mfemale != genidx) {
         Sprintf(buf, fmtstr, "gender (base)", genders[u.mfemale].adj);
-        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
+        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+                 MENU_ITEMFLAGS_NONE);
     }
 
     /* Current alignment */
     Sprintf(buf, fmtstr, "alignment", align_str(u.ualign.type));
-    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+             MENU_ITEMFLAGS_NONE);
 
     /* Deity list */
-    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", FALSE);
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
+             MENU_ITEMFLAGS_NONE);
     add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
-             "Deities", FALSE);
+             "Deities", MENU_ITEMFLAGS_NONE);
     Sprintf(buf2, deity_fmtstr, align_gname(A_CHAOTIC),
             (u.ualignbase[A_ORIGINAL] == u.ualign.type
              && u.ualign.type == A_CHAOTIC)               ? " (s,c)"
                 : (u.ualignbase[A_ORIGINAL] == A_CHAOTIC) ? " (s)"
                 : (u.ualign.type   == A_CHAOTIC)          ? " (c)" : "");
     Sprintf(buf, fmtstr, "Chaotic", buf2);
-    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+             MENU_ITEMFLAGS_NONE);
 
     Sprintf(buf2, deity_fmtstr, align_gname(A_NEUTRAL),
             (u.ualignbase[A_ORIGINAL] == u.ualign.type
@@ -3228,7 +3248,8 @@ minimal_enlightenment()
                 : (u.ualignbase[A_ORIGINAL] == A_NEUTRAL) ? " (s)"
                 : (u.ualign.type   == A_NEUTRAL)          ? " (c)" : "");
     Sprintf(buf, fmtstr, "Neutral", buf2);
-    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+             MENU_ITEMFLAGS_NONE);
 
     Sprintf(buf2, deity_fmtstr, align_gname(A_LAWFUL),
             (u.ualignbase[A_ORIGINAL] == u.ualign.type
@@ -3236,7 +3257,8 @@ minimal_enlightenment()
                 : (u.ualignbase[A_ORIGINAL] == A_LAWFUL)  ? " (s)"
                 : (u.ualign.type   == A_LAWFUL)           ? " (c)" : "");
     Sprintf(buf, fmtstr, "Lawful", buf2);
-    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+             MENU_ITEMFLAGS_NONE);
 
     end_menu(tmpwin, "Base Attributes");
     n = select_menu(tmpwin, PICK_NONE, &selected);
@@ -5443,7 +5465,8 @@ const char *text;
     if ((ch = cmd_from_func(func)) != '\0') {
         any = cg.zeroany;
         any.a_nfunc = func;
-        add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, text, MENU_UNSELECTED);
+        add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, text,
+                 MENU_ITEMFLAGS_NONE);
     }
 }
 
index cf812daa31dc5c67e24a1edf49dd9a139fb6fd74..57cb551c8f6a0d022a97287107ccbc75225b9aca 100644 (file)
@@ -601,7 +601,7 @@ int gloc;
             Sprintf(fullbuf, "%s%s%s", firstmatch,
                     (*tmpbuf ? " " : ""), tmpbuf);
             add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, fullbuf,
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
         }
     }
 
@@ -1352,26 +1352,26 @@ docallcmd()
     any = cg.zeroany;
     any.a_char = 'm'; /* group accelerator 'C' */
     add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'C', ATR_NONE,
-             "a monster", MENU_UNSELECTED);
+             "a monster", MENU_ITEMFLAGS_NONE);
     if (g.invent) {
         /* we use y and n as accelerators so that we can accept user's
            response keyed to old "name an individual object?" prompt */
         any.a_char = 'i'; /* group accelerator 'y' */
         add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'y', ATR_NONE,
-                 "a particular object in inventory", MENU_UNSELECTED);
+                 "a particular object in inventory", MENU_ITEMFLAGS_NONE);
         any.a_char = 'o'; /* group accelerator 'n' */
         add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'n', ATR_NONE,
-                 "the type of an object in inventory", MENU_UNSELECTED);
+                 "the type of an object in inventory", MENU_ITEMFLAGS_NONE);
     }
     any.a_char = 'f'; /* group accelerator ',' (or ':' instead?) */
     add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, ',', ATR_NONE,
-             "the type of an object upon the floor", MENU_UNSELECTED);
+             "the type of an object upon the floor", MENU_ITEMFLAGS_NONE);
     any.a_char = 'd'; /* group accelerator '\' */
     add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, '\\', ATR_NONE,
-             "the type of an object on discoveries list", MENU_UNSELECTED);
+             "the type of an object on discoveries list", MENU_ITEMFLAGS_NONE);
     any.a_char = 'a'; /* group accelerator 'l' */
     add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'l', ATR_NONE,
-             "record an annotation for the current level", MENU_UNSELECTED);
+             "record an annotation for the current level", MENU_ITEMFLAGS_NONE);
     end_menu(win, "What do you want to name?");
     if (select_menu(win, PICK_ONE, &pick_list) > 0) {
         ch = pick_list[0].item.a_char;
index 54a13c9ae4c16051b3c34dcee75e2970fb8b7f72..f07f375f1a977d8bfdbf703847bba89f188d67bd 100644 (file)
@@ -1978,7 +1978,7 @@ boolean unreachable;
         any.a_int = lchoices->idx + 1;
     }
     add_menu(win, NO_GLYPH, &any, lchoices->menuletter, 0, ATR_NONE, entry,
-             MENU_UNSELECTED);
+             MENU_ITEMFLAGS_NONE);
     /* this assumes there are at most 52 interesting levels */
     if (lchoices->menuletter == 'z')
         lchoices->menuletter = 'A';
@@ -2090,7 +2090,7 @@ xchar *rdgn;
         if (bymenu) {
             any = cg.zeroany;
             add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, buf,
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
         } else
             putstr(win, 0, buf);
 
index c35677ed2732032469df621d5ee06d643aaa3e2c..74d1bdf5374286c03621a4c0d581215eb82d46c1 100644 (file)
--- a/src/end.c
+++ b/src/end.c
@@ -1815,7 +1815,8 @@ set_vanq_order()
             continue;
         any.a_int = i + 1;
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, vanqorders[i],
-                 (i == g.vanq_sortmode) ? MENU_SELECTED : MENU_UNSELECTED);
+                 (i == g.vanq_sortmode)
+                    ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
     }
     end_menu(tmpwin, "Sort order for vanquished monster counts");
 
index cc6bd353cf984748fdad412900c534bdf1ee2a43..8ca20b3e16041726d251dff9c70dd3dc878341a0 100644 (file)
@@ -2654,11 +2654,11 @@ long *out_cnt;
             Sprintf(eos(prompt),
                     " -- unidentified or partially identified item%s",
                     plur(unid_cnt));
-        add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, prompt, MENU_UNSELECTED);
+        add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, prompt, MENU_ITEMFLAGS_NONE);
         if (!unid_cnt) {
             add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
                      "(all items are permanently identified already)",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
             gotsomething = TRUE;
         } else {
             any.a_obj = &wizid_fakeobj;
@@ -2673,17 +2673,17 @@ long *out_cnt;
                 Sprintf(eos(prompt), " (%s for all)",
                         visctrl(iflags.override_ID));
             add_menu(win, NO_GLYPH, &any, '_', iflags.override_ID, ATR_NONE,
-                     prompt, MENU_UNSELECTED);
+                     prompt, MENU_ITEMFLAGS_NONE);
             gotsomething = TRUE;
         }
    } else if (xtra_choice) {
         /* wizard override ID and xtra_choice are mutually exclusive */
         if (flags.sortpack)
             add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
-                     "Miscellaneous", MENU_UNSELECTED);
+                     "Miscellaneous", MENU_ITEMFLAGS_NONE);
         any.a_char = HANDS_SYM; /* '-' */
         add_menu(win, NO_GLYPH, &any, HANDS_SYM, 0, ATR_NONE,
-                 xtra_choice, MENU_UNSELECTED);
+                 xtra_choice, MENU_ITEMFLAGS_NONE);
         gotsomething = TRUE;
     }
  nextclass:
@@ -2700,7 +2700,7 @@ long *out_cnt;
                 add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
                          let_to_name(*invlet, FALSE,
                                      (want_reply && iflags.menu_head_objsym)),
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 classcount++;
             }
             if (wizid)
@@ -2709,7 +2709,7 @@ long *out_cnt;
                 any.a_char = ilet;
             add_menu(win, obj_to_glyph(otmp, rn2_on_display_rng), &any, ilet,
                      wizid ? def_oc_syms[(int) otmp->oclass].sym : 0,
-                     ATR_NONE, doname(otmp), MENU_UNSELECTED);
+                     ATR_NONE, doname(otmp), MENU_ITEMFLAGS_NONE);
             gotsomething = TRUE;
         }
     }
@@ -2724,10 +2724,10 @@ long *out_cnt;
     if (iflags.force_invmenu && lets && want_reply) {
         any = cg.zeroany;
         add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
-                 "Special", MENU_UNSELECTED);
+                 "Special", MENU_ITEMFLAGS_NONE);
         any.a_char = '*';
         add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE,
-                 "(list everything)", MENU_UNSELECTED);
+                 "(list everything)", MENU_ITEMFLAGS_NONE);
         gotsomething = TRUE;
     }
     unsortloot(&sortedinvent);
@@ -2738,7 +2738,7 @@ long *out_cnt;
     if (iflags.perm_invent && !lets && !gotsomething) {
         any = cg.zeroany;
         add_menu(win, NO_GLYPH, &any, 0, 0, 0,
-                 not_carrying_anything, MENU_UNSELECTED);
+                 not_carrying_anything, MENU_ITEMFLAGS_NONE);
         want_reply = FALSE;
     }
     end_menu(win, query && *query ? query : (char *) 0);
@@ -2824,13 +2824,13 @@ char avoidlet;
                         add_menu(win, NO_GLYPH, &any, 0, 0,
                                  iflags.menu_headings,
                                  let_to_name(*invlet, FALSE, FALSE),
-                                 MENU_UNSELECTED);
+                                 MENU_ITEMFLAGS_NONE);
                         classcount++;
                     }
                     any.a_char = ilet;
                     add_menu(win, obj_to_glyph(otmp, rn2_on_display_rng),
                              &any, ilet, 0, ATR_NONE,
-                             doname(otmp), MENU_UNSELECTED);
+                             doname(otmp), MENU_ITEMFLAGS_NONE);
                 }
             }
             if (flags.sortpack && *++invlet)
@@ -4275,9 +4275,9 @@ const char *hdr, *txt;
     win = create_nhwindow(NHW_MENU);
     start_menu(win);
     add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, hdr,
-             MENU_UNSELECTED);
-    add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
-    add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, txt, MENU_UNSELECTED);
+             MENU_ITEMFLAGS_NONE);
+    add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
+    add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, txt, MENU_ITEMFLAGS_NONE);
     end_menu(win, (char *) 0);
     if (select_menu(win, PICK_NONE, &selected) > 0)
         free((genericptr_t) selected);
index edbde987e2c1f1d179a0979c45b9fce54b079a85..b6afc2e59e8e1ad275246c036c75c99bb5782dc6 100644 (file)
@@ -482,7 +482,8 @@ lua_State *L;
         if (*key)
             any.a_char = key[0];
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, str,
-                 (*defval && *key && defval[0] == key[0]) ? MENU_SELECTED : MENU_UNSELECTED);
+                 (*defval && *key && defval[0] == key[0])
+                    ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
 
         lua_pop(L, 1); /* removes 'value'; keeps 'key' for next iteration */
     }
index 7f9931ae822ab9db9575bf6fa6397e7262268646..3c15a0e7198c5db8e6b0ae8dbc9b7f9fa1c59588 100644 (file)
@@ -532,7 +532,7 @@ doclassdisco()
             if (!traditional) {
                 any.a_int = 'u';
                 add_menu(tmpwin, NO_GLYPH, &any, menulet++, 0, ATR_NONE,
-                         unique_items, MENU_UNSELECTED);
+                         unique_items, MENU_ITEMFLAGS_NONE);
             }
             break;
         }
@@ -543,7 +543,7 @@ doclassdisco()
         if (!traditional) {
             any.a_int = 'a';
             add_menu(tmpwin, NO_GLYPH, &any, menulet++, 0, ATR_NONE,
-                     artifact_items, MENU_UNSELECTED);
+                     artifact_items, MENU_ITEMFLAGS_NONE);
         }
     }
 
@@ -565,7 +565,7 @@ doclassdisco()
                         any.a_int = c;
                         add_menu(tmpwin, NO_GLYPH, &any, menulet++, c,
                                  ATR_NONE, oclass_to_name(oclass, buf),
-                                 MENU_UNSELECTED);
+                                 MENU_ITEMFLAGS_NONE);
                     }
                 }
             }
@@ -707,12 +707,12 @@ rename_disco()
                 any.a_int = 0;
                 add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
                          let_to_name(oclass, FALSE, FALSE),
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 prev_class = oclass;
             }
             any.a_int = dis;
             add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                     obj_typename(dis), MENU_UNSELECTED);
+                     obj_typename(dis), MENU_ITEMFLAGS_NONE);
         }
     }
     if (ct == 0) {
index d6129dd973718c9d23d25e6620bb18030e8399dd..5a9c90fae2601b861b9ec5dcf17febae1c56eaea 100644 (file)
@@ -1,4 +1,4 @@
-/* NetHack 3.7 options.c       $NHDT-Date: 1577050473 2019/12/22 21:34:33 $  $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.422 $ */
+/* NetHack 3.7 options.c       $NHDT-Date: 1575245078 2019/12/02 00:04:38 $  $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.391 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /*-Copyright (c) Michael Allison, 2008. */
 /* NetHack may be freely redistributed.  See license for details. */
@@ -184,7 +184,6 @@ static const struct Bool_Opt {
     { "popup_dialog", &iflags.wc_popup_dialog, FALSE, SET_IN_GAME },   /*WC*/
     { "preload_tiles", &iflags.wc_preload_tiles, TRUE, DISP_IN_GAME }, /*WC*/
     { "pushweapon", &flags.pushweapon, FALSE, SET_IN_GAME },
-    { "quick_farsight", &flags.quick_farsight, FALSE, SET_IN_GAME },
 #if defined(MICRO) && !defined(AMIGA)
     { "rawio", &iflags.rawio, FALSE, DISP_IN_GAME },
 #else
@@ -1451,8 +1450,8 @@ const char *prompt;
             break;
         any.a_int = i + 1;
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, colornames[i].name,
-                 (colornames[i].color == NO_COLOR) ? MENU_SELECTED
-                                                   : MENU_UNSELECTED);
+                 (colornames[i].color == NO_COLOR) ? MENU_ITEMFLAGS_SELECTED
+                                                   : MENU_ITEMFLAGS_NONE);
     }
     end_menu(tmpwin, (prompt && *prompt) ? prompt : "Pick a color");
     pick_cnt = select_menu(tmpwin, PICK_ONE, &picks);
@@ -1498,8 +1497,8 @@ const char *prompt;
         any.a_int = i + 1;
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, attrnames[i].attr,
                  attrnames[i].name,
-                 (attrnames[i].attr == default_attr) ? MENU_SELECTED
-                                                     : MENU_UNSELECTED);
+                 (attrnames[i].attr == default_attr) ? MENU_ITEMFLAGS_SELECTED
+                                                     : MENU_ITEMFLAGS_NONE);
     }
     end_menu(tmpwin, (prompt && *prompt) ? prompt : "Pick an attribute");
     pick_cnt = select_menu(tmpwin, allow_many ? PICK_ANY : PICK_ONE, &picks);
@@ -1595,7 +1594,7 @@ query_msgtype()
         if (msgtype_names[i].descr) {
             any.a_int = msgtype_names[i].msgtyp + 1;
             add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                 msgtype_names[i].descr, MENU_UNSELECTED);
+                 msgtype_names[i].descr, MENU_ITEMFLAGS_NONE);
         }
     end_menu(tmpwin, "How to show the message");
     pick_cnt = select_menu(tmpwin, PICK_ONE, &picks);
@@ -4340,7 +4339,7 @@ int indexoffset;    /* value to add to index in compopt[], or zero
                 value);
     else
         Sprintf(buf, fmtstr_doset_tab, option, value);
-    add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_UNSELECTED);
+    add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
 }
 
 static void
@@ -4364,7 +4363,7 @@ int nset;
                 name, buf2);
     else
         Sprintf(buf, fmtstr_doset_tab, name, buf2);
-    add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_UNSELECTED);
+    add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
 }
 
 int
@@ -4462,7 +4461,7 @@ doset() /* changing options via menu by Per Liboriussen */
 
     any = cg.zeroany;
     add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
-             "Booleans (selecting will toggle value):", MENU_UNSELECTED);
+             "Booleans (selecting will toggle value):", MENU_ITEMFLAGS_NONE);
     any.a_int = 0;
     /* first list any other non-modifiable booleans, then modifiable ones */
     for (pass = 0; pass <= 1; pass++)
@@ -4486,16 +4485,16 @@ doset() /* changing options via menu by Per Liboriussen */
                     Sprintf(buf, fmtstr_doset_tab,
                             name, *bool_p ? "true" : "false");
                 add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
             }
 
     boolcount = i;
     indexoffset = boolcount;
     any = cg.zeroany;
-    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
     add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
              "Compounds (selecting will prompt for new value):",
-             MENU_UNSELECTED);
+             MENU_ITEMFLAGS_NONE);
 
     /* deliberately put playmode, name, role+race+gender+align first */
     doset_add_menu(tmpwin, "playmode", 0);
@@ -4521,9 +4520,9 @@ doset() /* changing options via menu by Per Liboriussen */
             }
 
     any = cg.zeroany;
-    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
     add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
-             "Other settings:", MENU_UNSELECTED);
+             "Other settings:", MENU_ITEMFLAGS_NONE);
 
     for (i = 0; (name = othropt[i].name) != 0; i++) {
         if ((is_wc_option(name) && !wc_supported(name))
@@ -4535,9 +4534,9 @@ doset() /* changing options via menu by Per Liboriussen */
 
 #ifdef PREFIXES_IN_USE
     any = cg.zeroany;
-    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
     add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
-             "Variable playground locations:", MENU_UNSELECTED);
+             "Variable playground locations:", MENU_ITEMFLAGS_NONE);
     for (i = 0; i < PREFIX_COUNT; i++)
         doset_add_menu(tmpwin, fqn_prefix_names[i], 0);
 #endif
@@ -4649,7 +4648,7 @@ int numtotal;
         Sprintf(tmpbuf, action_titles[i].desc,
                 (i == 1) ? makeplural(optname) : optname);
         add_menu(tmpwin, NO_GLYPH, &any, action_titles[i].letr, 0, ATR_NONE,
-                 tmpbuf, (i == 3) ? MENU_SELECTED : MENU_UNSELECTED);
+                 tmpbuf, (i == 3) ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
     }
     end_menu(tmpwin, "Do what?");
     if ((pick_cnt = select_menu(tmpwin, PICK_ONE, &pick_list)) > 0) {
@@ -4691,7 +4690,7 @@ boolean setinitial, setfromfile;
                to avoid an optimizer bug in VAX C V2.3 */
             any.a_int = i + 1;
             add_menu(tmpwin, NO_GLYPH, &any, *style_name, 0, ATR_NONE,
-                     style_name, MENU_UNSELECTED);
+                     style_name, MENU_ITEMFLAGS_NONE);
         }
         end_menu(tmpwin, "Select menustyle:");
         if (select_menu(tmpwin, PICK_ONE, &style_pick) > 0) {
@@ -4712,8 +4711,8 @@ boolean setinitial, setfromfile;
             add_menu(tmpwin, NO_GLYPH, &any, *paranoia[i].argname, 0,
                      ATR_NONE, paranoia[i].explain,
                      (flags.paranoia_bits & paranoia[i].flagmask)
-                         ? MENU_SELECTED
-                         : MENU_UNSELECTED);
+                         ? MENU_ITEMFLAGS_SELECTED
+                         : MENU_ITEMFLAGS_NONE);
         }
         end_menu(tmpwin, "Actions requiring extra confirmation:");
         i = select_menu(tmpwin, PICK_ANY, &paranoia_picks);
@@ -4741,7 +4740,7 @@ boolean setinitial, setfromfile;
             burden_name = burdentype[i];
             any.a_int = i + 1;
             add_menu(tmpwin, NO_GLYPH, &any, burden_letters[i], 0, ATR_NONE,
-                     burden_name, MENU_UNSELECTED);
+                     burden_name, MENU_ITEMFLAGS_NONE);
         }
         end_menu(tmpwin, "Select encumbrance level:");
         if (select_menu(tmpwin, PICK_ONE, &burden_pick) > 0) {
@@ -4773,7 +4772,7 @@ boolean setinitial, setfromfile;
                     flags.end_disclose[i], disclosure_options[i]);
             any.a_int = i + 1;
             add_menu(tmpwin, NO_GLYPH, &any, disclosure_options[i], 0,
-                     ATR_NONE, buf, MENU_UNSELECTED);
+                     ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
             disc_cat[i] = 0;
         }
         end_menu(tmpwin, "Change which disclosure options categories:");
@@ -4800,32 +4799,32 @@ boolean setinitial, setfromfile;
                 any.a_char = DISCLOSE_NO_WITHOUT_PROMPT;
                 add_menu(tmpwin, NO_GLYPH, &any, 0, any.a_char, ATR_NONE,
                          "Never disclose, without prompting",
-                         (c == any.a_char) ? MENU_SELECTED : MENU_UNSELECTED);
+                         (c == any.a_char) ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
                 any.a_char = DISCLOSE_YES_WITHOUT_PROMPT;
                 add_menu(tmpwin, NO_GLYPH, &any, 0, any.a_char, ATR_NONE,
                          "Always disclose, without prompting",
-                         (c == any.a_char) ? MENU_SELECTED : MENU_UNSELECTED);
+                         (c == any.a_char) ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
                 if (*disclosure_names[i] == 'v') {
                     any.a_char = DISCLOSE_SPECIAL_WITHOUT_PROMPT; /* '#' */
                     add_menu(tmpwin, NO_GLYPH, &any, 0, any.a_char, ATR_NONE,
                              "Always disclose, pick sort order from menu",
-                             (c == any.a_char) ? MENU_SELECTED
-                                               : MENU_UNSELECTED);
+                             (c == any.a_char) ? MENU_ITEMFLAGS_SELECTED
+                                               : MENU_ITEMFLAGS_NONE);
                 }
                 any.a_char = DISCLOSE_PROMPT_DEFAULT_NO;
                 add_menu(tmpwin, NO_GLYPH, &any, 0, any.a_char, ATR_NONE,
                          "Prompt, with default answer of \"No\"",
-                         (c == any.a_char) ? MENU_SELECTED : MENU_UNSELECTED);
+                         (c == any.a_char) ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
                 any.a_char = DISCLOSE_PROMPT_DEFAULT_YES;
                 add_menu(tmpwin, NO_GLYPH, &any, 0, any.a_char, ATR_NONE,
                          "Prompt, with default answer of \"Yes\"",
-                         (c == any.a_char) ? MENU_SELECTED : MENU_UNSELECTED);
+                         (c == any.a_char) ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
                 if (*disclosure_names[i] == 'v') {
                     any.a_char = DISCLOSE_PROMPT_DEFAULT_SPECIAL; /* '?' */
                     add_menu(tmpwin, NO_GLYPH, &any, 0, any.a_char, ATR_NONE,
                 "Prompt, with default answer of \"Ask\" to request sort menu",
-                             (c == any.a_char) ? MENU_SELECTED
-                                               : MENU_UNSELECTED);
+                             (c == any.a_char) ? MENU_ITEMFLAGS_SELECTED
+                                               : MENU_ITEMFLAGS_NONE);
                 }
                 end_menu(tmpwin, buf);
                 n = select_menu(tmpwin, PICK_ONE, &disclosure_pick);
@@ -4849,7 +4848,7 @@ boolean setinitial, setfromfile;
             mode_name = runmodes[i];
             any.a_int = i + 1;
             add_menu(tmpwin, NO_GLYPH, &any, *mode_name, 0, ATR_NONE,
-                     mode_name, MENU_UNSELECTED);
+                     mode_name, MENU_ITEMFLAGS_NONE);
         }
         end_menu(tmpwin, "Select run/travel display mode:");
         if (select_menu(tmpwin, PICK_ONE, &mode_pick) > 0) {
@@ -4868,33 +4867,38 @@ boolean setinitial, setfromfile;
         any.a_char = GPCOORDS_COMPASS;
         add_menu(tmpwin, NO_GLYPH, &any, GPCOORDS_COMPASS, 0, ATR_NONE,
                  "compass ('east' or '3s' or '2n,4w')",
-                 (gp == GPCOORDS_COMPASS) ? MENU_SELECTED : MENU_UNSELECTED);
+                 (gp == GPCOORDS_COMPASS)
+                    ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
         any.a_char = GPCOORDS_COMFULL;
         add_menu(tmpwin, NO_GLYPH, &any, GPCOORDS_COMFULL, 0, ATR_NONE,
                  "full compass ('east' or '3south' or '2north,4west')",
-                 (gp == GPCOORDS_COMFULL) ? MENU_SELECTED : MENU_UNSELECTED);
+                 (gp == GPCOORDS_COMFULL)
+                    ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
         any.a_char = GPCOORDS_MAP;
         add_menu(tmpwin, NO_GLYPH, &any, GPCOORDS_MAP, 0, ATR_NONE,
                  "map <x,y>",
-                 (gp == GPCOORDS_MAP) ? MENU_SELECTED : MENU_UNSELECTED);
+                 (gp == GPCOORDS_MAP)
+                    ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
         any.a_char = GPCOORDS_SCREEN;
         add_menu(tmpwin, NO_GLYPH, &any, GPCOORDS_SCREEN, 0, ATR_NONE,
                  "screen [row,column]",
-                 (gp == GPCOORDS_SCREEN) ? MENU_SELECTED : MENU_UNSELECTED);
+                 (gp == GPCOORDS_SCREEN)
+                    ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
         any.a_char = GPCOORDS_NONE;
         add_menu(tmpwin, NO_GLYPH, &any, GPCOORDS_NONE, 0, ATR_NONE,
                  "none (no coordinates displayed)",
-                 (gp == GPCOORDS_NONE) ? MENU_SELECTED : MENU_UNSELECTED);
+                 (gp == GPCOORDS_NONE)
+                    ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
         any.a_long = 0L;
-        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
+        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
         Sprintf(buf, "map: upper-left: <%d,%d>, lower-right: <%d,%d>%s",
                 1, 0, COLNO - 1, ROWNO - 1,
                 flags.verbose ? "; column 0 unused, off left edge" : "");
-        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_UNSELECTED);
+        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
         if (strcmp(windowprocs.name, "tty")) /* only show for non-tty */
             add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
        "screen: row is offset to accommodate tty interface's use of top line",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
 #if COLNO == 80
 #define COL80ARG flags.verbose ? "; column 80 is not used" : ""
 #else
@@ -4903,8 +4907,8 @@ boolean setinitial, setfromfile;
         Sprintf(buf, "screen: upper-left: [%02d,%02d], lower-right: [%d,%d]%s",
                 0 + 2, 1, ROWNO - 1 + 2, COLNO - 1, COL80ARG);
 #undef COL80ARG
-        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_UNSELECTED);
-        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
+        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
+        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
         end_menu(tmpwin,
             "Select coordinate display when auto-describing a map position:");
         if ((pick_cnt = select_menu(tmpwin, PICK_ONE, &window_pick)) > 0) {
@@ -4927,15 +4931,18 @@ boolean setinitial, setfromfile;
         any.a_char = (GFILTER_NONE + 1);
         add_menu(tmpwin, NO_GLYPH, &any, 'n',
                  0, ATR_NONE, "no filtering",
-                 (gf == GFILTER_NONE) ? MENU_SELECTED : MENU_UNSELECTED);
+                 (gf == GFILTER_NONE)
+                    ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
         any.a_char = (GFILTER_VIEW + 1);
         add_menu(tmpwin, NO_GLYPH, &any, 'v',
                  0, ATR_NONE, "in view only",
-                 (gf == GFILTER_VIEW) ? MENU_SELECTED : MENU_UNSELECTED);
+                 (gf == GFILTER_VIEW)
+                    ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
         any.a_char = (GFILTER_AREA + 1);
         add_menu(tmpwin, NO_GLYPH, &any, 'a',
                  0, ATR_NONE, "in same area",
-                 (gf == GFILTER_AREA) ? MENU_SELECTED : MENU_UNSELECTED);
+                 (gf == GFILTER_AREA)
+                    ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
         end_menu(tmpwin,
       "Select location filtering when going for next/previous map position:");
         if ((pick_cnt = select_menu(tmpwin, PICK_ONE, &window_pick)) > 0) {
@@ -4959,17 +4966,17 @@ boolean setinitial, setfromfile;
             if (!WINDOWPORT("curses")) {
                 any.a_char = 's';
                 add_menu(tmpwin, NO_GLYPH, &any, 's', 0, ATR_NONE,
-                         "single", MENU_UNSELECTED);
+                         "single", MENU_ITEMFLAGS_NONE);
                 any.a_char = 'c';
                 add_menu(tmpwin, NO_GLYPH, &any, 'c', 0, ATR_NONE,
-                         "combination", MENU_UNSELECTED);
+                         "combination", MENU_ITEMFLAGS_NONE);
             }
             any.a_char = 'f';
             add_menu(tmpwin, NO_GLYPH, &any, 'f', 0, ATR_NONE, "full",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
             any.a_char = 'r';
             add_menu(tmpwin, NO_GLYPH, &any, 'r', 0, ATR_NONE, "reversed",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
             end_menu(tmpwin, "Select message history display type:");
             if (select_menu(tmpwin, PICK_ONE, &window_pick) > 0) {
                 iflags.prevmsg_window = window_pick->item.a_char;
@@ -4992,7 +4999,7 @@ boolean setinitial, setfromfile;
             any.a_char = *sortl_name;
             add_menu(tmpwin, NO_GLYPH, &any, *sortl_name, 0, ATR_NONE,
                      sortl_name, (flags.sortloot == *sortl_name)
-                                    ? MENU_SELECTED : MENU_UNSELECTED);
+                                    ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
         }
         end_menu(tmpwin, "Select loot sorting type:");
         n = select_menu(tmpwin, PICK_ONE, &sortl_pick);
@@ -5016,16 +5023,16 @@ boolean setinitial, setfromfile;
         any = cg.zeroany;
         any.a_int = ALIGN_TOP;
         add_menu(tmpwin, NO_GLYPH, &any, 't', 0, ATR_NONE, "top",
-                 MENU_UNSELECTED);
+                 MENU_ITEMFLAGS_NONE);
         any.a_int = ALIGN_BOTTOM;
         add_menu(tmpwin, NO_GLYPH, &any, 'b', 0, ATR_NONE, "bottom",
-                 MENU_UNSELECTED);
+                 MENU_ITEMFLAGS_NONE);
         any.a_int = ALIGN_LEFT;
         add_menu(tmpwin, NO_GLYPH, &any, 'l', 0, ATR_NONE, "left",
-                 MENU_UNSELECTED);
+                 MENU_ITEMFLAGS_NONE);
         any.a_int = ALIGN_RIGHT;
         add_menu(tmpwin, NO_GLYPH, &any, 'r', 0, ATR_NONE, "right",
-                 MENU_UNSELECTED);
+                 MENU_ITEMFLAGS_NONE);
         Sprintf(abuf, "Select %s window placement relative to the map:",
                 msg ? "message" : "status");
         end_menu(tmpwin, abuf);
@@ -5052,7 +5059,7 @@ boolean setinitial, setfromfile;
         for (i = 0; i < SIZE(npchoices); i++) {
             any.a_int = i + 1;
             add_menu(tmpwin, NO_GLYPH, &any, 'a' + i, 0, ATR_NONE,
-                     npchoices[i], MENU_UNSELECTED);
+                     npchoices[i], MENU_ITEMFLAGS_NONE);
         }
         end_menu(tmpwin, "Select number_pad mode:");
         if (select_menu(tmpwin, PICK_ONE, &mode_pick) > 0) {
@@ -5137,7 +5144,7 @@ boolean setinitial, setfromfile;
                 else
                     Strcat(strcat(mtbuf, tmp->pattern), "\"");
                 add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, mtbuf,
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 tmp = tmp->next;
             }
             Sprintf(mtbuf, "%s message types",
@@ -5226,7 +5233,7 @@ boolean setinitial, setfromfile;
                 /* combine main string and suffix */
                 Strcat(mcbuf, &buf[1]); /* skip buf[]'s initial quote */
                 add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, mcbuf,
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 tmp = tmp->next;
             }
             Sprintf(mcbuf, "%s menu colors",
@@ -5284,7 +5291,7 @@ boolean setinitial, setfromfile;
                 any = cg.zeroany;
                 add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
                          "Always pickup '<'; never pickup '>'",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 for (i = 0; i < numapes && ape; i++) {
                     any.a_void = (opt_idx == 1) ? 0 : ape;
                     /* length of pattern plus quotes (plus '<'/'>') is
@@ -5292,7 +5299,7 @@ boolean setinitial, setfromfile;
                     Sprintf(apebuf, "\"%c%s\"", ape->grab ? '<' : '>',
                             ape->pattern);
                     add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, apebuf,
-                             MENU_UNSELECTED);
+                             MENU_ITEMFLAGS_NONE);
                     ape = ape->next;
                 }
             }
@@ -5371,8 +5378,8 @@ boolean setinitial, setfromfile;
                 defindx = any.a_int;
             add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
                      "Default Symbols",
-                     (any.a_int == defindx) ? MENU_SELECTED
-                                            : MENU_UNSELECTED);
+                     (any.a_int == defindx) ? MENU_ITEMFLAGS_SELECTED
+                                            : MENU_ITEMFLAGS_NONE);
 
             for (sl = g.symset_list; sl; sl = sl->next) {
                 /* check restrictions */
@@ -5391,8 +5398,8 @@ boolean setinitial, setfromfile;
                         defindx = any.a_int;
                     Sprintf(buf, fmtstr, sl->name, sl->desc ? sl->desc : "");
                     add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
-                             (any.a_int == defindx) ? MENU_SELECTED
-                                                    : MENU_UNSELECTED);
+                             (any.a_int == defindx) ? MENU_ITEMFLAGS_SELECTED
+                                                    : MENU_ITEMFLAGS_NONE);
                 }
             }
             Sprintf(buf, "Select %ssymbol set:",
@@ -6422,7 +6429,8 @@ char *class_select;
         }
         any.a_int = *class_list;
         add_menu(win, NO_GLYPH, &any, accelerator, category ? *class_list : 0,
-                 ATR_NONE, buf, selected);
+                 ATR_NONE, buf,
+                 selected ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
         ++class_list;
         if (category > 0) {
             ++next_accelerator;
@@ -6435,13 +6443,13 @@ char *class_select;
     if (category == 1 && next_accelerator <= 'z') {
         /* for objects, add "A - ' '  all classes", after a separator */
         any = cg.zeroany;
-        add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
+        add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
         any.a_int = (int) ' ';
         Sprintf(buf, "%c  %s", (char) any.a_int, "all classes of objects");
         /* we won't preselect this even if the incoming list is empty;
            having it selected means that it would have to be explicitly
            de-selected in order to select anything else */
-        add_menu(win, NO_GLYPH, &any, 'A', 0, ATR_NONE, buf, MENU_UNSELECTED);
+        add_menu(win, NO_GLYPH, &any, 'A', 0, ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
     }
     end_menu(win, prompt);
     n = select_menu(win, way ? PICK_ANY : PICK_ONE, &pick_list);
index f29cedadbb9237c49eeb55a9ce9ebc1f0b3c3118..f6ed84da3fde71622894a55005e8c794cab8b79e 100644 (file)
@@ -1167,19 +1167,19 @@ coord *click_cc;
                versions: "Specify unknown object by cursor?" */
             add_menu(win, NO_GLYPH, &any,
                      flags.lootabc ? 0 : any.a_char, 'y', ATR_NONE,
-                     "something on the map", MENU_UNSELECTED);
+                     "something on the map", MENU_ITEMFLAGS_NONE);
             any.a_char = 'i';
             add_menu(win, NO_GLYPH, &any,
                      flags.lootabc ? 0 : any.a_char, 0, ATR_NONE,
-                     "something you're carrying", MENU_UNSELECTED);
+                     "something you're carrying", MENU_ITEMFLAGS_NONE);
             any.a_char = '?';
             add_menu(win, NO_GLYPH, &any,
                      flags.lootabc ? 0 : any.a_char, 'n', ATR_NONE,
-                     "something else (by symbol or name)", MENU_UNSELECTED);
+                     "something else (by symbol or name)", MENU_ITEMFLAGS_NONE);
             if (!u.uswallow && !Hallucination) {
                 any = cg.zeroany;
                 add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                         "", MENU_UNSELECTED);
+                         "", MENU_ITEMFLAGS_NONE);
                 /* these options work sensibly for the swallowed case,
                    but there's no reason for the player to use them then;
                    objects work fine when hallucinating, but screen
@@ -1188,19 +1188,19 @@ coord *click_cc;
                 any.a_char = 'm';
                 add_menu(win, NO_GLYPH, &any,
                          flags.lootabc ? 0 : any.a_char, 0, ATR_NONE,
-                         "nearby monsters", MENU_UNSELECTED);
+                         "nearby monsters", MENU_ITEMFLAGS_NONE);
                 any.a_char = 'M';
                 add_menu(win, NO_GLYPH, &any,
                          flags.lootabc ? 0 : any.a_char, 0, ATR_NONE,
-                         "all monsters shown on map", MENU_UNSELECTED);
+                         "all monsters shown on map", MENU_ITEMFLAGS_NONE);
                 any.a_char = 'o';
                 add_menu(win, NO_GLYPH, &any,
                          flags.lootabc ? 0 : any.a_char, 0, ATR_NONE,
-                         "nearby objects", MENU_UNSELECTED);
+                         "nearby objects", MENU_ITEMFLAGS_NONE);
                 any.a_char = 'O';
                 add_menu(win, NO_GLYPH, &any,
                          flags.lootabc ? 0 : any.a_char, 0, ATR_NONE,
-                         "all objects shown on map", MENU_UNSELECTED);
+                         "all objects shown on map", MENU_ITEMFLAGS_NONE);
             }
             end_menu(win, "What do you want to look at:");
             if (select_menu(win, PICK_ONE, &pick_list) > 0) {
@@ -2053,7 +2053,7 @@ dohelp()
         }
         any.a_int = i + 1;
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                 helpbuf, MENU_UNSELECTED);
+                 helpbuf, MENU_ITEMFLAGS_NONE);
     }
     end_menu(tmpwin, "Select one item:");
     n = select_menu(tmpwin, PICK_ONE, &selected);
index 6d932912dee4ecace9c27187a102420f5ee04864..b79c17d27f03498c2ef505a0fcce5e8075b7a72d 100644 (file)
@@ -901,7 +901,7 @@ boolean FDECL((*allow), (OBJ_P)); /* allow function */
                              let_to_name(*pack, FALSE,
                                          ((how != PICK_NONE)
                                           && iflags.menu_head_objsym)),
-                             MENU_UNSELECTED);
+                             MENU_ITEMFLAGS_NONE);
                     printed_type_name = TRUE;
                 }
 
@@ -910,7 +910,7 @@ boolean FDECL((*allow), (OBJ_P)); /* allow function */
                          (qflags & USE_INVLET) ? curr->invlet
                            : (first && curr->oclass == COIN_CLASS) ? '$' : 0,
                          def_oc_syms[(int) objects[curr->otyp].oc_class].sym,
-                         ATR_NONE, doname_with_price(curr), MENU_UNSELECTED);
+                         ATR_NONE, doname_with_price(curr), MENU_ITEMFLAGS_NONE);
                 first = FALSE;
             }
         }
@@ -926,7 +926,7 @@ boolean FDECL((*allow), (OBJ_P)); /* allow function */
             Sprintf(buf, "%s Creatures",
                     is_animal(u.ustuck->data) ? "Swallowed" : "Engulfed");
             add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, buf,
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
         }
         fake_hero_object = cg.zeroobj;
         fake_hero_object.quan = 1L; /* not strictly necessary... */
@@ -934,7 +934,7 @@ boolean FDECL((*allow), (OBJ_P)); /* allow function */
         add_menu(win, mon_to_glyph(&g.youmonst, rn2_on_display_rng), &any,
                  /* fake inventory letter, no group accelerator */
                  CONTAINED_SYM, 0, ATR_NONE, an(self_lookat(buf)),
-                 MENU_UNSELECTED);
+                 MENU_ITEMFLAGS_NONE);
     }
 
     end_menu(win, qstr);
@@ -1071,10 +1071,10 @@ int how;               /* type of query */
         add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
                  (qflags & WORN_TYPES) ? "Auto-select every item being worn"
                                        : "Auto-select every item",
-                 MENU_UNSELECTED);
+                 MENU_ITEMFLAGS_NONE);
 
         any = cg.zeroany;
-        add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
+        add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
     }
 
     if ((qflags & ALL_TYPES) && (ccount > 1)) {
@@ -1083,7 +1083,7 @@ int how;               /* type of query */
         any.a_int = ALL_TYPES_SELECTED;
         add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
                  (qflags & WORN_TYPES) ? "All worn types" : "All types",
-                 MENU_UNSELECTED);
+                 MENU_ITEMFLAGS_NONE);
         invlet = 'b';
     } else
         invlet = 'a';
@@ -1102,7 +1102,7 @@ int how;               /* type of query */
                         ATR_NONE, let_to_name(*pack, FALSE,
                                               (how != PICK_NONE)
                                                   && iflags.menu_head_objsym),
-                        MENU_UNSELECTED);
+                        MENU_ITEMFLAGS_NONE);
                     collected_type_name = TRUE;
                 }
             }
@@ -1118,7 +1118,7 @@ int how;               /* type of query */
     if (do_unpaid || (qflags & BILLED_TYPES) || do_blessed || do_cursed
         || do_uncursed || do_buc_unknown) {
         any = cg.zeroany;
-        add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
+        add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
     }
 
     /* unpaid items if there are any */
@@ -1127,7 +1127,7 @@ int how;               /* type of query */
         any = cg.zeroany;
         any.a_int = 'u';
         add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, "Unpaid items",
-                 MENU_UNSELECTED);
+                 MENU_ITEMFLAGS_NONE);
     }
     /* billed items: checked by caller, so always include if BILLED_TYPES */
     if (qflags & BILLED_TYPES) {
@@ -1135,7 +1135,7 @@ int how;               /* type of query */
         any = cg.zeroany;
         any.a_int = 'x';
         add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
-                 "Unpaid items already used up", MENU_UNSELECTED);
+                 "Unpaid items already used up", MENU_ITEMFLAGS_NONE);
     }
 
     /* items with b/u/c/unknown if there are any;
@@ -1146,28 +1146,28 @@ int how;               /* type of query */
         any = cg.zeroany;
         any.a_int = 'B';
         add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
-                 "Items known to be Blessed", MENU_UNSELECTED);
+                 "Items known to be Blessed", MENU_ITEMFLAGS_NONE);
     }
     if (do_cursed) {
         invlet = 'C';
         any = cg.zeroany;
         any.a_int = 'C';
         add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
-                 "Items known to be Cursed", MENU_UNSELECTED);
+                 "Items known to be Cursed", MENU_ITEMFLAGS_NONE);
     }
     if (do_uncursed) {
         invlet = 'U';
         any = cg.zeroany;
         any.a_int = 'U';
         add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
-                 "Items known to be Uncursed", MENU_UNSELECTED);
+                 "Items known to be Uncursed", MENU_ITEMFLAGS_NONE);
     }
     if (do_buc_unknown) {
         invlet = 'X';
         any = cg.zeroany;
         any.a_int = 'X';
         add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
-                 "Items of unknown Bless/Curse status", MENU_UNSELECTED);
+                 "Items of unknown Bless/Curse status", MENU_ITEMFLAGS_NONE);
     }
     end_menu(win, qstr);
     n = select_menu(win, how, pick_list);
@@ -1820,7 +1820,7 @@ doloot()
                 if (Is_container(cobj)) {
                     any.a_obj = cobj;
                     add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                             doname(cobj), MENU_UNSELECTED);
+                             doname(cobj), MENU_ITEMFLAGS_NONE);
                 }
             end_menu(win, "Loot which containers?");
             n = select_menu(win, PICK_ANY, &pick_list);
@@ -2888,47 +2888,47 @@ boolean outokay, inokay, alreadyused, more_containers;
     any.a_int = 1; /* ':' */
     Sprintf(buf, "Look inside %s", thesimpleoname(obj));
     add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE, buf,
-             MENU_UNSELECTED);
+             MENU_ITEMFLAGS_NONE);
     if (outokay) {
         any.a_int = 2; /* 'o' */
         Sprintf(buf, "take %s out", something);
         add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE,
-                 buf, MENU_UNSELECTED);
+                 buf, MENU_ITEMFLAGS_NONE);
     }
     if (inokay) {
         any.a_int = 3; /* 'i' */
         Sprintf(buf, "put %s in", something);
         add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE,
-                 buf, MENU_UNSELECTED);
+                 buf, MENU_ITEMFLAGS_NONE);
     }
     if (outokay) {
         any.a_int = 4; /* 'b' */
         Sprintf(buf, "%stake out, then put in", inokay ? "both; " : "");
         add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE,
-                 buf, MENU_UNSELECTED);
+                 buf, MENU_ITEMFLAGS_NONE);
     }
     if (inokay) {
         any.a_int = 5; /* 'r' */
         Sprintf(buf, "%sput in, then take out",
                 outokay ? "both reversed; " : "");
         add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE,
-                 buf, MENU_UNSELECTED);
+                 buf, MENU_ITEMFLAGS_NONE);
         any.a_int = 6; /* 's' */
         Sprintf(buf, "stash one item into %s", thesimpleoname(obj));
         add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE,
-                 buf, MENU_UNSELECTED);
+                 buf, MENU_ITEMFLAGS_NONE);
     }
     any.a_int = 0;
-    add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
+    add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
     if (more_containers) {
         any.a_int = 7; /* 'n' */
         add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE,
-                 "loot next container", MENU_SELECTED);
+                 "loot next container", MENU_ITEMFLAGS_SELECTED);
     }
     any.a_int = 8; /* 'q' */
     Strcpy(buf, alreadyused ? "done" : "do nothing");
     add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE, buf,
-             more_containers ? MENU_UNSELECTED : MENU_SELECTED);
+             more_containers ? MENU_ITEMFLAGS_NONE : MENU_ITEMFLAGS_SELECTED);
 
     end_menu(win, prompt);
     n = select_menu(win, PICK_ONE, &pick_list);
@@ -2988,18 +2988,18 @@ dotip()
                         ++i;
                         any.a_obj = cobj;
                         add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                                 doname(cobj), MENU_UNSELECTED);
+                                 doname(cobj), MENU_ITEMFLAGS_NONE);
                     }
                 if (g.invent) {
                     any = cg.zeroany;
                     add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                             "", MENU_UNSELECTED);
+                             "", MENU_ITEMFLAGS_NONE);
                     any.a_obj = &dummyobj;
                     /* use 'i' for inventory unless there are so many
                        containers that it's already being used */
                     i = (i <= 'i' - 'a' && !flags.lootabc) ? 'i' : 0;
                     add_menu(win, NO_GLYPH, &any, i, 0, ATR_NONE,
-                             "tip something being carried", MENU_SELECTED);
+                             "tip something being carried", MENU_ITEMFLAGS_SELECTED);
                 }
                 end_menu(win, "Tip which container?");
                 n = select_menu(win, PICK_ONE, &pick_list);
index 635286cc0ccfb752848f3371c35d9e9d7ec1d081..7217718f197316be32f861119bdb193a6a6ea3f5 100644 (file)
@@ -1435,25 +1435,25 @@ winid bannerwin; /* if not WIN_ERR, clear window and show copyright in menu */
             /* COPYRIGHT_BANNER_[ABCD] */
             for (k = 1; k <= 4; ++k)
                 add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                         copyright_banner_line(k), MENU_UNSELECTED);
+                         copyright_banner_line(k), MENU_ITEMFLAGS_NONE);
             add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
         }
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
-                 "Select one of your saved games", MENU_UNSELECTED);
+                 "Select one of your saved games", MENU_ITEMFLAGS_NONE);
         for (k = 0; saved[k]; ++k) {
             any.a_int = k + 1;
             add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, saved[k],
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
         }
         clet = (k <= 'n' - 'a') ? 'n' : 0; /* new game */
         any.a_int = -1;                    /* not >= 0 */
         add_menu(tmpwin, NO_GLYPH, &any, clet, 0, ATR_NONE,
-                 "Start a new character", MENU_UNSELECTED);
+                 "Start a new character", MENU_ITEMFLAGS_NONE);
         clet = (k + 1 <= 'q' - 'a') ? 'q' : 0; /* quit */
         any.a_int = -2;
         add_menu(tmpwin, NO_GLYPH, &any, clet, 0, ATR_NONE,
-                 "Never mind (quit)", MENU_SELECTED);
+                 "Never mind (quit)", MENU_ITEMFLAGS_SELECTED);
         /* no prompt on end_menu, as we've done our own at the top */
         end_menu(tmpwin, (char *) 0);
         if (select_menu(tmpwin, PICK_ONE, &chosen_game) > 0) {
index a62d042a7d673e3c196bd5603addd51515834bb7..bda974187dea0707bb1928ab603e14ffb5d98663 100644 (file)
@@ -1902,24 +1902,24 @@ boolean preselect;
         /* use four spaces of padding to fake a grayed out menu choice */
         Sprintf(buf, "%4s%s forces %s", "", constrainer, forcedvalue);
         add_menu(where, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
-                 MENU_UNSELECTED);
+                 MENU_ITEMFLAGS_NONE);
     } else if (what) {
         any.a_int = RS_menu_arg(which);
         Sprintf(buf, "Pick%s %s first", (f >= 0) ? " another" : "", what);
         add_menu(where, NO_GLYPH, &any, RS_menu_let[which], 0, ATR_NONE, buf,
-                 MENU_UNSELECTED);
+                 MENU_ITEMFLAGS_NONE);
     } else if (which == RS_filter) {
         any.a_int = RS_menu_arg(RS_filter);
         add_menu(where, NO_GLYPH, &any, '~', 0, ATR_NONE,
-                 "Reset role/race/&c filtering", MENU_UNSELECTED);
+                 "Reset role/race/&c filtering", MENU_ITEMFLAGS_NONE);
     } else if (which == ROLE_RANDOM) {
         any.a_int = ROLE_RANDOM;
         add_menu(where, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
-                 preselect ? MENU_SELECTED : MENU_UNSELECTED);
+                 preselect ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
     } else if (which == ROLE_NONE) {
         any.a_int = ROLE_NONE;
         add_menu(where, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                 preselect ? MENU_SELECTED : MENU_UNSELECTED);
+                 preselect ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
     } else {
         impossible("role_menu_extra: bad arg (%d)", which);
     }
index 0cee8580b60cc4a1455e8a96d9672fa34a7cbe69..4b5e035943fab9f0d56f5c52efd2bb9a454589fd 100644 (file)
@@ -1565,13 +1565,13 @@ spellsortmenu()
             /* separate final choice from others with a blank line */
             any.a_int = 0;
             add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
         } else {
             let = 'a' + i;
         }
         any.a_int = i + 1;
         add_menu(tmpwin, NO_GLYPH, &any, let, 0, ATR_NONE, spl_sortchoices[i],
-                 (i == g.spl_sortmode) ? MENU_SELECTED : MENU_UNSELECTED);
+                 (i == g.spl_sortmode) ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
     }
     end_menu(tmpwin, "View known spells list sorted");
 
@@ -1658,7 +1658,7 @@ int *spell_no;
         fmt = "%s\t%-d\t%s\t%-d%%\t%s";
     }
     add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, buf,
-             MENU_UNSELECTED);
+             MENU_ITEMFLAGS_NONE);
     for (i = 0; i < MAXSPELL && spellid(i) != NO_SPELL; i++) {
         splnum = !g.spl_orderindx ? i : g.spl_orderindx[i];
         Sprintf(buf, fmt, spellname(splnum), spellev(splnum),
@@ -1668,7 +1668,7 @@ int *spell_no;
 
         any.a_int = splnum + 1; /* must be non-zero */
         add_menu(tmpwin, NO_GLYPH, &any, spellet(splnum), 0, ATR_NONE, buf,
-                 (splnum == splaction) ? MENU_SELECTED : MENU_UNSELECTED);
+                 (splnum == splaction) ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
     }
     how = PICK_ONE;
     if (splaction == SPELLMENU_VIEW) {
@@ -1679,7 +1679,7 @@ int *spell_no;
             /* more than 1 spell, add an extra menu entry */
             any.a_int = SPELLMENU_SORT + 1;
             add_menu(tmpwin, NO_GLYPH, &any, '+', 0, ATR_NONE,
-                     "[sort spells]", MENU_UNSELECTED);
+                     "[sort spells]", MENU_ITEMFLAGS_NONE);
         }
     }
     end_menu(tmpwin, prompt);
index 8c6af94b62b1b4a2c2ad592b8a21e1219dd194eb..34707085d1aedd58a302844462b0fdabb695a542 100644 (file)
@@ -607,8 +607,8 @@ dotelecmd()
             any.a_int = (int) tports[i].menulet;
             add_menu(win, NO_GLYPH, &any, (char) any.a_int, 0, ATR_NONE,
                      tports[i].menudesc,
-                     (tports[i].menulet == 'w') ? MENU_SELECTED
-                                                : MENU_UNSELECTED);
+                     (tports[i].menulet == 'w') ? MENU_ITEMFLAGS_SELECTED
+                                                : MENU_ITEMFLAGS_NONE);
         }
         end_menu(win, "Which way do you want to teleport?");
         i = select_menu(win, PICK_ONE, &picks);
index d15ee550fff7f6581bd0e04487c62e122e16f08f..be0393397fc6663f9483c0f9a6ba643bf18d3d27 100644 (file)
@@ -1195,17 +1195,17 @@ enhance_weapon_skill()
                             ? "when you're more experienced"
                             : "if skill slots become available");
                 add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
             }
             if (maxxed_cnt > 0) {
                 Sprintf(buf,
                  "(Skill%s flagged by \"#\" cannot be enhanced any further.)",
                         plur(maxxed_cnt));
                 add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
             }
             add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
         }
 
         /* List the skills, making ones that could be advanced
@@ -1219,7 +1219,7 @@ enhance_weapon_skill()
                 any = cg.zeroany;
                 if (i == skill_ranges[pass].first)
                     add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
-                             skill_ranges[pass].name, MENU_UNSELECTED);
+                             skill_ranges[pass].name, MENU_ITEMFLAGS_NONE);
 
                 if (P_RESTRICTED(i))
                     continue;
@@ -1261,7 +1261,7 @@ enhance_weapon_skill()
                 }
                 any.a_int = can_advance(i, speedy) ? i + 1 : 0;
                 add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
             }
 
         Strcpy(buf, (to_advance > 0) ? "Pick a skill to advance:"
index e51929a5746981e9f1985893953f3244ef0933da..5b05551894e18be5bf4e0ddb1feac94ce272575f 100644 (file)
@@ -68,7 +68,7 @@ static void FDECL(dump_display_nhwindow, (winid, BOOLEAN_P));
 static void FDECL(dump_destroy_nhwindow, (winid));
 static void FDECL(dump_start_menu, (winid));
 static void FDECL(dump_add_menu, (winid, int, const ANY_P *, CHAR_P,
-                                      CHAR_P, int, const char *, BOOLEAN_P));
+                                      CHAR_P, int, const char *, unsigned int));
 static void FDECL(dump_end_menu, (winid, const char *));
 static int FDECL(dump_select_menu, (winid, int, MENU_ITEM_P **));
 static void FDECL(dump_putstr, (winid, int, const char *));
@@ -495,7 +495,7 @@ static void FDECL(hup_exit_nhwindows, (const char *));
 static winid FDECL(hup_create_nhwindow, (int));
 static int FDECL(hup_select_menu, (winid, int, MENU_ITEM_P **));
 static void FDECL(hup_add_menu, (winid, int, const anything *, CHAR_P, CHAR_P,
-                                 int, const char *, BOOLEAN_P));
+                                 int, const char *, unsigned int));
 static void FDECL(hup_end_menu, (winid, const char *));
 static void FDECL(hup_putstr, (winid, int, const char *));
 static void FDECL(hup_print_glyph, (winid, XCHAR_P, XCHAR_P, int, int));
@@ -681,13 +681,13 @@ struct mi **menu_list UNUSED;
 
 /*ARGSUSED*/
 static void
-hup_add_menu(window, glyph, identifier, sel, grpsel, attr, txt, preselected)
+hup_add_menu(window, glyph, identifier, sel, grpsel, attr, txt, itemflags)
 winid window UNUSED;
 int glyph UNUSED, attr UNUSED;
 const anything *identifier UNUSED;
 char sel UNUSED, grpsel UNUSED;
 const char *txt UNUSED;
-boolean preselected UNUSED;
+unsigned int itemflags UNUSED;
 {
     return;
 }
@@ -1307,7 +1307,7 @@ winid win UNUSED;
 
 /*ARGSUSED*/
 static void
-dump_add_menu(win, glyph, identifier, ch, gch, attr, str, preselected)
+dump_add_menu(win, glyph, identifier, ch, gch, attr, str, itemflags)
 winid win UNUSED;
 int glyph;
 const anything *identifier UNUSED;
@@ -1315,7 +1315,7 @@ char ch;
 char gch UNUSED;
 int attr UNUSED;
 const char *str;
-boolean preselected UNUSED;
+unsigned int itemflags UNUSED;
 {
     if (dumplog_file) {
         if (glyph == NO_GLYPH)
index 8a595640ac965a70919665d8568bbe84d6be5d5e..b6f21672af08d833abdd16a25fa54019498902bd 100644 (file)
@@ -776,7 +776,7 @@ amii_get_ext_cmd(void)
             sprintf(buf, "%-10s - %s ", extcmdlist[i].ef_txt,
                     extcmdlist[i].ef_desc);
             amii_add_menu(win, NO_GLYPH, &id, extcmdlist[i].ef_txt[0], 0, 0,
-                          buf, MENU_UNSELECTED);
+                          buf, MENU_ITEMFLAGS_NONE);
         }
 
         amii_end_menu(win, (char *) 0);
@@ -837,7 +837,7 @@ amii_get_ext_cmd(void)
                 sprintf(buf, "%-10s - %s ", extcmdlist[i].ef_txt,
                         extcmdlist[i].ef_desc);
                 amii_add_menu(win, NO_GLYPH, &id, extcmdlist[i].ef_txt[0], 0,
-                              0, buf, MENU_UNSELECTED);
+                              0, buf, MENU_ITEMFLAGS_NONE);
             }
 
             amii_end_menu(win, (char *) 0);
@@ -1413,7 +1413,7 @@ amii_player_selection()
                             Strcpy(rolenamebuf, roles[i].name.m);
                     }
                     add_menu(win, NO_GLYPH, &any, thisch, 0, ATR_NONE,
-                             an(rolenamebuf), MENU_UNSELECTED);
+                             an(rolenamebuf), MENU_ITEMFLAGS_NONE);
                     lastch = thisch;
                 }
             }
@@ -1422,10 +1422,10 @@ amii_player_selection()
             if (any.a_int == 0) /* must be non-zero */
                 any.a_int = randrole(FALSE) + 1;
             add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
             any.a_int = i + 1; /* must be non-zero */
             add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
             Sprintf(pbuf, "Pick a role for your %s", plbuf);
             end_menu(win, pbuf);
             n = select_menu(win, PICK_ONE, &selected);
@@ -1488,17 +1488,17 @@ amii_player_selection()
                         any.a_int = i + 1; /* must be non-zero */
                         add_menu(win, NO_GLYPH, &any, races[i].noun[0], 0,
                                  ATR_NONE, races[i].noun,
-                                 MENU_UNSELECTED);
+                                 MENU_ITEMFLAGS_NONE);
                     }
                 any.a_int = pick_race(flags.initrole, flags.initgend,
                                       flags.initalign, PICK_RANDOM) + 1;
                 if (any.a_int == 0) /* must be non-zero */
                     any.a_int = randrace(flags.initrole) + 1;
                 add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 any.a_int = i + 1; /* must be non-zero */
                 add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 Sprintf(pbuf, "Pick the race of your %s", plbuf);
                 end_menu(win, pbuf);
                 n = select_menu(win, PICK_ONE, &selected);
@@ -1560,17 +1560,17 @@ amii_player_selection()
                                 flags.initalign)) {
                         any.a_int = i + 1;
                         add_menu(win, NO_GLYPH, &any, genders[i].adj[0], 0,
-                                 ATR_NONE, genders[i].adj, MENU_UNSELECTED);
+                                 ATR_NONE, genders[i].adj, MENU_ITEMFLAGS_NONE);
                     }
                 any.a_int = pick_gend(flags.initrole, flags.initrace,
                                       flags.initalign, PICK_RANDOM) + 1;
                 if (any.a_int == 0) /* must be non-zero */
                     any.a_int = randgend(flags.initrole, flags.initrace) + 1;
                 add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 any.a_int = i + 1; /* must be non-zero */
                 add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 Sprintf(pbuf, "Pick the gender of your %s", plbuf);
                 end_menu(win, pbuf);
                 n = select_menu(win, PICK_ONE, &selected);
@@ -1631,17 +1631,17 @@ amii_player_selection()
                                  flags.initgend, i)) {
                         any.a_int = i + 1;
                         add_menu(win, NO_GLYPH, &any, aligns[i].adj[0], 0,
-                                 ATR_NONE, aligns[i].adj, MENU_UNSELECTED);
+                                 ATR_NONE, aligns[i].adj, MENU_ITEMFLAGS_NONE);
                     }
                 any.a_int = pick_align(flags.initrole, flags.initrace,
                                        flags.initgend, PICK_RANDOM) + 1;
                 if (any.a_int == 0) /* must be non-zero */
                     any.a_int = randalign(flags.initrole, flags.initrace) + 1;
                 add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 any.a_int = i + 1; /* must be non-zero */
                 add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 Sprintf(pbuf, "Pick the alignment of your %s", plbuf);
                 end_menu(win, pbuf);
                 n = select_menu(win, PICK_ONE, &selected);
index 7d24a2ceed2a3833f588d6631eb31c6dd554f05e..d1aebf1266acc1cc210174fa7349e94604d12d21 100644 (file)
@@ -5,7 +5,7 @@
 void FDECL(amii_raw_print, (const char *));
 void FDECL(amii_raw_print_bold, (const char *));
 void FDECL(amii_start_menu, (winid ));
-void FDECL(amii_add_menu, (winid  , char  , int  , const char *));
+void FDECL(amii_add_menu, (winid  , char  , int  , const char *, unsigned int));
 void FDECL(amii_end_menu, (winid  , char  , const char * , const char *));
 char FDECL(amii_select_menu, (winid ));
 void NDECL(amii_update_inventory );
index 1506f88cccb77ad0675c57783fc91aea7e0e6fd3..a4b0954dfc6087dfe98d0b56957e0d291df3548c 100644 (file)
@@ -56,7 +56,7 @@ register winid window;
 
 /* Add a string to a menu */
 void
-amii_add_menu(window, glyph, id, ch, gch, attr, str, preselected)
+amii_add_menu(window, glyph, id, ch, gch, attr, str, itemflags)
 register winid window;
 register int glyph;
 register const anything *id;
@@ -64,9 +64,10 @@ register char ch;
 register char gch;
 register int attr;
 register const char *str;
-register BOOLEAN_P preselected;
+register unsigned int itemflags;
 {
     register struct amii_WinDesc *cw;
+    boolean preselected = ((itemflags & MENU_ITEMFLAGS_SELECTED) != 0);
     amii_menu_item *mip;
     char buf[4 + BUFSZ];
 
@@ -143,7 +144,7 @@ register const char *morestr;
 #endif
         any.a_void = 0;
         amii_add_menu(window, NO_GLYPH, &any, 0, 0, ATR_NONE, morestr,
-                      MENU_UNSELECTED);
+                      MENU_ITEMFLAGS_NONE);
 #ifdef PROMPTFIRST /* Do some shuffling. Last first, push others one forward \
                       */
         mip->next = NULL;
index 9c249b0a0f1ff217664e06d4e1e1e55a613beabb..bcb68132ff291ec1d5feea7551f02e0f006dfee9 100644 (file)
@@ -41,7 +41,7 @@ void amii_getret(void);
 /* winmenu.c */
 void amii_start_menu(winid window);
 void FDECL(amii_add_menu, (winid, int, const anything *, CHAR_P, CHAR_P, int,
-                           const char *, BOOLEAN_P));
+                           const char *, unsigned int));
 void FDECL(amii_end_menu, (winid, const char *));
 int FDECL(amii_select_menu, (winid, int, menu_item **));
 int DoMenuScroll(int win, int blocking, int how, menu_item **);
index aec93d0b0c5a534f2e788dab749a6bd78c7becaf..3a48d3279db0baecb772212167c84180b411acaa 100644 (file)
@@ -1937,7 +1937,7 @@ mac_start_menu(winid win)
 
 void
 mac_add_menu(winid win, int glyph, const anything *any, CHAR_P menuChar,
-             CHAR_P groupAcc, int attr, const char *inStr, int preselected)
+             CHAR_P groupAcc, int attr, const char *inStr, unsigned int itemflags)
 {
 #if defined(__SC__) || defined(__MRC__)
 #pragma unused(glyph)
@@ -1946,6 +1946,7 @@ mac_add_menu(winid win, int glyph, const anything *any, CHAR_P menuChar,
     const char *str;
     char locStr[4 + BUFSZ];
     MacMHMenuItem *item;
+    int preselected = ((itemflags & MENU_ITEMFLAGS_SELECTED) != 0);
 
     if (!inStr)
         return;
index 55e0d3ce9c24b9b64dc1ff99af4cf28e7ee5126c..4fa42f48b024e4b62551ac8c329d4444df5ae26a 100644 (file)
@@ -46,7 +46,7 @@ typedef struct mswin_nhmsg_add_menu {
     CHAR_P group_accel;
     int attr;
     const char *str;
-    BOOLEAN_P presel;
+    unsigned int itemflags;
 } MSNHMsgAddMenu, *PMSNHMsgAddMenu;
 
 typedef struct mswin_nhmsg_cursor {
index 8133ea2eb3cf96aafe3dd0f9acf461d19ee3731d..5351a450dea4d3691340be3ae8a4d8ddfa86fb41 100644 (file)
@@ -390,7 +390,7 @@ prompt_for_player_selection(void)
                             Strcpy(rolenamebuf, roles[i].name.m);
                     }
                     add_menu(win, NO_GLYPH, &any, thisch, 0, ATR_NONE,
-                             an(rolenamebuf), MENU_UNSELECTED);
+                             an(rolenamebuf), MENU_ITEMFLAGS_NONE);
                     lastch = thisch;
                 }
             }
@@ -399,10 +399,10 @@ prompt_for_player_selection(void)
             if (any.a_int == 0) /* must be non-zero */
                 any.a_int = randrole(FALSE) + 1;
             add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
             any.a_int = i + 1; /* must be non-zero */
             add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
             Sprintf(pbuf, "Pick a role for your %s", plbuf);
             end_menu(win, pbuf);
             n = select_menu(win, PICK_ONE, &selected);
@@ -465,17 +465,17 @@ prompt_for_player_selection(void)
                                 flags.initalign)) {
                         any.a_int = i + 1; /* must be non-zero */
                         add_menu(win, NO_GLYPH, &any, races[i].noun[0], 0,
-                                 ATR_NONE, races[i].noun, MENU_UNSELECTED);
+                                 ATR_NONE, races[i].noun, MENU_ITEMFLAGS_NONE);
                     }
                 any.a_int = pick_race(flags.initrole, flags.initgend,
                                       flags.initalign, PICK_RANDOM) + 1;
                 if (any.a_int == 0) /* must be non-zero */
                     any.a_int = randrace(flags.initrole) + 1;
                 add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 any.a_int = i + 1; /* must be non-zero */
                 add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 Sprintf(pbuf, "Pick the race of your %s", plbuf);
                 end_menu(win, pbuf);
                 n = select_menu(win, PICK_ONE, &selected);
@@ -539,17 +539,17 @@ prompt_for_player_selection(void)
                                 flags.initalign)) {
                         any.a_int = i + 1;
                         add_menu(win, NO_GLYPH, &any, genders[i].adj[0], 0,
-                                 ATR_NONE, genders[i].adj, MENU_UNSELECTED);
+                                 ATR_NONE, genders[i].adj, MENU_ITEMFLAGS_NONE);
                     }
                 any.a_int = pick_gend(flags.initrole, flags.initrace,
                                       flags.initalign, PICK_RANDOM) + 1;
                 if (any.a_int == 0) /* must be non-zero */
                     any.a_int = randgend(flags.initrole, flags.initrace) + 1;
                 add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 any.a_int = i + 1; /* must be non-zero */
                 add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 Sprintf(pbuf, "Pick the gender of your %s", plbuf);
                 end_menu(win, pbuf);
                 n = select_menu(win, PICK_ONE, &selected);
@@ -612,17 +612,17 @@ prompt_for_player_selection(void)
                                  flags.initgend, i)) {
                         any.a_int = i + 1;
                         add_menu(win, NO_GLYPH, &any, aligns[i].adj[0], 0,
-                                 ATR_NONE, aligns[i].adj, MENU_UNSELECTED);
+                                 ATR_NONE, aligns[i].adj, MENU_ITEMFLAGS_NONE);
                     }
                 any.a_int = pick_align(flags.initrole, flags.initrace,
                                        flags.initgend, PICK_RANDOM) + 1;
                 if (any.a_int == 0) /* must be non-zero */
                     any.a_int = randalign(flags.initrole, flags.initrace) + 1;
                 add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 any.a_int = i + 1; /* must be non-zero */
                 add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 Sprintf(pbuf, "Pick the alignment of your %s", plbuf);
                 end_menu(win, pbuf);
                 n = select_menu(win, PICK_ONE, &selected);
@@ -1026,7 +1026,7 @@ mswin_start_menu(winid wid)
 /*
 add_menu(windid window, int glyph, const anything identifier,
                                 char accelerator, char groupacc,
-                                int attr, char *str, boolean preselected)
+                                int attr, char *str, unsigned int itemflags)
                 -- Add a text line str to the given menu window.  If
 identifier
                    is 0, then the line cannot be selected (e.g. a title).
@@ -1058,11 +1058,13 @@ identifier
 void
 mswin_add_menu(winid wid, int glyph, const ANY_P *identifier,
                CHAR_P accelerator, CHAR_P group_accel, int attr,
-               const char *str, BOOLEAN_P presel)
+               const char *str, unsigned int itemflags)
 {
-    logDebug("mswin_add_menu(%d, %d, %p, %c, %c, %d, %s, %d)\n", wid, glyph,
+    boolean presel = ((itemflags & MENU_ITEMFLAGS_SELECTED) != 0);
+
+    logDebug("mswin_add_menu(%d, %d, %p, %c, %c, %d, %s, %u)\n", wid, glyph,
              identifier, (char) accelerator, (char) group_accel, attr, str,
-             presel);
+             itemflags);
     if ((wid >= 0) && (wid < MAXWINDOWS)
         && (GetNHApp()->windowlist[wid].win != NULL)) {
         MSNHMsgAddMenu data;
index e9b78bd9938e5cc52fd4a9417daf99ffc826460c..c0c1d03c4e9f18766992a234d70b57473c5ceee3 100644 (file)
@@ -131,7 +131,7 @@ void mswin_display_file(const char *filename, BOOLEAN_P must_exist);
 void mswin_start_menu(winid wid);
 void mswin_add_menu(winid wid, int glyph, const ANY_P *identifier,
                     CHAR_P accelerator, CHAR_P group_accel, int attr,
-                    const char *str, BOOLEAN_P presel);
+                    const char *str, unsigned int itemflags);
 void mswin_end_menu(winid wid, const char *prompt);
 int mswin_select_menu(winid wid, int how, MENU_ITEM_P **selected);
 void mswin_update_inventory(void);
index 842daf9d9ae7fbf8123b8868f14afda3b3a13313..9926ee70b5a7629c2104a4591278b3c50634287d 100644 (file)
@@ -376,8 +376,9 @@ void NetHackQtBind::qt_start_menu(winid wid)
 
 void NetHackQtBind::qt_add_menu(winid wid, int glyph,
     const ANY_P * identifier, CHAR_P ch, CHAR_P gch, int attr,
-    const char *str, BOOLEAN_P presel)
+    const char *str, unsigned int itemflags)
 {
+    boolean presel = ((itemflags & MENU_ITEMFLAGS_SELECTED) != 0);
     NetHackQtWindow* window=id_to_window[(int)wid];
     window->AddMenu(glyph, identifier, ch, gch, attr,
             QString::fromLatin1(str),
index 04d2a43d71b26af528481a15e87de1681f3080c5..7d9c32c1d2c8baa3faf43e01a90e7d519a51348f 100644 (file)
@@ -54,7 +54,7 @@ public:
        static void qt_start_menu(winid wid);
        static void qt_add_menu(winid wid, int glyph,
                const ANY_P * identifier, CHAR_P ch, CHAR_P gch, int attr,
-               const char *str, BOOLEAN_P presel);
+               const char *str, unsigned int itemflags);
        static void qt_end_menu(winid wid, const char *prompt);
        static int qt_select_menu(winid wid, int how, MENU_ITEM_P **menu_list);
        static void qt_update_inventory();
index 9fe0e81abe73818932fc590b0abc2ff3e79a04cd..d8443cc838a2a26bc6a60466e733084a487cd839 100644 (file)
@@ -4817,8 +4817,9 @@ void NetHackQtBind::qt_start_menu(winid wid)
 
 void NetHackQtBind::qt_add_menu(winid wid, int glyph,
     const ANY_P * identifier, CHAR_P ch, CHAR_P gch, int attr,
-    const char *str, BOOLEAN_P presel)
+    const char *str, unsigned int itemflags)
 {
+    boolean presel = ((itemflags & MENU_ITEMFLAGS_SELECTED) != 0);
     NetHackQtWindow* window=id_to_window[wid];
     window->AddMenu(glyph, identifier, ch, gch, attr, str, presel);
 }
index 8de29d92f7439fdfcb40fdcdacbebfadcd278d67..825fa918bf3b4a5794325c84f4e3cf2b0e56d08a 100644 (file)
@@ -854,7 +854,7 @@ class NetHackQtBind : NetHackQtBindBase
     static void qt_start_menu(winid wid);
     static void qt_add_menu(winid wid, int glyph, const ANY_P *identifier,
                             CHAR_P ch, CHAR_P gch, int attr, const char *str,
-                            BOOLEAN_P presel);
+                            unsigned int itemflags);
     static void qt_end_menu(winid wid, const char *prompt);
     static int qt_select_menu(winid wid, int how, MENU_ITEM_P **menu_list);
     static void qt_update_inventory();
index 00cd7e75f74f2877c9ca9b32cc6eab40b7897b0e..92347114aa65a905ef3ffbcb611076561b4f1284 100644 (file)
@@ -182,7 +182,7 @@ winid window;
 }
 
 void
-chainin_add_menu(window, glyph, identifier, ch, gch, attr, str, preselected)
+chainin_add_menu(window, glyph, identifier, ch, gch, attr, str, itemflags)
 winid window;               /* window to use, must be of type NHW_MENU */
 int glyph;                  /* glyph to display with item (unused) */
 const anything *identifier; /* what to return if selected */
@@ -190,10 +190,11 @@ char ch;                    /* keyboard accelerator (0 = pick our own) */
 char gch;                   /* group accelerator (0 = no group) */
 int attr;                   /* attribute for string (like tty_putstr()) */
 const char *str;            /* menu string */
-boolean preselected;        /* item is marked as selected */
+unsigned int itemflags;     /* flags such as item is marked as selected
+                               MENU_ITEMFLAGS_SELECTED */
 {
     (*cibase->nprocs->win_add_menu)(cibase->ndata, window, glyph, identifier,
-                                    ch, gch, attr, str, preselected);
+                                    ch, gch, attr, str, itemflags);
 }
 
 void
index 18af49e17f165956104520b99136729ff939ad62..8ada327f715cd8b27aed130bf68d0438c39f4220 100644 (file)
@@ -224,7 +224,7 @@ winid window;
 
 void
 chainout_add_menu(vp, window, glyph, identifier, ch, gch, attr, str,
-                  preselected)
+                  itemflags)
 void *vp;
 winid window;               /* window to use, must be of type NHW_MENU */
 int glyph;                  /* glyph to display with item (unused) */
@@ -233,12 +233,12 @@ char ch;                    /* keyboard accelerator (0 = pick our own) */
 char gch;                   /* group accelerator (0 = no group) */
 int attr;                   /* attribute for string (like tty_putstr()) */
 const char *str;            /* menu string */
-boolean preselected;        /* item is marked as selected */
+unsigned int itemflags;     /* itemflags such as marked as selected */
 {
     struct chainout_data *tdp = vp;
 
     (*tdp->nprocs->win_add_menu)(window, glyph, identifier, ch, gch, attr,
-                                 str, preselected);
+                                 str, itemflags);
 }
 
 void
index 6da9a9b8329da44199b58c30ca737c62dd694ac9..acde19d2fad3de13b9624e06d60d745a6557be3e 100644 (file)
@@ -370,7 +370,7 @@ winid window;
 }
 
 void
-trace_add_menu(vp, window, glyph, identifier, ch, gch, attr, str, preselected)
+trace_add_menu(vp, window, glyph, identifier, ch, gch, attr, str, itemflags)
 void *vp;
 winid window;               /* window to use, must be of type NHW_MENU */
 int glyph;                  /* glyph to display with item (unused) */
@@ -379,7 +379,7 @@ char ch;                    /* keyboard accelerator (0 = pick our own) */
 char gch;                   /* group accelerator (0 = no group) */
 int attr;                   /* attribute for string (like tty_putstr()) */
 const char *str;            /* menu string */
-boolean preselected;        /* item is marked as selected */
+unsigned int itemflags;     /* itemflags such as marked as selected */
 {
     struct trace_data *tdp = vp;
 
@@ -400,19 +400,19 @@ boolean preselected;        /* item is marked as selected */
 
     if (str) {
         fprintf(wc_tracelogf,
-                "%sadd_menu(%d, %d, %p, %s, %s, %d, '%s'(%d), %d)\n", INDENT,
+                "%sadd_menu(%d, %d, %p, %s, %s, %d, '%s'(%d), %u)\n", INDENT,
                 window, glyph, (void *) identifier, buf_ch, buf_gch, attr,
-                str, (int) strlen(str), preselected);
+                str, (int) strlen(str), itemflags);
     } else {
         fprintf(wc_tracelogf,
-                "%sadd_menu(%d, %d, %p, %s, %s, %d, NULL, %d)\n", INDENT,
+                "%sadd_menu(%d, %d, %p, %s, %s, %d, NULL, %u)\n", INDENT,
                 window, glyph, (void *) identifier, buf_ch, buf_gch, attr,
-                preselected);
+                itemflags);
     }
 
     PRE;
     (*tdp->nprocs->win_add_menu)(tdp->ndata, window, glyph, identifier, ch,
-                                 gch, attr, str, preselected);
+                                 gch, attr, str, itemflags);
     POST;
 }
 
index 1b07395c61d6cc680ec9a6211010f74f7c2c70dd..2c8840ba23f78f0866b5b362e45f2a700d192ec8 100644 (file)
@@ -744,19 +744,19 @@ curses_character_dialog(const char **choices, const char *prompt)
 
         identifier.a_int = (count + 1); /* Must be non-zero */
         curses_add_menu(wid, NO_GLYPH, &identifier, curletter, 0,
-                        A_NORMAL, choices[count], FALSE);
+                        A_NORMAL, choices[count], MENU_ITEMFLAGS_NONE);
         used_letters[count] = curletter;
     }
 
     /* Random Selection */
     identifier.a_int = ROLE_RANDOM;
     curses_add_menu(wid, NO_GLYPH, &identifier, '*', 0, A_NORMAL, "Random",
-                    FALSE);
+                    MENU_ITEMFLAGS_NONE);
 
     /* Quit prompt */
     identifier.a_int = ROLE_NONE;
     curses_add_menu(wid, NO_GLYPH, &identifier, 'q', 0, A_NORMAL, "Quit",
-                    FALSE);
+                    MENU_ITEMFLAGS_NONE);
     curses_end_menu(wid, prompt);
     ret = curses_select_menu(wid, PICK_ONE, &selected);
     if (ret == 1) {
index 434d85c55afdccd9711712479c3792eb77a86ed1..bab6d0808e7c46bb344e2fd99cf4b22df78d4f76 100644 (file)
@@ -491,7 +491,7 @@ curses_start_menu(winid wid)
 /*
 add_menu(winid wid, int glyph, const anything identifier,
                                 char accelerator, char groupacc,
-                                int attr, char *str, boolean preselected)
+                                int attr, char *str, unsigned int itemflags)
                 -- Add a text line str to the given menu window.  If identifier
                    is 0, then the line cannot be selected (e.g. a title).
                    Otherwise, identifier is the value returned if the line is
@@ -517,14 +517,15 @@ add_menu(winid wid, int glyph, const anything identifier,
                    The menu commands and aliases take care not to interfere
                    with the default object class symbols.
                 -- If you want this choice to be preselected when the
-                   menu is displayed, set preselected to TRUE.
+                   menu is displayed, set bit MENU_ITEMFLAGS_SELECTED.
 */
 void
 curses_add_menu(winid wid, int glyph, const ANY_P * identifier,
                 CHAR_P accelerator, CHAR_P group_accel, int attr,
-                const char *str, BOOLEAN_P presel)
+                const char *str, unsigned int itemflags)
 {
     int curses_attr;
+    boolean presel = ((itemflags & MENU_ITEMFLAGS_SELECTED) != 0);
 
     attr &= ~(ATR_URGENT | ATR_NOHISTORY);
     curses_attr = curses_convert_attr(attr);
index 6e625aef3445f89bfb9ab2d510eba8a790a78fb4..ab2ceb5871dc54a6fdf34e202c4d599fb62200c4 100644 (file)
@@ -373,14 +373,17 @@ curses_prev_mesg()
     for (count = 0; count < num_messages; ++count) {
         mesg = get_msg_line(do_lifo, count);
         if (turn != mesg->turn && count != 0) {
-            curses_add_menu(wid, NO_GLYPH, &Id, 0, 0, A_NORMAL, "---", FALSE);
+            curses_add_menu(wid, NO_GLYPH, &Id, 0, 0, A_NORMAL, "---",
+                            MENU_ITEMFLAGS_NONE);
         }
-        curses_add_menu(wid, NO_GLYPH, &Id, 0, 0, A_NORMAL, mesg->str, FALSE);
+        curses_add_menu(wid, NO_GLYPH, &Id, 0, 0, A_NORMAL, mesg->str,
+                         MENU_ITEMFLAGS_NONE);
         turn = mesg->turn;
     }
     if (!count)
         curses_add_menu(wid, NO_GLYPH, &Id, 0, 0, A_NORMAL,
-                        "[No past messages available.]", FALSE);
+                        "[No past messages available.]",
+                        MENU_ITEMFLAGS_NONE);
 
     curses_end_menu(wid, "");
     if (!do_lifo)
index d215a7ae3c04137cbea2a6e2ff8e25077bd9ee87..76ea26cb9efef01c448cefb073f157d3100cc704 100644 (file)
@@ -251,7 +251,7 @@ Gem_player_selection()
                     if (currch == lastch)
                         currch = highc(currch);
                     add_menu(win, roles[i].malenum, &any, currch, 0, ATR_NONE,
-                             an(roles[i].name.m), MENU_UNSELECTED);
+                             an(roles[i].name.m), MENU_ITEMFLAGS_NONE);
                     lastch = currch;
                 }
             }
@@ -260,10 +260,10 @@ Gem_player_selection()
             if (any.a_int == 0) /* must be non-zero */
                 any.a_int = randrole(FALSE) + 1;
             add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
             any.a_int = i + 1; /* must be non-zero */
             add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
             end_menu(win, "Pick a role");
             n = select_menu(win, PICK_ONE, &selected);
             destroy_nhwindow(win);
@@ -320,17 +320,17 @@ Gem_player_selection()
                                 flags.initalign)) {
                         any.a_int = i + 1; /* must be non-zero */
                         add_menu(win, NO_GLYPH, &any, races[i].noun[0], 0,
-                                 ATR_NONE, races[i].noun, MENU_UNSELECTED);
+                                 ATR_NONE, races[i].noun, MENU_ITEMFLAGS_NONE);
                     }
                 any.a_int = pick_race(flags.initrole, flags.initgend,
                                       flags.initalign, PICK_RANDOM) + 1;
                 if (any.a_int == 0) /* must be non-zero */
                     any.a_int = randrace(flags.initrole) + 1;
                 add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 any.a_int = i + 1; /* must be non-zero */
                 add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 Sprintf(pbuf, "Pick the race of your %s",
                         roles[flags.initrole].name.m);
                 end_menu(win, pbuf);
@@ -389,17 +389,17 @@ Gem_player_selection()
                                 flags.initalign)) {
                         any.a_int = i + 1;
                         add_menu(win, NO_GLYPH, &any, genders[i].adj[0], 0,
-                                 ATR_NONE, genders[i].adj, MENU_UNSELECTED);
+                                 ATR_NONE, genders[i].adj, MENU_ITEMFLAGS_NONE);
                     }
                 any.a_int = pick_gend(flags.initrole, flags.initrace,
                                       flags.initalign, PICK_RANDOM) + 1;
                 if (any.a_int == 0) /* must be non-zero */
                     any.a_int = randgend(flags.initrole, flags.initrace) + 1;
                 add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 any.a_int = i + 1; /* must be non-zero */
                 add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 Sprintf(pbuf, "Pick the gender of your %s %s",
                         races[flags.initrace].adj,
                         roles[flags.initrole].name.m);
@@ -458,17 +458,17 @@ Gem_player_selection()
                                  flags.initgend, i)) {
                         any.a_int = i + 1;
                         add_menu(win, NO_GLYPH, &any, aligns[i].adj[0], 0,
-                                 ATR_NONE, aligns[i].adj, MENU_UNSELECTED);
+                                 ATR_NONE, aligns[i].adj, MENU_ITEMFLAGS_NONE);
                     }
                 any.a_int = pick_align(flags.initrole, flags.initrace,
                                        flags.initgend, PICK_RANDOM) + 1;
                 if (any.a_int == 0) /* must be non-zero */
                     any.a_int = randalign(flags.initrole, flags.initrace) + 1;
                 add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 any.a_int = i + 1; /* must be non-zero */
                 add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 Sprintf(pbuf, "Pick the alignment of your %s %s %s",
                         genders[flags.initgend].adj,
                         races[flags.initrace].adj,
@@ -754,7 +754,7 @@ boolean complain;
  * later.
  */
 void
-Gem_add_menu(window, glyph, identifier, ch, gch, attr, str, preselected)
+Gem_add_menu(window, glyph, identifier, ch, gch, attr, str, itemflags)
 winid window;               /* window to use, must be of type NHW_MENU */
 int glyph;                  /* glyph to display with item (unused) */
 const anything *identifier; /* what to return if selected */
@@ -762,8 +762,9 @@ char ch;                    /* keyboard accelerator (0 = pick our own) */
 char gch;                   /* group accelerator (0 = no group) */
 int attr;                   /* attribute for string (like Gem_putstr()) */
 const char *str;            /* menu string */
-boolean preselected;        /* item is marked as selected */
+unsigned int itemflags;     /* itemflags such as marked as selected */
 {
+    boolean preselected = ((itemflags & MENU_ITEMFLAGS_SELECTED) != 0);
     Gem_menu_item *G_item;
     const char *newstr;
     char buf[QBUFSZ];
@@ -1014,7 +1015,7 @@ Gem_get_ext_cmd()
             too_much = FALSE;
         tmp_acc = *ptr;
         Gem_add_menu(wind, NO_GLYPH, &any, accelerator, 0, ATR_NONE, ptr,
-                     FALSE);
+                     MENU_ITEMFLAGS_NONE);
     }
     Gem_end_menu(wind, "What extended command?");
     count = Gem_select_menu(wind, PICK_ONE, &selected);
index 1ba8005d1d9f28dd48338ae4288b4fd3fa62678a..fbd9107e810e525fa036fc6474609467c7dd0092 100644 (file)
@@ -681,10 +681,9 @@ gnome_start_menu(winid wid)
 /*
 add_menu(windid window, int glyph, const anything identifier,
                                 char accelerator, char groupacc,
-                                int attr, char *str, boolean preselected)
+                                int attr, char *str, unsigned int itemflags)
                 -- Add a text line str to the given menu window.  If
-identifier
-                   is 0, then the line cannot be selected (e.g. a title).
+                   identifier is 0, then the line cannot be selected (e.g. a title).
                    Otherwise, identifier is the value returned if the line is
                    selected.  Accelerator is a keyboard key that can be used
                    to select the line.  If the accelerator of a selectable
@@ -708,13 +707,14 @@ identifier
                    The menu commands and aliases take care not to interfere
                    with the default object class symbols.
                 -- If you want this choice to be preselected when the
-                   menu is displayed, set preselected to TRUE.
+                   menu is displayed, set bit MENU_ITEMFLAGS_SELECTED.
 */
 void
 gnome_add_menu(winid wid, int glyph, const ANY_P *identifier,
                CHAR_P accelerator, CHAR_P group_accel, int attr,
-               const char *str, BOOLEAN_P presel)
+               const char *str, unsigned int itemflags)
 {
+    boolean presel = ((itemflags & MENU_ITEMFLAGS_SELECTED) != 0);
     GHackMenuItem item;
     item.glyph = glyph;
     item.identifier = identifier;
index 927744c4efcf0e4919dc83a05e54c09b63849459..5c54961ca0806444932030aba14993bf417018c1 100644 (file)
@@ -242,7 +242,7 @@ winid window;
  * later.
  */
 void
-safe_add_menu(window, glyph, identifier, ch, gch, attr, str, preselected)
+safe_add_menu(window, glyph, identifier, ch, gch, attr, str, itemflags)
 winid window;               /* window to use, must be of type NHW_MENU */
 int glyph UNUSED;           /* glyph to display with item (not used) */
 const anything *identifier; /* what to return if selected */
@@ -250,7 +250,7 @@ char ch;                    /* keyboard accelerator (0 = pick our own) */
 char gch;                   /* group accelerator (0 = no group) */
 int attr;                   /* attribute for string (like safe_putstr()) */
 const char *str;            /* menu string */
-boolean preselected;        /* item is marked as selected */
+unsigned int itemflags;     /* itemflags such as marked as selected */
 {
     return;
 }
index 2c61f07e7e93082de5238b461f72ac2ab5d35fc0..8f7ddc9e25b7d40d7ad066d1a46702ba7ee130ba 100644 (file)
@@ -578,7 +578,7 @@ tty_player_selection()
                     role_menu_extra(ROLE_RANDOM, win, TRUE);
                     any = cg.zeroany; /* separator, not a choice */
                     add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
-                             MENU_UNSELECTED);
+                             MENU_ITEMFLAGS_NONE);
                     role_menu_extra(RS_RACE, win, FALSE);
                     role_menu_extra(RS_GENDER, win, FALSE);
                     role_menu_extra(RS_ALGNMNT, win, FALSE);
@@ -677,7 +677,7 @@ tty_player_selection()
                         role_menu_extra(ROLE_RANDOM, win, TRUE);
                         any.a_int = 0; /* separator, not a choice */
                         add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
-                                 MENU_UNSELECTED);
+                                 MENU_ITEMFLAGS_NONE);
                         role_menu_extra(RS_ROLE, win, FALSE);
                         role_menu_extra(RS_GENDER, win, FALSE);
                         role_menu_extra(RS_ALGNMNT, win, FALSE);
@@ -770,7 +770,7 @@ tty_player_selection()
                         role_menu_extra(ROLE_RANDOM, win, TRUE);
                         any.a_int = 0; /* separator, not a choice */
                         add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
-                                 MENU_UNSELECTED);
+                                 MENU_ITEMFLAGS_NONE);
                         role_menu_extra(RS_ROLE, win, FALSE);
                         role_menu_extra(RS_RACE, win, FALSE);
                         role_menu_extra(RS_ALGNMNT, win, FALSE);
@@ -859,7 +859,7 @@ tty_player_selection()
                         role_menu_extra(ROLE_RANDOM, win, TRUE);
                         any.a_int = 0; /* separator, not a choice */
                         add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
-                                 MENU_UNSELECTED);
+                                 MENU_ITEMFLAGS_NONE);
                         role_menu_extra(RS_ROLE, win, FALSE);
                         role_menu_extra(RS_RACE, win, FALSE);
                         role_menu_extra(RS_GENDER, win, FALSE);
@@ -947,25 +947,25 @@ tty_player_selection()
                 (GEND == 1 && roles[ROLE].name.f) ? roles[ROLE].name.f
                                                   : roles[ROLE].name.m);
         add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, pbuf,
-                 MENU_UNSELECTED);
+                 MENU_ITEMFLAGS_NONE);
         /* blank separator */
         any.a_int = 0;
-        add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
+        add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
         /* [ynaq] menu choices */
         any.a_int = 1;
         add_menu(win, NO_GLYPH, &any, 'y', 0, ATR_NONE, "Yes; start game",
-                 MENU_SELECTED);
+                 MENU_ITEMFLAGS_SELECTED);
         any.a_int = 2;
         add_menu(win, NO_GLYPH, &any, 'n', 0, ATR_NONE,
-                 "No; choose role again", MENU_UNSELECTED);
+                 "No; choose role again", MENU_ITEMFLAGS_NONE);
         if (iflags.renameallowed) {
             any.a_int = 3;
             add_menu(win, NO_GLYPH, &any, 'a', 0, ATR_NONE,
-                     "Not yet; choose another name", MENU_UNSELECTED);
+                     "Not yet; choose another name", MENU_ITEMFLAGS_NONE);
         }
         any.a_int = -1;
         add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                 MENU_UNSELECTED);
+                 MENU_ITEMFLAGS_NONE);
         Sprintf(pbuf, "Is this ok? [yn%sq]", iflags.renameallowed ? "a" : "");
         end_menu(win, pbuf);
         n = select_menu(win, PICK_ONE, &selected);
@@ -1040,22 +1040,22 @@ reset_role_filtering()
 
     /* no extra blank line preceding this entry; end_menu supplies one */
     add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
-             "Unacceptable roles", MENU_UNSELECTED);
+             "Unacceptable roles", MENU_ITEMFLAGS_NONE);
     setup_rolemenu(win, FALSE, ROLE_NONE, ROLE_NONE, ROLE_NONE);
 
-    add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
+    add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
     add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
-             "Unacceptable races", MENU_UNSELECTED);
+             "Unacceptable races", MENU_ITEMFLAGS_NONE);
     setup_racemenu(win, FALSE, ROLE_NONE, ROLE_NONE, ROLE_NONE);
 
-    add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
+    add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
     add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
-             "Unacceptable genders", MENU_UNSELECTED);
+             "Unacceptable genders", MENU_ITEMFLAGS_NONE);
     setup_gendmenu(win, FALSE, ROLE_NONE, ROLE_NONE, ROLE_NONE);
 
-    add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
+    add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
     add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
-             "Unacceptable alignments", MENU_UNSELECTED);
+             "Unacceptable alignments", MENU_ITEMFLAGS_NONE);
     setup_algnmenu(win, FALSE, ROLE_NONE, ROLE_NONE, ROLE_NONE);
 
     end_menu(win, "Pick all that apply");
@@ -1118,7 +1118,8 @@ int race, gend, algn; /* all ROLE_NONE for !filtering case */
         /* !filtering implies reset_role_filtering() where we want to
            mark this role as preseleted if current filter excludes it */
         add_menu(win, NO_GLYPH, &any, thisch, 0, ATR_NONE, an(rolenamebuf),
-                 (!filtering && !role_ok) ? MENU_SELECTED : MENU_UNSELECTED);
+                 (!filtering && !role_ok)
+                    ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
         lastch = thisch;
     }
 }
@@ -1152,7 +1153,8 @@ int role, gend, algn;
                  filtering ? this_ch : highc(this_ch),
                  filtering ? highc(this_ch) : 0,
                  ATR_NONE, races[i].noun,
-                 (!filtering && !race_ok) ? MENU_SELECTED : MENU_UNSELECTED);
+                 (!filtering && !race_ok)
+                    ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
     }
 }
 
@@ -1183,7 +1185,8 @@ int role, race, algn;
                  filtering ? this_ch : highc(this_ch),
                  filtering ? highc(this_ch) : 0,
                  ATR_NONE, genders[i].adj,
-                 (!filtering && !gend_ok) ? MENU_SELECTED : MENU_UNSELECTED);
+                 (!filtering && !gend_ok)
+                    ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
     }
 }
 
@@ -1214,7 +1217,8 @@ int role, race, gend;
                  filtering ? this_ch : highc(this_ch),
                  filtering ? highc(this_ch) : 0,
                  ATR_NONE, aligns[i].adj,
-                 (!filtering && !algn_ok) ? MENU_SELECTED : MENU_UNSELECTED);
+                 (!filtering && !algn_ok)
+                    ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
     }
 }
 
@@ -2900,7 +2904,7 @@ winid window;
  * later.
  */
 void
-tty_add_menu(window, glyph, identifier, ch, gch, attr, str, preselected)
+tty_add_menu(window, glyph, identifier, ch, gch, attr, str, itemflags)
 winid window;               /* window to use, must be of type NHW_MENU */
 int glyph UNUSED;           /* glyph to display with item (not used) */
 const anything *identifier; /* what to return if selected */
@@ -2908,8 +2912,9 @@ char ch;                    /* keyboard accelerator (0 = pick our own) */
 char gch;                   /* group accelerator (0 = no group) */
 int attr;                   /* attribute for string (like tty_putstr()) */
 const char *str;            /* menu string */
-boolean preselected;        /* item is marked as selected */
+unsigned int itemflags;     /* itemflags such as MENU_ITEMFLAGS_SELECTED */
 {
+    boolean preselected = ((itemflags & MENU_ITEMFLAGS_SELECTED) != 0);
     register struct WinDesc *cw = 0;
     tty_menu_item *item;
     const char *newstr;
@@ -2944,6 +2949,7 @@ boolean preselected;        /* item is marked as selected */
     item->identifier = *identifier;
     item->count = -1L;
     item->selected = preselected;
+    item->itemflags = itemflags;
     item->selector = ch;
     item->gselector = gch;
     item->attr = attr;
@@ -2999,9 +3005,9 @@ const char *prompt; /* prompt to for menu */
 
         any = cg.zeroany; /* not selectable */
         tty_add_menu(window, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
         tty_add_menu(window, NO_GLYPH, &any, 0, 0, ATR_NONE, prompt,
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
     }
 
     /* 52: 'a'..'z' and 'A'..'Z'; avoids selector duplication within a page */
index ffc1649085aebd698af31462ace2c9388ba132ff..14fa263f913c4c7f0af9455c4f71ccb849cd004f 100644 (file)
@@ -34,6 +34,7 @@ typedef struct mswin_menu_item {
     int attr;
     char str[NHMENU_STR_SIZE];
     BOOLEAN_P presel;
+    unsigned int itemflags;
     int count;
     BOOL has_focus;
 } NHMenuItem, *PNHMenuItem;
@@ -627,6 +628,7 @@ onMSNHCommand(HWND hWnd, WPARAM wParam, LPARAM lParam)
        /* prevent & being interpreted as a mnemonic start */
         strNsubst(data->menu.items[new_item].str, "&", "&&", 0);
         data->menu.items[new_item].presel = msg_data->presel;
+        data->menu.items[new_item].itemflags = msg_data->itemflags;
 
         /* calculate tabstop size */
         hDC = GetDC(hWnd);
index 4fd04af018a12d399beccbbc5def41b3db10486e..3962fb608677a96944f87d19c3f29b0f5acadbba 100644 (file)
@@ -53,6 +53,7 @@ typedef struct mswin_nhmsg_add_menu {
     int attr;
     const char *str;
     BOOLEAN_P presel;
+    unsigned int itemflags;
 } MSNHMsgAddMenu, *PMSNHMsgAddMenu;
 
 typedef struct mswin_nhmsg_cursor {
index 4b23b5b4fe615bb8056ef5b7506a5cba7165d8d4..6da8f82c08e667d9daeca48a6504e416e43bc678 100644 (file)
@@ -429,7 +429,7 @@ prompt_for_player_selection(void)
                             Strcpy(rolenamebuf, roles[i].name.m);
                     }
                     add_menu(win, NO_GLYPH, &any, thisch, 0, ATR_NONE,
-                             an(rolenamebuf), MENU_UNSELECTED);
+                             an(rolenamebuf), MENU_ITEMFLAGS_NONE);
                     lastch = thisch;
                 }
             }
@@ -438,10 +438,10 @@ prompt_for_player_selection(void)
             if (any.a_int == 0) /* must be non-zero */
                 any.a_int = randrole(FALSE) + 1;
             add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
             any.a_int = i + 1; /* must be non-zero */
             add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                     MENU_UNSELECTED);
+                     MENU_ITEMFLAGS_NONE);
             Sprintf(pbuf, "Pick a role for your %s", plbuf);
             end_menu(win, pbuf);
             n = select_menu(win, PICK_ONE, &selected);
@@ -504,17 +504,17 @@ prompt_for_player_selection(void)
                                 flags.initalign)) {
                         any.a_int = i + 1; /* must be non-zero */
                         add_menu(win, NO_GLYPH, &any, races[i].noun[0], 0,
-                                 ATR_NONE, races[i].noun, MENU_UNSELECTED);
+                                 ATR_NONE, races[i].noun, MENU_ITEMFLAGS_NONE);
                     }
                 any.a_int = pick_race(flags.initrole, flags.initgend,
                                       flags.initalign, PICK_RANDOM) + 1;
                 if (any.a_int == 0) /* must be non-zero */
                     any.a_int = randrace(flags.initrole) + 1;
                 add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 any.a_int = i + 1; /* must be non-zero */
                 add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 Sprintf(pbuf, "Pick the race of your %s", plbuf);
                 end_menu(win, pbuf);
                 n = select_menu(win, PICK_ONE, &selected);
@@ -578,17 +578,17 @@ prompt_for_player_selection(void)
                                 flags.initalign)) {
                         any.a_int = i + 1;
                         add_menu(win, NO_GLYPH, &any, genders[i].adj[0], 0,
-                                 ATR_NONE, genders[i].adj, MENU_UNSELECTED);
+                                 ATR_NONE, genders[i].adj, MENU_ITEMFLAGS_NONE);
                     }
                 any.a_int = pick_gend(flags.initrole, flags.initrace,
                                       flags.initalign, PICK_RANDOM) + 1;
                 if (any.a_int == 0) /* must be non-zero */
                     any.a_int = randgend(flags.initrole, flags.initrace) + 1;
                 add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 any.a_int = i + 1; /* must be non-zero */
                 add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 Sprintf(pbuf, "Pick the gender of your %s", plbuf);
                 end_menu(win, pbuf);
                 n = select_menu(win, PICK_ONE, &selected);
@@ -651,17 +651,17 @@ prompt_for_player_selection(void)
                                  flags.initgend, i)) {
                         any.a_int = i + 1;
                         add_menu(win, NO_GLYPH, &any, aligns[i].adj[0], 0,
-                                 ATR_NONE, aligns[i].adj, MENU_UNSELECTED);
+                                 ATR_NONE, aligns[i].adj, MENU_ITEMFLAGS_NONE);
                     }
                 any.a_int = pick_align(flags.initrole, flags.initrace,
                                        flags.initgend, PICK_RANDOM) + 1;
                 if (any.a_int == 0) /* must be non-zero */
                     any.a_int = randalign(flags.initrole, flags.initrace) + 1;
                 add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 any.a_int = i + 1; /* must be non-zero */
                 add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
-                         MENU_UNSELECTED);
+                         MENU_ITEMFLAGS_NONE);
                 Sprintf(pbuf, "Pick the alignment of your %s", plbuf);
                 end_menu(win, pbuf);
                 n = select_menu(win, PICK_ONE, &selected);
@@ -1095,7 +1095,7 @@ mswin_start_menu(winid wid)
 /*
 add_menu(windid window, int glyph, const anything identifier,
                                 char accelerator, char groupacc,
-                                int attr, char *str, boolean preselected)
+                                int attr, char *str, unsigned int itemflags)
                 -- Add a text line str to the given menu window.  If
 identifier
                    is 0, then the line cannot be selected (e.g. a title).
@@ -1127,11 +1127,12 @@ identifier
 void
 mswin_add_menu(winid wid, int glyph, const ANY_P *identifier,
                CHAR_P accelerator, CHAR_P group_accel, int attr,
-               const char *str, BOOLEAN_P presel)
+               const char *str, unsigned int itemflags)
 {
-    logDebug("mswin_add_menu(%d, %d, %p, %c, %c, %d, %s, %d)\n", wid, glyph,
+    boolean presel = ((itemflags & MENU_ITEMFLAGS_SELECTED) != 0);
+    logDebug("mswin_add_menu(%d, %d, %p, %c, %c, %d, %s, %u)\n", wid, glyph,
              identifier, (char) accelerator, (char) group_accel, attr, str,
-             presel);
+             itemflags);
     if ((wid >= 0) && (wid < MAXWINDOWS)
         && (GetNHApp()->windowlist[wid].win != NULL)) {
         MSNHMsgAddMenu data;
@@ -1143,6 +1144,7 @@ mswin_add_menu(winid wid, int glyph, const ANY_P *identifier,
         data.attr = attr;
         data.str = str;
         data.presel = presel;
+        data.itemflags = itemflags;
 
         SendMessage(GetNHApp()->windowlist[wid].win, WM_MSNH_COMMAND,
                     (WPARAM) MSNH_MSG_ADDMENU, (LPARAM) &data);
index c5ee77368ffb1083bc1ea6715a6df6190583e124..2870936762feb35dd3acf18c1fa1af3f4922b991 100644 (file)
@@ -155,7 +155,7 @@ void mswin_display_file(const char *filename, BOOLEAN_P must_exist);
 void mswin_start_menu(winid wid);
 void mswin_add_menu(winid wid, int glyph, const ANY_P *identifier,
                     CHAR_P accelerator, CHAR_P group_accel, int attr,
-                    const char *str, BOOLEAN_P presel);
+                    const char *str, unsigned int itemflags);
 void mswin_end_menu(winid wid, const char *prompt);
 int mswin_select_menu(winid wid, int how, MENU_ITEM_P **selected);
 void mswin_update_inventory(void);