so we don't have to check in multiple places to make sure that "comes into view" is given before any of the other monster messages.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8572 c06c8d41-db1a-0410-9941-cceddc491573
DGPZZUWTMWADFTFLZ37DHWXXDXMBZHROCFTYL472HI6ETGEK6CBAC
7TC5S2NB46NFPXQKVXUYA26DZ2OE42WWE7RUSBJHXQPUGAWHIFMAC
KU24G7SOF24W2LGKQSIGFNBZQYET6H7UMUZM2JVOH5NT6IDIQBRQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
ANOEQTM6IGCBTESKKQ5PCBSDTZ7VGRCMDIOAFEH4R7DJHKWKDFAAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
KYGKLJ3SYIIDSHRSFQUZCDHUIFU7D7EB6QIPIWGCWIAWZCLLUAIAC
JJULXW764V5C2HJKZNWQAEWB6QM5YZADD7ZCE35LYTBFEM6PMYCAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
X3RDT655FEYO6XEVPIUAPEPJZAFE55KZBH2AZOLK3NGHINMVIGFQC
PEXHYCLRKDG2PVOJ3DDCMUZUK2HTSPU5WKH4MODFL4FTBQRQTY5QC
OONYLF4DAPLIYLBNNRW74IVT5BBTWI4XHQBXSNSPVRX3FTKJBTRAC
SHFSQYLN7WPQC35V3XYYEIZ4CQMREASUNR474CIKFG3C2FYI4SHQC
PFEJ4LMDNEKLMGRCMWQ7EIRVU4JMYGICI4G7X4WVWOROVXQCBZ7QC
J6APXOT4QOGQFONWB7G546VTVF6QG42HVOROMHF7YBDJPR4K26OAC
OYDRBUMH4VNI7MIUQIKNNZQWVTVTLHQX7NWN6BPUBLPTUW5HFEBAC
75M6AVUSS3G5EJECJJRB67V5UYDOIV26FZNB2FFCMBZ33EK7FVIQC
WT66JDIRTLLP37SHTV4GI3V64JFJ4D25LNRLGCHFG6CLEFKJ3QGQC
UWMN4HLG6YA2YFQEVIVMDISD6APKEPIZXMMPMNUYCBQDSAUYSXPQC
LLKV4OYGEDB4GVJS5JVBZP5JQFW7VMPZ2CBRSITJ5XCFS3QNWIBQC
5BJPWUPLJFS34FUTFJVKA4A52YMIGV6EWDXLNSDCWBJWBGVSQFGQC
GZGHMS7PHX5HPU66QXVWDELSIVA76PLB4OF734KSPKL3SETFIIOQC
XYBPIU6AQ77EID4VNOMI7KQZULZI4VBZHHIGBRYO7QRJVCODEKYAC
ZP3NQKBA35ZHPLGIZDNPU5RVCG6HQ2JDLVDGCZ6JGL4UEDUUWWGAC
DHNUPA6HR4UKT2RDHOPPVMKCAGQNRWF4NYJIKIJEHK5AZFAX3HQAC
IYMUEJG2VI3TV7HVAZIU2L4DVQY7VNSIFVV4I3QIVP7H66EVJISAC
BA3OER3VNFRQUCAFCOOMGD62TXTQTOTDZ4VYNXZ2WWBYF2VICMRAC
ZNMT5CZHP2FC4HTLNA7KYEDGFBXSCUE5QHJOALVPE6RDPHSEDXRQC
LFBNFE3PZBXTR2ROPKYPARUWLJAYWAKGTS7VBWADZWVVSJ5CLX6AC
QRD2M37AMG76CPGCALZQ3N2PZ3OZ3MFETMVAEHBJJVVH2BCPVGUAC
static bool _mons_was_seen_this_turn(const monsters *mons)
{
return (monsters_seen_this_turn.find(mons) !=
monsters_seen_this_turn.end());
}
if (player_monster_visible(monster)
&& !mons_is_submerged(monster)
&& !mons_friendly(monster)
&& !mons_class_flag(monster->type, M_NO_EXP_GAIN)
&& !mons_is_mimic(monster->type))
{
monsters_seen_this_turn.insert(monster);
}
if ((player_monster_visible(monster)
|| _mons_was_seen_this_turn(monster))
&& !mons_is_submerged( monster ))
{
_handle_seen_interrupt(monster);
if (monster->attitude == ATT_HOSTILE)
num_hostile++;
if (monster->attitude == ATT_HOSTILE)
num_hostile++;
}
else
if (player_monster_visible(monster)
&& (!mons_is_mimic(monster->type)
|| mons_is_known_mimic(monster)))
// Make sure the "comes into view" type messages are displayed before
// the spell is cast.
if (monsterNearby && player_monster_visible(monster)
&& !(monster->flags & MF_WAS_IN_VIEW))
{
fire_monster_alerts();
}
// Make sure the "comes into view" type messages are displayed before
// special/nearby abilites are used.
void _flush_monster_alerts(const monsters* mons)
{
if (!(mons->flags & MF_WAS_IN_VIEW) && player_monster_visible(mons)
&& you_are_delayed())
{
fire_monster_alerts();
}
}