diff --git a/src/cmd.c b/src/cmd.c index 3c8cbe44b..27ee39213 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -1018,6 +1018,8 @@ makemap_unmakemon(struct monst *mtmp, boolean migratory) so that dmonsfree() bookkeeping for number of dead or removed monsters won't get out of sync; it is not on the map but mongone() -> m_detach() -> mon_leaving_level() copes with that */ + mtmp->mstate |= MON_OFFMAP; + mtmp->mstate &= ~(MON_MIGRATING | MON_LIMBO); mtmp->nmon = fmon; fmon = mtmp; } diff --git a/src/mkobj.c b/src/mkobj.c index 3837fe7a1..8c1edbfc3 100644 --- a/src/mkobj.c +++ b/src/mkobj.c @@ -1982,6 +1982,7 @@ save_mtraits(struct obj *obj, struct monst *mtmp) mtmp2->mhp = mtmp2->mhpmax; if (mtmp2->mhp < 1) mtmp2->mhp = 0; + mtmp2->mstate &= ~MON_DETACH; } return obj; }