//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: an entity which turns on and off counting and display of the particle // performance metric // //============================================================================= #include "cbase.h" #include "baseentity.h" #include "entityoutput.h" #include "convar.h" // memdbgon must be the last include file in a .cpp file!!! #include "tier0/memdbgon.h" //----------------------------------------------------------------------------- // Purpose: Entity that particle performance measuring //----------------------------------------------------------------------------- class CParticlePerformanceMonitor : public CPointEntity { DECLARE_CLASS( CParticlePerformanceMonitor, CPointEntity ); public: DECLARE_DATADESC(); DECLARE_SERVERCLASS(); void Spawn( void ); int UpdateTransmitState( void ); // Inputs void InputTurnOnDisplay( inputdata_t &inputdata ); void InputTurnOffDisplay( inputdata_t &inputdata ); void InputStartMeasuring( inputdata_t &inputdata ); void InputStopMeasuring( inputdata_t &inputdata ); private: CNetworkVar( bool, m_bDisplayPerf ); CNetworkVar( bool, m_bMeasurePerf ); }; LINK_ENTITY_TO_CLASS( env_particle_performance_monitor, CParticlePerformanceMonitor ); BEGIN_DATADESC( CParticlePerformanceMonitor ) DEFINE_FIELD( m_bDisplayPerf, FIELD_BOOLEAN ), DEFINE_FIELD( m_bMeasurePerf, FIELD_BOOLEAN ), // Inputs DEFINE_INPUTFUNC( FIELD_VOID, "TurnOnDisplay", InputTurnOnDisplay ), DEFINE_INPUTFUNC( FIELD_VOID, "TurnOffDisplay", InputTurnOffDisplay ), DEFINE_INPUTFUNC( FIELD_VOID, "StartMeasuring", InputStartMeasuring ), DEFINE_INPUTFUNC( FIELD_VOID, "StopMeasuring", InputStopMeasuring ), END_DATADESC() IMPLEMENT_SERVERCLASS_ST( CParticlePerformanceMonitor, DT_ParticlePerformanceMonitor ) SendPropInt( SENDINFO(m_bDisplayPerf), 1, SPROP_UNSIGNED ), SendPropInt( SENDINFO(m_bMeasurePerf), 1, SPROP_UNSIGNED ), END_SEND_TABLE() //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CParticlePerformanceMonitor::Spawn( void ) { SetSolid( SOLID_NONE ); SetMoveType( MOVETYPE_NONE ); m_bDisplayPerf = false; m_bMeasurePerf = false; } //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- int CParticlePerformanceMonitor::UpdateTransmitState() { return SetTransmitState( FL_EDICT_ALWAYS ); } void CParticlePerformanceMonitor::InputTurnOnDisplay( inputdata_t &inputdata ) { m_bDisplayPerf = true; } void CParticlePerformanceMonitor::InputTurnOffDisplay( inputdata_t &inputdata ) { m_bDisplayPerf = false; } void CParticlePerformanceMonitor::InputStartMeasuring( inputdata_t &inputdata ) { m_bMeasurePerf = true; } void CParticlePerformanceMonitor::InputStopMeasuring( inputdata_t &inputdata ) { m_bMeasurePerf = false; }