From 3bd46a353698fffffb69533b45ff3dfa1cccf561 Mon Sep 17 00:00:00 2001 From: PatR Date: Tue, 25 Jun 2019 02:30:27 -0700 Subject: [PATCH] curses cursor Followup to 1c03d0970115c776d1c4791fea3c33f70b0b5378; that had been too easy. When map was clipped and panned to the side, the highlight for hero's spot was shown next to the '@' instead of on it. --- doc/fixes36.3 | 5 ++++- win/curses/cursmisc.c | 7 +++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/doc/fixes36.3 b/doc/fixes36.3 index fcfafe0ab..a96d543d0 100644 --- a/doc/fixes36.3 +++ b/doc/fixes36.3 @@ -1,4 +1,4 @@ -$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.69 $ $NHDT-Date: 1561429723 2019/06/25 02:28:43 $ +$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.70 $ $NHDT-Date: 1561455021 2019/06/25 09:30:21 $ 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, @@ -104,6 +104,9 @@ for wizard mode 'wizweight' option, glob weight wasn't shown unless glob had fix for feedback when a monster plays a fire horn at self to cure green slime ended up being used for zapping a wand of fire at self too curses: sometimes the message window would show a blank line after a prompt +curses: the change to show map in columns 1..79 instead of 2..80 made the + highlight for '@' show up in the wrong place if clipped map had been + panned horizontally tty: revert the attempt to fix "message line anomaly: if autodecribe feedback wrapped to second line, the wrapped portion wasn't erased when a shorter line was shown or getpos was dismissed" because it disrupted diff --git a/win/curses/cursmisc.c b/win/curses/cursmisc.c index 2991c61d7..f7f08913b 100644 --- a/win/curses/cursmisc.c +++ b/win/curses/cursmisc.c @@ -519,8 +519,6 @@ curses_move_cursor(winid wid, int x, int y) if (wid != MAP_WIN) { return; - } else { - --x; /* map column [0] isn't used, so shift everything over 1 col */ } #ifdef PDCURSES /* PDCurses seems to not handle wmove correctly, so we use move and @@ -536,8 +534,9 @@ curses_move_cursor(winid wid, int x, int y) curs_y++; } - if ((x >= sx) && (x <= ex) && (y >= sy) && (y <= ey)) { - curs_x -= sx; + if (x >= sx && x <= ex && y >= sy && y <= ey) { + /* map column #0 isn't used; shift column #1 to first screen column */ + curs_x -= (sx + 1); curs_y -= sy; #ifdef PDCURSES move(curs_y, curs_x);