diff options
author | ennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-07-19 16:02:35 +0000 |
---|---|---|
committer | ennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-07-19 16:02:35 +0000 |
commit | 7cfae909af95fc2a633a0aa25e5d644677fe4a52 (patch) | |
tree | 5a513a40d8acc40f90b615e07e964ec2f2d0c994 /crawl-ref/source/acr.cc | |
parent | e58388c7925c5572450709785f83f8901fbeecef (diff) | |
download | crawl-ref-7cfae909af95fc2a633a0aa25e5d644677fe4a52.tar.gz crawl-ref-7cfae909af95fc2a633a0aa25e5d644677fe4a52.zip |
Applying r6609 to 0.4.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup-0.4@6610 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/acr.cc')
-rw-r--r-- | crawl-ref/source/acr.cc | 9 |
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; |