summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/view.cc')
-rw-r--r--crawl-ref/source/view.cc19
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();