//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // //=============================================================================// #ifndef ENTITYPARTICLETRAIL_H #define ENTITYPARTICLETRAIL_H #ifdef _WIN32 #pragma once #endif #include "baseparticleentity.h" #include "entityparticletrail_shared.h" //----------------------------------------------------------------------------- // Spawns particles after the entity //----------------------------------------------------------------------------- class CEntityParticleTrail : public CBaseParticleEntity { DECLARE_DATADESC(); DECLARE_CLASS( CEntityParticleTrail, CBaseParticleEntity ); DECLARE_SERVERCLASS(); public: static CEntityParticleTrail *Create( CBaseEntity *pTarget, const EntityParticleTrailInfo_t &info, CBaseEntity *pConstraint ); static void Destroy( CBaseEntity *pTarget, const EntityParticleTrailInfo_t &info ); void Spawn(); virtual void UpdateOnRemove(); // Force our constraint entity to be trasmitted virtual void SetTransmit( CCheckTransmitInfo *pInfo, bool bAlways ); // Clean up when the entity goes away. virtual void NotifySystemEvent( CBaseEntity *pNotify, notify_system_event_t eventType, const notify_system_event_params_t ¶ms ); private: void AttachToEntity( CBaseEntity *pTarget ); void IncrementRefCount(); void DecrementRefCount(); CNetworkVar( int, m_iMaterialName ); CNetworkVarEmbedded( EntityParticleTrailInfo_t, m_Info ); CNetworkHandle( CBaseEntity, m_hConstraintEntity ); int m_nRefCount; }; #endif // ENTITYPARTICLETRAIL_H