diff --git a/Generals/Code/GameEngine/Include/Common/GameEngine.h b/Generals/Code/GameEngine/Include/Common/GameEngine.h index 67a45eb5f2e..8243afaaac7 100644 --- a/Generals/Code/GameEngine/Include/Common/GameEngine.h +++ b/Generals/Code/GameEngine/Include/Common/GameEngine.h @@ -104,7 +104,6 @@ class GameEngine : public SubsystemInterface Bool m_isActive; ///< app has OS focus. }; -inline void GameEngine::setQuitting( Bool quitting ) { m_quitting = quitting; } inline Bool GameEngine::getQuitting() { return m_quitting; } // the game engine singleton diff --git a/Generals/Code/GameEngine/Source/Common/GameEngine.cpp b/Generals/Code/GameEngine/Source/Common/GameEngine.cpp index ce2fdf16bac..0fd8d10ffaf 100644 --- a/Generals/Code/GameEngine/Source/Common/GameEngine.cpp +++ b/Generals/Code/GameEngine/Source/Common/GameEngine.cpp @@ -299,6 +299,15 @@ GameEngine::~GameEngine() #endif } +void GameEngine::setQuitting( Bool quitting ) +{ + if (quitting && TheGlobalData && TheGlobalData->m_headless) + { + return; + } + m_quitting = quitting; +} + //------------------------------------------------------------------------------------------------- Bool GameEngine::isTimeFrozen() { diff --git a/Generals/Code/GameEngine/Source/GameLogic/System/GameLogic.cpp b/Generals/Code/GameEngine/Source/GameLogic/System/GameLogic.cpp index be7d76d2894..4ba6fb37fe7 100644 --- a/Generals/Code/GameEngine/Source/GameLogic/System/GameLogic.cpp +++ b/Generals/Code/GameEngine/Source/GameLogic/System/GameLogic.cpp @@ -3712,6 +3712,11 @@ void GameLogic::exitGame() void GameLogic::quit(Bool toDesktop) { + if (TheGlobalData && TheGlobalData->m_headless) + { + return; + } + const Bool isNotLoading = (!isLoadingMap() && !isLoadingSave()); if (isInGame()) diff --git a/GeneralsMD/Code/GameEngine/Include/Common/GameEngine.h b/GeneralsMD/Code/GameEngine/Include/Common/GameEngine.h index 20e7188b3e6..c77385a7d4a 100644 --- a/GeneralsMD/Code/GameEngine/Include/Common/GameEngine.h +++ b/GeneralsMD/Code/GameEngine/Include/Common/GameEngine.h @@ -103,7 +103,6 @@ class GameEngine : public SubsystemInterface Bool m_isActive; ///< app has OS focus. }; -inline void GameEngine::setQuitting( Bool quitting ) { m_quitting = quitting; } inline Bool GameEngine::getQuitting() { return m_quitting; } // the game engine singleton diff --git a/GeneralsMD/Code/GameEngine/Source/Common/GameEngine.cpp b/GeneralsMD/Code/GameEngine/Source/Common/GameEngine.cpp index a34487538d8..38d01b9221a 100644 --- a/GeneralsMD/Code/GameEngine/Source/Common/GameEngine.cpp +++ b/GeneralsMD/Code/GameEngine/Source/Common/GameEngine.cpp @@ -300,6 +300,15 @@ GameEngine::~GameEngine() #endif } +void GameEngine::setQuitting( Bool quitting ) +{ + if (quitting && TheGlobalData && TheGlobalData->m_headless) + { + return; + } + m_quitting = quitting; +} + //------------------------------------------------------------------------------------------------- Bool GameEngine::isTimeFrozen() { diff --git a/GeneralsMD/Code/GameEngine/Source/GameLogic/System/GameLogic.cpp b/GeneralsMD/Code/GameEngine/Source/GameLogic/System/GameLogic.cpp index 622aeb5da10..049a49d8164 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameLogic/System/GameLogic.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameLogic/System/GameLogic.cpp @@ -4272,6 +4272,11 @@ void GameLogic::exitGame() void GameLogic::quit(Bool toDesktop) { + if (TheGlobalData && TheGlobalData->m_headless) + { + return; + } + const Bool isNotLoading = (!isLoadingMap() && !isLoadingSave()); if (isInGame())