Counter Strike : Global Offensive Source Code
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.
|
|
//========= Copyright � 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $Workfile: $
// $Date: $
//
//-----------------------------------------------------------------------------
// $Log: $
//
// $NoKeywords: $
//=============================================================================//
#include "cbase.h"
#include "c_te_particlesystem.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
//-----------------------------------------------------------------------------
// Purpose: Show Line TE
//-----------------------------------------------------------------------------
class C_TEShowLine : public C_TEParticleSystem { public: DECLARE_CLASS( C_TEShowLine, C_TEParticleSystem ); DECLARE_CLIENTCLASS();
C_TEShowLine( void ); virtual ~C_TEShowLine( void );
virtual void PostDataUpdate( DataUpdateType_t updateType );
public: Vector m_vecEnd; };
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
C_TEShowLine::C_TEShowLine( void ) { m_vecEnd.Init(); }
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
C_TEShowLine::~C_TEShowLine( void ) { }
//-----------------------------------------------------------------------------
// Purpose:
// Input : bool -
//-----------------------------------------------------------------------------
void C_TEShowLine::PostDataUpdate( DataUpdateType_t updateType ) { Vector vec; float len; StandardParticle_t *p; int dec; static int tracercount;
VectorSubtract (m_vecEnd, m_vecOrigin, vec); len = VectorNormalize (vec);
dec = 3;
VectorScale(vec, dec, vec);
CSmartPtr<CTEParticleRenderer> pRen = CTEParticleRenderer::Create( "TEShowLine", m_vecOrigin ); if( !pRen ) return; while (len > 0) { len -= dec;
p = pRen->AddParticle(); if ( p ) { p->m_Velocity.Init();
pRen->SetParticleLifetime(p, 30); p->SetColor(0, 1, 1); p->SetAlpha(1); pRen->SetParticleType(p, pt_static);
p->m_Pos = m_vecOrigin; m_vecOrigin += vec; } } }
IMPLEMENT_CLIENTCLASS_EVENT_DT(C_TEShowLine, DT_TEShowLine, CTEShowLine) RecvPropVector( RECVINFO(m_vecEnd)), END_RECV_TABLE()
void TE_ShowLine( IRecipientFilter& filter, float delay, const Vector* start, const Vector* end ) { // Major hack to simulate receiving network message
__g_C_TEShowLine.m_vecOrigin = *start; __g_C_TEShowLine.m_vecEnd = *end;
__g_C_TEShowLine.PostDataUpdate( DATA_UPDATE_CREATED ); }
|