groundwork for window port interface change to add_menu

groundwork only - window port interface change

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

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