diff options
Diffstat (limited to 'game/server/testtraceline.cpp')
| -rw-r--r-- | game/server/testtraceline.cpp | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/game/server/testtraceline.cpp b/game/server/testtraceline.cpp new file mode 100644 index 0000000..d017a1b --- /dev/null +++ b/game/server/testtraceline.cpp @@ -0,0 +1,82 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +// +//=============================================================================// +#include "cbase.h" + +// memdbgon must be the last include file in a .cpp file!!! +#include "tier0/memdbgon.h" + +// -------------------------------------------------------------------------------- // +// An entity used to test traceline +// -------------------------------------------------------------------------------- // + +class CTestTraceline : public CPointEntity +{ +public: + DECLARE_CLASS( CTestTraceline, CPointEntity ); + + void Spawn( void ); + int UpdateTransmitState(); + + DECLARE_SERVERCLASS(); + DECLARE_DATADESC(); + +private: + void Spin( void ); +}; + + +// This table encodes the CBaseEntity data. +IMPLEMENT_SERVERCLASS_ST_NOBASE(CTestTraceline, DT_TestTraceline) + SendPropInt (SENDINFO(m_clrRender), 32, SPROP_UNSIGNED ), + SendPropVector (SENDINFO(m_vecOrigin), 19, 0, MIN_COORD_INTEGER, MAX_COORD_INTEGER), + SendPropFloat (SENDINFO_VECTORELEM(m_angRotation, 0), 19, 0, MIN_COORD_INTEGER, MAX_COORD_INTEGER), + SendPropFloat (SENDINFO_VECTORELEM(m_angRotation, 1), 19, 0, MIN_COORD_INTEGER, MAX_COORD_INTEGER), + SendPropFloat (SENDINFO_VECTORELEM(m_angRotation, 2), 19, 0, MIN_COORD_INTEGER, MAX_COORD_INTEGER), + SendPropEHandle (SENDINFO_NAME(m_hMoveParent, moveparent)), +END_SEND_TABLE() + +LINK_ENTITY_TO_CLASS( test_traceline, CTestTraceline ); + +BEGIN_DATADESC( CTestTraceline ) + + // Function Pointers + DEFINE_FUNCTION( Spin ), + +END_DATADESC() + + +void CTestTraceline::Spawn( void ) +{ + SetRenderColor( 255, 255, 255, 255 ); + SetNextThink( gpGlobals->curtime ); + + SetThink( &CTestTraceline::Spin ); +} + +void CTestTraceline::Spin( void ) +{ + static ConVar traceline_spin( "traceline_spin","1" ); + + if (traceline_spin.GetInt()) + { + float s = sin( gpGlobals->curtime ); + QAngle angles = GetLocalAngles(); + + angles[0] = 180.0 * 0.5 * (s * s * s + 1.0f) + 90; + angles[1] = gpGlobals->curtime * 10; + + SetLocalAngles( angles ); + + } + SetNextThink( gpGlobals->curtime ); +} + +int CTestTraceline::UpdateTransmitState() +{ + return SetTransmitState( FL_EDICT_ALWAYS ); +} |