Also, implement the second part of FR 2820876: Xom will no longer confuse the player if there's adjacent deep water or lava. This restriction doesn't apply if Xom is feeling nasty (penance or bored) and there's also no checks for water/lava further away.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10255 c06c8d41-db1a-0410-9941-cceddc491573
LZN527GR3AULRHWIBA537RR4WSCNNYY4XSEZ6VFF7TKGYSUSBOCAC
SCRNLNQV4NWVMD7346D2DD23SWBH2TDI4QVG7WUZ7XRBHVRRQLMAC
4S7GTHOCXO5MLS3DKSZWUYYZFBVNHDG6RFJONUALXVA7CCPFKXKAC
T35C4BT4CWYKGMASO5FST5L3OKLIB6Q7URQGI5VWFZ4U2P6K6NXAC
FLCMF4OKGGHPSRXICA3KFTCVZEIBU4K6M5GMJYGLWMKXJO6PEOJAC
NL5DQGICRRUY7VIT6VKMDGD5M7PBESF2KS4XQQ5B6VA6LNR5O7MQC
R25VQ2MUGGDTO5UZR2DPO5XUYSA3LB6RIEBGLJ6CD75T2GED2ZNAC
GJBUM2B6VECYVSAWUQAG64MDJ4MUHTACSTDDVPEKRDBGBX4HPQLQC
43XCHFXZ34FDVT2QG23RZ65V6NRBY6PE3ENQEEDXFYKRR7IRFHCAC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
XRZPPYWPWUOM4SFNI6BHKH2UKJQNLKOV6Y7XIEPEZXE5QYRT26PAC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
WSUGPG4GWKAV3DINPD5LYP6W3GNFKIFWR3UXQGOQFSLIG5PLOEMAC
HB27XKFYVYIEQZGBCEZ6LKPUBMXLIPDAAS636GJ5TULIQ7KND5KQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
5HGMULU7IWTFJJH35S6XTCW3YZEMCORXHQL6NVY2TO4DUMVITNJAC
ZI7643NG3LOKVSDXHFNV2YU3ZIQUVEY25AOXZCPBXJB5SQAUCE6QC
VWYVIRKY35DS4V6HJXEZK3O2NJWNA3LAARRXITR35GIE2HMQK55AC
KNPYFBNK3GESOQDGE2HH2EMUBQQIHUFYL6RQW2EFHCN2O2UGWDKAC
IJ4GH6RYJYT4METQIJYT3IITJEHZ4IAF4WBPA5RH6RSYX4KHXMYAC
3M6SEWGBU6ZLET5Z2XJ4NVODXZX2BKXUIY6ZI7KYZZVDS47E6MVQC
AUXVWXWIFSTWFA6VZXN2FMG7FQEKRZVV6MD32VQQ7J2RKCXHAVGAC
SIDH2P7NBIG5KEOE27XHD3ZT2NQ2OJZFN6VZXWNWYFFY5YVXSSVQC
QTGDLSVMXXROGGKE7JRHRJ7GQIQM3CAB2ETBB4FW6WRDR7VCFO3QC
PKENI7REL6MQ5KKGSBIOVMPJKITY6OLQRXHVD4Z6PU7HMS23XM7AC
ZGUJWUFJ4NFFJ6PGXLFGQWCWBCZHPWGWI44NJHJEVPRG5L36PADQC
542UIZKI65UDRNEMGFFDBWYD5XC7AYLTZ3JZQRR2GHYJALD3YY6QC
R3ZUGT5VJ2DG5NFPG4RBWDWTULDE7L4REYSGVPHJPDXFG6OBIXYAC
NVSFIV2ZKP44XHCSCXG6OZVGL67OIFINC34J2EMKTA4KULCERUEAC
M6JQ7Z4RM3KUHVM74UNVUUUO4WV2CEW663CSHCKANVQ4PUVRIMFAC
QS3ZRS3E6KL3YJHPKYEWCWJYRBJSXD5OOYF6Y25HZVECGPJRDB5QC
HCZZLSYJT66RSTFJWQIVTDBDJBSDXNHSC7V5WJZOUD52IF5MJGBQC
XIDD2TZUOXG6DAMK7OQU5MUKVIEHQWJIJL5BVOTCVY33EPWJNX4QC
VSXFXNKXKVVHNDE3IRQQLT5NZJNVYFZI5634RO6GZE35UFFKHIPAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
RVGFSBOM6ZKEFVVGROSW454QSLU4J6TSRU4D6EQMXD4CWQ4UN3TQC
NG53L53MSFQZAIVKHG54IEMXNJ33AYVPF2OZM4MMJFDKEJCGPBSAC
IA4AZVXJEZP6QRPKUUPBLZQWY36PSN4UMGXVLINXJNTKJR2NXHEAC
IGN3Q5YCLHXKWFZQRSRABCHW2JFW5TFVU7TM5EXE2EW7PDBBSQWAC
QGO7GCZ2JHPK7TKSBTLEUQ4P3O6XPZTL22MVQSAXBLJR47VNM6ZQC
TGJZXTUIAKCFZQJ54ZQEBGFBVZSJCAX6AWDRSH3TP7UJRLGUM5SAC
GSJA56E3ORVIBCBA6T6WU2HE4DCLJ6NZPW76O7L54N4CYPKLJOWQC
TO43FWKHNIA5MVDOFXYHQODTLBQYEZKX5UIUGID57436UF7G2EXQC
OMTU7OMVWDVAGJCQGQJDZ3YU252T6IM2LPS2ZMPWB7MIXCJK62AQC
2Z6IWKMEWE4OIFVWFSZBA2SIXMBJNV6H6LNEPOXTJZW433ABU4EQC
R22TTMI6WXWULC7ODKFF3QCB7MOTETQQ6IR4BUCUPOCQKQNCTT5AC
FJCG7QPYI2ON5QIGUZDIA6KTJP2BOU45K5ZE6HOEUSLZTEW2YW6QC
6L4EP4ZRWWYLT55PD5KTTJON5J2JB5VV5MWNHF5VPZQZ5BKEYZ4QC
G7ZXJ4RUQB3U5NL2DEWXMTHRRDT7WTONWKTPOOGWFCE46ZWUVLOQC
7YUGK5Q64KG5O7GJGTUBRRLHAHBCJ5YOE23YUPT6UBKUSB67CYAQC
YZDUBIAT6TBWILPMUACASUTVW3CKHPNZ6LJQGJGEE7RLXWXCZOGQC
SNSU5AMDAZNG55NQ4JDHU2YBK62MXPIE2QTSYS7PGV7Y2N3VJBFQC
QLEBDRVUQ3BMCT7LV4EBPG7T5X4KMQJAVLMLHHB7DRCNNGDQBRNQC
UADYVV3UD5ERJTZZJGY4EUQ4NJ2JSBG7YYUJ75ZRBIXRQXQKOJPAC
UDDZ7BNFAK3BDG5UIOMEDWGH4XRJOWV4AERTZOJ7VT6IOKBP4EIQC
V633AMMPMHJB5ZLP5IHFXCT6FCENVTPX25TY7T5MF2QZLDDN24HAC
// Monsters may now pick up several items in the same turn, though with
// reducing chances. (jpeg)
bool success = false;
// Monsters may now pick up up to two items in the same turn. (jpeg)
int count_pickup = 0;
snprintf(info, INFO_SIZE, "Really %s %s%s?",
(beam_attack) ? (beam_target) ? "fire at"
: "fire through"
: "attack",
mon->name(DESC_NOCAP_THE).c_str(),
(inSanctuary) ? ", despite your sanctuary"
: "");
std::string verb = "";
bool need_mon_name = true;
if (beam_attack)
{
verb = "fire ";
if (mon_target)
verb += "at ";
else if (you.pos() < beam_target && beam_target < mon->pos()
|| you.pos() > beam_target && beam_target > mon->pos())
{
verb += "in " + mon->name(DESC_NOCAP_THE) + "'s direction";
need_mon_name = false;
}
else
{
verb += "through ";
}
}
else
verb = "attack ";
if (need_mon_name)
verb += mon->name(DESC_NOCAP_THE);
snprintf(info, INFO_SIZE, "Really %s%s?",
verb.c_str(),
(inSanctuary) ? ", despite your sanctuary" : "");