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

83 lines
2.1 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Defines the server side of a steam jet particle system entity.
//
// $NoKeywords: $
//=============================================================================//
#ifndef SMOKESTACK_H
#define SMOKESTACK_H
#pragma once
#include "baseparticleentity.h"
//==================================================
// CSmokeStack
//==================================================
class CSmokeStackLightInfo {
public:
DECLARE_CLASS_NOBASE(CSmokeStackLightInfo);
DECLARE_SIMPLE_DATADESC();
DECLARE_NETWORKVAR_CHAIN();
CNetworkVector(m_vPos);
CNetworkVector(m_vColor);
CNetworkVar(float, m_flIntensity);
};
class CSmokeStack : public CBaseParticleEntity {
public:
DECLARE_CLASS(CSmokeStack, CBaseParticleEntity);
DECLARE_DATADESC();
DECLARE_SERVERCLASS();
CSmokeStack();
~CSmokeStack();
virtual void Spawn(void);
virtual void Activate();
virtual bool KeyValue(const char *szKeyName, const char *szValue);
virtual void Precache();
protected:
// Input handlers.
void InputTurnOn(inputdata_t &data);
void InputTurnOff(inputdata_t &data);
void InputToggle(inputdata_t &data);
void RecalcWindVector();
// Stuff from the datatable.
public:
CNetworkVar(float, m_SpreadSpeed);
CNetworkVar(float, m_Speed);
CNetworkVar(float, m_StartSize);
CNetworkVar(float, m_EndSize);
CNetworkVar(float, m_Rate);
CNetworkVar(
float,
m_JetLength); // Length of the jet. Lifetime is derived from this.
CNetworkVar(float, m_flRollSpeed);
CNetworkVar(int, m_bEmit); // Emit particles?
CNetworkVar(float, m_flBaseSpread);
CSmokeStackLightInfo m_AmbientLight;
CSmokeStackLightInfo m_DirLight;
CNetworkVar(float, m_flTwist);
string_t m_strMaterialModel;
CNetworkVar(int, m_iMaterialModel);
int m_WindAngle;
int m_WindSpeed;
CNetworkVector(m_vWind); // m_vWind is just calculated from m_WindAngle and
// m_WindSpeed.
bool m_InitialState;
};
#endif // SMOKESTACK_H