//----------------------------------------------------------------------------- // Purpose //----------------------------------------------------------------------------- void C_BaseViewModel::FireEvent( const Vector& origin, const QAngle& angles, int event, const char *options ) { // We override sound requests so that we can play them locally on the owning player if ( ( event == AE_CL_PLAYSOUND ) || ( event == CL_EVENT_SOUND ) ) { // Only do this if we're owned by someone if ( GetOwner() != NULL ) { CLocalPlayerFilter filter; EmitSound( filter, GetOwner()->GetSoundSourceIndex(), options, &GetAbsOrigin() ); return; } } // Otherwise pass the event to our associated weapon C_BaseCombatWeapon *pWeapon = GetActiveWeapon(); if ( pWeapon ) { // NVNT notify the haptics system of our viewmodel's event if ( haptics ) haptics->ProcessHapticEvent(4,"Weapons",pWeapon->GetName(),"AnimationEvents",VarArgs("%i",event)); bool bResult = pWeapon->OnFireEvent( this, origin, angles, event, options ); if ( !bResult ) { BaseClass::FireEvent( origin, angles, event, options ); } } }
//----------------------------------------------------------------------------- // Purpose //----------------------------------------------------------------------------- void C_BaseViewModel::FireEvent( const Vector& origin, const QAngle& angles, int eventNum, const char *options ) { // We override sound requests so that we can play them locally on the owning player if ( ( eventNum == AE_CL_PLAYSOUND ) || ( eventNum == CL_EVENT_SOUND ) ) { // Only do this if we're owned by someone if ( GetOwner() != NULL ) { CLocalPlayerFilter filter; EmitSound( filter, GetOwner()->GetSoundSourceIndex(), options, &GetAbsOrigin() ); return; } } C_BasePlayer *pOwner = ToBasePlayer( GetOwner() ); if ( !pOwner ) return; ACTIVE_SPLITSCREEN_PLAYER_GUARD_ENT( pOwner ); // Otherwise pass the event to our associated weapon C_BaseCombatWeapon *pWeapon = pOwner->GetActiveWeapon(); if ( pWeapon ) { bool bResult = pWeapon->OnFireEvent( this, origin, angles, eventNum, options ); if ( !bResult ) { if ( eventNum == AE_CLIENT_EFFECT_ATTACH && ::input->CAM_IsThirdPerson() ) return; BaseClass::FireEvent( origin, angles, eventNum, options ); } } }