You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.3 KiB
78 lines
2.3 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
//=============================================================================// |
|
|
|
#include "cbase.h" |
|
#include "fx_trail.h" |
|
|
|
C_ParticleTrail::C_ParticleTrail( void ) |
|
{ |
|
} |
|
|
|
C_ParticleTrail::~C_ParticleTrail( void ) |
|
{ |
|
if ( m_pParticleMgr ) |
|
{ |
|
m_pParticleMgr->RemoveEffect( &m_ParticleEffect ); |
|
} |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: Gets the attachment point to spawn at |
|
//----------------------------------------------------------------------------- |
|
void C_ParticleTrail::GetAimEntOrigin( IClientEntity *pAttachedTo, Vector *pAbsOrigin, QAngle *pAbsAngles ) |
|
{ |
|
C_BaseEntity *pEnt = pAttachedTo->GetBaseEntity(); |
|
|
|
if ( pEnt && (m_nAttachment > 0) ) |
|
{ |
|
pEnt->GetAttachment( m_nAttachment, *pAbsOrigin, *pAbsAngles ); |
|
return; |
|
} |
|
|
|
BaseClass::GetAimEntOrigin( pAttachedTo, pAbsOrigin, pAbsAngles ); |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: Turn on the emission of particles |
|
//----------------------------------------------------------------------------- |
|
void C_ParticleTrail::SetEmit( bool bEmit ) |
|
{ |
|
m_bEmit = bEmit; |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: Set the spawn rate of the effect |
|
//----------------------------------------------------------------------------- |
|
void C_ParticleTrail::SetSpawnRate( float rate ) |
|
{ |
|
m_SpawnRate = rate; |
|
m_ParticleSpawn.Init( rate ); |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: First sent down from the server |
|
//----------------------------------------------------------------------------- |
|
void C_ParticleTrail::OnDataChanged(DataUpdateType_t updateType) |
|
{ |
|
C_BaseEntity::OnDataChanged(updateType); |
|
|
|
if ( updateType == DATA_UPDATE_CREATED ) |
|
{ |
|
Start( ParticleMgr(), NULL ); |
|
} |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
//----------------------------------------------------------------------------- |
|
void C_ParticleTrail::Start( CParticleMgr *pParticleMgr, IPrototypeArgAccess *pArgs ) |
|
{ |
|
if( pParticleMgr->AddEffect( &m_ParticleEffect, this ) == false ) |
|
return; |
|
|
|
m_pParticleMgr = pParticleMgr; |
|
} |
|
|
|
|