diff --git a/doc/fixes36.3 b/doc/fixes36.3 index 23780792c..8ae1adaa5 100644 --- a/doc/fixes36.3 +++ b/doc/fixes36.3 @@ -1,4 +1,4 @@ -$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.57 $ $NHDT-Date: 1560855142 2019/06/18 10:52:22 $ +$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.59 $ $NHDT-Date: 1561022792 2019/06/20 09:26:32 $ This fixes36.3 file is here to capture information about updates in the 3.6.x lineage following the release of 3.6.2 in May 2019. Please note, however, @@ -76,6 +76,7 @@ if hero knows the number of charges in a wand or magical horn and a monster for wizard mode 'monpolycontrol', allow usually disallowed type 'chameleon', 'doppelganger', or 'sandestin' as answer to "change @ into what?" prompt when is really that type of creature +add Space, Return, and Escape to '? k' (help for menu control keys) Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository @@ -129,6 +130,7 @@ curses: don't convert ^M (or or key) into ^J; both ^J and ^M off) and ^M is not bound to any command, so accidental won't cause the hero to try to move curses: draw map in screen columns 1..79 like tty, rather than in 2..80 +curses: make text windows wider so that help feedback is more readable curses+EDIT_GETLIN: when a prompt's answer was preloaded, using ESC to discard it deleted it from the answer buffer but didn't erase it from screen tty: re-do one optimization used when status conditions have all been removed diff --git a/include/hack.h b/include/hack.h index 159abb571..8f65b975a 100644 --- a/include/hack.h +++ b/include/hack.h @@ -1,4 +1,4 @@ -/* NetHack 3.6 hack.h $NHDT-Date: 1559227823 2019/05/30 14:50:23 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.105 $ */ +/* NetHack 3.6 hack.h $NHDT-Date: 1561019041 2019/06/20 08:24:01 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.106 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Pasi Kallinen, 2017. */ /* NetHack may be freely redistributed. See license for details. */ @@ -565,6 +565,6 @@ enum bodypart_types { #endif #define DEVTEAM_EMAIL "devteam@nethack.org" -#define DEVTEAM_URL "http://www.nethack.org" +#define DEVTEAM_URL "https://www.nethack.org/" #endif /* HACK_H */ diff --git a/src/cmd.c b/src/cmd.c index 1797f49b2..09b9e8698 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 cmd.c $NHDT-Date: 1560789049 2019/06/17 16:30:49 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.336 $ */ +/* NetHack 3.6 cmd.c $NHDT-Date: 1561017215 2019/06/20 07:53:35 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.337 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Robert Patrick Rankin, 2013. */ /* NetHack may be freely redistributed. See license for details. */ @@ -4567,7 +4567,8 @@ randomkey() c = (char) rn1('9' - '0' + 1, '0'); break; case 14: - c = (char) rn2(iflags.wc_eight_bit_input ? 256 : 128); + /* any char, but avoid '\0' because it's used for mouse click */ + c = (char) rnd(iflags.wc_eight_bit_input ? 255 : 127); break; } diff --git a/src/options.c b/src/options.c index c7aa7bce5..d4ef29116 100644 --- a/src/options.c +++ b/src/options.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 options.c $NHDT-Date: 1560789054 2019/06/17 16:30:54 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.364 $ */ +/* NetHack 3.6 options.c $NHDT-Date: 1561022792 2019/06/20 09:26:32 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.365 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Michael Allison, 2008. */ /* NetHack may be freely redistributed. See license for details. */ @@ -4249,36 +4249,55 @@ boolean dolist; putstr(win, 0, buf); } } else { + const char + fmt3[] = " %-12s %-2s %-2s %s", + fmt2[] = " %-12s %-2s %-2s", + fmt1[] = " %10s %-2s %s", + fmt0[] = " %14s %s"; + putstr(win, 0, ""); - putstr(win, 0, " Page All items"); - Sprintf(buf, " Select %s %s", + putstr(win, 0, "Selection: On page Full menu"); + Sprintf(buf, fmt2, "Select all", visctrl(get_menu_cmd_key(MENU_SELECT_PAGE)), visctrl(get_menu_cmd_key(MENU_SELECT_ALL))); putstr(win, 0, buf); - Sprintf(buf, "Deselect %s %s", + Sprintf(buf, fmt2, "Deselect all", visctrl(get_menu_cmd_key(MENU_UNSELECT_PAGE)), visctrl(get_menu_cmd_key(MENU_UNSELECT_ALL))); putstr(win, 0, buf); - Sprintf(buf, " Invert %s %s", + Sprintf(buf, fmt2, "Invert all", visctrl(get_menu_cmd_key(MENU_INVERT_PAGE)), visctrl(get_menu_cmd_key(MENU_INVERT_ALL))); putstr(win, 0, buf); - putstr(win, 0, ""); - Sprintf(buf, " Go to %s Next page", - visctrl(get_menu_cmd_key(MENU_NEXT_PAGE))); - putstr(win, 0, buf); - Sprintf(buf, " %s Previous page", - visctrl(get_menu_cmd_key(MENU_PREVIOUS_PAGE))); - putstr(win, 0, buf); - Sprintf(buf, " %s First page", - visctrl(get_menu_cmd_key(MENU_FIRST_PAGE))); - putstr(win, 0, buf); - Sprintf(buf, " %s Last page", - visctrl(get_menu_cmd_key(MENU_LAST_PAGE))); + Sprintf(buf, fmt3, "Text match", "", + visctrl(get_menu_cmd_key(MENU_SEARCH)), + "Search and toggle matching entries"); putstr(win, 0, buf); putstr(win, 0, ""); - Sprintf(buf, " %s Search and toggle matching entries", - visctrl(get_menu_cmd_key(MENU_SEARCH))); + putstr(win, 0, "Navigation:"); + Sprintf(buf, fmt1, "Go to ", + visctrl(get_menu_cmd_key(MENU_NEXT_PAGE)), + "Next page"); + putstr(win, 0, buf); + Sprintf(buf, fmt1, "", + visctrl(get_menu_cmd_key(MENU_PREVIOUS_PAGE)), + "Previous page"); + putstr(win, 0, buf); + Sprintf(buf, fmt1, "", + visctrl(get_menu_cmd_key(MENU_FIRST_PAGE)), + "First page"); + putstr(win, 0, buf); + Sprintf(buf, fmt1, "", + visctrl(get_menu_cmd_key(MENU_LAST_PAGE)), + "Last page"); + putstr(win, 0, buf); + Sprintf(buf, fmt0, "SPACE", "Next page, if any, otherwise RETURN"); + putstr(win, 0, buf); + Sprintf(buf, fmt0, "RETURN/ENTER", + "Finish menu with any selection(s) made"); + putstr(win, 0, buf); + Sprintf(buf, fmt0, "ESCAPE", + "Cancel menu without selecting anything"); putstr(win, 0, buf); } } diff --git a/win/curses/cursdial.c b/win/curses/cursdial.c index 01472c820..4a50ab83a 100644 --- a/win/curses/cursdial.c +++ b/win/curses/cursdial.c @@ -1025,8 +1025,11 @@ menu_win_size(nhmenu *menu) /* Try not to wrap headers/normal text lines if possible. We can go wider than half the screen for this purpose if need be */ - if ((maxheaderwidth > maxwidth) && (maxheaderwidth < (term_cols - 2))) { - maxwidth = maxheaderwidth; + if (maxheaderwidth > maxwidth) { + if (maxheaderwidth < (term_cols - 2)) + maxwidth = maxheaderwidth; + else + maxwidth = term_cols - 2; } width = maxwidth;