From: PatR Date: Tue, 3 May 2016 23:23:27 +0000 (-0700) Subject: tweak #vanquished - ESC when choosing sort order X-Git-Tag: NetHack-3.6.1_RC01~794 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=67cd22573efe40eb41041fbcefe9f2e6d566209b;p=nethack 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. --- diff --git a/src/end.c b/src/end.c index b02df47d8..eab613d9d 100644 --- a/src/end.c +++ b/src/end.c @@ -52,7 +52,7 @@ STATIC_DCL boolean FDECL(odds_and_ends, (struct obj *, int)); STATIC_DCL void FDECL(savelife, (int)); STATIC_PTR int FDECL(CFDECLSPEC vanqsort_cmp, (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_genocided, (CHAR_P, BOOLEAN_P)); STATIC_DCL boolean FDECL(should_query_disclose_option, (int, char *)); @@ -1536,7 +1536,8 @@ const genericptr vptr2; return res; } -STATIC_OVL void +/* returns -1 if cancelled via ESC */ +STATIC_OVL int set_vanq_order() { winid tmpwin; @@ -1566,6 +1567,7 @@ set_vanq_order() free((genericptr_t) selected); vanq_sortmode = choice; } + return (n < 0) ? -1 : vanq_sortmode; } /* #vanquished command */ @@ -1612,16 +1614,20 @@ boolean ask; if (c == 'q') done_stopprint++; if (c == 'y' || c == 'a') { - klwin = create_nhwindow(NHW_MENU); - putstr(klwin, 0, "Vanquished creatures:"); - putstr(klwin, 0, ""); - - if (c == 'a') - set_vanq_order(); /* menu to choose value for vanq_sortmode */ + if (c == 'a') { /* ask player to choose sort order */ + /* choose value for vanq_sortmode via menu; ESC cancels list + of vanquished monsters but does not set 'done_stopprint' */ + if (set_vanq_order() < 0) + return; + } uniq_header = (vanq_sortmode == VANQ_ALPHA_SEP); class_header = (vanq_sortmode == VANQ_MCLS_LTOH || 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); for (ni = 0; ni < ntypes; ni++) { i = mindx[ni];