diff --git a/doc/window.doc b/doc/window.doc index 3758bf55b..5d82c613d 100644 --- a/doc/window.doc +++ b/doc/window.doc @@ -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 diff --git a/include/hack.h b/include/hack.h index d22197b61..baedf773a 100644 --- a/include/hack.h +++ b/include/hack.h @@ -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 diff --git a/include/macwin.h b/include/macwin.h index b9b6ede14..3e33c847f 100644 --- a/include/macwin.h +++ b/include/macwin.h @@ -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 diff --git a/include/winX.h b/include/winX.h index a1a560528..93a3c1096 100644 --- a/include/winX.h +++ b/include/winX.h @@ -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); diff --git a/include/wincurs.h b/include/wincurs.h index 8ae45e10e..07da384ac 100644 --- a/include/wincurs.h +++ b/include/wincurs.h @@ -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); diff --git a/include/wingem.h b/include/wingem.h index 61c7e7c87..376b732d9 100644 --- a/include/wingem.h +++ b/include/wingem.h @@ -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 *)); diff --git a/include/winprocs.h b/include/winprocs.h index 55b2b0611..8c266e4ff 100644 --- a/include/winprocs.h +++ b/include/winprocs.h @@ -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 *)); diff --git a/include/wintty.h b/include/wintty.h index a42ed22d4..30e257e97 100644 --- a/include/wintty.h +++ b/include/wintty.h @@ -13,13 +13,14 @@ /* 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 *)); diff --git a/include/wintype.h b/include/wintype.h index 26afbca3f..550afad3a 100644 --- a/include/wintype.h +++ b/include/wintype.h @@ -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 */ diff --git a/src/apply.c b/src/apply.c index 6451187e9..2eb8c2372 100644 --- a/src/apply.c +++ b/src/apply.c @@ -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 diff --git a/src/artifact.c b/src/artifact.c index e25fedb24..b0a81989d 100644 --- a/src/artifact.c +++ b/src/artifact.c @@ -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; } diff --git a/src/botl.c b/src/botl.c index d5454aa82..37594ff7c 100644 --- a/src/botl.c +++ b/src/botl.c @@ -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:"); diff --git a/src/cmd.c b/src/cmd.c index fa9e4cae6..542574a64 100644 --- 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); } } diff --git a/src/do_name.c b/src/do_name.c index cf812daa3..57cb551c8 100644 --- a/src/do_name.c +++ b/src/do_name.c @@ -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; diff --git a/src/dungeon.c b/src/dungeon.c index 54a13c9ae..f07f375f1 100644 --- a/src/dungeon.c +++ b/src/dungeon.c @@ -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); diff --git a/src/end.c b/src/end.c index c35677ed2..74d1bdf53 100644 --- 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"); diff --git a/src/invent.c b/src/invent.c index cc6bd353c..8ca20b3e1 100644 --- a/src/invent.c +++ b/src/invent.c @@ -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); diff --git a/src/nhlua.c b/src/nhlua.c index edbde987e..b6afc2e59 100644 --- a/src/nhlua.c +++ b/src/nhlua.c @@ -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 */ } diff --git a/src/o_init.c b/src/o_init.c index 7f9931ae8..3c15a0e71 100644 --- a/src/o_init.c +++ b/src/o_init.c @@ -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) { diff --git a/src/options.c b/src/options.c index d6129dd97..5a9c90fae 100644 --- a/src/options.c +++ b/src/options.c @@ -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, ¶noia_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 ", - (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); diff --git a/src/pager.c b/src/pager.c index f29cedadb..f6ed84da3 100644 --- a/src/pager.c +++ b/src/pager.c @@ -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); diff --git a/src/pickup.c b/src/pickup.c index 6d932912d..b79c17d27 100644 --- a/src/pickup.c +++ b/src/pickup.c @@ -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); diff --git a/src/restore.c b/src/restore.c index 635286cc0..7217718f1 100644 --- a/src/restore.c +++ b/src/restore.c @@ -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) { diff --git a/src/role.c b/src/role.c index a62d042a7..bda974187 100644 --- a/src/role.c +++ b/src/role.c @@ -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); } diff --git a/src/spell.c b/src/spell.c index 0cee8580b..4b5e03594 100644 --- a/src/spell.c +++ b/src/spell.c @@ -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); diff --git a/src/teleport.c b/src/teleport.c index 8c6af94b6..34707085d 100644 --- a/src/teleport.c +++ b/src/teleport.c @@ -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); diff --git a/src/weapon.c b/src/weapon.c index d15ee550f..be0393397 100644 --- a/src/weapon.c +++ b/src/weapon.c @@ -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:" diff --git a/src/windows.c b/src/windows.c index e51929a57..5b0555189 100644 --- a/src/windows.c +++ b/src/windows.c @@ -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) diff --git a/sys/amiga/winami.c b/sys/amiga/winami.c index 8a595640a..b6f21672a 100644 --- a/sys/amiga/winami.c +++ b/sys/amiga/winami.c @@ -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); diff --git a/sys/amiga/winami.p b/sys/amiga/winami.p index 7d24a2cee..d1aebf126 100644 --- a/sys/amiga/winami.p +++ b/sys/amiga/winami.p @@ -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 ); diff --git a/sys/amiga/winmenu.c b/sys/amiga/winmenu.c index 1506f88cc..a4b0954df 100644 --- a/sys/amiga/winmenu.c +++ b/sys/amiga/winmenu.c @@ -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; diff --git a/sys/amiga/winproto.h b/sys/amiga/winproto.h index 9c249b0a0..bcb68132f 100644 --- a/sys/amiga/winproto.h +++ b/sys/amiga/winproto.h @@ -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 **); diff --git a/sys/mac/macwin.c b/sys/mac/macwin.c index aec93d0b0..3a48d3279 100644 --- a/sys/mac/macwin.c +++ b/sys/mac/macwin.c @@ -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; diff --git a/sys/wince/mhmsg.h b/sys/wince/mhmsg.h index 55e0d3ce9..4fa42f48b 100644 --- a/sys/wince/mhmsg.h +++ b/sys/wince/mhmsg.h @@ -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 { diff --git a/sys/wince/mswproc.c b/sys/wince/mswproc.c index 8133ea2eb..5351a450d 100644 --- a/sys/wince/mswproc.c +++ b/sys/wince/mswproc.c @@ -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; diff --git a/sys/wince/winMS.h b/sys/wince/winMS.h index e9b78bd99..c0c1d03c4 100644 --- a/sys/wince/winMS.h +++ b/sys/wince/winMS.h @@ -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); diff --git a/win/Qt/qt_bind.cpp b/win/Qt/qt_bind.cpp index 842daf9d9..9926ee70b 100644 --- a/win/Qt/qt_bind.cpp +++ b/win/Qt/qt_bind.cpp @@ -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), diff --git a/win/Qt/qt_bind.h b/win/Qt/qt_bind.h index 04d2a43d7..7d9c32c1d 100644 --- a/win/Qt/qt_bind.h +++ b/win/Qt/qt_bind.h @@ -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(); diff --git a/win/Qt3/qt3_win.cpp b/win/Qt3/qt3_win.cpp index 9fe0e81ab..d8443cc83 100644 --- a/win/Qt3/qt3_win.cpp +++ b/win/Qt3/qt3_win.cpp @@ -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); } diff --git a/win/Qt3/qt3_win.h b/win/Qt3/qt3_win.h index 8de29d92f..825fa918b 100644 --- a/win/Qt3/qt3_win.h +++ b/win/Qt3/qt3_win.h @@ -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(); diff --git a/win/chain/wc_chainin.c b/win/chain/wc_chainin.c index 00cd7e75f..92347114a 100644 --- a/win/chain/wc_chainin.c +++ b/win/chain/wc_chainin.c @@ -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 diff --git a/win/chain/wc_chainout.c b/win/chain/wc_chainout.c index 18af49e17..8ada327f7 100644 --- a/win/chain/wc_chainout.c +++ b/win/chain/wc_chainout.c @@ -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 diff --git a/win/chain/wc_trace.c b/win/chain/wc_trace.c index 6da9a9b83..acde19d2f 100644 --- a/win/chain/wc_trace.c +++ b/win/chain/wc_trace.c @@ -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; } diff --git a/win/curses/cursinit.c b/win/curses/cursinit.c index 1b07395c6..2c8840ba2 100644 --- a/win/curses/cursinit.c +++ b/win/curses/cursinit.c @@ -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) { diff --git a/win/curses/cursmain.c b/win/curses/cursmain.c index 434d85c55..bab6d0808 100644 --- a/win/curses/cursmain.c +++ b/win/curses/cursmain.c @@ -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); diff --git a/win/curses/cursmesg.c b/win/curses/cursmesg.c index 6e625aef3..ab2ceb587 100644 --- a/win/curses/cursmesg.c +++ b/win/curses/cursmesg.c @@ -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) diff --git a/win/gem/wingem.c b/win/gem/wingem.c index d215a7ae3..76ea26cb9 100644 --- a/win/gem/wingem.c +++ b/win/gem/wingem.c @@ -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); diff --git a/win/gnome/gnbind.c b/win/gnome/gnbind.c index 1ba8005d1..fbd9107e8 100644 --- a/win/gnome/gnbind.c +++ b/win/gnome/gnbind.c @@ -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; diff --git a/win/share/safeproc.c b/win/share/safeproc.c index 927744c4e..5c54961ca 100644 --- a/win/share/safeproc.c +++ b/win/share/safeproc.c @@ -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; } diff --git a/win/tty/wintty.c b/win/tty/wintty.c index 2c61f07e7..8f7ddc9e2 100644 --- a/win/tty/wintty.c +++ b/win/tty/wintty.c @@ -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 */ diff --git a/win/win32/mhmenu.c b/win/win32/mhmenu.c index ffc164908..14fa263f9 100644 --- a/win/win32/mhmenu.c +++ b/win/win32/mhmenu.c @@ -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); diff --git a/win/win32/mhmsg.h b/win/win32/mhmsg.h index 4fd04af01..3962fb608 100644 --- a/win/win32/mhmsg.h +++ b/win/win32/mhmsg.h @@ -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 { diff --git a/win/win32/mswproc.c b/win/win32/mswproc.c index 4b23b5b4f..6da8f82c0 100644 --- a/win/win32/mswproc.c +++ b/win/win32/mswproc.c @@ -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); diff --git a/win/win32/winMS.h b/win/win32/winMS.h index c5ee77368..287093676 100644 --- a/win/win32/winMS.h +++ b/win/win32/winMS.h @@ -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);