You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.9 KiB
95 lines
2.9 KiB
//========= 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;
|
|
}
|
|
|