This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

64 lines
1.9 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================
#ifndef PARTICLE_SYSTEM_H
#define PARTICLE_SYSTEM_H
#ifdef _WIN32
#pragma once
#endif
#include "cbase.h"
//-----------------------------------------------------------------------------
// Purpose: An entity that spawns and controls a particle system
//-----------------------------------------------------------------------------
class CParticleSystem : public CBaseEntity {
DECLARE_CLASS(CParticleSystem, CBaseEntity);
public:
DECLARE_SERVERCLASS();
DECLARE_DATADESC();
CParticleSystem();
virtual void Precache(void);
virtual void Spawn(void);
virtual void Activate(void);
virtual int UpdateTransmitState(void);
void StartParticleSystem(void);
void StopParticleSystem(void);
void InputStart(inputdata_t &inputdata);
void InputStop(inputdata_t &inputdata);
void StartParticleSystemThink(void);
enum {
kMAXCONTROLPOINTS = 63
}; ///< actually one less than the total number of cpoints since 0 is
///< assumed to be me
protected:
/// Load up and resolve the entities that are supposed to be the control
/// points
void ReadControlPointEnts(void);
bool m_bStartActive;
string_t m_iszEffectName;
CNetworkVar(bool, m_bActive);
CNetworkVar(int, m_iEffectIndex) CNetworkVar(
float, m_flStartTime); // Time at which this effect was started. This
// is used after restoring an active effect.
string_t m_iszControlPointNames[kMAXCONTROLPOINTS];
CNetworkArray(EHANDLE, m_hControlPointEnts, kMAXCONTROLPOINTS);
CNetworkArray(unsigned char, m_iControlPointParents, kMAXCONTROLPOINTS);
CNetworkVar(bool, m_bWeatherEffect);
};
#endif // PARTICLE_SYSTEM_H