Fixed trimping not being triggered while rampsliding (issue #434)

- A CategorizePosition call that sets the player's GroundEntity if they have jump pressed that was called every PlayerMove in 2006 code is called only when needed in 2013 code. Made it call CategorizePosition if jump is pressed. This fix could potentially be handled better.
This commit is contained in:
squeek 2013-11-01 03:23:35 +00:00
parent b282186df3
commit daed6c867d

View file

@ -4650,7 +4650,13 @@ void CGameMovement::PlayerMove( void )
} }
// Now that we are "unstuck", see where we are (player->GetWaterLevel() and type, player->GetGroundEntity()). // Now that we are "unstuck", see where we are (player->GetWaterLevel() and type, player->GetGroundEntity()).
if ( player->GetMoveType() != MOVETYPE_WALK || if (
// FF --> There is probably a better way to do this, but CategorizePosition needs to be called when jump is pressed to allow for trimping
// This will set the player's ground entity when rampsliding, which is needed for the jump code to not return early
// Note: in 2006 code, this CategorizePosition was not inside an if statement
mv->m_nButtons & IN_JUMP ||
// FF <--
player->GetMoveType() != MOVETYPE_WALK ||
mv->m_bGameCodeMovedPlayer || mv->m_bGameCodeMovedPlayer ||
!sv_optimizedmovement.GetBool() ) !sv_optimizedmovement.GetBool() )
{ {