summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-pathfind.cc
diff options
context:
space:
mode:
authorAdam Borowski <kilobyte@angband.pl>2013-07-10 19:26:42 +0200
committerAdam Borowski <kilobyte@angband.pl>2013-07-10 19:26:42 +0200
commit1addaaf8ee92de5060fdb436f93251843abd2035 (patch)
tree1e7c5e4eeb4fe08527bb2fbfd15c1d6f4957a33e /crawl-ref/source/mon-pathfind.cc
parent1bc77d242ca25376a8a86a79614afa345c1f0c8b (diff)
downloadcrawl-ref-1addaaf8ee92de5060fdb436f93251843abd2035.tar.gz
crawl-ref-1addaaf8ee92de5060fdb436f93251843abd2035.zip
Bye bye clinging.
With player clinging removed, monster doesn't make much sense. Note that I personally somehow like clinging -- even if it's rarely useful except early on, it was quite harmless. However, I'm strongly against having players and monsters inconsistent when there's no very good reason. Thus, reverting this and MarvinPA's change is an option. Just please keep or revert them together.
Diffstat (limited to 'crawl-ref/source/mon-pathfind.cc')
-rw-r--r--crawl-ref/source/mon-pathfind.cc13
1 files changed, 3 insertions, 10 deletions
diff --git a/crawl-ref/source/mon-pathfind.cc b/crawl-ref/source/mon-pathfind.cc
index 1b16850a61..60a7e38762 100644
--- a/crawl-ref/source/mon-pathfind.cc
+++ b/crawl-ref/source/mon-pathfind.cc
@@ -56,9 +56,7 @@ int mons_tracking_range(const monster* mon)
if (range)
{
- if (mon->can_cling_to_walls())
- range += 4;
- else if (mons_is_native_in_branch(mon))
+ if (mons_is_native_in_branch(mon))
range += 3;
else if (mons_class_flag(mon->type, M_BLOOD_SCENT))
range++;
@@ -438,9 +436,7 @@ bool monster_pathfind::traversable(const coord_def& p)
// its preferred habit and capability of flight or opening doors.
bool monster_pathfind::mons_traversable(const coord_def& p)
{
- return mons_can_traverse(mons, p) || mons->can_cling_to_walls()
- && cell_is_clingable(pos)
- && cell_can_cling_to(pos, p);
+ return mons_can_traverse(mons, p);
}
int monster_pathfind::travel_cost(coord_def npos)
@@ -475,9 +471,6 @@ int monster_pathfind::mons_travel_cost(coord_def npos)
return 2;
const monster_type mt = mons_base_type(mons);
- const bool ground_level = !mons_airborne(mt, -1, false)
- && !(mons->can_cling_to_walls()
- && cell_is_clingable(npos));
// Travelling through water, entering or leaving water is more expensive
// for non-amphibious monsters, so they'll avoid it where possible.
@@ -505,7 +498,7 @@ int monster_pathfind::mons_travel_cost(coord_def npos)
// Mechanical traps can be avoided by flying, as can shafts, and
// tele traps are never traversable anyway.
- if (knows_trap && ground_level)
+ if (knows_trap && !mons_airborne(mt, -1, false))
return 2;
}