@ -29,7 +29,12 @@ float signedAngleRadians (const osg::Vec3f& v1, const osg::Vec3f& v2, const osg:
return std : : atan2 ( ( normal * ( v1 ^ v2 ) ) , ( v1 * v2 ) ) ;
}
bool applyEnchantment ( const MWWorld : : Ptr & attacker , const MWWorld : : Ptr & victim , const MWWorld : : Ptr & object , const osg : : Vec3f & hitPosition )
}
namespace MWMechanics
{
bool applyOnStrikeEnchantment ( const MWWorld : : Ptr & attacker , const MWWorld : : Ptr & victim , const MWWorld : : Ptr & object , const osg : : Vec3f & hitPosition )
{
std : : string enchantmentName = ! object . isEmpty ( ) ? object . getClass ( ) . getEnchantment ( object ) : " " ;
if ( ! enchantmentName . empty ( ) )
@ -40,18 +45,13 @@ bool applyEnchantment (const MWWorld::Ptr& attacker, const MWWorld::Ptr& victim,
{
MWMechanics : : CastSpell cast ( attacker , victim ) ;
cast . mHitPosition = hitPosition ;
cast . cast ( object ) ;
cast . cast ( object , false ) ;
return true ;
}
}
return false ;
}
}
namespace MWMechanics
{
bool blockMeleeAttack ( const MWWorld : : Ptr & attacker , const MWWorld : : Ptr & blocker , const MWWorld : : Ptr & weapon , float damage , float attackStrength )
{
if ( ! blocker . getClass ( ) . hasInventoryStore ( blocker ) )
@ -215,9 +215,9 @@ namespace MWMechanics
damage * = gmst . find ( " fCombatKODamageMult " ) - > getFloat ( ) ;
// Apply "On hit" effect of the weapon
bool appliedEnchantment = apply Enchantment( attacker , victim , weapon , hitPosition ) ;
bool appliedEnchantment = apply OnStrike Enchantment( attacker , victim , weapon , hitPosition ) ;
if ( weapon ! = projectile )
appliedEnchantment = apply Enchantment( attacker , victim , projectile , hitPosition ) ;
appliedEnchantment = apply OnStrike Enchantment( attacker , victim , projectile , hitPosition ) ;
if ( damage > 0 )
MWBase : : Environment : : get ( ) . getWorld ( ) - > spawnBloodEffect ( victim , hitPosition ) ;