git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6043 c06c8d41-db1a-0410-9941-cceddc491573
5CRNBCK3AH6UGZN4R5MZ47UCVYYA3CKFXYPKEPZWRTBJ5PIGDB6AC
5QZ2QFANEJ6QDBWLEWB6ZQARUB4LJHOLU7GURJJT3RKR2C6BWPSQC
IQVLEFABSOHRW24PGIX6XGDJQJG5NXYWLZTKE2V26ZS3OPMH2IZQC
2RMAZBQKZQX7OCQ3AFHNJUKU34A33R7O4UAWGAXMPONLYJI5TEXAC
F4FAPEZ5P5CPHZIHUSRYULB3LY4LOJCUC7DZAYVL77LFFBUBCUNAC
VNB7OLRPCC7ITTUKYLQ4SDV25QD2XZHXOYXDCIRJ2OTF2U4VZFWAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
EUK6RUR53DH5VHNWUCK6LPU4IKDWPOLA7GFAJ6GABH6WIUT2DRBAC
U56SICUKK36SJAG3QKV4WGDSAXOW5BELRPZGHTRAMZVUV56AESVAC
if (range == -1)
range = LOS_RADIUS * 2;
// Sweep every square within range.
for (radius_iterator ri(mon->pos(), range, true, false); ri; ++ri)
for (int y = 0; y < GXM; ++y)
// Shaft traps.
trap_type tt = trap_type_at_xy(ri->x, ri->y);
if (tt == TRAP_SHAFT && _is_trap_safe(mon, ri->x, ri->y))
e.push_back(level_exit(*ri, MTRAV_TRAP));
// All types of stairs.
if (is_stair(gridc))
e.push_back(level_exit(coord_def(x, y), MTRAV_STAIR));
// Any place the monster can submerge.
if (monster_can_submerge(mon, grd(*ri)))
e.push_back(level_exit(*ri, MTRAV_SUBMERSIBLE));
// Shaft traps.
trap_type tt = trap_type_at_xy(x, y);
if (tt == TRAP_SHAFT && _is_trap_safe(mon, x, y))
e.push_back(level_exit(coord_def(x, y), MTRAV_TRAP));
// Any place the monster can submerge.
if (monster_can_submerge(mon, gridc))
e.push_back(level_exit(coord_def(x, y), MTRAV_SUBMERSIBLE));
}
}