Query menu for putting ring on left or right hand
This commit is contained in:
@@ -81,6 +81,7 @@ extern const char ynchars[];
|
|||||||
extern const char ynqchars[];
|
extern const char ynqchars[];
|
||||||
extern const char ynaqchars[];
|
extern const char ynaqchars[];
|
||||||
extern const char ynNaqchars[];
|
extern const char ynNaqchars[];
|
||||||
|
extern const char rightleftchars[];
|
||||||
extern NEARDATA long yn_number;
|
extern NEARDATA long yn_number;
|
||||||
extern struct restore_info restoreinfo;
|
extern struct restore_info restoreinfo;
|
||||||
extern NEARDATA struct savefile_info sfcap, sfrestinfo, sfsaveinfo;
|
extern NEARDATA struct savefile_info sfcap, sfrestinfo, sfsaveinfo;
|
||||||
|
|||||||
12
src/cmd.c
12
src/cmd.c
@@ -4964,7 +4964,8 @@ staticfn boolean
|
|||||||
yn_menuable_resp(const char *resp)
|
yn_menuable_resp(const char *resp)
|
||||||
{
|
{
|
||||||
return iflags.query_menu && iflags.window_inited
|
return iflags.query_menu && iflags.window_inited
|
||||||
&& (resp == ynchars || resp == ynqchars || resp == ynaqchars);
|
&& (resp == ynchars || resp == ynqchars || resp == ynaqchars
|
||||||
|
|| resp == rightleftchars);
|
||||||
}
|
}
|
||||||
|
|
||||||
staticfn void
|
staticfn void
|
||||||
@@ -4998,8 +4999,13 @@ yn_function_menu(
|
|||||||
char keybuf[QBUFSZ];
|
char keybuf[QBUFSZ];
|
||||||
|
|
||||||
start_menu(win, MENU_BEHAVE_STANDARD);
|
start_menu(win, MENU_BEHAVE_STANDARD);
|
||||||
yn_func_menu_opt(win, 'y', "Yes", def);
|
if (resp == rightleftchars) {
|
||||||
yn_func_menu_opt(win, 'n', "No", def);
|
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)
|
if (resp == ynaqchars)
|
||||||
yn_func_menu_opt(win, 'a', "All", def);
|
yn_func_menu_opt(win, 'a', "All", def);
|
||||||
if (resp == ynqchars || resp == ynaqchars)
|
if (resp == ynqchars || resp == ynaqchars)
|
||||||
|
|||||||
@@ -135,6 +135,7 @@ const char ynchars[] = "yn";
|
|||||||
const char ynqchars[] = "ynq";
|
const char ynqchars[] = "ynq";
|
||||||
const char ynaqchars[] = "ynaq";
|
const char ynaqchars[] = "ynaq";
|
||||||
const char ynNaqchars[] = "yn#aq";
|
const char ynNaqchars[] = "yn#aq";
|
||||||
|
const char rightleftchars[] = "rl";
|
||||||
NEARDATA long yn_number = 0L;
|
NEARDATA long yn_number = 0L;
|
||||||
|
|
||||||
#ifdef PANICTRACE
|
#ifdef PANICTRACE
|
||||||
|
|||||||
@@ -2155,7 +2155,7 @@ accessory_or_armor_on(struct obj *obj)
|
|||||||
Sprintf(qbuf, "Which %s%s, Right or Left?",
|
Sprintf(qbuf, "Which %s%s, Right or Left?",
|
||||||
humanoid(gy.youmonst.data) ? "ring-" : "",
|
humanoid(gy.youmonst.data) ? "ring-" : "",
|
||||||
body_part(FINGER));
|
body_part(FINGER));
|
||||||
answer = yn_function(qbuf, "rl", '\0', TRUE);
|
answer = yn_function(qbuf, rightleftchars, '\0', TRUE);
|
||||||
switch (answer) {
|
switch (answer) {
|
||||||
case '\0':
|
case '\0':
|
||||||
case '\033':
|
case '\033':
|
||||||
|
|||||||
Reference in New Issue
Block a user