From dc3f573c6ef467ddcc4a837ce90ca9df3b502c2e Mon Sep 17 00:00:00 2001 From: Robert Vollmert Date: Thu, 5 Nov 2009 20:50:54 +0100 Subject: 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. --- crawl-ref/source/viewmap.cc | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) (limited to 'crawl-ref/source/viewmap.cc') 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 -- cgit v1.2.3-54-g00ecf