git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7916 c06c8d41-db1a-0410-9941-cceddc491573
GSQRBVGYRLPXA34WXHXF5HNKDC4YEJ3XGKPVO4T3LKNEZHRGXQIAC
YVXBG7RWH64BDT6WPAPIEINOXRXLF2ROXK6HZVKBQHK2TOBAFK5QC
IA6EPF5ZQE6276Q4JSUKBSXHX5ODRY5I5UK7LXH4MQEDG36P6PZAC
3O5CA2Z7CWOR3EJ42WU2RHTYYTO337RFC65SPP6IFL4QZEMXUE4AC
7IAREA6ETDRIFRARG5MEAZMXQV44FQZT3VIWJG6AAZRIEFNHKNQAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
OYTCBRC7LE44EUVRZVYTOOVKQWJ6P6YE3FXTOGUTNKEMLNWPHKSQC
HAI4YDKI72OBDT5KMMVCO3DOU765OPWCU7GTRKTALFNSDOI4R2LAC
Y7CE44S72DPCI3JI4LJCXYLAFGFV7YNM37MNNS57HYDZ6AMNPUFQC
6EZYOF7W56XYRLZ7JSIX3DLQS7BOYVQP7TSSCNU7WIJT4FPZIM6QC
BINKDWGFGUPTOA7IE5KK4ZIELGU5WC3X47MYXOWU4X43EGAC5DUAC
PES2QAPAJTLHZORDXNJWKK4VWRDCGXMOVVFI2TQALCPB5JUPHCVQC
SIDH2P7NBIG5KEOE27XHD3ZT2NQ2OJZFN6VZXWNWYFFY5YVXSSVQC
DL4ZORRUZ3X4OCAGW5GVSIXLNK72KFHQOVA5QXU5QHT4YPRLFS2QC
FLM7F5BSK57VURQXINSR5KD5O3TPFYBRMLJ5IVESAAYF2VQUQWAQC
BNRY5YIXLFE2TDNU2JQHWWXJQVWNSEWQ52DU7XUWIT5DZWKGBDDAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
ADIVVYTV2MJ3XVRYDNBLPTAEACCNF27XZDCRVZFQEHRHPMZGNITQC
5B5DP5S6A6LQMKZYVLQAEMHQZWFWYDHPCKQGRNSCNNYIBQYZ6BIQC
5XNQ3SSNBFXFNWA6DPM74W6FH65NX665P3DMH6YCWVFOPZTJSYCQC
// Return true for monsters that can't use stairs (so that friendly
// monsters adjacent to them can still follow you through stairs),
// but don't tag them as followers.
if (fmenv->can_use_stairs())
{
// Monster is chasing player through stairs.
fmenv->flags |= MF_TAKING_STAIRS;
// Monster is chasing player through stairs.
fmenv->flags |= MF_TAKING_STAIRS;
// aren't pushers and shovers, zombies are zombies. Worms and elementals
// are on the list because all 'w' are currently unrelated.
// aren't pushers and shovers. Worms and elementals are on the list because
// all 'w' are currently unrelated.
// Skeletal warriors can push past zombies large and small.
if (m1->type == MONS_SKELETAL_WARRIOR && (mchar2 == 'z' || mchar2 == 'Z'))
return (m1->hit_dice > m2->hit_dice);
// Monsters that are smart enough to use stairs can push past monsters
// too stupid to use stairs (e.g. zombies).
if (m1->can_use_stairs() && !m2->can_use_stairs())
return (true);
// Monster has to be already tagged in order to follow.
if (!testbits( fmenv->flags, MF_TAKING_STAIRS ))
// The monster has to already be tagged in order to follow.
if (!testbits(fmenv->flags, MF_TAKING_STAIRS))