| 3840 | } |
| 3841 | |
| 3842 | void |
| 3843 | migrate_mon( |
| 3844 | struct monst *mtmp, |
| 3845 | xint16 target_lev, /* destination level */ |
| 3846 | xint16 xyloc) /* MIGR_xxx flag for location within destination */ |
| 3847 | { |
| 3848 | /* |
| 3849 | * If mtmp->mx is zero, this was a failed arrival attempt from a |
| 3850 | * prior migration and mtmp isn't on the map. In that situation |
| 3851 | * it can't be engulfing or holding the hero or held by same and |
| 3852 | * should have dropped any special objects during that earlier |
| 3853 | * migration back when it had a valid map location. So only |
| 3854 | * perform some actions when mx is non-zero. |
| 3855 | */ |
| 3856 | if (mtmp->mx) { |
| 3857 | unstuck(mtmp); |
| 3858 | mdrop_special_objs(mtmp); |
| 3859 | } |
| 3860 | migrate_to_level(mtmp, target_lev, xyloc, (coord *) 0); |
| 3861 | } |
| 3862 | |
| 3863 | staticfn boolean |
| 3864 | ok_to_obliterate(struct monst *mtmp) |
no test coverage detected