From d941f0ad93c39790210004d0169f83fb165ddaaa Mon Sep 17 00:00:00 2001 From: Bitl Date: Sat, 22 Feb 2025 10:16:23 -0700 Subject: [PATCH] Implements #416 --- src/game/shared/ragdoll_shared.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/game/shared/ragdoll_shared.cpp b/src/game/shared/ragdoll_shared.cpp index 669d03a780b..5d46e3e8566 100644 --- a/src/game/shared/ragdoll_shared.cpp +++ b/src/game/shared/ragdoll_shared.cpp @@ -889,15 +889,29 @@ void CRagdollLRURetirement::Update( float frametime ) // EPISODIC VERSION for ( i = m_LRU.Head(); i < m_LRU.InvalidIndex(); i = next ) { +#ifndef BDSBASE CBaseAnimating *pRagdoll = m_LRU[i].Get(); +#endif next = m_LRU.Next(i); +#ifndef BDSBASE IPhysicsObject *pObject = pRagdoll->VPhysicsGetObject(); if ( pRagdoll && (pRagdoll->GetEffectEntity() || ( pObject && !pObject->IsAsleep()) ) ) continue; +#endif + +#ifdef BDSBASE + CBaseAnimating* pRagdoll = m_LRU[i].Get(); +#endif if ( pRagdoll ) { +#ifdef BDSBASE + IPhysicsObject* pObject = pRagdoll->VPhysicsGetObject(); + if (pRagdoll && (pRagdoll->GetEffectEntity() || (pObject && !pObject->IsAsleep()))) + continue; +#endif + // float distToPlayer = (pPlayer->GetAbsOrigin() - pRagdoll->GetAbsOrigin()).LengthSqr(); float distToPlayer = (PlayerOrigin - pRagdoll->GetAbsOrigin()).LengthSqr(); @@ -932,10 +946,20 @@ void CRagdollLRURetirement::Update( float frametime ) // EPISODIC VERSION CBaseAnimating *pRagdoll = m_LRU[i].Get(); +#ifdef BDSBASE + if (pRagdoll) + { + //Just ignore it until we're done burning/dissolving. + IPhysicsObject* pObject = pRagdoll->VPhysicsGetObject(); + if (pRagdoll->GetEffectEntity() || (pObject && !pObject->IsAsleep())) + continue; + } +#else //Just ignore it until we're done burning/dissolving. IPhysicsObject *pObject = pRagdoll->VPhysicsGetObject(); if ( pRagdoll && (pRagdoll->GetEffectEntity() || ( pObject && !pObject->IsAsleep()) ) ) continue; +#endif #ifdef CLIENT_DLL m_LRU[ i ]->SUB_Remove();