fix #H4343 - obscure tty bug while swallowed

When --More-- was written to leftmost column of line 2 while the
hero was swallowed, after player acknowledged it and the top line
was cleared, the cursor ended up in the wrong place.  I still
don't understand what in the world is going on here, but adding
'flush_screen(0)' after 'swallowed(1)' in docorner() makes the
problem go away.  Why is the behavior different when --More-- is
in the first column than when it's anywhere else?

After that fix, I commented the whole thing out.  The swallowed
optimization is just not significant enough to justify peeking at
core internals.

Core bit:  prior to those two changes, I tried inserting 'bot()'
into swallowed().  It moved the mis-positioned cursor from the
end of the second status line to on the map just right of the
bottom right corner of the swallowed display.  That didn't fix
anything, but I've left it in place.  bot() to update status is
needed following cls(); now it happens before redrawing the map
instead of at some point after.
This commit is contained in:
PatR
2016-05-18 16:36:18 -07:00
parent a242e0d892
commit fccd29dfd4
3 changed files with 15 additions and 4 deletions

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 display.c $NHDT-Date: 1463154502 2016/05/13 15:48:22 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.85 $ */
/* NetHack 3.6 display.c $NHDT-Date: 1463614572 2016/05/18 23:36:12 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.86 $ */
/* Copyright (c) Dean Luick, with acknowledgements to Kevin Darcy */
/* and Dave Cohrs, 1990. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1009,9 +1009,10 @@ int first;
static xchar lastx, lasty; /* last swallowed position */
int swallower, left_ok, rght_ok;
if (first)
if (first) {
cls();
else {
bot();
} else {
register int x, y;
/* Clear old location */