From 87c0230c8da3a634ab46d509e8dff79bed80014b Mon Sep 17 00:00:00 2001 From: nullsystem <15316579+nullsystem@users.noreply.github.com> Date: Sat, 6 Jul 2024 15:45:52 +0100 Subject: [PATCH] Spec fixes - Lean 3p spec fix, POI mode filtered out (#484) * fixes #418 * fixes #451 --- mp/src/game/client/neo/c_neo_player.cpp | 6 +++++- mp/src/game/server/neo/neo_player.cpp | 6 +++++- mp/src/game/server/player.cpp | 9 +++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/mp/src/game/client/neo/c_neo_player.cpp b/mp/src/game/client/neo/c_neo_player.cpp index f1b5212b2..23fd6306d 100644 --- a/mp/src/game/client/neo/c_neo_player.cpp +++ b/mp/src/game/client/neo/c_neo_player.cpp @@ -839,7 +839,10 @@ void C_NEO_Player::PreThink( void ) m_flCamoAuxLastTime = 0; } - Lean(); + if (IsAlive()) + { + Lean(); + } // Eek. See rationale for this thing in CNEO_Player::PreThink if (IsAirborne()) @@ -1011,6 +1014,7 @@ void C_NEO_Player::PostThink(void) Weapon_SetZoom(false); m_bInVision = false; + m_bInLean = NEO_LEAN_NONE; if (IsLocalPlayer() && (GetTeamNumber() == TEAM_JINRAI || GetTeamNumber() == TEAM_NSF)) { diff --git a/mp/src/game/server/neo/neo_player.cpp b/mp/src/game/server/neo/neo_player.cpp index 01ec7bf5f..06d777a21 100644 --- a/mp/src/game/server/neo/neo_player.cpp +++ b/mp/src/game/server/neo/neo_player.cpp @@ -716,7 +716,10 @@ void CNEO_Player::PreThink(void) m_flCamoAuxLastTime = 0; } - Lean(); + if (IsAlive()) + { + Lean(); + } // NEO HACK (Rain): Just bodging together a check for if we're allowed // to superjump, or if we've been airborne too long for that. @@ -1047,6 +1050,7 @@ void CNEO_Player::PostThink(void) Weapon_SetZoom(false); m_bInVision = false; + m_bInLean = NEO_LEAN_NONE; } return; diff --git a/mp/src/game/server/player.cpp b/mp/src/game/server/player.cpp index 25d2e60c6..0675e66b4 100644 --- a/mp/src/game/server/player.cpp +++ b/mp/src/game/server/player.cpp @@ -2320,6 +2320,15 @@ bool CBasePlayer::SetObserverMode(int mode ) if ( mode < OBS_MODE_NONE || mode >= NUM_OBSERVER_MODES ) return false; +#ifdef NEO + // NEO NOTE (nullsystem): Skip over OBS_MODE_POI as it's practically OBS_MODE_CHASE + // with different HUD in NT;RE. Use either prev/next enum. + if (mode == OBS_MODE_POI) + { + if (m_iObserverMode < OBS_MODE_POI) mode = OBS_MODE_ROAMING; + else mode = OBS_MODE_CHASE; + } +#endif // check mp_forcecamera settings for dead players if ( mode > OBS_MODE_FIXED && GetTeamNumber() > TEAM_SPECTATOR )