diff --git a/mp/src/game/client/c_smoke_trail.cpp b/mp/src/game/client/c_smoke_trail.cpp index f3d71adb66..8ec87d7ae4 100644 --- a/mp/src/game/client/c_smoke_trail.cpp +++ b/mp/src/game/client/c_smoke_trail.cpp @@ -950,7 +950,10 @@ void C_SporeExplosion::OnDataChanged( DataUpdateType_t updateType ) m_teParticleSpawn.Init( m_flSpawnRate ); } - m_pSporeEffect->SetDontRemove( m_bDontRemove ); + if( m_pSporeEffect.IsValid() ) + { + m_pSporeEffect->SetDontRemove( m_bDontRemove ); + } } //----------------------------------------------------------------------------- @@ -981,6 +984,11 @@ void C_SporeExplosion::Start( CParticleMgr *pParticleMgr, IPrototypeArgAccess *p //----------------------------------------------------------------------------- void C_SporeExplosion::AddParticles( void ) { + if( !m_pSporeEffect ) + { + return; + } + //Spores Vector offset; Vector dir; diff --git a/mp/src/game/client/c_smoke_trail.h b/mp/src/game/client/c_smoke_trail.h index 501ab73c35..1074ae18bc 100644 --- a/mp/src/game/client/c_smoke_trail.h +++ b/mp/src/game/client/c_smoke_trail.h @@ -249,7 +249,7 @@ class C_SporeExplosion : public C_BaseParticleEntity, public IPrototypeAppEffect PMaterialHandle m_hMaterial; TimedEvent m_teParticleSpawn; - SporeEffect *m_pSporeEffect; + CSmartPtr m_pSporeEffect; CParticleMgr *m_pParticleMgr; }; diff --git a/sp/src/game/client/c_smoke_trail.cpp b/sp/src/game/client/c_smoke_trail.cpp index f3d71adb66..8ec87d7ae4 100644 --- a/sp/src/game/client/c_smoke_trail.cpp +++ b/sp/src/game/client/c_smoke_trail.cpp @@ -950,7 +950,10 @@ void C_SporeExplosion::OnDataChanged( DataUpdateType_t updateType ) m_teParticleSpawn.Init( m_flSpawnRate ); } - m_pSporeEffect->SetDontRemove( m_bDontRemove ); + if( m_pSporeEffect.IsValid() ) + { + m_pSporeEffect->SetDontRemove( m_bDontRemove ); + } } //----------------------------------------------------------------------------- @@ -981,6 +984,11 @@ void C_SporeExplosion::Start( CParticleMgr *pParticleMgr, IPrototypeArgAccess *p //----------------------------------------------------------------------------- void C_SporeExplosion::AddParticles( void ) { + if( !m_pSporeEffect ) + { + return; + } + //Spores Vector offset; Vector dir; diff --git a/sp/src/game/client/c_smoke_trail.h b/sp/src/game/client/c_smoke_trail.h index 501ab73c35..1074ae18bc 100644 --- a/sp/src/game/client/c_smoke_trail.h +++ b/sp/src/game/client/c_smoke_trail.h @@ -249,7 +249,7 @@ class C_SporeExplosion : public C_BaseParticleEntity, public IPrototypeAppEffect PMaterialHandle m_hMaterial; TimedEvent m_teParticleSpawn; - SporeEffect *m_pSporeEffect; + CSmartPtr m_pSporeEffect; CParticleMgr *m_pParticleMgr; };