git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6609 c06c8d41-db1a-0410-9941-cceddc491573
EDGP3KBYHBZ62J6RSGWDMWG4AARB2D3ULKELML5H3S4EDWTWUD7QC
NWUWP5QCMJ7ZZMLCVB74PW7HDEFB6ICEQHNDHCGG7UWDQNNLGVMQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
KEANRIMF5CGFVZ2XJYNFPOAKLXOSOJUOVA73IWBWOG576265ERHAC
HIPFIMUOA7DFOFV3DQ55YZJVGNU2GNDYFUCB4MRPUR5DTYDO5YMAC
DKRSOHZXL6EPSLKOKHF7GJXSZEJVY7CXGACSHWLM5B5FTRETWWCAC
EWC3J3FZP62OZWT3JBBPNPZUB7NR5ZF6MAJNMPCVV75E3TFBFYYAC
F2ZJ55CL3T66DFM34BQWCJNHIT4XJFCGTWTA5KESV6NHWFLTGUYAC
coord_def loc;
if (swap_check(monster, loc))
{
swap_places(monster, loc);
return true;
}
return false;
}
// Swap monster to this location. Player is swapped elsewhere.
bool swap_places(monsters *monster, const coord_def &loc)
{
ASSERT(map_bounds(loc));
ASSERT(_habitat_okay(monster, grd(loc)));
mpr("You swap places.");
mgrd[monster->x][monster->y] = NON_MONSTER;
monster->x = loc.x;
monster->y = loc.y;
mgrd[monster->x][monster->y] = monster_index(monster);
return true;
}
// Returns true if this is a valid swap for this monster. If true, then
// the valid location is set in loc.
bool swap_check(monsters *monster, coord_def &loc)
{