diff options
Diffstat (limited to 'game/server/te_beamfollow.cpp')
| -rw-r--r-- | game/server/te_beamfollow.cpp | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/game/server/te_beamfollow.cpp b/game/server/te_beamfollow.cpp new file mode 100644 index 0000000..6a0cf75 --- /dev/null +++ b/game/server/te_beamfollow.cpp @@ -0,0 +1,112 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $Workfile: $ +// $Date: $ +// +//----------------------------------------------------------------------------- +// $Log: $ +// +// $NoKeywords: $ +//=============================================================================// +#include "cbase.h" +#include "basetempentity.h" +#include "te_basebeam.h" + +// memdbgon must be the last include file in a .cpp file!!! +#include "tier0/memdbgon.h" + +//----------------------------------------------------------------------------- +// Purpose: Dispatches a beam ring between two entities +//----------------------------------------------------------------------------- +class CTEBeamFollow : public CTEBaseBeam +{ + DECLARE_CLASS( CTEBeamFollow, CTEBaseBeam ); +public: + + DECLARE_SERVERCLASS(); + + CTEBeamFollow( const char *name ); + virtual ~CTEBeamFollow( void ); + + virtual void Test( const Vector& current_origin, const QAngle& current_angles ); + +public: + + CNetworkVar( int, m_iEntIndex ); +}; + +//----------------------------------------------------------------------------- +// Purpose: +// Input : *name - +//----------------------------------------------------------------------------- +CTEBeamFollow::CTEBeamFollow( const char *name ) : + CTEBaseBeam( name ) +{ + m_iEntIndex = -1; +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +CTEBeamFollow::~CTEBeamFollow( void ) +{ +} + +//----------------------------------------------------------------------------- +// Purpose: +// Input : *current_origin - +// *current_angles - +//----------------------------------------------------------------------------- +void CTEBeamFollow::Test( const Vector& current_origin, const QAngle& current_angles ) +{ + m_iEntIndex = 1; +} + +IMPLEMENT_SERVERCLASS_ST(CTEBeamFollow, DT_TEBeamFollow) + SendPropInt( SENDINFO(m_iEntIndex), 24, SPROP_UNSIGNED ), +END_SEND_TABLE() + + +// Singleton to fire TEBeamEntPoint objects +static CTEBeamFollow g_TEBeamFollow( "BeamFollow" ); + +//----------------------------------------------------------------------------- +// Purpose: +// Input : filter - +// delay - +// iEntIndex - +// modelIndex - +// modelindex - +// haloIndex - +// life - +// width - +// endWidth - +// fadeLength - +// r - +// g - +// b - +// a - +//----------------------------------------------------------------------------- +void TE_BeamFollow( IRecipientFilter& filter, float delay, + int iEntIndex, int modelIndex, int haloIndex, float life, float width, float endWidth, + float fadeLength,float r, float g, float b, float a ) +{ + g_TEBeamFollow.m_iEntIndex = (iEntIndex & 0x0FFF) | ((1 & 0xF)<<12); + g_TEBeamFollow.m_nModelIndex = modelIndex; + g_TEBeamFollow.m_nHaloIndex = haloIndex; + g_TEBeamFollow.m_nStartFrame = 0; + g_TEBeamFollow.m_nFrameRate = 0; + g_TEBeamFollow.m_fLife = life; + g_TEBeamFollow.m_fWidth = width; + g_TEBeamFollow.m_fEndWidth = endWidth; + g_TEBeamFollow.m_nFadeLength = fadeLength; + g_TEBeamFollow.r = r; + g_TEBeamFollow.g = g; + g_TEBeamFollow.b = b; + g_TEBeamFollow.a = a; + + // Send it over the wire + g_TEBeamFollow.Create( filter, delay ); +}
\ No newline at end of file |