summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/spells3.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/spells3.cc')
-rw-r--r--crawl-ref/source/spells3.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/crawl-ref/source/spells3.cc b/crawl-ref/source/spells3.cc
index df14c46325..e9ad01d96a 100644
--- a/crawl-ref/source/spells3.cc
+++ b/crawl-ref/source/spells3.cc
@@ -1390,8 +1390,11 @@ static bool _teleport_player( bool allow_control, bool new_abyss_area )
you.moveto(pos);
+ // Merfolk should be able to control-tele into deep water.
if (grd(you.pos()) != DNGN_FLOOR
&& grd(you.pos()) != DNGN_SHALLOW_WATER
+ && (you.species != SP_MERFOLK
+ || grd(you.pos()) != DNGN_DEEP_WATER)
|| monster_at(you.pos())
|| env.cgrid(you.pos()) != EMPTY_CLOUD)
{
@@ -1444,6 +1447,8 @@ static bool _teleport_player( bool allow_control, bool new_abyss_area )
}
while (grd(newpos) != DNGN_FLOOR
&& grd(newpos) != DNGN_SHALLOW_WATER
+ && (you.species != SP_MERFOLK
+ || grd(you.pos()) != DNGN_DEEP_WATER)
|| monster_at(newpos)
|| env.cgrid(newpos) != EMPTY_CLOUD
|| need_distance_check && (newpos - centre).abs() < 34*34);