git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1771 c06c8d41-db1a-0410-9941-cceddc491573
Y4WR4EIOFFXHRQI2PJAZWD4MVL6A7MNBHLN4KOV6BIKGGA7FXQTQC
YLWMDMNLJOERFAGH5RIFTRWLGCEOWAD4GIWUIXKYA7EE3EWHCVAQC
QS3ZRS3E6KL3YJHPKYEWCWJYRBJSXD5OOYF6Y25HZVECGPJRDB5QC
7KWDC7XFNMBLSUO2HISIROBINZBX5T67LJEEXTAORXW2YZ7VWFGAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
SW3RLYFNRT3IJBK6LYKHKP2J2YDU7SXQWAJZX7U6S7ICYW43OMNQC
E5DMZFW6WCFAKTKKOQPYTQXZ2CGLWMVH64LRXDUI2UIG4VYUHIVQC
for (int iy = s.y; iy <= e.y; ++iy)
{
for (int ix = s.x; ix <= e.x; ++ix)
{
if (!in_bounds(ix, iy))
continue;
if (!in_bounds(place))
return (false);
if (place == you.pos())
return (false);
if (mgrd(place) != NON_MONSTER || grd(place) < DNGN_FLOOR)
return (false);
x = ix;
y = iy;
return (true);
}
bool monsters::find_home_around(const coord_def &c, int radius)
{
coord_def place(-1, -1);
int nvalid = 0;
for (int yi = -radius; yi <= radius; ++yi)
{
const coord_def c1(c.x - radius, c.y + yi);
const coord_def c2(c.x + radius, c.y + yi);
check_set_valid_home(c1, place, nvalid);
check_set_valid_home(c2, place, nvalid);
return (find_home_in( you.pos() - coord_def(1, 1),
you.pos() + coord_def(1, 1) )
|| find_home_in( you.pos() - coord_def(6, 6),
you.pos() + coord_def(6, 6) ));
for (int radius = 1; radius < 7; ++radius)
if (find_home_around(you.pos(), radius))
return (true);
return (false);