Merge branch 'NetHack-3.6'

This commit is contained in:
nhmall
2019-06-25 09:42:13 -04:00
4 changed files with 29 additions and 12 deletions

View File

@@ -3,7 +3,7 @@
For example, ^S and ^Q are often used for XON/XOFF flow-control,
meaning that ^S suspends output and subsequent ^Q resumes suspended
output. When that it the case, neither of those characters will
output. When that is the case, neither of those characters will
reach NetHack when it is waiting for a command keystroke. So they
aren't used as commands, but 'whatdoes' might not be able to tell
you that if they don't get passed through to NetHack.

View File

@@ -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.71 $ $NHDT-Date: 1561457861 2019/06/25 10:17:41 $
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
@@ -148,6 +151,11 @@ curses: make text windows wider so that help feedback is more readable
curses: using ':' for search string matching to toggle menu items in a multple
page menu would highlight arbitrary items on the currently visible
page in sync with the lines that matching items had on other pages
curses: when map window was clipped, the 'scrollbars' shown to indicate which
part of the map was in view didn't work as intended, always drawing
"*--------------" for horizontal (and comparable '*' with multiple '|'
underneath for vertical) when it meant to show "---******------" if
the 2nd and 3rd fifths (for example) were currently within view
curses+'perm_invent': entries were wrapping without any control; usually not
noticeable because next entry overwrote, but visible for final entry
when whole inventory fit within the available height; looked ok with

View File

@@ -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);

View File

@@ -624,9 +624,14 @@ curses_draw_map(int sx, int sy, int ex, int ey)
vsb_bar.attr = A_NORMAL;
/* Horizontal scrollbar */
if ((sx > 0) || (ex < (COLNO - 1))) {
sbsx = (sx * ((long) (ex - sx + 1) / COLNO));
sbex = (ex * ((long) (ex - sx + 1) / COLNO));
if (sx > 0 || ex < (COLNO - 1)) {
sbsx = (int) (((long) sx * (long) (ex - sx + 1)) / (long) COLNO);
sbex = (int) (((long) ex * (long) (ex - sx + 1)) / (long) COLNO);
if (sx > 0 && sbsx == 0)
++sbsx;
if (ex < ROWNO - 1 && sbex == ROWNO - 1)
--sbex;
for (count = 0; count < sbsx; count++) {
write_char(mapwin, count + bspace, ey - sy + 1 + bspace, hsb_back);
@@ -642,9 +647,14 @@ curses_draw_map(int sx, int sy, int ex, int ey)
}
/* Vertical scrollbar */
if ((sy > 0) || (ey < (ROWNO - 1))) {
sbsy = (sy * ((long) (ey - sy + 1) / ROWNO));
sbey = (ey * ((long) (ey - sy + 1) / ROWNO));
if (sy > 0 || ey < (ROWNO - 1)) {
sbsy = (int) (((long) sy * (long) (ey - sy + 1)) / (long) ROWNO);
sbey = (int) (((long) ey * (long) (ey - sy + 1)) / (long) ROWNO);
if (sy > 0 && sbsy == 0)
++sbsy;
if (ey < ROWNO - 1 && sbey == ROWNO - 1)
--sbey;
for (count = 0; count < sbsy; count++) {
write_char(mapwin, ex - sx + 1 + bspace, count + bspace, vsb_back);