84 lines
2.3 KiB
C++
84 lines
2.3 KiB
C++
|
//========= Copyright <20> 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 );
|
|||
|
}
|