From 6b8301432485f77352c1dcac52af56e1557c223b Mon Sep 17 00:00:00 2001 From: Jacob Ledbetter Date: Tue, 15 Sep 2026 22:59:47 -0600 Subject: [PATCH 1/4] fix(ControlBar): Return if `marker` is null. --- .../Source/GameClient/GUI/ControlBar/ControlBar.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp b/Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp index 5ea376f5b3c..a88157d8c69 100644 --- a/Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp +++ b/Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp @@ -2754,6 +2754,10 @@ void ControlBar::showRallyPoint(const Coord3D* loc) // sanity DEBUG_ASSERTCRASH(marker, ("showRallyPoint: No rally point marker found")); + if (!marker) + { + return; + } // set the position of the rally point drawable to the position passed in marker->setPosition(loc); From e172534710cad1ccbf76bc6b471ed6025d56c0c8 Mon Sep 17 00:00:00 2001 From: Jacob Lane Ledbetter <23038070+CryoTheRenegade@users.noreply.github.com> Date: Tue, 15 Sep 2026 23:12:10 -0600 Subject: [PATCH 2/4] fix(ControlBar): Add Invalid ID suggestion Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp b/Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp index a88157d8c69..48a230a2ad3 100644 --- a/Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp +++ b/Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp @@ -2756,6 +2756,7 @@ void ControlBar::showRallyPoint(const Coord3D* loc) DEBUG_ASSERTCRASH(marker, ("showRallyPoint: No rally point marker found")); if (!marker) { + m_rallyPointDrawableID = INVALID_DRAWABLE_ID; return; } From 3919be42aa01421cd12005ac24d66c35f56bfb86 Mon Sep 17 00:00:00 2001 From: Jacob Ledbetter Date: Wed, 16 Sep 2026 10:04:44 -0600 Subject: [PATCH 3/4] fix(ControlBar): Check the rally point template before creation --- .../GameClient/GUI/ControlBar/ControlBar.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp b/Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp index 48a230a2ad3..9c144eead66 100644 --- a/Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp +++ b/Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp @@ -2741,24 +2741,22 @@ void ControlBar::showRallyPoint(const Coord3D* loc) if (m_rallyPointDrawableID == INVALID_DRAWABLE_ID) { const ThingTemplate* ttn = TheThingFactory->findTemplate("RallyPointMarker"); - marker = TheThingFactory->newDrawable(ttn); - DEBUG_ASSERTCRASH(marker, ("showRallyPoint: Unable to create rally point drawable")); - if (marker) + // TheSuperHackers @bugfix CryoTheRenegade 06/09/2026 Skip rally point creation when its template is missing. + if (!ttn) { - marker->setDrawableStatus(DRAWABLE_STATUS_NO_SAVE); - m_rallyPointDrawableID = marker->getID(); + return; } + + marker = TheThingFactory->newDrawable(ttn); + DEBUG_ASSERTCRASH(marker, ("showRallyPoint: Unable to create rally point drawable")); + marker->setDrawableStatus(DRAWABLE_STATUS_NO_SAVE); + m_rallyPointDrawableID = marker->getID(); } else marker = TheGameClient->findDrawableByID(m_rallyPointDrawableID); // sanity DEBUG_ASSERTCRASH(marker, ("showRallyPoint: No rally point marker found")); - if (!marker) - { - m_rallyPointDrawableID = INVALID_DRAWABLE_ID; - return; - } // set the position of the rally point drawable to the position passed in marker->setPosition(loc); From 2880cfd09ad5ea826e4c2a0d2bf451b2b3396e95 Mon Sep 17 00:00:00 2001 From: Jacob Ledbetter Date: Wed, 16 Sep 2026 10:23:15 -0600 Subject: [PATCH 4/4] style(ControlBar): Remove redundant rally point comment --- Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp b/Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp index 9c144eead66..99bdf98130d 100644 --- a/Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp +++ b/Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp @@ -2741,7 +2741,6 @@ void ControlBar::showRallyPoint(const Coord3D* loc) if (m_rallyPointDrawableID == INVALID_DRAWABLE_ID) { const ThingTemplate* ttn = TheThingFactory->findTemplate("RallyPointMarker"); - // TheSuperHackers @bugfix CryoTheRenegade 06/09/2026 Skip rally point creation when its template is missing. if (!ttn) { return;