Skip to content

Commit 698aeb9

Browse files
committed
update
1 parent 986d8ba commit 698aeb9

1 file changed

Lines changed: 27 additions & 15 deletions

File tree

src/game/server/swarm/func_asw_fade.cpp

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -45,43 +45,55 @@ void CFunc_ASW_Fade::Spawn()
4545
Assert( m_iCollideWithGrenades <= 2 );
4646
}
4747

48-
void CFunc_ASW_Fade::DisableCollisionsWithGrenade( CBaseEntity *pGrenade )
48+
void CFunc_ASW_Fade::DisableCollisionsWithGrenade( CBaseEntity* pGrenade )
4949
{
50-
float flGrenadeZ = pGrenade->GetAbsOrigin().z;
51-
string_t iszClassName = AllocPooledString( "func_asw_fade" );
50+
const float flGrenadeZ = pGrenade->GetAbsOrigin().z;
51+
const string_t iszClassName = AllocPooledString( "func_asw_fade" );
5252

53-
CFunc_ASW_Fade *pCeiling = NULL;
54-
while ( ( pCeiling = assert_cast< CFunc_ASW_Fade * >( gEntList.FindEntityByClassnameFast( pCeiling, iszClassName ) ) ) != NULL )
53+
CFunc_ASW_Fade* pCeiling = nullptr;
54+
while ( ( pCeiling = assert_cast<CFunc_ASW_Fade*>(
55+
gEntList.FindEntityByClassnameFast( pCeiling, iszClassName ) ) ) != nullptr )
5556
{
56-
if ( ( pCeiling->m_iCollideWithGrenades == 0 && pCeiling->GetAbsOrigin().z >= flGrenadeZ ) || pCeiling->m_iCollideWithGrenades == 2 )
57+
const bool bShouldDisable =
58+
( pCeiling->m_iCollideWithGrenades == 0 && pCeiling->GetAbsOrigin().z >= flGrenadeZ ) ||
59+
( pCeiling->m_iCollideWithGrenades == 2 );
60+
61+
const bool bCurrentlyDisabled = PhysEntityCollisionsAreDisabled( pCeiling, pGrenade );
62+
63+
if ( bShouldDisable && !bCurrentlyDisabled )
5764
{
5865
PhysDisableEntityCollisions( pCeiling, pGrenade );
5966
}
60-
else
67+
else if ( !bShouldDisable && bCurrentlyDisabled )
6168
{
6269
PhysEnableEntityCollisions( pCeiling, pGrenade );
63-
}
70+
}
6471
}
6572
}
6673

67-
void CFunc_ASW_Fade::DisableCollisionsWithMarine( CBaseEntity *pMarine )
74+
void CFunc_ASW_Fade::DisableCollisionsWithMarine( CBaseEntity* pMarine )
6875
{
69-
string_t iszClassName = AllocPooledString( "func_asw_fade" );
76+
const string_t iszClassName = AllocPooledString( "func_asw_fade" );
7077

71-
CFunc_ASW_Fade *pCeiling = NULL;
72-
while ( ( pCeiling = assert_cast< CFunc_ASW_Fade * >( gEntList.FindEntityByClassnameFast( pCeiling, iszClassName ) ) ) != NULL )
78+
CFunc_ASW_Fade* pCeiling = nullptr;
79+
while ( ( pCeiling = assert_cast<CFunc_ASW_Fade*>(
80+
gEntList.FindEntityByClassnameFast( pCeiling, iszClassName ) ) ) != nullptr )
7381
{
74-
if ( !pCeiling->m_bCollideWithMarines )
82+
const bool bShouldDisable = !pCeiling->m_bCollideWithMarines;
83+
const bool bCurrentlyDisabled = PhysEntityCollisionsAreDisabled( pCeiling, pMarine );
84+
85+
if ( bShouldDisable && !bCurrentlyDisabled )
7586
{
7687
PhysDisableEntityCollisions( pCeiling, pMarine );
7788
}
78-
else
89+
else if ( !bShouldDisable && bCurrentlyDisabled )
7990
{
8091
PhysEnableEntityCollisions( pCeiling, pMarine );
81-
}
92+
}
8293
}
8394
}
8495

96+
8597
void CFunc_ASW_Fade::InputSetCollideWithGrenades( inputdata_t& inputdata )
8698
{
8799
m_iCollideWithGrenades = clamp( inputdata.value.Int(), 0, 2 );

0 commit comments

Comments
 (0)