cl_dll/c_te_explosion.cpp
202122232425
#define OLD_EXPLOSION 0
// Enumator class for ragdolls being affected by explosive forces
CRagdollExplosionEnumerator::CRagdollExplosionEnumerator( Vector origin, float radius, float magnitude )
20212223242526
#define OLD_EXPLOSION 0
static ConVar cl_explosionoverlay("cl_explosionoverlay", "0", 0); // |-- Mirv
// Enumator class for ragdolls being affected by explosive forces
CRagdollExplosionEnumerator::CRagdollExplosionEnumerator( Vector origin, float radius, float magnitude )
575859606162
Vector position = pEnt->CollisionProp()->GetCollisionOrigin();
Vector dir = position - m_vecOrigin;
float dist = VectorNormalize( dir );
float force = m_flMagnitude - ( ( m_flMagnitude / m_flRadius ) * dist );
58596061626364656667
Vector position = pEnt->CollisionProp()->GetCollisionOrigin();
// Mirv: Account for the fact that explosions are moved. This shouldn't be a
// problem unless they are being hit right up by a ceiling
position += Vector(0, 0, 32.0f);
Vector dir = position - m_vecOrigin;
float dist = VectorNormalize( dir );
float force = m_flMagnitude - ( ( m_flMagnitude / m_flRadius ) * dist );
260261262263264265266
return;
}
if ( !( m_nFlags & TE_EXPLFLAG_NOFIREBALL ) )
{
if ( CExplosionOverlay *pOverlay = new CExplosionOverlay )
{
265266267268269270271
return;
}
if ( !( m_nFlags & TE_EXPLFLAG_NOFIREBALL ) && cl_explosionoverlay.GetBool() ) // |-- Mirv: Can disable overlay
{
if ( CExplosionOverlay *pOverlay = new CExplosionOverlay )
{
301302303304305306307
__g_C_TEExplosion.m_nFrameRate = framerate;
__g_C_TEExplosion.m_nFlags = flags;
__g_C_TEExplosion.m_vecOrigin = *pos;
__g_C_TEExplosion.m_vecNormal = *normal;
__g_C_TEExplosion.m_chMaterialType = materialType;
__g_C_TEExplosion.m_nRadius = radius;
__g_C_TEExplosion.m_nMagnitude = magnitude;
306307308309310311312
__g_C_TEExplosion.m_nFrameRate = framerate;
__g_C_TEExplosion.m_nFlags = flags;
__g_C_TEExplosion.m_vecOrigin = *pos;
__g_C_TEExplosion.m_vecNormal = normal ? *normal : Vector(0.0f, 0.0f, 0.0f); // |-- Mirv: Argh
__g_C_TEExplosion.m_chMaterialType = materialType;
__g_C_TEExplosion.m_nRadius = radius;
__g_C_TEExplosion.m_nMagnitude = magnitude;