mirror of
https://github.com/alliedmodders/hl2sdk.git
synced 2024-12-22 17:47:38 +08:00
83 lines
2.2 KiB
C++
83 lines
2.2 KiB
C++
//========= 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 );
|
|
}
|