tweak #vanquished - ESC when choosing sort order

Skip displaying vanquished monsters if player responds with ESC
in the sort order menu instead of treating it like RET and using
default order.
This commit is contained in:
PatR
2016-05-03 16:23:27 -07:00
parent 457203d87f
commit 67cd22573e

View File

@@ -52,7 +52,7 @@ STATIC_DCL boolean FDECL(odds_and_ends, (struct obj *, int));
STATIC_DCL void FDECL(savelife, (int)); STATIC_DCL void FDECL(savelife, (int));
STATIC_PTR int FDECL(CFDECLSPEC vanqsort_cmp, (const genericptr, STATIC_PTR int FDECL(CFDECLSPEC vanqsort_cmp, (const genericptr,
const genericptr)); const genericptr));
STATIC_DCL void NDECL(set_vanq_order); STATIC_DCL int NDECL(set_vanq_order);
STATIC_DCL void FDECL(list_vanquished, (CHAR_P, BOOLEAN_P)); STATIC_DCL void FDECL(list_vanquished, (CHAR_P, BOOLEAN_P));
STATIC_DCL void FDECL(list_genocided, (CHAR_P, BOOLEAN_P)); STATIC_DCL void FDECL(list_genocided, (CHAR_P, BOOLEAN_P));
STATIC_DCL boolean FDECL(should_query_disclose_option, (int, char *)); STATIC_DCL boolean FDECL(should_query_disclose_option, (int, char *));
@@ -1536,7 +1536,8 @@ const genericptr vptr2;
return res; return res;
} }
STATIC_OVL void /* returns -1 if cancelled via ESC */
STATIC_OVL int
set_vanq_order() set_vanq_order()
{ {
winid tmpwin; winid tmpwin;
@@ -1566,6 +1567,7 @@ set_vanq_order()
free((genericptr_t) selected); free((genericptr_t) selected);
vanq_sortmode = choice; vanq_sortmode = choice;
} }
return (n < 0) ? -1 : vanq_sortmode;
} }
/* #vanquished command */ /* #vanquished command */
@@ -1612,16 +1614,20 @@ boolean ask;
if (c == 'q') if (c == 'q')
done_stopprint++; done_stopprint++;
if (c == 'y' || c == 'a') { if (c == 'y' || c == 'a') {
klwin = create_nhwindow(NHW_MENU); if (c == 'a') { /* ask player to choose sort order */
putstr(klwin, 0, "Vanquished creatures:"); /* choose value for vanq_sortmode via menu; ESC cancels list
putstr(klwin, 0, ""); of vanquished monsters but does not set 'done_stopprint' */
if (set_vanq_order() < 0)
if (c == 'a') return;
set_vanq_order(); /* menu to choose value for vanq_sortmode */ }
uniq_header = (vanq_sortmode == VANQ_ALPHA_SEP); uniq_header = (vanq_sortmode == VANQ_ALPHA_SEP);
class_header = (vanq_sortmode == VANQ_MCLS_LTOH class_header = (vanq_sortmode == VANQ_MCLS_LTOH
|| vanq_sortmode == VANQ_MCLS_HTOL); || vanq_sortmode == VANQ_MCLS_HTOL);
klwin = create_nhwindow(NHW_MENU);
putstr(klwin, 0, "Vanquished creatures:");
putstr(klwin, 0, "");
qsort((genericptr_t) mindx, ntypes, sizeof *mindx, vanqsort_cmp); qsort((genericptr_t) mindx, ntypes, sizeof *mindx, vanqsort_cmp);
for (ni = 0; ni < ntypes; ni++) { for (ni = 0; ni < ntypes; ni++) {
i = mindx[ni]; i = mindx[ni];