diff --git a/src/mon.c b/src/mon.c index 8ca8d16a1..8daf72ddc 100644 --- a/src/mon.c +++ b/src/mon.c @@ -2434,7 +2434,8 @@ wake_nearby() continue; if (distu(mtmp->mx, mtmp->my) < u.ulevel * 20) { mtmp->msleeping = 0; - mtmp->mstrategy &= ~STRAT_WAITMASK; + if (!unique_corpstat(mtmp->data)) + mtmp->mstrategy &= ~STRAT_WAITMASK; if (mtmp->mtame && !mtmp->isminion) EDOG(mtmp)->whistletime = moves; } @@ -2453,7 +2454,8 @@ register int x, y, distance; continue; if (distance == 0 || dist2(mtmp->mx, mtmp->my, x, y) < distance) { mtmp->msleeping = 0; - mtmp->mstrategy &= ~STRAT_WAITMASK; + if (!unique_corpstat(mtmp->data)) + mtmp->mstrategy &= ~STRAT_WAITMASK; } } } diff --git a/src/music.c b/src/music.c index 249b454e2..fd0b16a17 100644 --- a/src/music.c +++ b/src/music.c @@ -73,7 +73,7 @@ int distance; mtmp->mcanmove = 1; mtmp->mfrozen = 0; /* may scare some monsters -- waiting monsters excluded */ - if ((mtmp->mstrategy & STRAT_WAITMASK) != 0) + if (!unique_corpstat(mtmp->data) && (mtmp->mstrategy & STRAT_WAITMASK) != 0) mtmp->mstrategy &= ~STRAT_WAITMASK; else if (distm < distance / 3 && !resist(mtmp, TOOL_CLASS, 0, NOTELL)) @@ -195,7 +195,7 @@ struct monst *bugler; /* monster that played instrument */ mtmp->mcanmove = 1; mtmp->mfrozen = 0; /* may scare some monsters -- waiting monsters excluded */ - if ((mtmp->mstrategy & STRAT_WAITMASK) != 0) + if (!unique_corpstat(mtmp->data) && (mtmp->mstrategy & STRAT_WAITMASK) != 0) mtmp->mstrategy &= ~STRAT_WAITMASK; else if (distm < distance / 3 && !resist(mtmp, TOOL_CLASS, 0, NOTELL))