From e672992760d69a5991d113c6f8cac80f86a153ef Mon Sep 17 00:00:00 2001 From: Robert Vollmert Date: Sat, 21 Nov 2009 08:23:21 +0100 Subject: Beholder check now uses proper LOS. This should fix corners cutting mesmerization short (2901182). --- crawl-ref/source/behold.cc | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) (limited to 'crawl-ref') diff --git a/crawl-ref/source/behold.cc b/crawl-ref/source/behold.cc index 263affd500..0f9356c778 100644 --- a/crawl-ref/source/behold.cc +++ b/crawl-ref/source/behold.cc @@ -158,21 +158,10 @@ bool player::_possible_beholder(const monsters *mon) const { if (crawl_state.arena) return (false); - if (silenced(pos())) - return (false); - if (!mon->alive() || mons_genus(mon->type) != MONS_MERMAID - || !mons_near(mon) || mon->friendly() - || mon->submerged() || mon->confused() || mon->cannot_move() - || mon->asleep() || silenced(mon->pos())) - { - return (false); - } - - // TODO: replace this by see/see_no_trans. - int walls = num_feats_between(pos(), mon->pos(), - DNGN_UNSEEN, DNGN_MAXOPAQUE); - if (walls > 0) - return (false); - return (true); + return (!silenced(pos()) && !silenced(mon->pos()) + && see_cell(mon->pos()) && mon->see_cell(pos()) + && mon->alive() && mons_genus(mon->type) == MONS_MERMAID + && !mon->submerged() && !mon->confused() + && !mon->asleep() && !mon->cannot_move()); } -- cgit v1.2.3-54-g00ecf