git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10363 c06c8d41-db1a-0410-9941-cceddc491573
EJBSIWPWT3M4CAFYZURGRSHQZK2UTKDPUC2FMNVH5NIQNEGRV47QC BQ2BMSTVJSL5DLMPUGDCOBRC2VUZCDMSGPXMFM6SNYKMPKVBJUQQC 4QYXUNAH54YJPAHB42Z3PPG7MGWGZ3G6Q5V2GTVOAB4MWECG52IAC DCZMEKDHQWSQCQYQD6ZXB3XOMWLVLPSPVSBVVMPXMSZF7GO3BVCAC Y2NYY7HWFZ2LQDK3ACSLGS37F2J2IJ5LRGCIMZYXLEOSVPD3A4DAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC V633AMMPMHJB5ZLP5IHFXCT6FCENVTPX25TY7T5MF2QZLDDN24HAC XBXO44GTW26ELSWP4ZRCRIFOZO7JULKLV3IXAMGR2YZ5B7KVSIDAC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC X7JOMINLQPX4UKME767QOPYUJFQGCVW6KXJNUNUSOHKC44X5ELAQC R22TTMI6WXWULC7ODKFF3QCB7MOTETQQ6IR4BUCUPOCQKQNCTT5AC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC 22ZPAVDZLX4R66AODFVA56HH4T3XU62UUON6LYZG3GGTXCTD3YVAC const unrandart_entry* entry = launcher && is_unrandom_artefact(*launcher)? get_unrand_entry(launcher->special) : NULL;if (entry && entry->fight_func.launch){setup_missile_type sm =entry->fight_func.launch(launcher, &beam, &ammo_name,&returning);switch(sm){case SM_CONTINUE:break;case SM_FINISHED:return (false);case SM_CANCEL:return (true);}}
if (unrand_entry && unrand_entry->melee_effects_func)
// If bashing the defender with a wielded unrandart launcher, don't use// unrand_entry->fight_func, since that's the function used for// launched missiles.if (unrand_entry && unrand_entry->fight_func.melee_effects&& fires_ammo_type(*weapon) == MI_NONE)
void (*melee_effects_func)(item_def* item, actor* attacker,actor* defender, bool mondied);
// An item can't be a melee weapon and launcher at the same time, so have// the functions relevant to those item types share a union.union{void (*melee_effects)(item_def* item, actor* attacker,actor* defender, bool mondied);setup_missile_type (*launch)(item_def* item, bolt* beam,std::string* ammo_name, bool* returning);} fight_func;