summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/viewmap.cc
diff options
context:
space:
mode:
authorRobert Vollmert <rvollmert@gmx.net>2009-11-05 20:50:54 +0100
committerRobert Vollmert <rvollmert@gmx.net>2009-11-05 22:30:03 +0100
commitdc3f573c6ef467ddcc4a837ce90ca9df3b502c2e (patch)
treef7915736d0a9bad11d83c3ff8a0263577a27e979 /crawl-ref/source/viewmap.cc
parent31124ec682c2b826f169c23e808fa741a3033a04 (diff)
downloadcrawl-ref-dc3f573c6ef467ddcc4a837ce90ca9df3b502c2e.tar.gz
crawl-ref-dc3f573c6ef467ddcc4a837ce90ca9df3b502c2e.zip
Unify mesmerisation code.
There were several places that had copies of the same code, checking whether mesmerisation blocked movement to a given target. The various mesmerisation functions have become methods of player and were moved into behold.cc.
Diffstat (limited to 'crawl-ref/source/viewmap.cc')
-rw-r--r--crawl-ref/source/viewmap.cc22
1 files changed, 3 insertions, 19 deletions
diff --git a/crawl-ref/source/viewmap.cc b/crawl-ref/source/viewmap.cc
index b7d2f066e1..33a2e92a2b 100644
--- a/crawl-ref/source/viewmap.cc
+++ b/crawl-ref/source/viewmap.cc
@@ -1142,30 +1142,14 @@ screen_buffer_t colour_code_map(const coord_def& p, bool item_colour,
if (feature_colour != DARKGREY)
tc = feature_colour;
- else if (you.duration[DUR_MESMERISED] && on_level)
+ else if (on_level && you.beheld())
{
// If mesmerised, colour the few grids that can be reached anyway
// lightgrey.
const monsters *blocker = monster_at(p);
const bool seen_blocker = blocker && you.can_see(blocker);
- if (grd(p) >= DNGN_MINMOVE && !seen_blocker)
- {
- bool blocked_movement = false;
- for (unsigned int i = 0; i < you.mesmerised_by.size(); i++)
- {
- const monsters& mon = menv[you.mesmerised_by[i]];
- const int olddist = grid_distance(you.pos(), mon.pos());
- const int newdist = grid_distance(p, mon.pos());
-
- if (olddist < newdist || !see_cell(env.show_los, p, mon.pos()))
- {
- blocked_movement = true;
- break;
- }
- }
- if (!blocked_movement)
- tc = LIGHTGREY;
- }
+ if (grd(p) >= DNGN_MINMOVE && !seen_blocker && !you.get_beholder(p))
+ tc = LIGHTGREY;
}
if (Options.feature_item_brand