Fix making fake leash object with leashmon set

When farlooking at a leash glyph on a map, the fake object should never
have leashmon set. This happened when a mimic was on the same spot
and was mimicing a corpse or statue, due to leashmon and corpsenm
using the same field.
This commit is contained in:
Pasi Kallinen
2019-02-01 18:19:00 +02:00
parent adacde80e7
commit 9f1ae0fe74

View File

@@ -187,14 +187,14 @@ struct obj **obj_p;
otmp->quan = 2L; /* to force pluralization */
else if (otmp->otyp == SLIME_MOLD)
otmp->spe = context.current_fruit; /* give it a type */
else if (otmp->otyp == LEASH)
otmp->leashmon = 0;
if (mtmp && has_mcorpsenm(mtmp)) /* mimic as corpse/statue */
otmp->corpsenm = MCORPSENM(mtmp);
else if (otmp->otyp == CORPSE && glyph_is_body(glyph))
otmp->corpsenm = glyph - GLYPH_BODY_OFF;
else if (otmp->otyp == STATUE && glyph_is_statue(glyph))
otmp->corpsenm = glyph - GLYPH_STATUE_OFF;
if (otmp->otyp == LEASH)
otmp->leashmon = 0;
}
/* if located at adjacent spot, mark it as having been seen up close
(corpse type will be known even if dknown is 0, so we don't need a