diff options
Diffstat (limited to 'crawl-ref/source/mstuff2.cc')
-rw-r--r-- | crawl-ref/source/mstuff2.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/crawl-ref/source/mstuff2.cc b/crawl-ref/source/mstuff2.cc index 5612953152..2a48a3fc35 100644 --- a/crawl-ref/source/mstuff2.cc +++ b/crawl-ref/source/mstuff2.cc @@ -835,8 +835,9 @@ void monster_teleport(struct monsters *monster, bool instan, bool silent) if (!silent) simple_monster_message(monster, " disappears!"); + const coord_def oldplace = monster->pos(); // pick the monster up - mgrd[monster->x][monster->y] = NON_MONSTER; + mgrd(oldplace) = NON_MONSTER; int newx, newy; while(true) @@ -880,6 +881,9 @@ void monster_teleport(struct monsters *monster, bool instan, bool silent) if (player_monster_visible(monster) && now_visible) seen_monster(monster); + monster->check_redraw(oldplace); + monster->apply_location_effects(); + // Teleporting mimics change form - if they reappear out of LOS, they are // no longer known. if (mons_is_mimic(monster->type)) |