From 8d6374442980db095929deb64942dce5f1863122 Mon Sep 17 00:00:00 2001 From: rei-2 <174158077+rei-2@users.noreply.github.com> Date: Mon, 16 Dec 2024 12:00:51 -0500 Subject: [PATCH] crash fix --- Amalgam/src/Features/Spectate/Spectate.cpp | 2 +- .../Visuals/PlayerConditions/PlayerConditions.cpp | 14 ++++++++++++-- .../Visuals/SpectatorList/SpectatorList.cpp | 1 - 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Amalgam/src/Features/Spectate/Spectate.cpp b/Amalgam/src/Features/Spectate/Spectate.cpp index 2ae5597b..1e4c6d70 100644 --- a/Amalgam/src/Features/Spectate/Spectate.cpp +++ b/Amalgam/src/Features/Spectate/Spectate.cpp @@ -13,7 +13,7 @@ void CSpectate::NetUpdateEnd(CTFPlayer* pLocal) } else if (pEntity == pLocal) m_iTarget = -1; - else if (m_iTarget == -1) + if (m_iTarget == -1) { if (pLocal->IsAlive()) pLocal->m_iObserverMode() = OBS_MODE_NONE; diff --git a/Amalgam/src/Features/Visuals/PlayerConditions/PlayerConditions.cpp b/Amalgam/src/Features/Visuals/PlayerConditions/PlayerConditions.cpp index 809cc27f..a674e310 100644 --- a/Amalgam/src/Features/Visuals/PlayerConditions/PlayerConditions.cpp +++ b/Amalgam/src/Features/Visuals/PlayerConditions/PlayerConditions.cpp @@ -355,7 +355,17 @@ std::vector CPlayerConditions::Get(CTFPlayer* pEntity) void CPlayerConditions::Draw(CTFPlayer* pLocal) { - if (!(Vars::Menu::Indicators.Value & Vars::Menu::IndicatorsEnum::Conditions) || !pLocal->IsAlive()) + if (!(Vars::Menu::Indicators.Value & Vars::Menu::IndicatorsEnum::Conditions)) + return; + + auto pTarget = pLocal; + switch (pLocal->m_iObserverMode()) + { + case OBS_MODE_FIRSTPERSON: + case OBS_MODE_THIRDPERSON: + pTarget = pLocal->m_hObserverTarget().Get()->As(); + } + if (!pTarget || !pTarget->IsPlayer() || !pTarget->IsAlive()) return; int x = Vars::Menu::ConditionsDisplay.Value.x; @@ -375,7 +385,7 @@ void CPlayerConditions::Draw(CTFPlayer* pLocal) align = ALIGN_TOPRIGHT; } - std::vector vConditions = Get(pLocal); + std::vector vConditions = Get(pTarget); int iOffset = 0; for (const std::wstring& sCondition : vConditions) diff --git a/Amalgam/src/Features/Visuals/SpectatorList/SpectatorList.cpp b/Amalgam/src/Features/Visuals/SpectatorList/SpectatorList.cpp index 41d5406e..a852fef2 100644 --- a/Amalgam/src/Features/Visuals/SpectatorList/SpectatorList.cpp +++ b/Amalgam/src/Features/Visuals/SpectatorList/SpectatorList.cpp @@ -62,7 +62,6 @@ void CSpectatorList::Draw(CTFPlayer* pLocal) return; } - auto pTarget = pLocal; switch (pLocal->m_iObserverMode()) {