From d12f9b08de42e85463b35c23809652654a3c1bce Mon Sep 17 00:00:00 2001 From: Chris Bordeman Date: Thu, 1 Oct 2026 21:23:04 -0400 Subject: [PATCH 1/5] Modifies recreateControlBar() in gen and genMD to delete the previous window per issue #3381 --- Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp | 4 ++-- GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp b/Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp index 0233de30d90..01bf85c1561 100644 --- a/Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp @@ -5887,8 +5887,8 @@ void InGameUI::resetIdleWorker() void InGameUI::recreateControlBar() { - GameWindow *win = TheWindowManager->winGetWindowFromId(nullptr, TheNameKeyGenerator->nameToKey("ControlBar.wnd")); - deleteInstance(win); + GameWindow* win = TheWindowManager->winGetWindowFromId(nullptr, TheNameKeyGenerator->nameToKey("ControlBar.wnd:ControlBarParent")); + TheWindowManager->winDestroy(win); m_idleWorkerWin = nullptr; diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp index 2e3877cc956..87fd0b88a2b 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp @@ -6020,8 +6020,8 @@ void InGameUI::resetIdleWorker() void InGameUI::recreateControlBar() { - GameWindow *win = TheWindowManager->winGetWindowFromId(nullptr, TheNameKeyGenerator->nameToKey("ControlBar.wnd")); - deleteInstance(win); + GameWindow *win = TheWindowManager->winGetWindowFromId(nullptr, TheNameKeyGenerator->nameToKey("ControlBar.wnd:ControlBarParent")); + TheWindowManager->winDestroy(win); m_idleWorkerWin = nullptr; @@ -6029,7 +6029,7 @@ void InGameUI::recreateControlBar() delete TheControlBar; TheControlBar = NEW ControlBar; - TheControlBar->init(); + TheControlBar->init(); } void InGameUI::refreshCustomUiResources() From c77452a86064068e2859e3bdf42719bed49aaa07 Mon Sep 17 00:00:00 2001 From: Chris Bordeman Date: Thu, 1 Oct 2026 21:23:04 -0400 Subject: [PATCH 2/5] Modifies recreateControlBar() in gen and genMD to delete the previous window per issue #3381 --- Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp | 4 ++-- GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp b/Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp index 0233de30d90..01bf85c1561 100644 --- a/Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp @@ -5887,8 +5887,8 @@ void InGameUI::resetIdleWorker() void InGameUI::recreateControlBar() { - GameWindow *win = TheWindowManager->winGetWindowFromId(nullptr, TheNameKeyGenerator->nameToKey("ControlBar.wnd")); - deleteInstance(win); + GameWindow* win = TheWindowManager->winGetWindowFromId(nullptr, TheNameKeyGenerator->nameToKey("ControlBar.wnd:ControlBarParent")); + TheWindowManager->winDestroy(win); m_idleWorkerWin = nullptr; diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp index 2e3877cc956..87fd0b88a2b 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp @@ -6020,8 +6020,8 @@ void InGameUI::resetIdleWorker() void InGameUI::recreateControlBar() { - GameWindow *win = TheWindowManager->winGetWindowFromId(nullptr, TheNameKeyGenerator->nameToKey("ControlBar.wnd")); - deleteInstance(win); + GameWindow *win = TheWindowManager->winGetWindowFromId(nullptr, TheNameKeyGenerator->nameToKey("ControlBar.wnd:ControlBarParent")); + TheWindowManager->winDestroy(win); m_idleWorkerWin = nullptr; @@ -6029,7 +6029,7 @@ void InGameUI::recreateControlBar() delete TheControlBar; TheControlBar = NEW ControlBar; - TheControlBar->init(); + TheControlBar->init(); } void InGameUI::refreshCustomUiResources() From cf21e0ab4bc6142e25cfb6b501e95f9404a0c6bf Mon Sep 17 00:00:00 2001 From: Chris Bordeman Date: Sat, 3 Oct 2026 16:12:47 -0400 Subject: [PATCH 3/5] Added scoping {} around win usage. --- Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp | 6 ++++-- GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp b/Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp index 01bf85c1561..3409671ccce 100644 --- a/Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp @@ -5887,8 +5887,10 @@ void InGameUI::resetIdleWorker() void InGameUI::recreateControlBar() { - GameWindow* win = TheWindowManager->winGetWindowFromId(nullptr, TheNameKeyGenerator->nameToKey("ControlBar.wnd:ControlBarParent")); - TheWindowManager->winDestroy(win); + { + GameWindow* win = TheWindowManager->winGetWindowFromId(nullptr, TheNameKeyGenerator->nameToKey("ControlBar.wnd:ControlBarParent")); + TheWindowManager->winDestroy(win); + } m_idleWorkerWin = nullptr; diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp index 87fd0b88a2b..df8fc847e3e 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp @@ -6020,8 +6020,10 @@ void InGameUI::resetIdleWorker() void InGameUI::recreateControlBar() { - GameWindow *win = TheWindowManager->winGetWindowFromId(nullptr, TheNameKeyGenerator->nameToKey("ControlBar.wnd:ControlBarParent")); - TheWindowManager->winDestroy(win); + { + GameWindow* win = TheWindowManager->winGetWindowFromId(nullptr, TheNameKeyGenerator->nameToKey("ControlBar.wnd:ControlBarParent")); + TheWindowManager->winDestroy(win); + } m_idleWorkerWin = nullptr; From c89d971ce1963355ce2968c66e73eeebebfe9a11 Mon Sep 17 00:00:00 2001 From: Chris Bordeman Date: Sat, 3 Oct 2026 16:23:26 -0400 Subject: [PATCH 4/5] Change * win to *win and removed tab. --- Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp | 2 +- GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp b/Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp index 3409671ccce..0f6664b2e53 100644 --- a/Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/InGameUI.cpp @@ -5888,7 +5888,7 @@ void InGameUI::resetIdleWorker() void InGameUI::recreateControlBar() { { - GameWindow* win = TheWindowManager->winGetWindowFromId(nullptr, TheNameKeyGenerator->nameToKey("ControlBar.wnd:ControlBarParent")); + GameWindow *win = TheWindowManager->winGetWindowFromId(nullptr, TheNameKeyGenerator->nameToKey("ControlBar.wnd:ControlBarParent")); TheWindowManager->winDestroy(win); } diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp index df8fc847e3e..af8c3d44db3 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp @@ -6021,7 +6021,7 @@ void InGameUI::resetIdleWorker() void InGameUI::recreateControlBar() { { - GameWindow* win = TheWindowManager->winGetWindowFromId(nullptr, TheNameKeyGenerator->nameToKey("ControlBar.wnd:ControlBarParent")); + GameWindow *win = TheWindowManager->winGetWindowFromId(nullptr, TheNameKeyGenerator->nameToKey("ControlBar.wnd:ControlBarParent")); TheWindowManager->winDestroy(win); } @@ -6031,7 +6031,7 @@ void InGameUI::recreateControlBar() delete TheControlBar; TheControlBar = NEW ControlBar; - TheControlBar->init(); + TheControlBar->init(); } void InGameUI::refreshCustomUiResources() From 26872f5505b893082fc6ebf39ffacb09d5451e2d Mon Sep 17 00:00:00 2001 From: Chris Bordeman Date: Sat, 3 Oct 2026 17:02:52 -0400 Subject: [PATCH 5/5] Removed trailing tab. --- GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp index fcf2bd69cf3..af8c3d44db3 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp @@ -6031,7 +6031,7 @@ void InGameUI::recreateControlBar() delete TheControlBar; TheControlBar = NEW ControlBar; - TheControlBar->init(); + TheControlBar->init(); } void InGameUI::refreshCustomUiResources()