From 39ed87570bdb2f86969d4be821c94b722dc71179 Mon Sep 17 00:00:00 2001 From: Joe Ludwig Date: Wed, 26 Jun 2013 15:22:04 -0700 Subject: First version of the SOurce SDK 2013 --- mp/src/game/client/fx_envelope.cpp | 82 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 mp/src/game/client/fx_envelope.cpp (limited to 'mp/src/game/client/fx_envelope.cpp') diff --git a/mp/src/game/client/fx_envelope.cpp b/mp/src/game/client/fx_envelope.cpp new file mode 100644 index 00000000..88910107 --- /dev/null +++ b/mp/src/game/client/fx_envelope.cpp @@ -0,0 +1,82 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#include "cbase.h" +#include "fx_envelope.h" + +// memdbgon must be the last include file in a .cpp file!!! +#include "tier0/memdbgon.h" + +//----------------------------------------------------------------------------- +// Constructor +//----------------------------------------------------------------------------- +C_EnvelopeFX::C_EnvelopeFX( void ) +{ + m_active = false; +} + +C_EnvelopeFX::~C_EnvelopeFX() +{ + RemoveRenderable(); +} + +const matrix3x4_t & C_EnvelopeFX::RenderableToWorldTransform() +{ + static matrix3x4_t mat; + SetIdentityMatrix( mat ); + PositionMatrix( GetRenderOrigin(), mat ); + return mat; +} + +void C_EnvelopeFX::RemoveRenderable() +{ + ClientLeafSystem()->RemoveRenderable( m_hRenderHandle ); +} + +//----------------------------------------------------------------------------- +// Purpose: Updates the envelope being in the client's known entity list +//----------------------------------------------------------------------------- +void C_EnvelopeFX::Update( void ) +{ + if ( m_active ) + { + if ( m_hRenderHandle == INVALID_CLIENT_RENDER_HANDLE ) + { + ClientLeafSystem()->AddRenderable( this, RENDER_GROUP_TRANSLUCENT_ENTITY ); + } + else + { + ClientLeafSystem()->RenderableChanged( m_hRenderHandle ); + } + } + else + { + RemoveRenderable(); + } +} + +//----------------------------------------------------------------------------- +// Purpose: Starts up the effect +// Input : entityIndex - entity to be attached to +// attachment - attachment point (if any) to be attached to +//----------------------------------------------------------------------------- +void C_EnvelopeFX::EffectInit( int entityIndex, int attachment ) +{ + m_entityIndex = entityIndex; + m_attachment = attachment; + + m_active = 1; + m_t = 0; +} + +//----------------------------------------------------------------------------- +// Purpose: Shuts down the effect +//----------------------------------------------------------------------------- +void C_EnvelopeFX::EffectShutdown( void ) +{ + m_active = 0; + m_t = 0; +} -- cgit v1.2.3