diff options
| author | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:31:46 -0800 |
|---|---|---|
| committer | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:46:31 -0800 |
| commit | f56bb35301836e56582a575a75864392a0177875 (patch) | |
| tree | de61ddd39de3e7df52759711950b4c288592f0dc /mp/src/game/client/fx_tracer.cpp | |
| parent | Mark some more files as text. (diff) | |
| download | source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip | |
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/game/client/fx_tracer.cpp')
| -rw-r--r-- | mp/src/game/client/fx_tracer.cpp | 338 |
1 files changed, 169 insertions, 169 deletions
diff --git a/mp/src/game/client/fx_tracer.cpp b/mp/src/game/client/fx_tracer.cpp index 86f92cc0..f0ca0e13 100644 --- a/mp/src/game/client/fx_tracer.cpp +++ b/mp/src/game/client/fx_tracer.cpp @@ -1,169 +1,169 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-//=============================================================================//
-#include "cbase.h"
-#include "fx.h"
-#include "c_te_effect_dispatch.h"
-#include "basecombatweapon_shared.h"
-#include "baseviewmodel_shared.h"
-#include "particles_new.h"
-
-// memdbgon must be the last include file in a .cpp file!!!
-#include "tier0/memdbgon.h"
-
-#define TRACER_SPEED 5000
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-Vector GetTracerOrigin( const CEffectData &data )
-{
- Vector vecStart = data.m_vStart;
- QAngle vecAngles;
-
- int iAttachment = data.m_nAttachmentIndex;;
-
- // Attachment?
- if ( data.m_fFlags & TRACER_FLAG_USEATTACHMENT )
- {
- C_BaseViewModel *pViewModel = NULL;
-
- // If the entity specified is a weapon being carried by this player, use the viewmodel instead
- IClientRenderable *pRenderable = data.GetRenderable();
- if ( !pRenderable )
- return vecStart;
-
- C_BaseEntity *pEnt = data.GetEntity();
-
-// This check should probably be for all multiplayer games, investigate later
-#if defined( HL2MP ) || defined( TF_CLIENT_DLL )
- if ( pEnt && pEnt->IsDormant() )
- return vecStart;
-#endif
-
- C_BaseCombatWeapon *pWpn = dynamic_cast<C_BaseCombatWeapon *>( pEnt );
- if ( pWpn && pWpn->ShouldDrawUsingViewModel() )
- {
- C_BasePlayer *player = ToBasePlayer( pWpn->GetOwner() );
-
- // Use GetRenderedWeaponModel() instead?
- pViewModel = player ? player->GetViewModel( 0 ) : NULL;
- if ( pViewModel )
- {
- // Get the viewmodel and use it instead
- pRenderable = pViewModel;
- }
- }
-
- // Get the attachment origin
- if ( !pRenderable->GetAttachment( iAttachment, vecStart, vecAngles ) )
- {
- DevMsg( "GetTracerOrigin: Couldn't find attachment %d on model %s\n", iAttachment,
- modelinfo->GetModelName( pRenderable->GetModel() ) );
- }
- }
-
- return vecStart;
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void TracerCallback( const CEffectData &data )
-{
- C_BasePlayer *player = C_BasePlayer::GetLocalPlayer();
- if ( !player )
- return;
-
- // Grab the data
- Vector vecStart = GetTracerOrigin( data );
- float flVelocity = data.m_flScale;
- bool bWhiz = (data.m_fFlags & TRACER_FLAG_WHIZ);
- int iEntIndex = data.entindex();
-
- if ( iEntIndex && iEntIndex == player->index )
- {
- Vector foo = data.m_vStart;
- QAngle vangles;
- Vector vforward, vright, vup;
-
- engine->GetViewAngles( vangles );
- AngleVectors( vangles, &vforward, &vright, &vup );
-
- VectorMA( data.m_vStart, 4, vright, foo );
- foo[2] -= 0.5f;
-
- FX_PlayerTracer( foo, (Vector&)data.m_vOrigin );
- return;
- }
-
- // Use default velocity if none specified
- if ( !flVelocity )
- {
- flVelocity = TRACER_SPEED;
- }
-
- // Do tracer effect
- FX_Tracer( (Vector&)vecStart, (Vector&)data.m_vOrigin, flVelocity, bWhiz );
-}
-
-DECLARE_CLIENT_EFFECT( "Tracer", TracerCallback );
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void ParticleTracerCallback( const CEffectData &data )
-{
- C_BasePlayer *player = C_BasePlayer::GetLocalPlayer();
- if ( !player )
- return;
-
- // Grab the data
- Vector vecStart = GetTracerOrigin( data );
- Vector vecEnd = data.m_vOrigin;
-
- // Adjust view model tracers
- C_BaseEntity *pEntity = data.GetEntity();
- if ( data.entindex() && data.entindex() == player->index )
- {
- QAngle vangles;
- Vector vforward, vright, vup;
-
- engine->GetViewAngles( vangles );
- AngleVectors( vangles, &vforward, &vright, &vup );
-
- VectorMA( data.m_vStart, 4, vright, vecStart );
- vecStart[2] -= 0.5f;
- }
-
- // Create the particle effect
- QAngle vecAngles;
- Vector vecToEnd = vecEnd - vecStart;
- VectorNormalize(vecToEnd);
- VectorAngles( vecToEnd, vecAngles );
- DispatchParticleEffect( data.m_nHitBox, vecStart, vecEnd, vecAngles, pEntity );
-
- if ( data.m_fFlags & TRACER_FLAG_WHIZ )
- {
- FX_TracerSound( vecStart, vecEnd, TRACER_TYPE_DEFAULT );
- }
-}
-
-DECLARE_CLIENT_EFFECT( "ParticleTracer", ParticleTracerCallback );
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void TracerSoundCallback( const CEffectData &data )
-{
- // Grab the data
- Vector vecStart = GetTracerOrigin( data );
-
- // Do tracer effect
- FX_TracerSound( vecStart, (Vector&)data.m_vOrigin, data.m_fFlags );
-}
-
-DECLARE_CLIENT_EFFECT( "TracerSound", TracerSoundCallback );
-
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// +#include "cbase.h" +#include "fx.h" +#include "c_te_effect_dispatch.h" +#include "basecombatweapon_shared.h" +#include "baseviewmodel_shared.h" +#include "particles_new.h" + +// memdbgon must be the last include file in a .cpp file!!! +#include "tier0/memdbgon.h" + +#define TRACER_SPEED 5000 + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +Vector GetTracerOrigin( const CEffectData &data ) +{ + Vector vecStart = data.m_vStart; + QAngle vecAngles; + + int iAttachment = data.m_nAttachmentIndex;; + + // Attachment? + if ( data.m_fFlags & TRACER_FLAG_USEATTACHMENT ) + { + C_BaseViewModel *pViewModel = NULL; + + // If the entity specified is a weapon being carried by this player, use the viewmodel instead + IClientRenderable *pRenderable = data.GetRenderable(); + if ( !pRenderable ) + return vecStart; + + C_BaseEntity *pEnt = data.GetEntity(); + +// This check should probably be for all multiplayer games, investigate later +#if defined( HL2MP ) || defined( TF_CLIENT_DLL ) + if ( pEnt && pEnt->IsDormant() ) + return vecStart; +#endif + + C_BaseCombatWeapon *pWpn = dynamic_cast<C_BaseCombatWeapon *>( pEnt ); + if ( pWpn && pWpn->ShouldDrawUsingViewModel() ) + { + C_BasePlayer *player = ToBasePlayer( pWpn->GetOwner() ); + + // Use GetRenderedWeaponModel() instead? + pViewModel = player ? player->GetViewModel( 0 ) : NULL; + if ( pViewModel ) + { + // Get the viewmodel and use it instead + pRenderable = pViewModel; + } + } + + // Get the attachment origin + if ( !pRenderable->GetAttachment( iAttachment, vecStart, vecAngles ) ) + { + DevMsg( "GetTracerOrigin: Couldn't find attachment %d on model %s\n", iAttachment, + modelinfo->GetModelName( pRenderable->GetModel() ) ); + } + } + + return vecStart; +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void TracerCallback( const CEffectData &data ) +{ + C_BasePlayer *player = C_BasePlayer::GetLocalPlayer(); + if ( !player ) + return; + + // Grab the data + Vector vecStart = GetTracerOrigin( data ); + float flVelocity = data.m_flScale; + bool bWhiz = (data.m_fFlags & TRACER_FLAG_WHIZ); + int iEntIndex = data.entindex(); + + if ( iEntIndex && iEntIndex == player->index ) + { + Vector foo = data.m_vStart; + QAngle vangles; + Vector vforward, vright, vup; + + engine->GetViewAngles( vangles ); + AngleVectors( vangles, &vforward, &vright, &vup ); + + VectorMA( data.m_vStart, 4, vright, foo ); + foo[2] -= 0.5f; + + FX_PlayerTracer( foo, (Vector&)data.m_vOrigin ); + return; + } + + // Use default velocity if none specified + if ( !flVelocity ) + { + flVelocity = TRACER_SPEED; + } + + // Do tracer effect + FX_Tracer( (Vector&)vecStart, (Vector&)data.m_vOrigin, flVelocity, bWhiz ); +} + +DECLARE_CLIENT_EFFECT( "Tracer", TracerCallback ); + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void ParticleTracerCallback( const CEffectData &data ) +{ + C_BasePlayer *player = C_BasePlayer::GetLocalPlayer(); + if ( !player ) + return; + + // Grab the data + Vector vecStart = GetTracerOrigin( data ); + Vector vecEnd = data.m_vOrigin; + + // Adjust view model tracers + C_BaseEntity *pEntity = data.GetEntity(); + if ( data.entindex() && data.entindex() == player->index ) + { + QAngle vangles; + Vector vforward, vright, vup; + + engine->GetViewAngles( vangles ); + AngleVectors( vangles, &vforward, &vright, &vup ); + + VectorMA( data.m_vStart, 4, vright, vecStart ); + vecStart[2] -= 0.5f; + } + + // Create the particle effect + QAngle vecAngles; + Vector vecToEnd = vecEnd - vecStart; + VectorNormalize(vecToEnd); + VectorAngles( vecToEnd, vecAngles ); + DispatchParticleEffect( data.m_nHitBox, vecStart, vecEnd, vecAngles, pEntity ); + + if ( data.m_fFlags & TRACER_FLAG_WHIZ ) + { + FX_TracerSound( vecStart, vecEnd, TRACER_TYPE_DEFAULT ); + } +} + +DECLARE_CLIENT_EFFECT( "ParticleTracer", ParticleTracerCallback ); + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void TracerSoundCallback( const CEffectData &data ) +{ + // Grab the data + Vector vecStart = GetTracerOrigin( data ); + + // Do tracer effect + FX_TracerSound( vecStart, (Vector&)data.m_vOrigin, data.m_fFlags ); +} + +DECLARE_CLIENT_EFFECT( "TracerSound", TracerSoundCallback ); + |