@@ -3847,8 +3847,9 @@ void CBasePlayer::PlayerRunCommand(CUserCmd *ucmd, IMoveHelper *moveHelper)
38473847 }
38483848 }
38493849
3850- // Store pre-tick viewpunch to lerp for subtick
3850+ // Store pre-tick angles to lerp for subtick
38513851 m_Local.m_vecPreTickPunchAngle = m_Local.m_vecPunchAngle ;
3852+ m_Local.m_vecPreTickEyeAngles = EyeAngles ();
38523853
38533854 PlayerMove ()->RunCommand (this , ucmd, moveHelper);
38543855}
@@ -8797,7 +8798,11 @@ const QAngle& CBasePlayer::Weapon_PunchAngle()
87978798 return vecCurPunch;
87988799 }
87998800
8800- return Lerp ( m_flInterpolationTime, m_Local.m_vecPreTickPunchAngle , vecCurPunch );
8801+ static QAngle vecReturnPunch;
8802+ vecReturnPunch.x = m_Local.m_vecPreTickPunchAngle .x + AngleDiff ( vecCurPunch.x , m_Local.m_vecPreTickPunchAngle .x ) * m_flInterpolationTime;
8803+ vecReturnPunch.y = m_Local.m_vecPreTickPunchAngle .y + AngleDiff ( vecCurPunch.y , m_Local.m_vecPreTickPunchAngle .y ) * m_flInterpolationTime;
8804+ vecReturnPunch.z = m_Local.m_vecPreTickPunchAngle .z + AngleDiff ( vecCurPunch.z , m_Local.m_vecPreTickPunchAngle .z ) * m_flInterpolationTime;
8805+ return vecReturnPunch;
88018806}
88028807
88038808
@@ -8821,6 +8826,21 @@ void CBasePlayer::SetPunchAngle( const QAngle &punchAngle )
88218826 }
88228827}
88238828
8829+ const QAngle& CBasePlayer::Weapon_EyeAngles ()
8830+ {
8831+ if ( !IsInPostThink () || m_flInterpolationTime >= 1 .0f )
8832+ {
8833+ return EyeAngles ();
8834+ }
8835+
8836+ static QAngle vecReturn;
8837+ QAngle current = EyeAngles ();
8838+ vecReturn.x = m_Local.m_vecPreTickEyeAngles .x + AngleDiff ( current.x , m_Local.m_vecPreTickEyeAngles .x ) * m_flInterpolationTime;
8839+ vecReturn.y = m_Local.m_vecPreTickEyeAngles .y + AngleDiff ( current.y , m_Local.m_vecPreTickEyeAngles .y ) * m_flInterpolationTime;
8840+ vecReturn.z = m_Local.m_vecPreTickEyeAngles .z + AngleDiff ( current.z , m_Local.m_vecPreTickEyeAngles .z ) * m_flInterpolationTime;
8841+ return vecReturn;
8842+ }
8843+
88248844// -----------------------------------------------------------------------------
88258845// Purpose: Apply a movement constraint to the player
88268846// -----------------------------------------------------------------------------
0 commit comments