diff --git a/doc/fixes34.4 b/doc/fixes34.4 index 88e7ce4a2..97a7376c6 100644 --- a/doc/fixes34.4 +++ b/doc/fixes34.4 @@ -311,6 +311,7 @@ fireproof, non-rustable weapon would be revealed as fireproof by hitting a rust-causing target; ditto for fixed crysknife surviving choking while eating various foods (cockatrice egg, fortune cookie, wolfsbane, others) didn't carry through to those foods' side-effects +shapechangers who take on mimic or hider form will mimic or hide when feasible Platform- and/or Interface-Specific Fixes diff --git a/src/mon.c b/src/mon.c index d5103a162..ff02a58fa 100644 --- a/src/mon.c +++ b/src/mon.c @@ -1,4 +1,4 @@ -/* SCCS Id: @(#)mon.c 3.5 2007/01/12 */ +/* SCCS Id: @(#)mon.c 3.5 2007/02/08 */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -2395,7 +2395,7 @@ register struct monst *mtmp; { struct trap *t; - if((mtmp->cham >= LOW_PM) || mtmp->mcan || mtmp->m_ap_type || + if (mtmp->mcan || mtmp->m_ap_type || cansee(mtmp->mx, mtmp->my) || rn2(3) || (mtmp == u.ustuck) || /* can't hide while trapped except in pits */ (mtmp->mtrapped && (t = t_at(mtmp->mx, mtmp->my)) != 0 && @@ -2646,6 +2646,8 @@ boolean msg; /* "The oldmon turns into a newmon!" */ wormgone(mtmp); place_monster(mtmp, mtmp->mx, mtmp->my); } + if (mtmp->m_ap_type && mdat->mlet != S_MIMIC) + seemimic(mtmp); /* revert to normal monster */ /* (this code used to try to adjust the monster's health based on a normal one of its type but there are too many special cases