sqwarmed/sdk_src/game/server/testtraceline.cpp

84 lines
2.3 KiB
C++

//========= Copyright © 1996-2005, 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, SendProxy_Color32ToInt32 ),
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 );
SetRenderAlpha( 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 );
}