diff --git a/mp/src/game/client/prediction.cpp b/mp/src/game/client/prediction.cpp index 2a67007b99..751c005e12 100644 --- a/mp/src/game/client/prediction.cpp +++ b/mp/src/game/client/prediction.cpp @@ -909,9 +909,9 @@ void CPrediction::RunCommand( C_BasePlayer *player, CUserCmd *ucmd, IMoveHelper pVehicle->ProcessMovement( player, g_pMoveData ); } - FinishMove( player, ucmd, g_pMoveData ); + RunPostThink( player ); - RunPostThink( player ); + FinishMove( player, ucmd, g_pMoveData ); g_pGameMovement->FinishTrackPredictionErrors( player ); diff --git a/mp/src/game/server/player_command.cpp b/mp/src/game/server/player_command.cpp index bf77b5d46c..4bffc56e13 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 ); @@ -440,6 +445,8 @@ void CPlayerMove::RunCommand ( CBasePlayer *player, CUserCmd *ucmd, IMoveHelper pVehicle->ProcessMovement( player, g_pMoveData ); } + RunPostThink( player ); + // Copy output FinishMove( player, ucmd, g_pMoveData ); @@ -449,13 +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(); - - RunPostThink( player ); - g_pGameMovement->FinishTrackPredictionErrors( player ); FinishCommand( player ); diff --git a/sp/src/game/client/prediction.cpp b/sp/src/game/client/prediction.cpp index 6646f8f9e0..c9fde41e85 100644 --- a/sp/src/game/client/prediction.cpp +++ b/sp/src/game/client/prediction.cpp @@ -903,9 +903,9 @@ void CPrediction::RunCommand( C_BasePlayer *player, CUserCmd *ucmd, IMoveHelper pVehicle->ProcessMovement( player, g_pMoveData ); } - FinishMove( player, ucmd, g_pMoveData ); + RunPostThink( player ); - RunPostThink( player ); + FinishMove( player, ucmd, g_pMoveData ); g_pGameMovement->FinishTrackPredictionErrors( player ); diff --git a/sp/src/game/server/player_command.cpp b/sp/src/game/server/player_command.cpp index b607bbab8a..7dc38c8257 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 ); @@ -439,16 +444,11 @@ void CPlayerMove::RunCommand ( CBasePlayer *player, CUserCmd *ucmd, IMoveHelper pVehicle->ProcessMovement( player, g_pMoveData ); } + RunPostThink( player ); + // Copy output FinishMove( player, ucmd, g_pMoveData ); - // Let server invoke any needed impact functions - VPROF_SCOPE_BEGIN( "moveHelper->ProcessImpacts" ); - moveHelper->ProcessImpacts(); - VPROF_SCOPE_END(); - - RunPostThink( player ); - g_pGameMovement->FinishTrackPredictionErrors( player ); FinishCommand( player );