git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7465 c06c8d41-db1a-0410-9941-cceddc491573
KKJUHD576DZVDDQ7JFBAO7S35DAPIMZNOYVLAUBDOTTUGR4Q53JQC
CUM44NOPIB7LGTRY2O2R5MYXAB27R3TFM6LUBEQHZFXLZWJ55QZAC
IL3QYB75HIQQULVII3MPZKFXJAM7EE73MBHYK6I3EJQLFXRHO6LQC
Q3B3UVMYEVC4YJUPYVSNTR4DJH4E6J4JJDHZNT5LNOCHCPPMEMXAC
LDFSITXKT52MLJJYOKDEFNLOEYIIV4ZOZHFH3U7PYSUNKF2KBIVQC
ESWIM76FGJL4QFLSHU6AC4D74PT7OPLQ7ZCJYWLZS5UCBAJDXYHAC
SYXSZQICCRNKCSZ4HDO24JIE5HBVMWFWLXXM26MS3OKB37PJOAVQC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
5V47S4NNTHWTSAHV3YLO2VGH7JTUIYJ3GBPDN5ZM4UQALT2ZEXDQC
R3ZUGT5VJ2DG5NFPG4RBWDWTULDE7L4REYSGVPHJPDXFG6OBIXYAC
GDRQMRZTPLRZYBEIJ5AXH3NVKKOQEB5HNG6VFBVZF6JWO7XCOBKQC
FLAGBNUNSIQNFDN53CDWABJRTTFWDL4PG34AI474ZKPXDEPYHOAQC
KBVTXJP6BGK4LE3VKCIDBJHRBJXJNWZCN5MKJEYCLT5SVZFQMLRAC
YOZHWGKGPWZGHQYNMMBHNGDO2UEVIHPOR6UF3SEZPIYWVMBGWBOAC
ASLW3Z5PAVZSWJEMMMVZT226P44EKSAD47QS72JIFJESAI3RPN3AC
R22TTMI6WXWULC7ODKFF3QCB7MOTETQQ6IR4BUCUPOCQKQNCTT5AC
3V52MSSK7QX7FWLLUW63DTWCBAJEK674EFZLKP45FLZ5KZKVARHAC
247OW5JFN34ZV3GRVHRE25AXLLISUBPOX5YRGUE64BCM2V7QNEHAC
AVCMVFA3MKCXHO6H44UK5KJNIHTGQV7UA7GYXM26VI6TXXU5ZN6QC
UWI3ZNJDRQRL7CXFNFEG46TA6SAK24XUFY5YOKVOTJA3VG3OBNFAC
7BBEAPSUBQMBK4XC2Q6YJ2JPSVSPCSBJUYXM6EWXHNTQG4AEJX3QC
bool is_range_weapon( const item_def &item );
bool is_range_weapon_type( weapon_type wtype );
missile_type fires_ammo_type( const item_def &item );
missile_type fires_ammo_type( weapon_type wtype );
const char * ammo_name( const item_def &bow );
const char * ammo_name( missile_type mtyp );
bool has_launcher( const item_def &ammo );
bool is_throwable( const item_def &wpn,
size_type bodysize = SIZE_MEDIUM );
bool is_range_weapon(const item_def &item);
bool is_range_weapon_type(weapon_type wtype);
missile_type fires_ammo_type(const item_def &item);
missile_type fires_ammo_type(weapon_type wtype);
const char *ammo_name(missile_type ammo);
const char *ammo_name(const item_def &bow);
bool has_launcher(const item_def &ammo);
bool is_throwable(const item_def &wpn, size_type bodysize = SIZE_MEDIUM,
bool force = false);
bool is_range_weapon( const item_def &item )
{
return (fires_ammo_type( item ) != MI_NONE);
}
// Decide if something is launched or thrown.
launch_retval is_launched(actor *actor, const item_def *launcher,
const item_def &missile)
bool is_range_weapon(const item_def &item)
if (missile.base_type == OBJ_MISSILES
&& launcher
&& missile.launched_by(*launcher))
{
return (LRET_LAUNCHED);
}
return (is_throwable(missile, actor->body_size()) ? LRET_THROWN
: LRET_FUMBLED);
return (fires_ammo_type(item) != MI_NONE);
// Decide if something is launched or thrown.
launch_retval is_launched(actor *actor, const item_def *launcher,
const item_def &missile)
{
if (missile.base_type == OBJ_MISSILES
&& launcher
&& missile.launched_by(*launcher))
{
return (LRET_LAUNCHED);
}
return (is_throwable(missile, actor->body_size()) ? LRET_THROWN
: LRET_FUMBLED);
}