From d370302438504b774eee4660b8770ab3a4250e20 Mon Sep 17 00:00:00 2001 From: Kamay Date: Wed, 20 Dec 2017 22:14:06 +0100 Subject: [PATCH] Sometimes teleports wouldn't work because physics impacts were processed before the player's thinkings, fixed it by moving the processed impacts before thinking functions. --- mp/src/game/server/player_command.cpp | 10 +++++----- sp/src/game/server/player_command.cpp | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/mp/src/game/server/player_command.cpp b/mp/src/game/server/player_command.cpp index e7f8c0a3c..4bffc56e1 100644 --- a/mp/src/game/server/player_command.cpp +++ b/mp/src/game/server/player_command.cpp @@ -417,6 +417,11 @@ void CPlayerMove::RunCommand ( CBasePlayer *player, CUserCmd *ucmd, IMoveHelper { player->pl.v_angle = ucmd->viewangles + player->pl.anglechange; } + + // Let server invoke any needed impact functions + VPROF_SCOPE_BEGIN( "moveHelper->ProcessImpacts" ); + moveHelper->ProcessImpacts(); + VPROF_SCOPE_END(); // Call standard client pre-think RunPreThink( player ); @@ -451,11 +456,6 @@ void CPlayerMove::RunCommand ( CBasePlayer *player, CUserCmd *ucmd, IMoveHelper player->pl.v_angle = player->GetLockViewanglesData(); } - // Let server invoke any needed impact functions - VPROF_SCOPE_BEGIN( "moveHelper->ProcessImpacts" ); - moveHelper->ProcessImpacts(); - VPROF_SCOPE_END(); - g_pGameMovement->FinishTrackPredictionErrors( player ); FinishCommand( player ); diff --git a/sp/src/game/server/player_command.cpp b/sp/src/game/server/player_command.cpp index ea6caf339..7dc38c825 100644 --- a/sp/src/game/server/player_command.cpp +++ b/sp/src/game/server/player_command.cpp @@ -416,6 +416,11 @@ void CPlayerMove::RunCommand ( CBasePlayer *player, CUserCmd *ucmd, IMoveHelper { player->pl.v_angle = ucmd->viewangles + player->pl.anglechange; } + + // Let server invoke any needed impact functions + VPROF_SCOPE_BEGIN( "moveHelper->ProcessImpacts" ); + moveHelper->ProcessImpacts(); + VPROF_SCOPE_END(); // Call standard client pre-think RunPreThink( player ); @@ -444,11 +449,6 @@ void CPlayerMove::RunCommand ( CBasePlayer *player, CUserCmd *ucmd, IMoveHelper // Copy output FinishMove( player, ucmd, g_pMoveData ); - // Let server invoke any needed impact functions - VPROF_SCOPE_BEGIN( "moveHelper->ProcessImpacts" ); - moveHelper->ProcessImpacts(); - VPROF_SCOPE_END(); - g_pGameMovement->FinishTrackPredictionErrors( player ); FinishCommand( player );