From 557650ac555a13d97677d99128c548a6260b3d7b Mon Sep 17 00:00:00 2001 From: "nethack.rankin" Date: Mon, 16 Jul 2007 06:44:57 +0000 Subject: [PATCH] seeing a monster make itself invisible From the newsgroup: you could get "suddenly you cannot see the " even though it remained visible. Cited case was for an orc who drank a potion of invisibility while being observed by a hero wielding Sting, which causes orcs to be displayed even when they're invisible. But it could also happen when non-blind telepathy or extended monster detection is in effect. --- doc/fixes34.4 | 2 ++ src/muse.c | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/fixes34.4 b/doc/fixes34.4 index dad7f4a67..b967cfce5 100644 --- a/doc/fixes34.4 +++ b/doc/fixes34.4 @@ -359,6 +359,8 @@ amnesia of object discoveries would never forget the very last one code controlling item drops by small monsters still used pre-3.1.0 weight monsters who want the Amulet won't attack the Wizard to try to get it opening or closing the castle drawbridge via music consumes a turn +could get "suddenly you cannot see the " while invisible mon remained + displayed due to telepathy or extended detection Platform- and/or Interface-Specific Fixes diff --git a/src/muse.c b/src/muse.c index c651a0008..8fc4488f0 100644 --- a/src/muse.c +++ b/src/muse.c @@ -1776,12 +1776,12 @@ skipmsg: } else mquaffmsg(mtmp, otmp); /* format monster's name before altering its visibility */ - Strcpy(nambuf, See_invisible ? Monnam(mtmp) : mon_nam(mtmp)); + Strcpy(nambuf, mon_nam(mtmp)); mon_set_minvis(mtmp); if (vismon && mtmp->minvis) { /* was seen, now invisible */ - if (See_invisible) + if (canspotmon(mtmp)) pline("%s body takes on a %s transparency.", - s_suffix(nambuf), + upstart(s_suffix(nambuf)), Hallucination ? "normal" : "strange"); else pline("Suddenly you cannot see %s.", nambuf);