From a868473df682ee3ec08592395c50ae140086cb0e Mon Sep 17 00:00:00 2001 From: cohrs Date: Sun, 30 Jun 2002 22:29:58 +0000 Subject: [PATCH] feeling monsters while blind and levitating reported this during 3.4.0 beta. If you are blind and levitating, unseen monsters are shown as "I", just like when not levitating, but they are never erased after they move, unlike not levitating. Display this case correctly as well. --- doc/fixes34.1 | 1 + src/display.c | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/doc/fixes34.1 b/doc/fixes34.1 index 2d899581c..2bc548809 100644 --- a/doc/fixes34.1 +++ b/doc/fixes34.1 @@ -131,6 +131,7 @@ headstone writing was using the adjective "weird" when engraving with a wand of digging. don't report "you were riding" if you die as a result of dismounting allow #untrapping of chests that are co-located with floor traps and hero +unmap "I" symbols when searching while blind and levitating Platform- and/or Interface-Specific Fixes diff --git a/src/display.c b/src/display.c index 709e68d00..bad6aa7f9 100644 --- a/src/display.c +++ b/src/display.c @@ -536,7 +536,8 @@ feel_location(x, y) * underneath if already seen. Otherwise, show the appropriate * floor symbol. * - * Similarly, if the hero digs a hole in a wall. In this case, + * Similarly, if the hero digs a hole in a wall or feels a location + * that used to contain an unseen monster. In these cases, * there's no reason to assume anything was underneath, so * just show the appropriate floor symbol. If something was * embedded in the wall, the glyph will probably already @@ -557,8 +558,9 @@ feel_location(x, y) cmap_to_glyph(S_stone); show_glyph(x,y,lev->glyph); } - } else if (lev->glyph >= cmap_to_glyph(S_stone) && - lev->glyph < cmap_to_glyph(S_room)) { + } else if ((lev->glyph >= cmap_to_glyph(S_stone) && + lev->glyph < cmap_to_glyph(S_room)) || + glyph_is_invisible(levl[x][y].glyph)) { lev->glyph = lev->waslit ? cmap_to_glyph(S_room) : cmap_to_glyph(S_stone); show_glyph(x,y,lev->glyph);