Fixed trigger_fall not doing anything when landing in water

This commit is contained in:
Blixibon 2021-10-09 15:04:10 -05:00
parent 7702ce96d4
commit 495d534307
5 changed files with 10 additions and 4 deletions

View File

@ -281,6 +281,7 @@ END_RECV_TABLE()
RecvPropInt ( RECVINFO( m_spawnflags ), 0, RecvProxy_ShiftPlayerSpawnflags ),
RecvPropBool ( RECVINFO( m_bDrawPlayerModelExternally ) ),
RecvPropBool ( RECVINFO( m_bInTriggerFall ) ),
#endif
END_RECV_TABLE()

View File

@ -458,6 +458,8 @@ public:
// Allows the player's model to draw on non-main views, like monitors or mirrors.
bool m_bDrawPlayerModelExternally;
bool m_bInTriggerFall;
#endif
protected:

View File

@ -8676,6 +8676,7 @@ void SendProxy_ShiftPlayerSpawnflags( const SendProp *pProp, const void *pStruct
SendPropInt ( SENDINFO( m_spawnflags ), 3, SPROP_UNSIGNED, SendProxy_ShiftPlayerSpawnflags ),
SendPropBool ( SENDINFO( m_bDrawPlayerModelExternally ) ),
SendPropBool ( SENDINFO( m_bInTriggerFall ) ),
#endif
END_SEND_TABLE()

View File

@ -943,7 +943,7 @@ public:
#endif
#ifdef MAPBASE
bool m_bInTriggerFall;
CNetworkVar( bool, m_bInTriggerFall );
#endif
private:

View File

@ -3907,13 +3907,11 @@ void CGameMovement::CheckFalling( void )
return;
#ifdef MAPBASE
#ifdef GAME_DLL // Let's hope we could work without transmitting to the client...
if ( player->m_bInTriggerFall )
{
// This lets the fall damage functions do their magic without having to change them.
// This value lets the existing fall damage functions ensure a fatal fall.
player->m_Local.m_flFallVelocity += (PLAYER_FATAL_FALL_SPEED + PLAYER_LAND_ON_FLOATING_OBJECT);
}
#endif
#endif
if ( !IsDead() && player->m_Local.m_flFallVelocity >= PLAYER_FALL_PUNCH_THRESHOLD )
@ -3921,7 +3919,11 @@ void CGameMovement::CheckFalling( void )
bool bAlive = true;
float fvol = 0.5;
#ifdef MAPBASE
if ( player->GetWaterLevel() > 0 && !player->m_bInTriggerFall )
#else
if ( player->GetWaterLevel() > 0 )
#endif
{
// They landed in water.
}