Fix monsters "upgrading" their ammunition even if its brand cancels out with the launcher. Also make sure monsters aren't generated with launcher/ammo with opposing brands. Fix 2021310: no longer disallow blowgun acquirement.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6601 c06c8d41-db1a-0410-9941-cceddc491573
VCQYSNAWZZHOZMARWQ4AJBDNFSS7T7CZBQISSPZ2YIIK5PVAWPRQC
74ETEQCJPMFG26EEH6SNDQNOWYZ2JBRFXGBQ3MMCGQPSVGSTIJVQC
LMRRQE4ZXQYZPXVGBTDZP7LEIM6OGSSOOQ5FAOWXJCDCNCECX5VAC
5FZYO6GQ5DWJFMRHCFSLAI4NVGK2HJ6RE7BLHBVTNQJHN75K5LUQC
ASVNIDMX6ZIPYBGVSMT4T6HU6A75UKSZBHTWBSNI5H3RVSTFUBAAC
EZ3ZUOFAHXI73BSCXNYS36TTK4OGCQBSFEIRVNXUAE64ZVKDW5PAC
PBKRKGKARGZSLVFVDTK5NWDXQD26NHNN67LDSSB75CLEWBR6TLEQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
V4F3SDV2H4HBH6G6W5M3REN3BDSSE4IDF2RNM7PJMKRW3IDJ7PNAC
KK5IGMPS7OBB2LA7SMGWVR534Q4LYKUD2MESO5IAMOKLNBBDWOMQC
5SKXI22WN2Y4SWUG634WDB7QXLBNV54RPN5OHAXRI55OFM5YBF5QC
47RJZCYIM3B7IXJT7FFT6NBZZREY6REK5DZWKZ5E7G66BXEXFN6QC
QS3ZRS3E6KL3YJHPKYEWCWJYRBJSXD5OOYF6Y25HZVECGPJRDB5QC
HAM54HXIO2245W6REO4RZDY2QMIH476AWWJSMYAMSYYNEBBJSHWAC
R3ZUGT5VJ2DG5NFPG4RBWDWTULDE7L4REYSGVPHJPDXFG6OBIXYAC
VXSORUQOM2VZA4CAZDC6KPAY373NQIN3UT7CXQXTRCYXO2WM62DAC
TO43FWKHNIA5MVDOFXYHQODTLBQYEZKX5UIUGID57436UF7G2EXQC
QCUMH3C7GXV7ZW444WT5SFAXQOJKJSE2YCQCEHMRYXCWF4QI7UMAC
Q3XHNSHW6FI4JCXSEABATRFBJPMCF7PXNG2K6ZQTRRPVMIZFHUBQC
Q3DNEB5OOJ34P5ML4CMK3L6SCP7RLW7DDOZEG24KZBX3C7BJRQDAC
DTO3EUKWHZ5RJNGNCFYXSOVTIPVXPP637F2W7WFGYKJ7JK7VNKNQC
TZ2SH2SPO5TFSFL2OCV5A32P2X4CRHEKEK7ENUFCBVF3RKUWAD4AC
5KJCHLIUFKRPMIVWUAYT6EOF7SW4PTQF6Y5OPEFWXGLE7DUGYLZAC
7YUGK5Q64KG5O7GJGTUBRRLHAHBCJ5YOE23YUPT6UBKUSB67CYAQC
5V47S4NNTHWTSAHV3YLO2VGH7JTUIYJ3GBPDN5ZM4UQALT2ZEXDQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
ABLV37FMURRJPEZV2VRKOUYAKEMLI7E6RA4PDAII2EJ5L7WBHKZQC
if (((item.base_type == OBJ_POTIONS
&& item.sub_type == POT_MUTATION)
|| (item.base_type == OBJ_WANDS
&& item.sub_type == WAND_POLYMORPH_OTHER))
if ((item.base_type == OBJ_POTIONS && item.sub_type == POT_MUTATION
|| item.base_type == OBJ_WANDS
&& item.sub_type == WAND_POLYMORPH_OTHER)
// FIXME: A monster already wielding a melee weapon can put a second-rate
// weapon into its alternate slot but never use it.
// To fix this, this strange loop will have to be improved:
// - get weapons of first and second slot
// - compare weapons (or their non-existence) to the new one
// - ignore ranged weapons (we're picking up a melee weapon)
// - replace an existing melee weapon by a better one
// - else don't do anything
else
{
// Sanity check to avoid useless brands.
const int bow_brand = get_bow_brand(*launcher);
const int ammo_brand = get_ammo_brand(mitm[thing_created]);
if (bow_brand == SPWPN_FLAME && ammo_brand != SPMSL_NORMAL
|| bow_brand == SPWPN_FROST && ammo_brand != SPMSL_NORMAL)
{
mitm[thing_created].special = SPMSL_NORMAL;
}
}