From b3b183f07a4bebfbb31fb7026580c924d43da61e Mon Sep 17 00:00:00 2001 From: Alan Shen Date: Wed, 14 Oct 2026 19:10:13 -0600 Subject: [PATCH 1/2] Read mp_slammoveyaw directly in 9-way move yaw CHL2MPPlayerAnimState::ComputePoseParam_MoveYaw built a ConVarRef by name on every call, so every player's every usercmd on the server (and every frame on the client) did a linear CCvar::FindVar walk over all registered cvars. The ConVar is defined in multiplayer_animstate.cpp, which both DLLs compile, so refer to it with extern instead. The value read is the same; only the lookup goes away. Co-authored-by: Mikhail Bogdanov --- src/game/shared/hl2mp/hl2mp_playeranimstate.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/game/shared/hl2mp/hl2mp_playeranimstate.cpp b/src/game/shared/hl2mp/hl2mp_playeranimstate.cpp index 9e441acd87..779d1902d2 100644 --- a/src/game/shared/hl2mp/hl2mp_playeranimstate.cpp +++ b/src/game/shared/hl2mp/hl2mp_playeranimstate.cpp @@ -653,6 +653,7 @@ void CHL2MPPlayerAnimState::EstimateYaw( void ) // Input : dt - //----------------------------------------------------------------------------- float SnapYawTo( float flValue ); +extern ConVar mp_slammoveyaw; void CHL2MPPlayerAnimState::ComputePoseParam_MoveYaw( CStudioHdr *pStudioHdr ) { #ifdef NEO @@ -662,8 +663,6 @@ void CHL2MPPlayerAnimState::ComputePoseParam_MoveYaw( CStudioHdr *pStudioHdr ) EstimateYaw(); #if 1 // 9way - ConVarRef mp_slammoveyaw("mp_slammoveyaw"); - // Get the view yaw. float flAngle = AngleNormalize( m_flEyeYaw ); From 65d2af2da53640bef1ba10d65a4daa0ec8409711 Mon Sep 17 00:00:00 2001 From: Alan Shen Date: Wed, 14 Oct 2026 19:30:00 -0600 Subject: [PATCH 2/2] Guard the mp_slammoveyaw change for NEO Keep the stock SDK code path unchanged outside NEO builds: only NEO reads the ConVar directly, other builds keep the by-name lookup. --- src/game/shared/hl2mp/hl2mp_playeranimstate.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/game/shared/hl2mp/hl2mp_playeranimstate.cpp b/src/game/shared/hl2mp/hl2mp_playeranimstate.cpp index 779d1902d2..5ecee1cb5e 100644 --- a/src/game/shared/hl2mp/hl2mp_playeranimstate.cpp +++ b/src/game/shared/hl2mp/hl2mp_playeranimstate.cpp @@ -653,7 +653,9 @@ void CHL2MPPlayerAnimState::EstimateYaw( void ) // Input : dt - //----------------------------------------------------------------------------- float SnapYawTo( float flValue ); +#ifdef NEO extern ConVar mp_slammoveyaw; +#endif void CHL2MPPlayerAnimState::ComputePoseParam_MoveYaw( CStudioHdr *pStudioHdr ) { #ifdef NEO @@ -663,6 +665,10 @@ void CHL2MPPlayerAnimState::ComputePoseParam_MoveYaw( CStudioHdr *pStudioHdr ) EstimateYaw(); #if 1 // 9way +#ifndef NEO + ConVarRef mp_slammoveyaw("mp_slammoveyaw"); +#endif + // Get the view yaw. float flAngle = AngleNormalize( m_flEyeYaw );