diff options
author | Robert Vollmert <rvollmert@gmx.net> | 2009-11-05 20:50:54 +0100 |
---|---|---|
committer | Robert Vollmert <rvollmert@gmx.net> | 2009-11-05 22:30:03 +0100 |
commit | dc3f573c6ef467ddcc4a837ce90ca9df3b502c2e (patch) | |
tree | f7915736d0a9bad11d83c3ff8a0263577a27e979 /crawl-ref/source/viewmap.cc | |
parent | 31124ec682c2b826f169c23e808fa741a3033a04 (diff) | |
download | crawl-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.cc | 22 |
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 |