diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/QuitMenu.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/QuitMenu.cpp index a6ee10bd72..f60ccdded2 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/QuitMenu.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/QuitMenu.cpp @@ -53,6 +53,7 @@ #include "GameClient/GameWindowTransitions.h" #include "GameClient/DisconnectMenu.h" #include "GameLogic/ScriptEngine.h" +#include "GameNetwork/GeneralsOnline/OnlineServices_LobbyInterface.h" @@ -192,6 +193,13 @@ static void surrenderQuitMenu() msg->appendBooleanArgument(TRUE); TheInGameUI->setClientQuiet( TRUE ); + + // If observers are disabled and we are not the host, exit game instead of observing + if (TheNGMPGame && !TheNGMPGame->getAllowObservers() && !TheNGMPGame->amIHost()) + { + TheGameLogic->exitGame(); + return; + } } static void restartMissionMenu()