summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/acr.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/acr.cc')
-rw-r--r--crawl-ref/source/acr.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc
index 3dcb424d40..4ee02b279d 100644
--- a/crawl-ref/source/acr.cc
+++ b/crawl-ref/source/acr.cc
@@ -4257,13 +4257,15 @@ static void _move_player(int move_x, int move_y)
return;
}
+ coord_def mon_swap_dest;
+
if (targ_monst != NON_MONSTER && !mons_is_submerged(&menv[targ_monst]))
{
monsters *mon = &menv[targ_monst];
if (can_swap_places && !beholder)
{
- if (swap_places( mon ))
+ if (swap_check(mon, mon_swap_dest))
swap = true;
else
moving = false;
@@ -4291,9 +4293,12 @@ static void _move_player(int move_x, int move_y)
{
you.time_taken *= player_movement_speed();
you.time_taken /= 10;
- if (!move_player_to_grid(targ_x, targ_y, true, false, swap))
+ if (!move_player_to_grid(targ_x, targ_y, true, false, swap, swap))
return;
+ if (swap)
+ swap_places(&menv[targ_monst], mon_swap_dest);
+
you.prev_move_x = move_x;
you.prev_move_y = move_y;