From 131ab0a20ea44777ef09595fab55397353b90fd4 Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Sun, 1 Jan 2017 00:21:53 +0200 Subject: [PATCH 1/3] Fix mnearto return value confusion This caused appeased shopkeepers returning to their shops being killed. --- src/mon.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mon.c b/src/mon.c index 23ebcdb45..dbfbd5a40 100644 --- a/src/mon.c +++ b/src/mon.c @@ -2518,8 +2518,8 @@ struct monst *mtmp; /* mnearto() * Put monster near (or at) location if possible. * Returns: - * 1 - if a monster was moved from x, y to put mtmp at x, y. - * 0 - in most cases. + * true if relocation was successful + * false otherwise */ boolean mnearto(mtmp, x, y, move_other) @@ -2532,7 +2532,7 @@ boolean move_other; /* make sure mtmp gets to x, y! so move m_at(x, y) */ coord mm; if (mtmp->mx == x && mtmp->my == y) - return FALSE; + return TRUE; if (move_other && (othermon = m_at(x, y)) != 0) { if (othermon->wormno) @@ -2570,7 +2570,7 @@ boolean move_other; /* make sure mtmp gets to x, y! so move m_at(x, y) */ } } - return FALSE; + return TRUE; } /* monster responds to player action; not the same as a passive attack; From 3ea12fe048a0b160625f39ec11a9477d8da62da0 Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Tue, 10 Jan 2017 20:45:16 +0200 Subject: [PATCH 2/3] Show all statusline info in #attributes --- doc/fixes36.1 | 1 + src/cmd.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/doc/fixes36.1 b/doc/fixes36.1 index 7142c52ca..290a9d4ae 100644 --- a/doc/fixes36.1 +++ b/doc/fixes36.1 @@ -364,6 +364,7 @@ some death by the-poison-was-deadly situations left stale non-zero HP shown on the status line during final disclosure when sitting at a trap spot: You sit down. You step on a level teleporter. (likewise for polymorph trap, and similar issue for web) +show all statusline information in #attributes Fixes to Post-3.6.0 Problems that Were Exposed Via git Repository diff --git a/src/cmd.c b/src/cmd.c index a1020bdba..4d39a8ba6 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -1592,10 +1592,44 @@ characteristics_enlightenment(mode, final) int mode; int final; { + char buf[BUFSZ]; + int hp = Upolyd ? u.mh : u.uhp; + int hpmax = Upolyd ? u.mhmax : u.uhpmax; + putstr(en_win, 0, ""); /* separator after background */ putstr(en_win, 0, final ? "Final Characteristics:" : "Current Characteristics:"); + if (hp < 0) + hp = 0; + Sprintf(buf, "%d hit points (max:%d)", hp, hpmax); + you_have(buf, ""); + + Sprintf(buf, "%d magic power (max:%d)", u.uen, u.uenmax); + you_have(buf, ""); + + Sprintf(buf, "%d", u.uac); + enl_msg("Your armor class ", "is ", "was ", buf, ""); + + if (Upolyd) { + Sprintf(buf, "%d hit dice", mons[u.umonnum].mlevel); + } else { + /* flags.showexp does not matter */ + /* experience level is already shown in the Background section */ + Sprintf(buf, "%-1ld experience point%s", + u.uexp, u.uexp == 1 ? "" : "s"); + } + you_have(buf, ""); + + Sprintf(buf, " You entered the dungeon %ld turn%s ago", + moves, moves == 1 ? "" : "s"); + putstr(en_win, 0, buf); + +#ifdef SCORE_ON_BOTL + Sprintf(buf, "%ld", botl_score()); + enl_msg("Your score ", "is ", "was ", buf, ""); +#endif + /* bottom line order */ one_characteristic(mode, final, A_STR); /* strength */ one_characteristic(mode, final, A_DEX); /* dexterity */ From c6f26c05d7280d852550c5a6f96eb589fa9c087a Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Tue, 10 Jan 2017 22:19:00 +0200 Subject: [PATCH 3/3] Accessibility: option to prevent status line updates Apparently some screen readers keep reading the status lines at the bottom of the screen when parts of those change. Add an option to prevent updates to those lines. --- doc/Guidebook.mn | 6 ++++++ doc/Guidebook.tex | 8 ++++++++ doc/fixes36.1 | 1 + include/flag.h | 1 + src/botl.c | 4 ++-- src/options.c | 1 + 6 files changed, 19 insertions(+), 2 deletions(-) diff --git a/doc/Guidebook.mn b/doc/Guidebook.mn index f5adc8b6e..de4e6c01a 100644 --- a/doc/Guidebook.mn +++ b/doc/Guidebook.mn @@ -2859,6 +2859,8 @@ Boldface monsters and ``\fB--More--\fP'' (default off). Persistent. .lp statushilites Enable coloring of status fields (default off). See ``Configuring Status Hilites'' for further information. +.lp status_updates +Allow updates to the status lines at the bottom of the screen (default true). .lp suppress_alert This option may be set to a NetHack version level to suppress alert notification messages about feature changes for that @@ -3707,6 +3709,10 @@ was interrupted. .lp whatis_coord:compass When targeting with cursor, describe the cursor position with coordinates relative to your character. +.lp nostatus_updates +Prevent updates to the status lines at the bottom of the screen, if +your screen-reader reads those lines. The same information can be +seen via the #attributes command. .hn 2 Global Configuration for System Administrators .pg diff --git a/doc/Guidebook.tex b/doc/Guidebook.tex index 0f3c83504..7c2d3e6f1 100644 --- a/doc/Guidebook.tex +++ b/doc/Guidebook.tex @@ -3479,6 +3479,9 @@ Boldface monsters and ``{\tt --More--}'' (default off). Persistent. Enable coloring of status fields (default off). See ``{\it Configuring Status Hilites\/}'' for further information. %.lp +\item[\ib{status\verb+_+updates}] +Allow updates to the status lines at the bottom of the screen (default true). +%.lp \item[\ib{suppress\verb+_+alert}] This option may be set to a NetHack version level to suppress alert notification messages about feature changes for that @@ -4509,6 +4512,11 @@ was interrupted. \item[\ib{whatis\verb+_+coord:compass}] When targeting with cursor, describe the cursor position with coordinates relative to your character. +%.lp +\item[\ib{nostatus\verb+_+updates}] +Prevent updates to the status lines at the bottom of the screen, if +your screen-reader reads those lines. The same information can be +seen via the #attributes command. \elist %.hn2 diff --git a/doc/fixes36.1 b/doc/fixes36.1 index 290a9d4ae..56916b68e 100644 --- a/doc/fixes36.1 +++ b/doc/fixes36.1 @@ -365,6 +365,7 @@ some death by the-poison-was-deadly situations left stale non-zero HP shown when sitting at a trap spot: You sit down. You step on a level teleporter. (likewise for polymorph trap, and similar issue for web) show all statusline information in #attributes +add option status_updates to prevent bottom of screen status line updates Fixes to Post-3.6.0 Problems that Were Exposed Via git Repository diff --git a/include/flag.h b/include/flag.h index 4927cb632..612a14720 100644 --- a/include/flag.h +++ b/include/flag.h @@ -232,6 +232,7 @@ struct instance_flags { boolean echo; /* 1 to echo characters */ boolean use_menu_color; /* use color in menus; only if wc_color */ boolean use_status_hilites; /* use color in status line */ + boolean status_updates; /* allow updates to bottom status lines */ boolean use_background_glyph; /* use background glyph when appropriate */ boolean hilite_pile; /* mark piles of objects with a hilite */ boolean autodescribe; /* autodescribe mode in getpos() */ diff --git a/src/botl.c b/src/botl.c index 8fc6ab521..f39086174 100644 --- a/src/botl.c +++ b/src/botl.c @@ -213,7 +213,7 @@ bot2() void bot() { - if (youmonst.data) { + if (youmonst.data && iflags.status_updates) { bot1(); bot2(); } @@ -436,7 +436,7 @@ bot() if (!blinit) panic("bot before init."); - if (!youmonst.data) { + if (!youmonst.data || !iflags.status_updates) { context.botl = context.botlx = 0; update_all = FALSE; return; diff --git a/src/options.c b/src/options.c index 9b610f3d9..d49102ddc 100644 --- a/src/options.c +++ b/src/options.c @@ -208,6 +208,7 @@ static struct Bool_Opt { #else { "statushilites", &iflags.use_status_hilites, FALSE, DISP_IN_GAME }, #endif + { "status_updates", &iflags.status_updates, TRUE, DISP_IN_GAME }, { "tiled_map", &iflags.wc_tiled_map, PREFER_TILED, DISP_IN_GAME }, /*WC*/ { "time", &flags.time, FALSE, SET_IN_GAME }, #ifdef TIMED_DELAY