diff options
author | Robert Vollmert <rvollmert@gmx.net> | 2009-11-21 08:23:21 +0100 |
---|---|---|
committer | Robert Vollmert <rvollmert@gmx.net> | 2009-11-21 08:24:34 +0100 |
commit | e672992760d69a5991d113c6f8cac80f86a153ef (patch) | |
tree | 007c40ae43eb59313cdc22df6b600c4950ecd27b /crawl-ref/source/behold.cc | |
parent | 5ea2782c48d0aac41586e80b76571d9bdcd25699 (diff) | |
download | crawl-ref-e672992760d69a5991d113c6f8cac80f86a153ef.tar.gz crawl-ref-e672992760d69a5991d113c6f8cac80f86a153ef.zip |
Beholder check now uses proper LOS.
This should fix corners cutting mesmerization short (2901182).
Diffstat (limited to 'crawl-ref/source/behold.cc')
-rw-r--r-- | crawl-ref/source/behold.cc | 21 |
1 files changed, 5 insertions, 16 deletions
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()); } |