window port interface change - add mbehavior flags to start_menu()

Provide a way to communicate additional behaviors and/or appearances
desired from NetHack window port menus.

This is foundation work for changes to follow at a future date.
This commit is contained in:
nhmall
2020-02-20 20:12:51 -05:00
parent 8e6e4922f8
commit d81c096ce6
55 changed files with 170 additions and 134 deletions
+3 -1
View File
@@ -303,11 +303,13 @@ display_nhwindow(window, boolean blocking)
destroy_nhwindow(window) destroy_nhwindow(window)
-- Destroy will dismiss the window if the window has not -- Destroy will dismiss the window if the window has not
already been dismissed. already been dismissed.
start_menu(window) start_menu(window, unsigned long mbehavior)
-- Start using window as a menu. You must call start_menu() -- Start using window as a menu. You must call start_menu()
before add_menu(). After calling start_menu() you may not before add_menu(). After calling start_menu() you may not
putstr() to the window. Only windows of type NHW_MENU may putstr() to the window. Only windows of type NHW_MENU may
be used for menus. be used for menus.
-- mbehavior allows flags to be passed to alter the appearance
and/or behavior of the menu.
add_menu(windid window, int glyph, const anything identifier, add_menu(windid window, int glyph, const anything identifier,
char accelerator, char groupacc, char accelerator, char groupacc,
int attr, char *str, unsigned itemflags) int attr, char *str, unsigned itemflags)
+1 -1
View File
@@ -225,7 +225,7 @@ E void FDECL(mac_display_nhwindow, (winid, BOOLEAN_P));
E void FDECL(mac_destroy_nhwindow, (winid)); E void FDECL(mac_destroy_nhwindow, (winid));
E void FDECL(mac_curs, (winid, int, int)); E void FDECL(mac_curs, (winid, int, int));
E void FDECL(mac_putstr, (winid, int, const char *)); E void FDECL(mac_putstr, (winid, int, const char *));
E void FDECL(mac_start_menu, (winid)); E void FDECL(mac_start_menu, (winid, unsigned long mbehavior));
E void FDECL(mac_add_menu, (winid, int, const anything *, CHAR_P, CHAR_P, int, E void FDECL(mac_add_menu, (winid, int, const anything *, CHAR_P, CHAR_P, int,
const char *, unsigned int)); const char *, unsigned int));
E void FDECL(mac_end_menu, (winid, const char *)); E void FDECL(mac_end_menu, (winid, const char *));
+1 -1
View File
@@ -263,7 +263,7 @@
#define tty_curs(x, y, z) tty_curs_(x, y, z) #define tty_curs(x, y, z) tty_curs_(x, y, z)
#define tty_putstr(x, y, z) tty_putstr_(x, y, z) #define tty_putstr(x, y, z) tty_putstr_(x, y, z)
#define tty_display_file(x, y) tty_display_file_(x, y) #define tty_display_file(x, y) tty_display_file_(x, y)
#define tty_start_menu(x) tty_start_menu_(x) #define tty_start_menu(x, b) tty_start_menu_(x, b)
#define tty_add_menu(a, b, c, d, e, f, g, h) \ #define tty_add_menu(a, b, c, d, e, f, g, h) \
tty_add_menu_(a, b, c, d, e, f, g, h) tty_add_menu_(a, b, c, d, e, f, g, h)
#define tty_end_menu(a, b) tty_end_menu_(a, b) #define tty_end_menu(a, b) tty_end_menu_(a, b)
+1 -1
View File
@@ -417,7 +417,7 @@ E void FDECL(X11_destroy_nhwindow, (winid));
E void FDECL(X11_curs, (winid, int, int)); E void FDECL(X11_curs, (winid, int, int));
E void FDECL(X11_putstr, (winid, int, const char *)); E void FDECL(X11_putstr, (winid, int, const char *));
E void FDECL(X11_display_file, (const char *, BOOLEAN_P)); E void FDECL(X11_display_file, (const char *, BOOLEAN_P));
E void FDECL(X11_start_menu, (winid)); E void FDECL(X11_start_menu, (winid, unsigned long));
E void FDECL(X11_add_menu, (winid, int, const ANY_P *, CHAR_P, CHAR_P, int, E void FDECL(X11_add_menu, (winid, int, const ANY_P *, CHAR_P, CHAR_P, int,
const char *, unsigned int)); const char *, unsigned int));
E void FDECL(X11_end_menu, (winid, const char *)); E void FDECL(X11_end_menu, (winid, const char *));
+1 -1
View File
@@ -79,7 +79,7 @@ extern void curses_destroy_nhwindow(winid wid);
extern void curses_curs(winid wid, int x, int y); extern void curses_curs(winid wid, int x, int y);
extern void curses_putstr(winid wid, int attr, const char *text); extern void curses_putstr(winid wid, int attr, const char *text);
extern void curses_display_file(const char *filename, BOOLEAN_P must_exist); extern void curses_display_file(const char *filename, BOOLEAN_P must_exist);
extern void curses_start_menu(winid wid); extern void curses_start_menu(winid wid, unsigned long);
extern void curses_add_menu(winid wid, int glyph, const ANY_P * identifier, extern void curses_add_menu(winid wid, int glyph, const ANY_P * identifier,
CHAR_P accelerator, CHAR_P group_accel, int attr, CHAR_P accelerator, CHAR_P group_accel, int attr,
const char *str, unsigned int itemflags); const char *str, unsigned int itemflags);
+1 -1
View File
@@ -69,7 +69,7 @@ E void FDECL(Gem_destroy_nhwindow, (winid));
E void FDECL(Gem_curs, (winid, int, int)); E void FDECL(Gem_curs, (winid, int, int));
E void FDECL(Gem_putstr, (winid, int, const char *)); E void FDECL(Gem_putstr, (winid, int, const char *));
E void FDECL(Gem_display_file, (const char *, BOOLEAN_P)); E void FDECL(Gem_display_file, (const char *, BOOLEAN_P));
E void FDECL(Gem_start_menu, (winid)); E void FDECL(Gem_start_menu, (winid, unsigned long));
E void FDECL(Gem_add_menu, (winid, int, const ANY_P *, CHAR_P, CHAR_P, int, E void FDECL(Gem_add_menu, (winid, int, const ANY_P *, CHAR_P, CHAR_P, int,
const char *, unsigned int)); const char *, unsigned int));
E void FDECL(Gem_end_menu, (winid, const char *)); E void FDECL(Gem_end_menu, (winid, const char *));
+3 -3
View File
@@ -30,7 +30,7 @@ struct window_procs {
void FDECL((*win_putstr), (winid, int, const char *)); void FDECL((*win_putstr), (winid, int, const char *));
void FDECL((*win_putmixed), (winid, int, const char *)); void FDECL((*win_putmixed), (winid, int, const char *));
void FDECL((*win_display_file), (const char *, BOOLEAN_P)); void FDECL((*win_display_file), (const char *, BOOLEAN_P));
void FDECL((*win_start_menu), (winid)); void FDECL((*win_start_menu), (winid, unsigned long));
void FDECL((*win_add_menu), (winid, int, const ANY_P *, CHAR_P, CHAR_P, void FDECL((*win_add_menu), (winid, int, const ANY_P *, CHAR_P, CHAR_P,
int, const char *, unsigned int)); int, const char *, unsigned int));
void FDECL((*win_end_menu), (winid, const char *)); void FDECL((*win_end_menu), (winid, const char *));
@@ -329,7 +329,7 @@ struct chain_procs {
void FDECL((*win_putstr), (CARGS, winid, int, const char *)); void FDECL((*win_putstr), (CARGS, winid, int, const char *));
void FDECL((*win_putmixed), (CARGS, winid, int, const char *)); void FDECL((*win_putmixed), (CARGS, winid, int, const char *));
void FDECL((*win_display_file), (CARGS, const char *, BOOLEAN_P)); void FDECL((*win_display_file), (CARGS, const char *, BOOLEAN_P));
void FDECL((*win_start_menu), (CARGS, winid)); void FDECL((*win_start_menu), (CARGS, winid, unsigned long));
void FDECL((*win_add_menu), (CARGS, winid, int, const ANY_P *, CHAR_P, void FDECL((*win_add_menu), (CARGS, winid, int, const ANY_P *, CHAR_P,
CHAR_P, int, const char *, unsigned int)); CHAR_P, int, const char *, unsigned int));
void FDECL((*win_end_menu), (CARGS, winid, const char *)); void FDECL((*win_end_menu), (CARGS, winid, const char *));
@@ -403,7 +403,7 @@ extern void FDECL(safe_curs, (winid, int, int));
extern void FDECL(safe_putstr, (winid, int, const char *)); extern void FDECL(safe_putstr, (winid, int, const char *));
extern void FDECL(safe_putmixed, (winid, int, const char *)); extern void FDECL(safe_putmixed, (winid, int, const char *));
extern void FDECL(safe_display_file, (const char *, BOOLEAN_P)); extern void FDECL(safe_display_file, (const char *, BOOLEAN_P));
extern void FDECL(safe_start_menu, (winid)); extern void FDECL(safe_start_menu, (winid, unsigned long));
extern void FDECL(safe_add_menu, (winid, int, const ANY_P *, CHAR_P, CHAR_P, extern void FDECL(safe_add_menu, (winid, int, const ANY_P *, CHAR_P, CHAR_P,
int, const char *, unsigned int)); int, const char *, unsigned int));
extern void FDECL(safe_end_menu, (winid, const char *)); extern void FDECL(safe_end_menu, (winid, const char *));
+2 -1
View File
@@ -32,6 +32,7 @@ struct WinDesc {
long rows, cols; /* dimensions */ long rows, cols; /* dimensions */
long curx, cury; /* current cursor position */ long curx, cury; /* current cursor position */
long maxrow, maxcol; /* the maximum size used -- for MENU wins */ long maxrow, maxcol; /* the maximum size used -- for MENU wins */
unsigned long mbehavior; /* menu behavior flags (MENU) */
/* maxcol is also used by WIN_MESSAGE for */ /* maxcol is also used by WIN_MESSAGE for */
/* tracking the ^P command */ /* tracking the ^P command */
short *datlen; /* allocation size for *data */ short *datlen; /* allocation size for *data */
@@ -190,7 +191,7 @@ E void FDECL(tty_destroy_nhwindow, (winid));
E void FDECL(tty_curs, (winid, int, int)); E void FDECL(tty_curs, (winid, int, int));
E void FDECL(tty_putstr, (winid, int, const char *)); E void FDECL(tty_putstr, (winid, int, const char *));
E void FDECL(tty_display_file, (const char *, BOOLEAN_P)); E void FDECL(tty_display_file, (const char *, BOOLEAN_P));
E void FDECL(tty_start_menu, (winid)); E void FDECL(tty_start_menu, (winid, unsigned long));
E void FDECL(tty_add_menu, (winid, int, const ANY_P *, CHAR_P, CHAR_P, int, E void FDECL(tty_add_menu, (winid, int, const ANY_P *, CHAR_P, CHAR_P, int,
const char *, unsigned int)); const char *, unsigned int));
E void FDECL(tty_end_menu, (winid, const char *)); E void FDECL(tty_end_menu, (winid, const char *));
+10
View File
@@ -111,6 +111,16 @@ typedef struct mi {
#define MENU_ITEMFLAGS_SELECTED 0x0000001U #define MENU_ITEMFLAGS_SELECTED 0x0000001U
#define MENU_ITEMFLAGS_SKIPINVERT 0x0000002U #define MENU_ITEMFLAGS_SKIPINVERT 0x0000002U
/* 3.7+ enhanced menu flags that not all window ports are likely to
* support initially.
*
* As behavior and appearance modification flags are added, the various
* individual window ports will likely have to be updated to respond
* to the flags in an appropriate way.
*/
#define MENU_BEHAVE_STANDARD 0x0000000U
/* clang-format on */ /* clang-format on */
#endif /* WINTYPE_H */ #endif /* WINTYPE_H */
+1 -1
View File
@@ -573,7 +573,7 @@ display_gamewindows()
WIN_INVEN = create_nhwindow(NHW_MENU); WIN_INVEN = create_nhwindow(NHW_MENU);
/* in case of early quit where WIN_INVEN could be destroyed before /* in case of early quit where WIN_INVEN could be destroyed before
ever having been used, use it here to pacify the Qt interface */ ever having been used, use it here to pacify the Qt interface */
start_menu(WIN_INVEN), end_menu(WIN_INVEN, (char *) 0); start_menu(WIN_INVEN, 0U), end_menu(WIN_INVEN, (char *) 0);
#ifdef MAC #ifdef MAC
/* This _is_ the right place for this - maybe we will /* This _is_ the right place for this - maybe we will
+1 -1
View File
@@ -3259,7 +3259,7 @@ struct obj *obj;
any = cg.zeroany; /* set all bits to zero */ any = cg.zeroany; /* set all bits to zero */
any.a_int = 1; /* use index+1 (cant use 0) as identifier */ any.a_int = 1; /* use index+1 (cant use 0) as identifier */
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any.a_int++; any.a_int++;
Sprintf(buf, "an object on the %s", surface(cc.x, cc.y)); Sprintf(buf, "an object on the %s", surface(cc.x, cc.y));
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
+1 -1
View File
@@ -1527,7 +1527,7 @@ struct obj *obj;
anything any; anything any;
any = cg.zeroany; /* set all bits to zero */ any = cg.zeroany; /* set all bits to zero */
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
/* use index+1 (cant use 0) as identifier */ /* use index+1 (cant use 0) as identifier */
for (i = num_ok_dungeons = 0; i < g.n_dgns; i++) { for (i = num_ok_dungeons = 0; i < g.n_dgns; i++) {
if (!g.dungeons[i].dunlev_ureached) if (!g.dungeons[i].dunlev_ureached)
+8 -8
View File
@@ -1050,7 +1050,7 @@ cond_menu(VOID_ARGS)
(sortorder) ? cond_cmp : menualpha_cmp); (sortorder) ? cond_cmp : menualpha_cmp);
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
any.a_int = 1; any.a_int = 1;
@@ -2321,7 +2321,7 @@ int arrmin, arrmax;
int adj = (arrmin > 0) ? 1 : arrmax; int adj = (arrmin > 0) ? 1 : arrmax;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
for (i = arrmin; i < arrmax; i++) { for (i = arrmin; i < arrmax; i++) {
any = cg.zeroany; any = cg.zeroany;
@@ -2666,7 +2666,7 @@ query_conditions()
menu_item *picks = (menu_item *) 0; menu_item *picks = (menu_item *) 0;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
for (i = 0; i < SIZE(conditions); i++) { for (i = 0; i < SIZE(conditions); i++) {
any = cg.zeroany; any = cg.zeroany;
@@ -3230,7 +3230,7 @@ status_hilite_menu_choose_field()
menu_item *picks = (menu_item *) 0; menu_item *picks = (menu_item *) 0;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
for (i = 0; i < MAXBLSTATS; i++) { for (i = 0; i < MAXBLSTATS; i++) {
#ifndef SCORE_ON_BOTL #ifndef SCORE_ON_BOTL
@@ -3273,7 +3273,7 @@ int fld;
at = initblstats[fld].anytype; at = initblstats[fld].anytype;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
if (fld != BL_CONDITION) { if (fld != BL_CONDITION) {
any = cg.zeroany; any = cg.zeroany;
@@ -3360,7 +3360,7 @@ boolean ltok, gtok;
menu_item *picks = (menu_item *) 0; menu_item *picks = (menu_item *) 0;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
if (ltok) { if (ltok) {
if (str) if (str)
@@ -3903,7 +3903,7 @@ int fld;
} }
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
if (count) { if (count) {
hlstr = status_hilite_str; hlstr = status_hilite_str;
@@ -4037,7 +4037,7 @@ shlmenu_redo:
redo = FALSE; redo = FALSE;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
status_hilite_linestr_gather(); status_hilite_linestr_gather();
countall = status_hilite_linestr_countfield(BL_FLUSH); countall = status_hilite_linestr_countfield(BL_FLUSH);
+6 -6
View File
@@ -357,7 +357,7 @@ doextlist(VOID_ARGS)
while (redisplay) { while (redisplay) {
redisplay = FALSE; redisplay = FALSE;
any = cg.zeroany; any = cg.zeroany;
start_menu(menuwin); start_menu(menuwin, MENU_BEHAVE_STANDARD);
add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
"Extended Commands List", "Extended Commands List",
MENU_ITEMFLAGS_NONE); MENU_ITEMFLAGS_NONE);
@@ -576,7 +576,7 @@ extcmd_via_menu()
/* otherwise... */ /* otherwise... */
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
Sprintf(fmtstr, "%%-%ds", biggest + 15); Sprintf(fmtstr, "%%-%ds", biggest + 15);
prompt[0] = '\0'; prompt[0] = '\0';
wastoolong = FALSE; /* True => had to wrap due to line width wastoolong = FALSE; /* True => had to wrap due to line width
@@ -1476,7 +1476,7 @@ wiz_intrinsic(VOID_ARGS)
any = cg.zeroany; any = cg.zeroany;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
for (i = 0; (propname = propertynames[i].prop_name) != 0; ++i) { for (i = 0; (propname = propertynames[i].prop_name) != 0; ++i) {
p = propertynames[i].prop_num; p = propertynames[i].prop_num;
if (p == HALLUC_RES) { if (p == HALLUC_RES) {
@@ -1620,7 +1620,7 @@ doterrain(VOID_ARGS)
* a legend for the levl[][].typ codes dump * a legend for the levl[][].typ codes dump
*/ */
men = create_nhwindow(NHW_MENU); men = create_nhwindow(NHW_MENU);
start_menu(men); start_menu(men, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
any.a_int = 1; any.a_int = 1;
add_menu(men, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(men, NO_GLYPH, &any, 0, 0, ATR_NONE,
@@ -3716,7 +3716,7 @@ int x, y;
struct monst *mtmp; struct monst *mtmp;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
if (IS_DOOR(typ)) { if (IS_DOOR(typ)) {
boolean key_or_pick, card; boolean key_or_pick, card;
@@ -3817,7 +3817,7 @@ boolean doit;
menu_item *picks = (menu_item *) 0; menu_item *picks = (menu_item *) 0;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
if (IS_FOUNTAIN(typ) || IS_SINK(typ)) { if (IS_FOUNTAIN(typ) || IS_SINK(typ)) {
Sprintf(buf, "Drink from the %s", Sprintf(buf, "Drink from the %s",
+2 -2
View File
@@ -581,7 +581,7 @@ int gloc;
} }
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
/* gather_locs returns array[0] == you. skip it. */ /* gather_locs returns array[0] == you. skip it. */
@@ -1348,7 +1348,7 @@ docallcmd()
boolean abc = flags.lootabc; boolean abc = flags.lootabc;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
any.a_char = 'm'; /* group accelerator 'C' */ any.a_char = 'm'; /* group accelerator 'C' */
add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'C', ATR_NONE, add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'C', ATR_NONE,
+1 -1
View File
@@ -2128,7 +2128,7 @@ xchar *rdgn;
winid win = create_nhwindow(NHW_MENU); winid win = create_nhwindow(NHW_MENU);
if (bymenu) { if (bymenu) {
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
lchoices.idx = 0; lchoices.idx = 0;
lchoices.menuletter = 'a'; lchoices.menuletter = 'a';
} }
+2 -2
View File
@@ -235,7 +235,7 @@ int final; /* ENL_GAMEINPROGRESS:0, ENL_GAMEOVERALIVE, ENL_GAMEOVERDEAD */
g.en_win = create_nhwindow(NHW_MENU); g.en_win = create_nhwindow(NHW_MENU);
g.en_via_menu = !final; g.en_via_menu = !final;
if (g.en_via_menu) if (g.en_via_menu)
start_menu(g.en_win); start_menu(g.en_win, MENU_BEHAVE_STANDARD);
Strcpy(tmpbuf, g.plname); Strcpy(tmpbuf, g.plname);
*tmpbuf = highc(*tmpbuf); /* same adjustment as bottom line */ *tmpbuf = highc(*tmpbuf); /* same adjustment as bottom line */
@@ -2016,7 +2016,7 @@ set_vanq_order()
int i, n, choice; int i, n, choice;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; /* zero out all bits */ any = cg.zeroany; /* zero out all bits */
for (i = 0; i < SIZE(vanqorders); i++) { for (i = 0; i < SIZE(vanqorders); i++) {
if (i == VANQ_ALPHA_MIX || i == VANQ_MCLS_HTOL) /* skip these */ if (i == VANQ_ALPHA_MIX || i == VANQ_MCLS_HTOL) /* skip these */
+3 -3
View File
@@ -2642,7 +2642,7 @@ long *out_cnt;
sortedinvent = sortloot(&g.invent, sortflags, FALSE, sortedinvent = sortloot(&g.invent, sortflags, FALSE,
(boolean FDECL((*), (OBJ_P))) 0); (boolean FDECL((*), (OBJ_P))) 0);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
if (wizard && iflags.override_ID) { if (wizard && iflags.override_ID) {
int unid_cnt; int unid_cnt;
@@ -2810,7 +2810,7 @@ char avoidlet;
if (g.invent) { if (g.invent) {
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
while (!invdone) { while (!invdone) {
any = cg.zeroany; /* set all bits to zero */ any = cg.zeroany; /* set all bits to zero */
classcount = 0; classcount = 0;
@@ -4272,7 +4272,7 @@ const char *hdr, *txt;
any = cg.zeroany; any = cg.zeroany;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, hdr, add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, hdr,
MENU_ITEMFLAGS_NONE); 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, "", MENU_ITEMFLAGS_NONE);
+1 -1
View File
@@ -480,7 +480,7 @@ lua_State *L;
luaL_checktype(L, argc, LUA_TTABLE); luaL_checktype(L, argc, LUA_TTABLE);
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
lua_pushnil(L); /* first key */ lua_pushnil(L); /* first key */
while (lua_next(L, argc) != 0) { while (lua_next(L, argc) != 0) {
+2 -2
View File
@@ -520,7 +520,7 @@ doclassdisco()
|| flags.menu_style == MENU_COMBINATION); || flags.menu_style == MENU_COMBINATION);
if (!traditional) { if (!traditional) {
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
} }
any = cg.zeroany; any = cg.zeroany;
menulet = 'a'; menulet = 'a';
@@ -680,7 +680,7 @@ rename_disco()
any = cg.zeroany; any = cg.zeroany;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
/* /*
* Skip the "unique objects" section (each will appear within its * Skip the "unique objects" section (each will appear within its
+22 -22
View File
@@ -1443,7 +1443,7 @@ const char *prompt;
menu_item *picks = (menu_item *) 0; menu_item *picks = (menu_item *) 0;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
for (i = 0; i < SIZE(colornames); i++) { for (i = 0; i < SIZE(colornames); i++) {
if (!colornames[i].name) if (!colornames[i].name)
@@ -1489,7 +1489,7 @@ const char *prompt;
if (prompt && strstri(prompt, "menu headings")) if (prompt && strstri(prompt, "menu headings"))
default_attr = iflags.menu_headings; default_attr = iflags.menu_headings;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
for (i = 0; i < SIZE(attrnames); i++) { for (i = 0; i < SIZE(attrnames); i++) {
if (!attrnames[i].name) if (!attrnames[i].name)
@@ -1588,7 +1588,7 @@ query_msgtype()
menu_item *picks = (menu_item *) 0; menu_item *picks = (menu_item *) 0;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
for (i = 0; i < SIZE(msgtype_names); i++) for (i = 0; i < SIZE(msgtype_names); i++)
if (msgtype_names[i].descr) { if (msgtype_names[i].descr) {
@@ -4536,7 +4536,7 @@ doset() /* changing options via menu by Per Liboriussen */
unsigned longest_name_len; unsigned longest_name_len;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
#ifdef notyet /* SYSCF */ #ifdef notyet /* SYSCF */
/* XXX I think this is still fragile. Fixing initial/from_file and/or /* XXX I think this is still fragile. Fixing initial/from_file and/or
@@ -4754,7 +4754,7 @@ int numtotal;
opt_idx = 0; opt_idx = 0;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
for (i = 0; i < SIZE(action_titles); i++) { for (i = 0; i < SIZE(action_titles); i++) {
char tmpbuf[BUFSZ]; char tmpbuf[BUFSZ];
@@ -4800,7 +4800,7 @@ boolean setinitial, setfromfile;
menu_item *style_pick = (menu_item *) 0; menu_item *style_pick = (menu_item *) 0;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
for (i = 0; i < SIZE(menutype); i++) { for (i = 0; i < SIZE(menutype); i++) {
style_name = menutype[i]; style_name = menutype[i];
@@ -4820,7 +4820,7 @@ boolean setinitial, setfromfile;
menu_item *paranoia_picks = (menu_item *) 0; menu_item *paranoia_picks = (menu_item *) 0;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
for (i = 0; paranoia[i].flagmask != 0; ++i) { for (i = 0; paranoia[i].flagmask != 0; ++i) {
if (paranoia[i].flagmask == PARANOID_BONES && !wizard) if (paranoia[i].flagmask == PARANOID_BONES && !wizard)
@@ -4852,7 +4852,7 @@ boolean setinitial, setfromfile;
menu_item *burden_pick = (menu_item *) 0; menu_item *burden_pick = (menu_item *) 0;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
for (i = 0; i < SIZE(burdentype); i++) { for (i = 0; i < SIZE(burdentype); i++) {
burden_name = burdentype[i]; burden_name = burdentype[i];
@@ -4883,7 +4883,7 @@ boolean setinitial, setfromfile;
menu_item *disclosure_pick = (menu_item *) 0; menu_item *disclosure_pick = (menu_item *) 0;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
for (i = 0; i < NUM_DISCLOSURE_OPTIONS; i++) { for (i = 0; i < NUM_DISCLOSURE_OPTIONS; i++) {
Sprintf(buf, "%-12s[%c%c]", disclosure_names[i], Sprintf(buf, "%-12s[%c%c]", disclosure_names[i],
@@ -4911,7 +4911,7 @@ boolean setinitial, setfromfile;
Sprintf(buf, "Disclosure options for %s:", Sprintf(buf, "Disclosure options for %s:",
disclosure_names[i]); disclosure_names[i]);
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
/* 'y','n',and '+' work as alternate selectors; '-' doesn't */ /* 'y','n',and '+' work as alternate selectors; '-' doesn't */
any.a_char = DISCLOSE_NO_WITHOUT_PROMPT; any.a_char = DISCLOSE_NO_WITHOUT_PROMPT;
@@ -4960,7 +4960,7 @@ boolean setinitial, setfromfile;
menu_item *mode_pick = (menu_item *) 0; menu_item *mode_pick = (menu_item *) 0;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
for (i = 0; i < SIZE(runmodes); i++) { for (i = 0; i < SIZE(runmodes); i++) {
mode_name = runmodes[i]; mode_name = runmodes[i];
@@ -4980,7 +4980,7 @@ boolean setinitial, setfromfile;
char gp = iflags.getpos_coords; char gp = iflags.getpos_coords;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
any.a_char = GPCOORDS_COMPASS; any.a_char = GPCOORDS_COMPASS;
add_menu(tmpwin, NO_GLYPH, &any, GPCOORDS_COMPASS, 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, GPCOORDS_COMPASS, 0, ATR_NONE,
@@ -5044,7 +5044,7 @@ boolean setinitial, setfromfile;
char gf = iflags.getloc_filter; char gf = iflags.getloc_filter;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
any.a_char = (GFILTER_NONE + 1); any.a_char = (GFILTER_NONE + 1);
add_menu(tmpwin, NO_GLYPH, &any, 'n', add_menu(tmpwin, NO_GLYPH, &any, 'n',
@@ -5079,7 +5079,7 @@ boolean setinitial, setfromfile;
menu_item *window_pick = (menu_item *) 0; menu_item *window_pick = (menu_item *) 0;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
if (!WINDOWPORT("curses")) { if (!WINDOWPORT("curses")) {
any.a_char = 's'; any.a_char = 's';
@@ -5110,7 +5110,7 @@ boolean setinitial, setfromfile;
menu_item *sortl_pick = (menu_item *) 0; menu_item *sortl_pick = (menu_item *) 0;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
for (i = 0; i < SIZE(sortltype); i++) { for (i = 0; i < SIZE(sortltype); i++) {
sortl_name = sortltype[i]; sortl_name = sortltype[i];
@@ -5137,7 +5137,7 @@ boolean setinitial, setfromfile;
boolean msg = (*(optname + 6) == 'm'); boolean msg = (*(optname + 6) == 'm');
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
any.a_int = ALIGN_TOP; any.a_int = ALIGN_TOP;
add_menu(tmpwin, NO_GLYPH, &any, 't', 0, ATR_NONE, "top", add_menu(tmpwin, NO_GLYPH, &any, 't', 0, ATR_NONE, "top",
@@ -5172,7 +5172,7 @@ boolean setinitial, setfromfile;
menu_item *mode_pick = (menu_item *) 0; menu_item *mode_pick = (menu_item *) 0;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
for (i = 0; i < SIZE(npchoices); i++) { for (i = 0; i < SIZE(npchoices); i++) {
any.a_int = i + 1; any.a_int = i + 1;
@@ -5249,7 +5249,7 @@ boolean setinitial, setfromfile;
struct plinemsg_type *tmp = g.plinemsg_types; struct plinemsg_type *tmp = g.plinemsg_types;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
mt_idx = 0; mt_idx = 0;
while (tmp) { while (tmp) {
@@ -5329,7 +5329,7 @@ boolean setinitial, setfromfile;
char clrbuf[QBUFSZ]; char clrbuf[QBUFSZ];
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
mc_idx = 0; mc_idx = 0;
while (tmp) { while (tmp) {
@@ -5403,7 +5403,7 @@ boolean setinitial, setfromfile;
menu_item *pick_list = (menu_item *) 0; menu_item *pick_list = (menu_item *) 0;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
if (numapes) { if (numapes) {
ape = g.apelist; ape = g.apelist;
any = cg.zeroany; any = cg.zeroany;
@@ -5489,7 +5489,7 @@ boolean setinitial, setfromfile;
Sprintf(fmtstr, "%%-%ds %%s", biggest + 2); Sprintf(fmtstr, "%%-%ds %%s", biggest + 2);
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
any.a_int = 1; /* -1 + 2 [see 'if (sl->name) {' below]*/ any.a_int = 1; /* -1 + 2 [see 'if (sl->name) {' below]*/
if (!symset_name) if (!symset_name)
@@ -6526,7 +6526,7 @@ char *class_select;
next_accelerator = 'a'; next_accelerator = 'a';
any = cg.zeroany; any = cg.zeroany;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
while (*class_list) { while (*class_list) {
const char *text; const char *text;
boolean selected; boolean selected;
+2 -2
View File
@@ -1232,7 +1232,7 @@ coord *click_cc;
any = cg.zeroany; any = cg.zeroany;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any.a_char = '/'; any.a_char = '/';
/* 'y' and 'n' to keep backwards compatibility with previous /* 'y' and 'n' to keep backwards compatibility with previous
versions: "Specify unknown object by cursor?" */ versions: "Specify unknown object by cursor?" */
@@ -2111,7 +2111,7 @@ dohelp()
int sel; int sel;
any = cg.zeroany; /* zero all bits */ any = cg.zeroany; /* zero all bits */
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
for (i = 0; help_menu_items[i].text; i++) { for (i = 0; help_menu_items[i].text; i++) {
if (!wizard && help_menu_items[i].f == dispfile_debughelp) if (!wizard && help_menu_items[i].f == dispfile_debughelp)
+5 -5
View File
@@ -935,7 +935,7 @@ boolean FDECL((*allow), (OBJ_P)); /* allow function */
(qflags & BY_NEXTHERE) ? TRUE : FALSE, allow); (qflags & BY_NEXTHERE) ? TRUE : FALSE, allow);
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
/* /*
* Run through the list and add the objects to the menu. If * Run through the list and add the objects to the menu. If
@@ -1126,7 +1126,7 @@ int how; /* type of query */
} }
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
pack = flags.inv_order; pack = flags.inv_order;
if (qflags & CHOOSE_ALL) { if (qflags & CHOOSE_ALL) {
@@ -1888,7 +1888,7 @@ doloot()
any.a_void = 0; any.a_void = 0;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
for (cobj = g.level.objects[cc.x][cc.y]; cobj; for (cobj = g.level.objects[cc.x][cc.y]; cobj;
cobj = cobj->nexthere) cobj = cobj->nexthere)
@@ -2964,7 +2964,7 @@ boolean outokay, inokay, alreadyused, more_containers;
any = cg.zeroany; any = cg.zeroany;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any.a_int = 1; /* ':' */ any.a_int = 1; /* ':' */
Sprintf(buf, "Look inside %s", thesimpleoname(obj)); Sprintf(buf, "Look inside %s", thesimpleoname(obj));
@@ -3061,7 +3061,7 @@ dotip()
any = cg.zeroany; any = cg.zeroany;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
for (cobj = g.level.objects[cc.x][cc.y], i = 0; cobj; for (cobj = g.level.objects[cc.x][cc.y], i = 0; cobj;
cobj = cobj->nexthere) cobj = cobj->nexthere)
+1 -1
View File
@@ -1429,7 +1429,7 @@ winid bannerwin; /* if not WIN_ERR, clear window and show copyright in menu */
saved = get_saved_games(); /* array of character names */ saved = get_saved_games(); /* array of character names */
if (saved && *saved) { if (saved && *saved) {
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; /* no selection */ any = cg.zeroany; /* no selection */
if (bannerwin != WIN_ERR) { if (bannerwin != WIN_ERR) {
/* for tty; erase copyright notice and redo it in the menu */ /* for tty; erase copyright notice and redo it in the menu */
+2 -2
View File
@@ -1559,7 +1559,7 @@ spellsortmenu()
int i, n, choice; int i, n, choice;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; /* zero out all bits */ any = cg.zeroany; /* zero out all bits */
for (i = 0; i < SIZE(spl_sortchoices); i++) { for (i = 0; i < SIZE(spl_sortchoices); i++) {
@@ -1642,7 +1642,7 @@ int *spell_no;
anything any; anything any;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; /* zero out all bits */ any = cg.zeroany; /* zero out all bits */
/* /*
+1 -1
View File
@@ -608,7 +608,7 @@ dotelecmd()
int i, tmode; int i, tmode;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
for (i = 0; i < SIZE(tports); ++i) { for (i = 0; i < SIZE(tports); ++i) {
any.a_int = (int) tports[i].menulet; any.a_int = (int) tports[i].menulet;
+1 -1
View File
@@ -1194,7 +1194,7 @@ enhance_weapon_skill()
} }
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
/* start with a legend if any entries will be annotated /* start with a legend if any entries will be annotated
with "*" or "#" below */ with "*" or "#" below */
+14 -3
View File
@@ -66,7 +66,7 @@ static winid FDECL(dump_create_nhwindow, (int));
static void FDECL(dump_clear_nhwindow, (winid)); static void FDECL(dump_clear_nhwindow, (winid));
static void FDECL(dump_display_nhwindow, (winid, BOOLEAN_P)); static void FDECL(dump_display_nhwindow, (winid, BOOLEAN_P));
static void FDECL(dump_destroy_nhwindow, (winid)); static void FDECL(dump_destroy_nhwindow, (winid));
static void FDECL(dump_start_menu, (winid)); static void FDECL(dump_start_menu, (winid, unsigned long));
static void FDECL(dump_add_menu, (winid, int, const ANY_P *, CHAR_P, static void FDECL(dump_add_menu, (winid, int, const ANY_P *, CHAR_P,
CHAR_P, int, const char *, unsigned int)); CHAR_P, int, const char *, unsigned int));
static void FDECL(dump_end_menu, (winid, const char *)); static void FDECL(dump_end_menu, (winid, const char *));
@@ -536,6 +536,7 @@ static int NDECL(hup_int_ndecl);
static void NDECL(hup_void_ndecl); static void NDECL(hup_void_ndecl);
static void FDECL(hup_void_fdecl_int, (int)); static void FDECL(hup_void_fdecl_int, (int));
static void FDECL(hup_void_fdecl_winid, (winid)); static void FDECL(hup_void_fdecl_winid, (winid));
static void FDECL(hup_void_fdecl_winid_ulong, (winid, unsigned long));
static void FDECL(hup_void_fdecl_constchar_p, (const char *)); static void FDECL(hup_void_fdecl_constchar_p, (const char *));
static struct window_procs hup_procs = { static struct window_procs hup_procs = {
@@ -550,7 +551,7 @@ static struct window_procs hup_procs = {
hup_create_nhwindow, hup_void_fdecl_winid, /* clear_nhwindow */ hup_create_nhwindow, hup_void_fdecl_winid, /* clear_nhwindow */
hup_display_nhwindow, hup_void_fdecl_winid, /* destroy_nhwindow */ hup_display_nhwindow, hup_void_fdecl_winid, /* destroy_nhwindow */
hup_curs, hup_putstr, hup_putstr, /* putmixed */ hup_curs, hup_putstr, hup_putstr, /* putmixed */
hup_display_file, hup_void_fdecl_winid, /* start_menu */ hup_display_file, hup_void_fdecl_winid_ulong, /* start_menu */
hup_add_menu, hup_end_menu, hup_select_menu, genl_message_menu, hup_add_menu, hup_end_menu, hup_select_menu, genl_message_menu,
hup_void_ndecl, /* update_inventory */ hup_void_ndecl, /* update_inventory */
hup_void_ndecl, /* mark_synch */ hup_void_ndecl, /* mark_synch */
@@ -857,6 +858,15 @@ winid window UNUSED;
return; return;
} }
/*ARGUSED*/
static void
hup_void_fdecl_winid_ulong(window, mbehavior)
winid window UNUSED;
unsigned long mbehavior UNUSED;
{
return;
}
/*ARGUSED*/ /*ARGUSED*/
static void static void
hup_void_fdecl_constchar_p(string) hup_void_fdecl_constchar_p(string)
@@ -1314,8 +1324,9 @@ winid win UNUSED;
/*ARGUSED*/ /*ARGUSED*/
static void static void
dump_start_menu(win) dump_start_menu(win, mbehavior)
winid win UNUSED; winid win UNUSED;
unsigned long mbehavior;
{ {
return; return;
} }
+6 -6
View File
@@ -767,7 +767,7 @@ amii_get_ext_cmd(void)
#ifdef EXTMENU #ifdef EXTMENU
if (iflags.extmenu) { if (iflags.extmenu) {
win = amii_create_nhwindow(NHW_MENU); win = amii_create_nhwindow(NHW_MENU);
amii_start_menu(win); amii_start_menu(win, MENU_BEHAVE_STANDARD);
pline("#"); pline("#");
amii_putstr(WIN_MESSAGE, -1, " "); amii_putstr(WIN_MESSAGE, -1, " ");
@@ -830,7 +830,7 @@ amii_get_ext_cmd(void)
} }
win = amii_create_nhwindow(NHW_MENU); win = amii_create_nhwindow(NHW_MENU);
amii_start_menu(win); amii_start_menu(win, MENU_BEHAVE_STANDARD);
for (i = 0; extcmdlist[i].ef_txt != NULL; ++i) { for (i = 0; extcmdlist[i].ef_txt != NULL; ++i) {
id.a_char = extcmdlist[i].ef_txt[0]; id.a_char = extcmdlist[i].ef_txt[0];
@@ -1389,7 +1389,7 @@ amii_player_selection()
} else { } else {
/* Prompt for a role */ /* Prompt for a role */
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any.a_void = 0; /* zero out all bits */ any.a_void = 0; /* zero out all bits */
for (i = 0; roles[i].name.m; i++) { for (i = 0; roles[i].name.m; i++) {
if (ok_role(i, flags.initrace, flags.initgend, if (ok_role(i, flags.initrace, flags.initgend,
@@ -1480,7 +1480,7 @@ amii_player_selection()
/* Permit the user to pick, if there is more than one */ /* Permit the user to pick, if there is more than one */
if (n > 1) { if (n > 1) {
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any.a_void = 0; /* zero out all bits */ any.a_void = 0; /* zero out all bits */
for (i = 0; races[i].noun; i++) for (i = 0; races[i].noun; i++)
if (ok_race(flags.initrole, i, flags.initgend, if (ok_race(flags.initrole, i, flags.initgend,
@@ -1553,7 +1553,7 @@ amii_player_selection()
/* Permit the user to pick, if there is more than one */ /* Permit the user to pick, if there is more than one */
if (n > 1) { if (n > 1) {
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any.a_void = 0; /* zero out all bits */ any.a_void = 0; /* zero out all bits */
for (i = 0; i < ROLE_GENDERS; i++) for (i = 0; i < ROLE_GENDERS; i++)
if (ok_gend(flags.initrole, flags.initrace, i, if (ok_gend(flags.initrole, flags.initrace, i,
@@ -1624,7 +1624,7 @@ amii_player_selection()
/* Permit the user to pick, if there is more than one */ /* Permit the user to pick, if there is more than one */
if (n > 1) { if (n > 1) {
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any.a_void = 0; /* zero out all bits */ any.a_void = 0; /* zero out all bits */
for (i = 0; i < ROLE_ALIGNS; i++) for (i = 0; i < ROLE_ALIGNS; i++)
if (ok_align(flags.initrole, flags.initrace, if (ok_align(flags.initrole, flags.initrace,
+1 -1
View File
@@ -4,7 +4,7 @@
/* winami.c */ /* winami.c */
void FDECL(amii_raw_print, (const char *)); void FDECL(amii_raw_print, (const char *));
void FDECL(amii_raw_print_bold, (const char *)); void FDECL(amii_raw_print_bold, (const char *));
void FDECL(amii_start_menu, (winid )); void FDECL(amii_start_menu, (winid , unsigned long ));
void FDECL(amii_add_menu, (winid , char , int , const char *, unsigned int)); void FDECL(amii_add_menu, (winid , char , int , const char *, unsigned int));
void FDECL(amii_end_menu, (winid , char , const char * , const char *)); void FDECL(amii_end_menu, (winid , char , const char * , const char *));
char FDECL(amii_select_menu, (winid )); char FDECL(amii_select_menu, (winid ));
+3 -1
View File
@@ -9,8 +9,10 @@
/* Start building the text for a menu */ /* Start building the text for a menu */
void void
amii_start_menu(window) amii_start_menu(window, mbehavior)
register winid window; register winid window;
unsigned long mbehavior UNUSED;
{ {
register int i; register int i;
register struct amii_WinDesc *cw; register struct amii_WinDesc *cw;
+1 -1
View File
@@ -39,7 +39,7 @@ void amii_get_nh_event(void);
void amii_getret(void); void amii_getret(void);
/* winmenu.c */ /* winmenu.c */
void amii_start_menu(winid window); void amii_start_menu(winid window, unsigned long);
void FDECL(amii_add_menu, (winid, int, const anything *, CHAR_P, CHAR_P, int, void FDECL(amii_add_menu, (winid, int, const anything *, CHAR_P, CHAR_P, int,
const char *, unsigned int)); const char *, unsigned int));
void FDECL(amii_end_menu, (winid, const char *)); void FDECL(amii_end_menu, (winid, const char *));
+1 -1
View File
@@ -1929,7 +1929,7 @@ mac_nh_poskey(int *a, int *b, int *c)
} }
void void
mac_start_menu(winid win) mac_start_menu(winid win, unsigned long mbehavior)
{ {
HideWindow(theWindows[win].its_window); HideWindow(theWindows[win].its_window);
mac_clear_nhwindow(win); mac_clear_nhwindow(win);
+1 -1
View File
@@ -1108,7 +1108,7 @@ ActivateCell(HWND hWnd, int cell)
pSet = nhcmdset_default; pSet = nhcmdset_default;
wid = mswin_create_nhwindow(NHW_MENU); wid = mswin_create_nhwindow(NHW_MENU);
mswin_start_menu(wid); mswin_start_menu(wid, MENU_BEHAVE_STANDARD);
for (i = 0; i < nhcmdset_count(pSet); i++) { for (i = 0; i < nhcmdset_count(pSet); i++) {
any.a_void = nhcmdset_get(pSet, i); any.a_void = nhcmdset_get(pSet, i);
mswin_add_menu(wid, NO_GLYPH, &any, 'a' + i, 0, ATR_NONE, mswin_add_menu(wid, NO_GLYPH, &any, 'a' + i, 0, ATR_NONE,
+6 -6
View File
@@ -366,7 +366,7 @@ prompt_for_player_selection(void)
/* tty_putstr(BASE_WINDOW, 0, "Choosing Character's Role"); */ /* tty_putstr(BASE_WINDOW, 0, "Choosing Character's Role"); */
/* Prompt for a role */ /* Prompt for a role */
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any.a_void = 0; /* zero out all bits */ any.a_void = 0; /* zero out all bits */
for (i = 0; roles[i].name.m; i++) { for (i = 0; roles[i].name.m; i++) {
if (ok_role(i, flags.initrace, flags.initgend, if (ok_role(i, flags.initrace, flags.initgend,
@@ -458,7 +458,7 @@ prompt_for_player_selection(void)
/* tty_clear_nhwindow(BASE_WINDOW); */ /* tty_clear_nhwindow(BASE_WINDOW); */
/* tty_putstr(BASE_WINDOW, 0, "Choosing Race"); */ /* tty_putstr(BASE_WINDOW, 0, "Choosing Race"); */
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any.a_void = 0; /* zero out all bits */ any.a_void = 0; /* zero out all bits */
for (i = 0; races[i].noun; i++) for (i = 0; races[i].noun; i++)
if (ok_race(flags.initrole, i, flags.initgend, if (ok_race(flags.initrole, i, flags.initgend,
@@ -532,7 +532,7 @@ prompt_for_player_selection(void)
/* tty_clear_nhwindow(BASE_WINDOW); */ /* tty_clear_nhwindow(BASE_WINDOW); */
/* tty_putstr(BASE_WINDOW, 0, "Choosing Gender"); */ /* tty_putstr(BASE_WINDOW, 0, "Choosing Gender"); */
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any.a_void = 0; /* zero out all bits */ any.a_void = 0; /* zero out all bits */
for (i = 0; i < ROLE_GENDERS; i++) for (i = 0; i < ROLE_GENDERS; i++)
if (ok_gend(flags.initrole, flags.initrace, i, if (ok_gend(flags.initrole, flags.initrace, i,
@@ -605,7 +605,7 @@ prompt_for_player_selection(void)
/* tty_clear_nhwindow(BASE_WINDOW); */ /* tty_clear_nhwindow(BASE_WINDOW); */
/* tty_putstr(BASE_WINDOW, 0, "Choosing Alignment"); */ /* tty_putstr(BASE_WINDOW, 0, "Choosing Alignment"); */
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any.a_void = 0; /* zero out all bits */ any.a_void = 0; /* zero out all bits */
for (i = 0; i < ROLE_ALIGNS; i++) for (i = 0; i < ROLE_ALIGNS; i++)
if (ok_align(flags.initrole, flags.initrace, if (ok_align(flags.initrole, flags.initrace,
@@ -1005,9 +1005,9 @@ mswin_display_file(const char *filename, BOOLEAN_P must_exist)
be used for menus. be used for menus.
*/ */
void void
mswin_start_menu(winid wid) mswin_start_menu(winid wid, unsigned long mbehavior)
{ {
logDebug("mswin_start_menu(%d)\n", wid); logDebug("mswin_start_menu(%d, %lu)\n", wid, mbehavior);
if ((wid >= 0) && (wid < MAXWINDOWS)) { if ((wid >= 0) && (wid < MAXWINDOWS)) {
if (GetNHApp()->windowlist[wid].win == NULL if (GetNHApp()->windowlist[wid].win == NULL
&& GetNHApp()->windowlist[wid].type == NHW_MENU) { && GetNHApp()->windowlist[wid].type == NHW_MENU) {
+1 -1
View File
@@ -128,7 +128,7 @@ void mswin_curs(winid wid, int x, int y);
void mswin_putstr(winid wid, int attr, const char *text); void mswin_putstr(winid wid, int attr, const char *text);
void mswin_putstr_ex(winid wid, int attr, const char *text, boolean append); void mswin_putstr_ex(winid wid, int attr, const char *text, boolean append);
void mswin_display_file(const char *filename, BOOLEAN_P must_exist); void mswin_display_file(const char *filename, BOOLEAN_P must_exist);
void mswin_start_menu(winid wid); void mswin_start_menu(winid wid, unsigned long);
void mswin_add_menu(winid wid, int glyph, const ANY_P *identifier, void mswin_add_menu(winid wid, int glyph, const ANY_P *identifier,
CHAR_P accelerator, CHAR_P group_accel, int attr, CHAR_P accelerator, CHAR_P group_accel, int attr,
const char *str, unsigned int itemflags); const char *str, unsigned int itemflags);
+1 -1
View File
@@ -368,7 +368,7 @@ void NetHackQtBind::qt_display_file(const char *filename, BOOLEAN_P must_exist)
} }
} }
void NetHackQtBind::qt_start_menu(winid wid) void NetHackQtBind::qt_start_menu(winid wid, unsigned long mbehavior)
{ {
NetHackQtWindow* window=id_to_window[(int)wid]; NetHackQtWindow* window=id_to_window[(int)wid];
window->StartMenu(); window->StartMenu();
+1 -1
View File
@@ -51,7 +51,7 @@ public:
static void qt_putstr(winid wid, int attr, const std::string& text); static void qt_putstr(winid wid, int attr, const std::string& text);
static void qt_putstr(winid wid, int attr, const QString& text); static void qt_putstr(winid wid, int attr, const QString& text);
static void qt_display_file(const char *filename, BOOLEAN_P must_exist); static void qt_display_file(const char *filename, BOOLEAN_P must_exist);
static void qt_start_menu(winid wid); static void qt_start_menu(winid wid, unsigned long mbehavior);
static void qt_add_menu(winid wid, int glyph, static void qt_add_menu(winid wid, int glyph,
const ANY_P * identifier, CHAR_P ch, CHAR_P gch, int attr, const ANY_P * identifier, CHAR_P ch, CHAR_P gch, int attr,
const char *str, unsigned int itemflags); const char *str, unsigned int itemflags);
+1 -1
View File
@@ -4811,7 +4811,7 @@ void NetHackQtBind::qt_display_file(const char *filename, BOOLEAN_P must_exist)
} }
} }
void NetHackQtBind::qt_start_menu(winid wid) void NetHackQtBind::qt_start_menu(winid wid, unsigned long mbehavior)
{ {
NetHackQtWindow* window=id_to_window[wid]; NetHackQtWindow* window=id_to_window[wid];
window->StartMenu(); window->StartMenu();
+1 -1
View File
@@ -851,7 +851,7 @@ class NetHackQtBind : NetHackQtBindBase
static void qt_curs(winid wid, int x, int y); static void qt_curs(winid wid, int x, int y);
static void qt_putstr(winid wid, int attr, const char *text); static void qt_putstr(winid wid, int attr, const char *text);
static void qt_display_file(const char *filename, BOOLEAN_P must_exist); static void qt_display_file(const char *filename, BOOLEAN_P must_exist);
static void qt_start_menu(winid wid); static void qt_start_menu(winid wid, unsigned long mbehavior);
static void qt_add_menu(winid wid, int glyph, const ANY_P *identifier, static void qt_add_menu(winid wid, int glyph, const ANY_P *identifier,
CHAR_P ch, CHAR_P gch, int attr, const char *str, CHAR_P ch, CHAR_P gch, int attr, const char *str,
unsigned itemflags); unsigned itemflags);
+1 -1
View File
@@ -1957,7 +1957,7 @@ boolean complain;
newwin = X11_create_nhwindow(NHW_MENU); newwin = X11_create_nhwindow(NHW_MENU);
wp = &window_list[newwin]; wp = &window_list[newwin];
X11_start_menu(newwin); X11_start_menu(newwin, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
while (dlb_fgets(line, LLEN, fp)) { while (dlb_fgets(line, LLEN, fp)) {
+3 -2
View File
@@ -612,8 +612,9 @@ struct xwindow *wp;
/* Global functions ======================================================= */ /* Global functions ======================================================= */
void void
X11_start_menu(window) X11_start_menu(window, mbehavior)
winid window; winid window;
unsigned long mbehavior UNUSED;
{ {
struct xwindow *wp; struct xwindow *wp;
check_winid(window); check_winid(window);
@@ -763,7 +764,7 @@ menu_item **menu_list;
winid newwin = X11_create_nhwindow(NHW_MENU); winid newwin = X11_create_nhwindow(NHW_MENU);
struct xwindow *nwp = &window_list[newwin]; struct xwindow *nwp = &window_list[newwin];
X11_start_menu(newwin); X11_start_menu(newwin, MENU_BEHAVE_STANDARD);
move_menu(&menu_info->new_menu, &nwp->menu_information->new_menu); move_menu(&menu_info->new_menu, &nwp->menu_information->new_menu);
for (curr = nwp->menu_information->new_menu.base; curr; for (curr = nwp->menu_information->new_menu.base; curr;
curr = curr->next) curr = curr->next)
+3 -2
View File
@@ -175,10 +175,11 @@ boolean complain;
} }
void void
chainin_start_menu(window) chainin_start_menu(window, mbehavior)
winid window; winid window;
unsigned long mbehavior;
{ {
(*cibase->nprocs->win_start_menu)(cibase->ndata, window); (*cibase->nprocs->win_start_menu)(cibase->ndata, window, mbehavior);
} }
void void
+3 -2
View File
@@ -213,13 +213,14 @@ boolean complain;
} }
void void
chainout_start_menu(vp, window) chainout_start_menu(vp, window, mbehavior)
void *vp; void *vp;
winid window; winid window;
unsigned long mbehavior;
{ {
struct chainout_data *tdp = vp; struct chainout_data *tdp = vp;
(*tdp->nprocs->win_start_menu)(window); (*tdp->nprocs->win_start_menu)(window, mbehavior);
} }
void void
+5 -3
View File
@@ -356,16 +356,18 @@ boolean complain;
} }
void void
trace_start_menu(vp, window) trace_start_menu(vp, window, mbehavior)
void *vp; void *vp;
winid window; winid window;
unsigned long mbehavior;
{ {
struct trace_data *tdp = vp; struct trace_data *tdp = vp;
fprintf(wc_tracelogf, "%sstart_menu(%d)\n", INDENT, window); fprintf(wc_tracelogf, "%sstart_menu(%d, %lu)\n", INDENT,
window, mbehavior);
PRE; PRE;
(*tdp->nprocs->win_start_menu)(tdp->ndata, window); (*tdp->nprocs->win_start_menu)(tdp->ndata, window, mbehavior);
POST; POST;
} }
+1 -1
View File
@@ -732,7 +732,7 @@ curses_character_dialog(const char **choices, const char *prompt)
winid wid = curses_get_wid(NHW_MENU); winid wid = curses_get_wid(NHW_MENU);
identifier.a_void = 0; identifier.a_void = 0;
curses_start_menu(wid); curses_start_menu(wid, MENU_BEHAVE_STANDARD);
for (count = 0; choices[count]; count++) { for (count = 0; choices[count]; count++) {
curletter = tolower(choices[count][0]); curletter = tolower(choices[count][0]);
+2 -2
View File
@@ -328,7 +328,7 @@ curses_create_nhwindow(int type)
winid wid = curses_get_wid(type); winid wid = curses_get_wid(type);
if (curses_is_menu(wid) || curses_is_text(wid)) { if (curses_is_menu(wid) || curses_is_text(wid)) {
curses_start_menu(wid); curses_start_menu(wid, MENU_BEHAVE_STANDARD);
curses_add_wid(wid); curses_add_wid(wid);
} }
@@ -480,7 +480,7 @@ curses_display_file(const char *filename, BOOLEAN_P must_exist)
be used for menus. be used for menus.
*/ */
void void
curses_start_menu(winid wid) curses_start_menu(winid wid, unsigned long mbehavior)
{ {
if (inv_update) if (inv_update)
return; return;
+5 -5
View File
@@ -241,7 +241,7 @@ Gem_player_selection()
} else { } else {
/* Prompt for a role */ /* Prompt for a role */
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any.a_void = 0; /* zero out all bits */ any.a_void = 0; /* zero out all bits */
for (i = 0; roles[i].name.m; i++) { for (i = 0; roles[i].name.m; i++) {
if (ok_role(i, flags.initrace, flags.initgend, if (ok_role(i, flags.initrace, flags.initgend,
@@ -313,7 +313,7 @@ Gem_player_selection()
/* Permit the user to pick, if there is more than one */ /* Permit the user to pick, if there is more than one */
if (n > 1) { if (n > 1) {
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any.a_void = 0; /* zero out all bits */ any.a_void = 0; /* zero out all bits */
for (i = 0; races[i].noun; i++) for (i = 0; races[i].noun; i++)
if (ok_race(flags.initrole, i, flags.initgend, if (ok_race(flags.initrole, i, flags.initgend,
@@ -382,7 +382,7 @@ Gem_player_selection()
/* Permit the user to pick, if there is more than one */ /* Permit the user to pick, if there is more than one */
if (n > 1) { if (n > 1) {
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any.a_void = 0; /* zero out all bits */ any.a_void = 0; /* zero out all bits */
for (i = 0; i < ROLE_GENDERS; i++) for (i = 0; i < ROLE_GENDERS; i++)
if (ok_gend(flags.initrole, flags.initrace, i, if (ok_gend(flags.initrole, flags.initrace, i,
@@ -451,7 +451,7 @@ Gem_player_selection()
/* Permit the user to pick, if there is more than one */ /* Permit the user to pick, if there is more than one */
if (n > 1) { if (n > 1) {
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any.a_void = 0; /* zero out all bits */ any.a_void = 0; /* zero out all bits */
for (i = 0; i < ROLE_ALIGNS; i++) for (i = 0; i < ROLE_ALIGNS; i++)
if (ok_align(flags.initrole, flags.initrace, if (ok_align(flags.initrole, flags.initrace,
@@ -1002,7 +1002,7 @@ Gem_get_ext_cmd()
const char *ptr; const char *ptr;
wind = Gem_create_nhwindow(NHW_MENU); wind = Gem_create_nhwindow(NHW_MENU);
Gem_start_menu(wind); Gem_start_menu(wind, MENU_BEHAVE_STANDARD);
for (i = 0; (ptr = extcmdlist[i].ef_txt); i++) { for (i = 0; (ptr = extcmdlist[i].ef_txt); i++) {
any.a_int = i; any.a_int = i;
accelerator = *ptr; accelerator = *ptr;
+3 -2
View File
@@ -1424,8 +1424,9 @@ mar_more()
/************************* Gem_start_menu *******************************/ /************************* Gem_start_menu *******************************/
void void
Gem_start_menu(win) Gem_start_menu(win, mbehavior)
winid win; winid win;
unsigned long mbehavior UNUSED;
{ {
win = win; win = win;
if (invent_list) { if (invent_list) {
@@ -2551,7 +2552,7 @@ winid window;
use_rip = FALSE; use_rip = FALSE;
break; break;
case NHW_MENU: case NHW_MENU:
Gem_start_menu(window); /* delete invent_list */ Gem_start_menu(window, MENU_BEHAVE_STANDARD); /* delete invent_list */
test_free(Menu_title); test_free(Menu_title);
break; break;
case 0: /* No window available, probably an error message? */ case 0: /* No window available, probably an error message? */
+1 -1
View File
@@ -663,7 +663,7 @@ gnome_display_file(const char *filename, BOOLEAN_P must_exist)
be used for menus. be used for menus.
*/ */
void void
gnome_start_menu(winid wid) gnome_start_menu(winid wid, unsigned long mbehavior)
{ {
if (wid != -1) { if (wid != -1) {
if (gnome_windowlist[wid].win == NULL if (gnome_windowlist[wid].win == NULL
+1 -1
View File
@@ -53,7 +53,7 @@ void gnome_destroy_nhwindow(winid wid);
void gnome_curs(winid wid, int x, int y); void gnome_curs(winid wid, int x, int y);
void gnome_putstr(winid wid, int attr, const char *text); void gnome_putstr(winid wid, int attr, const char *text);
void gnome_display_file(const char *filename, BOOLEAN_P must_exist); void gnome_display_file(const char *filename, BOOLEAN_P must_exist);
void gnome_start_menu(winid wid); void gnome_start_menu(winid wid, unsigned long mbehavior);
void gnome_add_menu(winid wid, int glyph, const ANY_P *identifier, void gnome_add_menu(winid wid, int glyph, const ANY_P *identifier,
CHAR_P accelerator, CHAR_P group_accel, int attr, CHAR_P accelerator, CHAR_P group_accel, int attr,
const char *str, BOOLEAN_P presel); const char *str, BOOLEAN_P presel);
+2 -1
View File
@@ -226,8 +226,9 @@ boolean complain;
} }
void void
safe_start_menu(window) safe_start_menu(window, mbehavior)
winid window; winid window;
unsigned long mbehavior;
{ {
return; return;
} }
+10 -7
View File
@@ -569,7 +569,7 @@ tty_player_selection()
tty_clear_nhwindow(BASE_WINDOW); tty_clear_nhwindow(BASE_WINDOW);
role_selection_prolog(RS_ROLE, BASE_WINDOW); role_selection_prolog(RS_ROLE, BASE_WINDOW);
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
/* populate the menu with role choices */ /* populate the menu with role choices */
setup_rolemenu(win, TRUE, RACE, GEND, ALGN); setup_rolemenu(win, TRUE, RACE, GEND, ALGN);
/* add miscellaneous menu entries */ /* add miscellaneous menu entries */
@@ -666,7 +666,7 @@ tty_player_selection()
tty_clear_nhwindow(BASE_WINDOW); tty_clear_nhwindow(BASE_WINDOW);
role_selection_prolog(RS_RACE, BASE_WINDOW); role_selection_prolog(RS_RACE, BASE_WINDOW);
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any = cg.zeroany; /* zero out all bits */ any = cg.zeroany; /* zero out all bits */
/* populate the menu with role choices */ /* populate the menu with role choices */
setup_racemenu(win, TRUE, ROLE, GEND, ALGN); setup_racemenu(win, TRUE, ROLE, GEND, ALGN);
@@ -758,7 +758,7 @@ tty_player_selection()
tty_clear_nhwindow(BASE_WINDOW); tty_clear_nhwindow(BASE_WINDOW);
role_selection_prolog(RS_GENDER, BASE_WINDOW); role_selection_prolog(RS_GENDER, BASE_WINDOW);
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any = cg.zeroany; /* zero out all bits */ any = cg.zeroany; /* zero out all bits */
/* populate the menu with gender choices */ /* populate the menu with gender choices */
setup_gendmenu(win, TRUE, ROLE, RACE, ALGN); setup_gendmenu(win, TRUE, ROLE, RACE, ALGN);
@@ -848,7 +848,7 @@ tty_player_selection()
tty_clear_nhwindow(BASE_WINDOW); tty_clear_nhwindow(BASE_WINDOW);
role_selection_prolog(RS_ALGNMNT, BASE_WINDOW); role_selection_prolog(RS_ALGNMNT, BASE_WINDOW);
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any = cg.zeroany; /* zero out all bits */ any = cg.zeroany; /* zero out all bits */
setup_algnmenu(win, TRUE, ROLE, RACE, GEND); setup_algnmenu(win, TRUE, ROLE, RACE, GEND);
role_menu_extra(ROLE_RANDOM, win, TRUE); role_menu_extra(ROLE_RANDOM, win, TRUE);
@@ -927,7 +927,7 @@ tty_player_selection()
tty_clear_nhwindow(BASE_WINDOW); tty_clear_nhwindow(BASE_WINDOW);
role_selection_prolog(ROLE_NONE, BASE_WINDOW); role_selection_prolog(ROLE_NONE, BASE_WINDOW);
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any = cg.zeroany; /* zero out all bits */ any = cg.zeroany; /* zero out all bits */
any.a_int = 0; any.a_int = 0;
if (!roles[ROLE].name.f if (!roles[ROLE].name.f
@@ -1030,7 +1030,7 @@ reset_role_filtering()
menu_item *selected = 0; menu_item *selected = 0;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any = cg.zeroany; any = cg.zeroany;
/* no extra blank line preceding this entry; end_menu supplies one */ /* no extra blank line preceding this entry; end_menu supplies one */
@@ -1456,6 +1456,7 @@ int type;
newwin->mlist = (tty_menu_item *) 0; newwin->mlist = (tty_menu_item *) 0;
newwin->plist = (tty_menu_item **) 0; newwin->plist = (tty_menu_item **) 0;
newwin->npages = newwin->plist_size = newwin->nitems = newwin->how = 0; newwin->npages = newwin->plist_size = newwin->nitems = newwin->how = 0;
newwin->mbehavior = 0U;
switch (type) { switch (type) {
case NHW_BASE: case NHW_BASE:
/* base window, used for absolute movement on the screen */ /* base window, used for absolute movement on the screen */
@@ -2907,9 +2908,11 @@ boolean complain;
} }
void void
tty_start_menu(window) tty_start_menu(window, mbehavior)
winid window; winid window;
unsigned long mbehavior;
{ {
wins[window]->mbehavior = mbehavior;
tty_clear_nhwindow(window); tty_clear_nhwindow(window);
return; return;
} }
+6 -6
View File
@@ -405,7 +405,7 @@ prompt_for_player_selection(void)
/* tty_putstr(BASE_WINDOW, 0, "Choosing Character's Role"); */ /* tty_putstr(BASE_WINDOW, 0, "Choosing Character's Role"); */
/* Prompt for a role */ /* Prompt for a role */
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any = cg.zeroany; /* zero out all bits */ any = cg.zeroany; /* zero out all bits */
for (i = 0; roles[i].name.m; i++) { for (i = 0; roles[i].name.m; i++) {
if (ok_role(i, flags.initrace, flags.initgend, if (ok_role(i, flags.initrace, flags.initgend,
@@ -497,7 +497,7 @@ prompt_for_player_selection(void)
/* tty_clear_nhwindow(BASE_WINDOW); */ /* tty_clear_nhwindow(BASE_WINDOW); */
/* tty_putstr(BASE_WINDOW, 0, "Choosing Race"); */ /* tty_putstr(BASE_WINDOW, 0, "Choosing Race"); */
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any = cg.zeroany; /* zero out all bits */ any = cg.zeroany; /* zero out all bits */
for (i = 0; races[i].noun; i++) for (i = 0; races[i].noun; i++)
if (ok_race(flags.initrole, i, flags.initgend, if (ok_race(flags.initrole, i, flags.initgend,
@@ -571,7 +571,7 @@ prompt_for_player_selection(void)
/* tty_clear_nhwindow(BASE_WINDOW); */ /* tty_clear_nhwindow(BASE_WINDOW); */
/* tty_putstr(BASE_WINDOW, 0, "Choosing Gender"); */ /* tty_putstr(BASE_WINDOW, 0, "Choosing Gender"); */
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any = cg.zeroany; /* zero out all bits */ any = cg.zeroany; /* zero out all bits */
for (i = 0; i < ROLE_GENDERS; i++) for (i = 0; i < ROLE_GENDERS; i++)
if (ok_gend(flags.initrole, flags.initrace, i, if (ok_gend(flags.initrole, flags.initrace, i,
@@ -644,7 +644,7 @@ prompt_for_player_selection(void)
/* tty_clear_nhwindow(BASE_WINDOW); */ /* tty_clear_nhwindow(BASE_WINDOW); */
/* tty_putstr(BASE_WINDOW, 0, "Choosing Alignment"); */ /* tty_putstr(BASE_WINDOW, 0, "Choosing Alignment"); */
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win, MENU_BEHAVE_STANDARD);
any = cg.zeroany; /* zero out all bits */ any = cg.zeroany; /* zero out all bits */
for (i = 0; i < ROLE_ALIGNS; i++) for (i = 0; i < ROLE_ALIGNS; i++)
if (ok_align(flags.initrole, flags.initrace, if (ok_align(flags.initrole, flags.initrace,
@@ -1074,9 +1074,9 @@ mswin_display_file(const char *filename, BOOLEAN_P must_exist)
be used for menus. be used for menus.
*/ */
void void
mswin_start_menu(winid wid) mswin_start_menu(winid wid, unsigned long mbehavior)
{ {
logDebug("mswin_start_menu(%d)\n", wid); logDebug("mswin_start_menu(%d, %lu)\n", wid, mbehavior);
if ((wid >= 0) && (wid < MAXWINDOWS)) { if ((wid >= 0) && (wid < MAXWINDOWS)) {
if (GetNHApp()->windowlist[wid].win == NULL if (GetNHApp()->windowlist[wid].win == NULL
&& GetNHApp()->windowlist[wid].type == NHW_MENU) { && GetNHApp()->windowlist[wid].type == NHW_MENU) {
+1 -1
View File
@@ -152,7 +152,7 @@ void mswin_curs(winid wid, int x, int y);
void mswin_putstr(winid wid, int attr, const char *text); void mswin_putstr(winid wid, int attr, const char *text);
void mswin_putstr_ex(winid wid, int attr, const char *text, int); void mswin_putstr_ex(winid wid, int attr, const char *text, int);
void mswin_display_file(const char *filename, BOOLEAN_P must_exist); void mswin_display_file(const char *filename, BOOLEAN_P must_exist);
void mswin_start_menu(winid wid); void mswin_start_menu(winid wid, unsigned long mbehavior);
void mswin_add_menu(winid wid, int glyph, const ANY_P *identifier, void mswin_add_menu(winid wid, int glyph, const ANY_P *identifier,
CHAR_P accelerator, CHAR_P group_accel, int attr, CHAR_P accelerator, CHAR_P group_accel, int attr,
const char *str, unsigned int itemflags); const char *str, unsigned int itemflags);