From 3738559721d08c98bbf42b5debddee0cac63196b Mon Sep 17 00:00:00 2001 From: haranp Date: Tue, 17 Feb 2009 20:41:45 +0000 Subject: Fix [2604363]: stashes and autoexplore leaked information about mimics. (Incidentally, if you walk into a mimic by accident, the stash won't go away until the next turn. Technically a bug, but a minor one.) git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9118 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/view.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'crawl-ref/source/view.cc') diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc index 5bda2008f4..fa5994034d 100644 --- a/crawl-ref/source/view.cc +++ b/crawl-ref/source/view.cc @@ -964,7 +964,7 @@ void beogh_follower_convert(monsters *monster, bool orc_hit) static void _handle_seen_interrupt(monsters* monster) { - if (mons_is_mimic(monster->type) && !mons_is_known_mimic(monster)) + if (mons_is_unknown_mimic(monster)) return; activity_interrupt_data aid(monster); @@ -1309,9 +1309,14 @@ void update_monsters_in_view() if (monster->attitude == ATT_HOSTILE) num_hostile++; - if (player_monster_visible(monster) - && (!mons_is_mimic(monster->type) - || mons_is_known_mimic(monster))) + if (mons_is_unknown_mimic(monster)) + { + // For unknown mimics, don't mark as seen, + // but do mark it as in view for later messaging. + // FIXME: is this correct? + monster->flags |= MF_WAS_IN_VIEW; + } + else if (player_monster_visible(monster)) { if (!(monster->flags & MF_WAS_IN_VIEW) && you.turn_is_over) _handle_seen_interrupt(monster); -- cgit v1.2.3-54-g00ecf