aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/client/c_particle_system.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mp/src/game/client/c_particle_system.cpp')
-rw-r--r--mp/src/game/client/c_particle_system.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/mp/src/game/client/c_particle_system.cpp b/mp/src/game/client/c_particle_system.cpp
index 57f3c375..e0aee808 100644
--- a/mp/src/game/client/c_particle_system.cpp
+++ b/mp/src/game/client/c_particle_system.cpp
@@ -198,12 +198,19 @@ void ParticleEffectCallback( const CEffectData &data )
pEnt->ParticleProp()->StopEmission();
}
- pEffect = pEnt->ParticleProp()->Create( pszName, (ParticleAttachment_t)data.m_nDamageType, data.m_nAttachmentIndex );
+ Vector vOffset = vec3_origin;
+ ParticleAttachment_t iAttachType = (ParticleAttachment_t)data.m_nDamageType;
+ if ( iAttachType == PATTACH_ABSORIGIN_FOLLOW || iAttachType == PATTACH_POINT_FOLLOW || iAttachType == PATTACH_ROOTBONE_FOLLOW )
+ {
+ vOffset = data.m_vStart;
+ }
+
+ pEffect = pEnt->ParticleProp()->Create( pszName, iAttachType, data.m_nAttachmentIndex, vOffset );
AssertMsg2( pEffect.IsValid() && pEffect->IsValid(), "%s could not create particle effect %s",
C_BaseEntity::Instance( data.m_hEntity )->GetDebugName(), pszName );
if ( pEffect.IsValid() && pEffect->IsValid() )
{
- if ( (ParticleAttachment_t)data.m_nDamageType == PATTACH_CUSTOMORIGIN )
+ if ( iAttachType == PATTACH_CUSTOMORIGIN )
{
pEffect->SetSortOrigin( data.m_vOrigin );
pEffect->SetControlPoint( 0, data.m_vOrigin );