From cca62c762fc4bfaf7955a763e3d8eafa996944dd Mon Sep 17 00:00:00 2001 From: "nethack.allison" Date: Sun, 28 Jul 2002 02:19:21 +0000 Subject: [PATCH] B04007 unknown corpse type revealed by hider "It was hidden under a green mold corpse! It bites!" Never seen corpse from a never seen monster can be revealed by the hider. -problem is that the corpse of the monster is always created with dknown set to 1 when make_corpse() finishes, even in the case where you never knew what it was while alive. --- doc/fixes34.1 | 1 + src/mon.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/doc/fixes34.1 b/doc/fixes34.1 index 46cdfb247..76865a37a 100644 --- a/doc/fixes34.1 +++ b/doc/fixes34.1 @@ -174,6 +174,7 @@ when using '/' to examine multiple map items in succession, don't mislabel some with "or a splash of venom" after having looked at a '.' item martial arts kick that knocks a monster into a trap would result in warning "dmonsfree: 1 removed doesn't match 2 pending" if the trap was fatal +if you can't see or sense a monster when it dies, don't set dknown on corpse Platform- and/or Interface-Specific Fixes diff --git a/src/mon.c b/src/mon.c index 49c4dee67..b449e0471 100644 --- a/src/mon.c +++ b/src/mon.c @@ -254,6 +254,14 @@ register struct monst *mtmp; if (mtmp->mnamelth) obj = oname(obj, NAME(mtmp)); + /* Avoid "It was hidden under a green mold corpse!" + * during Blind combat. An unseen monster referred to as "it" + * could be killed and leave a corpse. If a hider then hid + * underneath it, you could be told the corpse type of a + * monster that you never knew was there without this. + */ + if (Blind && !sensemon(mtmp)) obj->dknown = 0; + #ifdef INVISIBLE_OBJECTS /* Invisible monster ==> invisible corpse */ obj->oinvis = mtmp->minvis; -- 2.40.0