From a85d3bf01c298d31c44f142e3d506fb5670a032e Mon Sep 17 00:00:00 2001 From: cohrs Date: Fri, 15 Apr 2005 19:42:08 +0000 Subject: [PATCH] #M32: Astral vision vs normal vision While wearing EotO, ";" and selecting a monster behind a wall would display "normal vision" as well as "astral vision". This is because cansee() gets set for things seen via astral vision. However, couldsee() is only set for things that could be seen normally, so check both values. --- doc/fixes34.4 | 2 ++ src/pager.c | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/doc/fixes34.4 b/doc/fixes34.4 index 2bb016411..442a7f0bf 100644 --- a/doc/fixes34.4 +++ b/doc/fixes34.4 @@ -113,6 +113,8 @@ armor which auto-curses when worn by hero should do same if worn by monster limit how high accuracy, damage, or protection can become via eating rings when blinded hero detects a trap by touch, make sure it shows up on the map confused remove curse will cause loss of knowledge of items' curse/bless state +With astral vision, the ";" command should only display "normal vision" + for things that could be seen without astral vision Platform- and/or Interface-Specific Fixes diff --git a/src/pager.c b/src/pager.c index 53479bad0..8f9a49555 100644 --- a/src/pager.c +++ b/src/pager.c @@ -162,8 +162,11 @@ lookat(x, y, buf, monbuf) boolean useemon = (boolean) canseemon(mtmp); xraydist = (u.xray_range<0) ? -1 : u.xray_range * u.xray_range; - /* normal vision */ - if ((mtmp->wormno ? worm_known(mtmp) : cansee(mtmp->mx, mtmp->my)) && + /* normal vision + * cansee is true for both normal and astral vision, + * but couldsee it not true for astral vision */ + if ((mtmp->wormno ? worm_known(mtmp) : + (cansee(mtmp->mx, mtmp->my) && couldsee(mtmp->mx, mtmp->my))) && mon_visible(mtmp) && !mtmp->minvis) { ways_seen++; normal++; -- 2.40.0