Address some complaints about an earlier patch.
/* Might be attacking your image around the corner, or
* invisible, or you might be blind....
*/
- boolean mimickobj = (youmonst.m_ap_type == M_AP_OBJECT &&
- (youmonst.mappearance > STRANGE_OBJECT &&
- youmonst.mappearance < NUM_OBJECTS));
- /* you are mimicking an object */
if(!ranged) nomul(0);
if(mtmp->mhp <= 0 || (Underwater && !is_swimmer(mtmp->data)))
}
/* player might be mimicking an object */
- if (mimickobj && !range2 && foundyou && !u.uswallow) {
+ if (youmonst.m_ap_type == M_AP_OBJECT && !range2 && foundyou && !u.uswallow) {
if (!youseeit)
pline("%s %s!", Something,
(likes_gold(mtmp->data) && youmonst.mappearance == GOLD_PIECE) ?
mimic_obj_name(mtmp)
struct monst *mtmp;
{
- boolean mimickobj = (mtmp->m_ap_type == M_AP_OBJECT &&
- (mtmp->mappearance > STRANGE_OBJECT &&
- mtmp->mappearance < NUM_OBJECTS));
- if (mimickobj) {
- if (mtmp->mappearance == GOLD_PIECE) return "gold";
- else return obj_descr[objects[mtmp->mappearance].oc_descr_idx].oc_name;
- }
- return "whatcha-may-callit";
+ if (mtmp->m_ap_type == M_AP_OBJECT && mtmp->mappearance != STRANGE_OBJECT) {
+ int idx = objects[mtmp->mappearance].oc_descr_idx;
+ if (mtmp->mappearance == GOLD_PIECE) return "gold";
+ return obj_descr[idx].oc_name;
+ }
+ return "whatcha-may-callit";
}
#endif /* OVLB */
const char *fmt, *arg;
{
boolean sticky = sticks(youmonst.data) && u.ustuck && !u.uswallow,
- was_mimicking = (youmonst.m_ap_type == M_AP_OBJECT &&
- (youmonst.mappearance > STRANGE_OBJECT &&
- youmonst.mappearance < NUM_OBJECTS));
+ was_mimicking = (youmonst.m_ap_type == M_AP_OBJECT);
+
boolean was_blind = !!Blind;
if (Upolyd) {
{
boolean sticky = sticks(youmonst.data) && u.ustuck && !u.uswallow,
was_blind = !!Blind, dochange = FALSE;
- boolean was_mimicking = (youmonst.m_ap_type == M_AP_OBJECT &&
- (youmonst.mappearance > STRANGE_OBJECT &&
- youmonst.mappearance < NUM_OBJECTS));
int mlvl;
if (mvitals[mntmp].mvflags & G_GENOD) { /* allow G_EXTINCT */
flags.female = u.mfemale;
}
- if (was_mimicking) {
+ if (youmonst.m_ap_type) {
/* stop mimicking immediately */
if (multi < 0) unmul("");
} else if (mons[mntmp].mlet != S_MIMIC) {
#endif
struct monst *guard;
int trycount, vaultroom = (int)vault_occupied(u.urooms);
- boolean mimickobj = (youmonst.m_ap_type == M_AP_OBJECT &&
- (youmonst.mappearance > STRANGE_OBJECT &&
- youmonst.mappearance < NUM_OBJECTS));
if(!vaultroom) {
u.uinvault = 0;
else
pline("Someone else has entered the Vault.");
newsym(guard->mx,guard->my);
- if (mimickobj || u.uundetected) {
- if (mimickobj && youmonst.mappearance != GOLD_PIECE)
+ if (youmonst.m_ap_type == M_AP_OBJECT || u.uundetected) {
+ if (youmonst.m_ap_type == M_AP_OBJECT &&
+ youmonst.mappearance != GOLD_PIECE)
verbalize("Hey! who left that %s in here?", mimic_obj_name(&youmonst));
/* You're mimicking some object or you're hidden. */
pline("Puzzled, %s turns around and leaves.", mhe(guard));