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
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
#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
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
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);
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);
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 *));
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 *));
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 *));
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 *));
/* 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 */
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 *));
/* 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
#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 */
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
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;
}
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);
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");
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:");
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++;
}
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++;
}
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++;
}
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++;
}
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++;
}
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++;
}
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",
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);
}
}
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) {
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)
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);
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
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);
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++) {
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:");
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");
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;
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)
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) {
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",
(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);
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;
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);
}
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;
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);
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?");
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);
}
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
: (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
: (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);
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);
}
}
Sprintf(fullbuf, "%s%s%s", firstmatch,
(*tmpbuf ? " " : ""), tmpbuf);
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, fullbuf,
- MENU_UNSELECTED);
+ MENU_ITEMFLAGS_NONE);
}
}
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;
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';
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);
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");
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;
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:
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)
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;
}
}
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);
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);
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)
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);
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 */
}
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;
}
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);
}
}
any.a_int = c;
add_menu(tmpwin, NO_GLYPH, &any, menulet++, c,
ATR_NONE, oclass_to_name(oclass, buf),
- MENU_UNSELECTED);
+ MENU_ITEMFLAGS_NONE);
}
}
}
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) {
-/* 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. */
{ "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
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);
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);
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);
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
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
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++)
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);
}
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))
#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
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) {
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) {
add_menu(tmpwin, NO_GLYPH, &any, *paranoia[i].argname, 0,
ATR_NONE, paranoia[i].explain,
(flags.paranoia_bits & paranoia[i].flagmask)
- ? MENU_SELECTED
- : MENU_UNSELECTED);
+ ? MENU_ITEMFLAGS_SELECTED
+ : MENU_ITEMFLAGS_NONE);
}
end_menu(tmpwin, "Actions requiring extra confirmation:");
i = select_menu(tmpwin, PICK_ANY, ¶noia_picks);
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) {
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:");
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);
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) {
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
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) {
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) {
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;
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);
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);
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) {
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",
/* 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",
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
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;
}
}
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 */
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:",
}
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;
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);
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
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) {
}
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);
let_to_name(*pack, FALSE,
((how != PICK_NONE)
&& iflags.menu_head_objsym)),
- MENU_UNSELECTED);
+ MENU_ITEMFLAGS_NONE);
printed_type_name = TRUE;
}
(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;
}
}
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... */
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);
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)) {
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';
ATR_NONE, let_to_name(*pack, FALSE,
(how != PICK_NONE)
&& iflags.menu_head_objsym),
- MENU_UNSELECTED);
+ MENU_ITEMFLAGS_NONE);
collected_type_name = TRUE;
}
}
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 */
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) {
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;
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);
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);
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);
++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);
/* 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) {
/* 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);
}
/* 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");
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),
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) {
/* 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);
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);
? "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
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;
}
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:"
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 *));
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));
/*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;
}
/*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;
char gch UNUSED;
int attr UNUSED;
const char *str;
-boolean preselected UNUSED;
+unsigned int itemflags UNUSED;
{
if (dumplog_file) {
if (glyph == NO_GLYPH)
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);
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);
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;
}
}
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);
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);
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);
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);
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 );
/* 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;
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];
#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;
/* 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 **);
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)
const char *str;
char locStr[4 + BUFSZ];
MacMHMenuItem *item;
+ int preselected = ((itemflags & MENU_ITEMFLAGS_SELECTED) != 0);
if (!inStr)
return;
CHAR_P group_accel;
int attr;
const char *str;
- BOOLEAN_P presel;
+ unsigned int itemflags;
} MSNHMsgAddMenu, *PMSNHMsgAddMenu;
typedef struct mswin_nhmsg_cursor {
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;
}
}
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);
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);
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);
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);
/*
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).
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;
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);
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),
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();
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);
}
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();
}
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 */
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
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) */
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
}
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) */
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;
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;
}
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) {
/*
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
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);
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)
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;
}
}
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);
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);
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);
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,
* 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 */
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];
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);
/*
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
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;
* 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 */
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;
}
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);
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);
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);
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);
(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);
/* 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");
/* !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;
}
}
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);
}
}
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);
}
}
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);
}
}
* 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 */
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;
item->identifier = *identifier;
item->count = -1L;
item->selected = preselected;
+ item->itemflags = itemflags;
item->selector = ch;
item->gselector = gch;
item->attr = attr;
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 */
int attr;
char str[NHMENU_STR_SIZE];
BOOLEAN_P presel;
+ unsigned int itemflags;
int count;
BOOL has_focus;
} NHMenuItem, *PNHMenuItem;
/* 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);
int attr;
const char *str;
BOOLEAN_P presel;
+ unsigned int itemflags;
} MSNHMsgAddMenu, *PMSNHMsgAddMenu;
typedef struct mswin_nhmsg_cursor {
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;
}
}
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);
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);
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);
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);
/*
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).
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;
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);
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);