diff options
Diffstat (limited to 'crawl-ref/source/view.cc')
-rw-r--r-- | crawl-ref/source/view.cc | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc index fd31a7edae..dd080ef687 100644 --- a/crawl-ref/source/view.cc +++ b/crawl-ref/source/view.cc @@ -907,17 +907,30 @@ void fire_monster_alerts() { if ((player_monster_visible(monster) || mons_was_seen_this_turn(monster)) - && !mons_is_submerged( monster ) - && !mons_friendly( monster )) + && !mons_is_submerged( monster )) { - if (!mons_class_flag( monster->type, M_NO_EXP_GAIN ) + if (!mons_is_safe( static_cast<const monsters*>(monster) ) + && !mons_class_flag( monster->type, M_NO_EXP_GAIN ) && !mons_is_mimic( monster->type )) { interrupt_activity( AI_SEE_MONSTER, monster ); } seen_monster( monster ); + + // Monster was viewed this turn + monster->flags |= MF_WAS_IN_VIEW; + } + else + { + // Monster was not viewed this turn + monster->flags &= ~MF_WAS_IN_VIEW; } } + else + { + // Monster was not viewed this turn + monster->flags &= ~MF_WAS_IN_VIEW; + } } monsters_seen_this_turn.clear(); |