poly'd hero mimic hiding vs polymorph
From a bug report, if you were a mimic who was hiding (via #monster, becoming a strange object) and polymorphed into some other monster type, you retained the hidden/object form. That didn't happen when reverting to normal form, or when polymorphing into a monster while involuntarily mimicking gold, but handling for the latter inadvertently blocked dealing with the hiding-voluntarily case.
This commit is contained in:
@@ -380,6 +380,8 @@ if life-saved steed became untame, repeated "placing steed onto map?" warnings
|
||||
would be given as long as the hero remained mounted
|
||||
trying to move down while levitating said "you are floating high above floor"
|
||||
even when being stuck in floor or lava blocked full levitation
|
||||
hero poly'd into mimic and hiding as an object via #monster didn't unhide
|
||||
when polymorphing into non-mimic
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific Fixes
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/* NetHack 3.5 polyself.c $Date$ $Revision$ */
|
||||
/* SCCS Id: @(#)polyself.c 3.5 2007/04/07 */
|
||||
/* Copyright (C) 1987, 1988, 1989 by Ken Arromdee */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -460,10 +459,12 @@ int mntmp;
|
||||
flags.female = u.mfemale;
|
||||
}
|
||||
|
||||
if (youmonst.m_ap_type) {
|
||||
/* stop mimicking immediately */
|
||||
if (multi < 0) unmul("");
|
||||
} else if (mons[mntmp].mlet != S_MIMIC) {
|
||||
/* if stuck mimicking gold, stop immediately */
|
||||
if (multi < 0 && youmonst.m_ap_type == M_AP_OBJECT &&
|
||||
youmonst.data->mlet != S_MIMIC)
|
||||
unmul("");
|
||||
/* if becoming a non-mimic, stop mimicking anything */
|
||||
if (mons[mntmp].mlet != S_MIMIC) {
|
||||
/* as in polyman() */
|
||||
youmonst.m_ap_type = M_AP_NOTHING;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user