//--------------------------------------------------------------------------------- bool CWeapon::OnActionFiremode(EntityId actorId, const ActionId& actionId, int activationMode, float value) { if (activationMode==eAAM_OnPress) { bool isDualWield = false; CWeapon *dualWield = NULL; GetDualWieldInfo(this,isDualWield,&dualWield); if (isDualWield) { if(IsWeaponRaised()) RaiseWeapon(false,true); if(dualWield->IsWeaponRaised()) dualWield->RaiseWeapon(false,true); StartChangeFireMode(); } else { if(m_weaponRaised) RaiseWeapon(false,true); StartChangeFireMode(); } } return true; }
//--------------------------------------------------------- bool CWeapon::OnActionReload(EntityId actorId, const ActionId& actionId, int activationMode, float value) { if(activationMode==eAAM_OnPress) { COffHand * offHandWeapon = NULL; bool isOffHandSelected = false; GetOffHandInfo(this,isOffHandSelected,&offHandWeapon); if (!IsBusy() && !m_modifying && !isOffHandSelected) { bool isDualWield = false; CWeapon *dualWield = NULL; GetDualWieldInfo(this,isDualWield,&dualWield); if(IsWeaponRaised() && m_fm && m_fm->CanReload()) RaiseWeapon(false); Reload(); if (isDualWield) { if(dualWield->IsWeaponRaised() && dualWield->CanReload()) dualWield->RaiseWeapon(false); dualWield->Reload(); } } } return true; }