mirror of
https://github.com/celisej567/source-engine.git
synced 2026-01-05 22:09:59 +03:00
add source-sdk-2013
This commit is contained in:
@@ -1,106 +0,0 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose: Game-specific explosion effects
|
||||
//
|
||||
//=============================================================================//
|
||||
#include "cbase.h"
|
||||
#include "c_te_effect_dispatch.h"
|
||||
#include "tempent.h"
|
||||
#include "c_te_legacytempents.h"
|
||||
#include "dod_shareddefs.h"
|
||||
#include "engine/IEngineSound.h"
|
||||
#include "c_basetempentity.h"
|
||||
#include "tier0/vprof.h"
|
||||
#include "fx_explosion.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
void DODExplosionCallback( const Vector &vecOrigin, const Vector &vecNormal )
|
||||
{
|
||||
// Calculate the angles, given the normal.
|
||||
bool bInAir = false;
|
||||
QAngle angExplosion( 0.0f, 0.0f, 0.0f );
|
||||
|
||||
// Cannot use zeros here because we are sending the normal at a smaller bit size.
|
||||
if ( fabs( vecNormal.x ) < 0.05f && fabs( vecNormal.y ) < 0.05f && fabs( vecNormal.z ) < 0.05f )
|
||||
{
|
||||
bInAir = true;
|
||||
angExplosion.Init();
|
||||
}
|
||||
else
|
||||
{
|
||||
VectorAngles( vecNormal, angExplosion );
|
||||
bInAir = false;
|
||||
}
|
||||
|
||||
// Base explosion effect and sound.
|
||||
char *pszEffect = "explosion";
|
||||
char *pszSound = "BaseExplosionEffect.Sound";
|
||||
|
||||
// Explosions.
|
||||
|
||||
if ( UTIL_PointContents( vecOrigin ) & CONTENTS_WATER )
|
||||
{
|
||||
WaterExplosionEffect().Create( vecOrigin, 1 /*m_nMagnitude*/, 1 /*m_fScale*/, 0 /*m_nFlags*/ );
|
||||
return;
|
||||
}
|
||||
else if ( bInAir )
|
||||
{
|
||||
pszEffect = "explosioncore_midair";
|
||||
}
|
||||
else
|
||||
{
|
||||
pszEffect = "explosioncore_floor";
|
||||
}
|
||||
|
||||
CLocalPlayerFilter filter;
|
||||
C_BaseEntity::EmitSound( filter, SOUND_FROM_WORLD, pszSound, &vecOrigin );
|
||||
|
||||
DispatchParticleEffect( pszEffect, vecOrigin, angExplosion );
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
class C_TEDODExplosion : public C_BaseTempEntity
|
||||
{
|
||||
public:
|
||||
|
||||
DECLARE_CLASS( C_TEDODExplosion, C_BaseTempEntity );
|
||||
DECLARE_CLIENTCLASS();
|
||||
|
||||
C_TEDODExplosion( void );
|
||||
|
||||
virtual void PostDataUpdate( DataUpdateType_t updateType );
|
||||
|
||||
public:
|
||||
Vector m_vecOrigin;
|
||||
Vector m_vecNormal;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
C_TEDODExplosion::C_TEDODExplosion( void )
|
||||
{
|
||||
m_vecOrigin.Init();
|
||||
m_vecNormal.Init();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
void C_TEDODExplosion::PostDataUpdate( DataUpdateType_t updateType )
|
||||
{
|
||||
VPROF( "C_TETFExplosion::PostDataUpdate" );
|
||||
DODExplosionCallback( m_vecOrigin, m_vecNormal );
|
||||
}
|
||||
|
||||
IMPLEMENT_CLIENTCLASS_EVENT_DT( C_TEDODExplosion, DT_TEDODExplosion, CTEDODExplosion )
|
||||
RecvPropFloat( RECVINFO( m_vecOrigin[0] ) ),
|
||||
RecvPropFloat( RECVINFO( m_vecOrigin[1] ) ),
|
||||
RecvPropFloat( RECVINFO( m_vecOrigin[2] ) ),
|
||||
RecvPropVector( RECVINFO( m_vecNormal ) ),
|
||||
END_RECV_TABLE()
|
||||
|
||||
Reference in New Issue
Block a user