diff --git a/doc/fixes34.3 b/doc/fixes34.3 index 13a7bedfe..6d54eec2e 100644 --- a/doc/fixes34.3 +++ b/doc/fixes34.3 @@ -81,6 +81,7 @@ when polymorphed into a quantum mechanic on a no teleport level and swallowed, allow Conflict-resistant monsters to respond to conflict attacks rather than sitting there and taking the attacks until they die prefer herbivorous stone-to-flesh message when hero is a vegitarian +try even harder to avoid incorrect map display while changing levels Platform- and/or Interface-Specific Fixes diff --git a/src/display.c b/src/display.c index 31012e3ac..3990cc6d9 100644 --- a/src/display.c +++ b/src/display.c @@ -1346,8 +1346,11 @@ flush_screen(cursor_on_u) * flush_screen->print_glyph->impossible->pline->flush_screen */ static boolean flushing = 0; + static boolean delay_flushing = 0; register int x,y; + if (cursor_on_u == -1) delay_flushing = !delay_flushing; + if (delay_flushing) return; if (flushing) return; /* if already flushing then return */ flushing = 1; diff --git a/src/do.c b/src/do.c index 0031e62a5..80ea45811 100644 --- a/src/do.c +++ b/src/do.c @@ -1094,6 +1094,7 @@ boolean at_stairs, falling, portal; /* do this prior to level-change pline messages */ vision_reset(); /* clear old level's line-of-sight */ vision_full_recalc = 0; /* don't let that reenable vision yet */ + flush_screen(-1); /* ensure all map flushes are postponed */ if (portal && !In_endgame(&u.uz)) { /* find the portal on the new level */ @@ -1243,7 +1244,7 @@ boolean at_stairs, falling, portal; /* Reset the screen. */ vision_reset(); /* reset the blockages */ docrt(); /* does a full vision recalc */ - flush_screen(1); + flush_screen(-1); /* * Move all plines beyond the screen reset.