diff --git a/game/client/c_baseplayer.cpp b/game/client/c_baseplayer.cpp index 28f9faec28..7b5ae54880 100644 --- a/game/client/c_baseplayer.cpp +++ b/game/client/c_baseplayer.cpp @@ -2062,6 +2062,11 @@ void C_BasePlayer::PostThink( void ) // Even if dead simulate entities SimulatePlayerSimulatedEntities(); + + if ( GetCheckUntouch() ) + { + PhysicsCheckForEntityUntouch(); + } #endif } diff --git a/game/server/player.cpp b/game/server/player.cpp index 4d2c0296ea..fc51a24e2d 100644 --- a/game/server/player.cpp +++ b/game/server/player.cpp @@ -4620,10 +4620,6 @@ void CBasePlayer::PostThink() m_Local.m_vecPunchAngle = RandomAngle( -25, 25 ); m_Local.m_vecPunchAngleVel.Init(); } - - VPROF_SCOPE_BEGIN( "CBasePlayer::PostThink-PostThinkVPhysics" ); - PostThinkVPhysics(); - VPROF_SCOPE_END(); } #if !defined( NO_ENTITY_PREDICTION ) @@ -4631,6 +4627,10 @@ void CBasePlayer::PostThink() SimulatePlayerSimulatedEntities(); #endif + if ( GetCheckUntouch() ) + { + PhysicsCheckForEntityUntouch(); + } } // handles touching physics objects diff --git a/game/server/player_command.cpp b/game/server/player_command.cpp index 2f9cd7560f..1be3b970ab 100644 --- a/game/server/player_command.cpp +++ b/game/server/player_command.cpp @@ -495,6 +495,12 @@ void CPlayerMove::RunCommand ( CBasePlayer *player, CUserCmd *ucmd, IMoveHelper FinishInterpolatingPlayer( player ); + // This needs to be there because it cannot get an interpolated camera position. + // Technically this is movement data and needs to be seperated from PostThink. + VPROF_SCOPE_BEGIN( "CBasePlayer::PostThink-PostThinkVPhysics" ); + player->PostThinkVPhysics(); + VPROF_SCOPE_END(); + ServiceEventQueue( player ); g_pGameMovement->FinishTrackPredictionErrors( player ); diff --git a/game/shared/baseplayer_shared.cpp b/game/shared/baseplayer_shared.cpp index a716db3868..b91cafae80 100644 --- a/game/shared/baseplayer_shared.cpp +++ b/game/shared/baseplayer_shared.cpp @@ -229,11 +229,6 @@ void CBasePlayer::ItemPostFrame() { VPROF( "CBasePlayer::ItemPostFrame" ); - if ( GetCheckUntouch() ) - { - PhysicsCheckForEntityUntouch(); - } - // Put viewmodels into basically correct place based on new player origin CalcViewModelView( EyePosition(), EyeAngles() );