mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-08 01:39:36 +00:00
1
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
#include "cbase.h"
|
||||
#include "hud.h"
|
||||
#include "basegrenade_shared.h"
|
||||
#include "IEffects.h"
|
||||
#include "c_baseplayer.h"
|
||||
|
||||
extern ConVar lod_effect_distance;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Client side entity for the ferry target items
|
||||
//-----------------------------------------------------------------------------
|
||||
class C_GrenadeObjectSapper : public C_BaseGrenade
|
||||
{
|
||||
DECLARE_CLASS( C_GrenadeObjectSapper, C_BaseGrenade );
|
||||
public:
|
||||
DECLARE_CLIENTCLASS();
|
||||
|
||||
C_GrenadeObjectSapper();
|
||||
|
||||
virtual void OnDataChanged( DataUpdateType_t updateType );
|
||||
virtual void ClientThink( void );
|
||||
|
||||
public:
|
||||
C_GrenadeObjectSapper( const C_GrenadeObjectSapper & );
|
||||
|
||||
bool m_bSapping;
|
||||
float m_flNextEffectTime;
|
||||
};
|
||||
|
||||
IMPLEMENT_CLIENTCLASS_DT(C_GrenadeObjectSapper, DT_GrenadeObjectSapper, CGrenadeObjectSapper)
|
||||
RecvPropInt(RECVINFO(m_bSapping)),
|
||||
END_RECV_TABLE()
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
C_GrenadeObjectSapper::C_GrenadeObjectSapper( void )
|
||||
{
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
void C_GrenadeObjectSapper::OnDataChanged( DataUpdateType_t updateType )
|
||||
{
|
||||
BaseClass::OnDataChanged( updateType );
|
||||
|
||||
// Only think when sapping
|
||||
if ( m_bSapping )
|
||||
{
|
||||
SetNextClientThink( CLIENT_THINK_ALWAYS );
|
||||
m_flNextEffectTime = gpGlobals->curtime;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetNextClientThink( CLIENT_THINK_NEVER );
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Spawn effects if I'm sapping
|
||||
//-----------------------------------------------------------------------------
|
||||
void C_GrenadeObjectSapper::ClientThink( void )
|
||||
{
|
||||
if ( m_flNextEffectTime < gpGlobals->curtime )
|
||||
{
|
||||
// Haxory LOD
|
||||
C_BasePlayer *pPlayer = C_BasePlayer::GetLocalPlayer();
|
||||
if ( (GetAbsOrigin() - pPlayer->GetAbsOrigin()).LengthSqr() < lod_effect_distance.GetFloat() )
|
||||
{
|
||||
g_pEffects->Sparks( GetAbsOrigin() );
|
||||
}
|
||||
|
||||
m_flNextEffectTime = gpGlobals->curtime + 0.3;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user