Query menu for putting ring on left or right hand

This commit is contained in:
Pasi Kallinen
2024-03-23 13:22:29 +02:00
parent 720c62c340
commit e0cb6e2206
4 changed files with 12 additions and 4 deletions

View File

@@ -81,6 +81,7 @@ extern const char ynchars[];
extern const char ynqchars[];
extern const char ynaqchars[];
extern const char ynNaqchars[];
extern const char rightleftchars[];
extern NEARDATA long yn_number;
extern struct restore_info restoreinfo;
extern NEARDATA struct savefile_info sfcap, sfrestinfo, sfsaveinfo;

View File

@@ -4964,7 +4964,8 @@ staticfn boolean
yn_menuable_resp(const char *resp)
{
return iflags.query_menu && iflags.window_inited
&& (resp == ynchars || resp == ynqchars || resp == ynaqchars);
&& (resp == ynchars || resp == ynqchars || resp == ynaqchars
|| resp == rightleftchars);
}
staticfn void
@@ -4998,8 +4999,13 @@ yn_function_menu(
char keybuf[QBUFSZ];
start_menu(win, MENU_BEHAVE_STANDARD);
yn_func_menu_opt(win, 'y', "Yes", def);
yn_func_menu_opt(win, 'n', "No", def);
if (resp == rightleftchars) {
yn_func_menu_opt(win, 'r', "Right", def);
yn_func_menu_opt(win, 'l', "Left", def);
} else {
yn_func_menu_opt(win, 'y', "Yes", def);
yn_func_menu_opt(win, 'n', "No", def);
}
if (resp == ynaqchars)
yn_func_menu_opt(win, 'a', "All", def);
if (resp == ynqchars || resp == ynaqchars)

View File

@@ -135,6 +135,7 @@ const char ynchars[] = "yn";
const char ynqchars[] = "ynq";
const char ynaqchars[] = "ynaq";
const char ynNaqchars[] = "yn#aq";
const char rightleftchars[] = "rl";
NEARDATA long yn_number = 0L;
#ifdef PANICTRACE

View File

@@ -2155,7 +2155,7 @@ accessory_or_armor_on(struct obj *obj)
Sprintf(qbuf, "Which %s%s, Right or Left?",
humanoid(gy.youmonst.data) ? "ring-" : "",
body_part(FINGER));
answer = yn_function(qbuf, "rl", '\0', TRUE);
answer = yn_function(qbuf, rightleftchars, '\0', TRUE);
switch (answer) {
case '\0':
case '\033':