From: Michael Meyer Date: Thu, 30 Sep 2021 04:26:01 +0000 (-0400) Subject: Fix: chameleon quickmimic not reset after eating X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=221e4a760d733934016954a13ade220812bd0f2d;p=nethack Fix: chameleon quickmimic not reset after eating finish_meating was checking whether the monster in question was a chameleon/shapechanger, rather than whether it was a mimic, in deciding which monsters should be allowed to maintain their current appearance once they finish eating. This meant that true mimics had their appearance reset, while a chameleon, vampire, etc, who ate a mimic would maintain their appearance as a tripe ration even after they had finished eating and resumed their normal behavior. The result? An amazing living tripe ration which followed the hero around throughout the level. --- diff --git a/src/dogmove.c b/src/dogmove.c index 1fc4a02e0..78047365e 100644 --- a/src/dogmove.c +++ b/src/dogmove.c @@ -1366,7 +1366,7 @@ void finish_meating(struct monst *mtmp) { mtmp->meating = 0; - if (M_AP_TYPE(mtmp) && mtmp->mappearance && mtmp->cham == NON_PM) { + if (M_AP_TYPE(mtmp) && mtmp->mappearance && mtmp->data->mlet != S_MIMIC) { /* was eating a mimic and now appearance needs resetting */ mtmp->m_ap_type = M_AP_NOTHING; mtmp->mappearance = 0;