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

View File

@@ -405,7 +405,7 @@ prompt_for_player_selection(void)
/* tty_putstr(BASE_WINDOW, 0, "Choosing Character's Role"); */
/* Prompt for a role */
win = create_nhwindow(NHW_MENU);
start_menu(win);
start_menu(win, MENU_BEHAVE_STANDARD);
any = cg.zeroany; /* zero out all bits */
for (i = 0; roles[i].name.m; i++) {
if (ok_role(i, flags.initrace, flags.initgend,
@@ -497,7 +497,7 @@ prompt_for_player_selection(void)
/* tty_clear_nhwindow(BASE_WINDOW); */
/* tty_putstr(BASE_WINDOW, 0, "Choosing Race"); */
win = create_nhwindow(NHW_MENU);
start_menu(win);
start_menu(win, MENU_BEHAVE_STANDARD);
any = cg.zeroany; /* zero out all bits */
for (i = 0; races[i].noun; i++)
if (ok_race(flags.initrole, i, flags.initgend,
@@ -571,7 +571,7 @@ prompt_for_player_selection(void)
/* tty_clear_nhwindow(BASE_WINDOW); */
/* tty_putstr(BASE_WINDOW, 0, "Choosing Gender"); */
win = create_nhwindow(NHW_MENU);
start_menu(win);
start_menu(win, MENU_BEHAVE_STANDARD);
any = cg.zeroany; /* zero out all bits */
for (i = 0; i < ROLE_GENDERS; i++)
if (ok_gend(flags.initrole, flags.initrace, i,
@@ -644,7 +644,7 @@ prompt_for_player_selection(void)
/* tty_clear_nhwindow(BASE_WINDOW); */
/* tty_putstr(BASE_WINDOW, 0, "Choosing Alignment"); */
win = create_nhwindow(NHW_MENU);
start_menu(win);
start_menu(win, MENU_BEHAVE_STANDARD);
any = cg.zeroany; /* zero out all bits */
for (i = 0; i < ROLE_ALIGNS; i++)
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.
*/
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 (GetNHApp()->windowlist[wid].win == NULL
&& GetNHApp()->windowlist[wid].type == NHW_MENU) {

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_ex(winid wid, int attr, const char *text, int);
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,
CHAR_P accelerator, CHAR_P group_accel, int attr,
const char *str, unsigned int itemflags);