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.
82 lines
2.1 KiB
82 lines
2.1 KiB
//========= 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 ); |
|
}
|
|
|