From 39ed87570bdb2f86969d4be821c94b722dc71179 Mon Sep 17 00:00:00 2001 From: Joe Ludwig Date: Wed, 26 Jun 2013 15:22:04 -0700 Subject: First version of the SOurce SDK 2013 --- mp/src/game/server/testtraceline.cpp | 82 ++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 mp/src/game/server/testtraceline.cpp (limited to 'mp/src/game/server/testtraceline.cpp') diff --git a/mp/src/game/server/testtraceline.cpp b/mp/src/game/server/testtraceline.cpp new file mode 100644 index 00000000..9f2bebcd --- /dev/null +++ b/mp/src/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 ); +} -- cgit v1.2.3