56 lines
1.8 KiB
C++
56 lines
1.8 KiB
C++
//========= 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
|