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