|
|
//========= 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; }
|