Skip to content

Commit a2166e4

Browse files
committed
Added isquitmenuvisible as check
1 parent 4b7a872 commit a2166e4

4 files changed

Lines changed: 28 additions & 10 deletions

File tree

Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/QuitMenu.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,9 @@ void destroyQuitMenu()
137137
*/
138138
static void exitQuitMenu()
139139
{
140+
TheGameLogic->quit(FALSE);
140141
// destroy the quit menu
141142
destroyQuitMenu();
142-
TheGameLogic->quit(FALSE);
143143
}
144144
static void noExitQuitMenu()
145145
{
@@ -148,9 +148,9 @@ static void noExitQuitMenu()
148148

149149
static void quitToDesktopQuitMenu()
150150
{
151+
TheGameLogic->quit(TRUE);
151152
// destroy the quit menu
152153
destroyQuitMenu();
153-
TheGameLogic->quit(TRUE);
154154
}
155155

156156
static void surrenderQuitMenu()

Generals/Code/GameEngine/Source/GameLogic/System/GameLogic.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3642,10 +3642,19 @@ void GameLogic::quit(Bool toDesktop)
36423642
{
36433643
const Bool isSandbox = TheGameInfo && TheGameInfo->isSandbox();
36443644

3645-
if (isInMultiplayerGame() && TheGameInfo && !isSandbox)
3645+
if (isInInteractiveGame())
36463646
{
3647-
GameMessage *msg = TheMessageStream->appendMessage(GameMessage::MSG_SELF_DESTRUCT);
3648-
msg->appendBooleanArgument(TRUE);
3647+
if (!TheInGameUI->isQuitMenuVisible())
3648+
{
3649+
ToggleQuitMenu();
3650+
return;
3651+
}
3652+
3653+
if (isInMultiplayerGame() && TheGameInfo && !isSandbox)
3654+
{
3655+
GameMessage *msg = TheMessageStream->appendMessage(GameMessage::MSG_SELF_DESTRUCT);
3656+
msg->appendBooleanArgument(TRUE);
3657+
}
36493658
}
36503659

36513660
if (TheRecorder && TheRecorder->getMode() == RECORDERMODETYPE_RECORD)

GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/QuitMenu.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,9 @@ void destroyQuitMenu()
137137
*/
138138
static void exitQuitMenu()
139139
{
140+
TheGameLogic->quit(FALSE);
140141
// destroy the quit menu
141142
destroyQuitMenu();
142-
TheGameLogic->quit(FALSE);
143143
}
144144
static void noExitQuitMenu()
145145
{
@@ -148,9 +148,9 @@ static void noExitQuitMenu()
148148

149149
static void quitToDesktopQuitMenu()
150150
{
151+
TheGameLogic->quit(TRUE);
151152
// destroy the quit menu
152153
destroyQuitMenu();
153-
TheGameLogic->quit(TRUE);
154154
}
155155

156156
static void surrenderQuitMenu()

GeneralsMD/Code/GameEngine/Source/GameLogic/System/GameLogic.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4194,10 +4194,19 @@ void GameLogic::quit(Bool toDesktop)
41944194
{
41954195
const Bool isSandbox = TheGameInfo && TheGameInfo->isSandbox();
41964196

4197-
if (isInMultiplayerGame() && TheGameInfo && !isSandbox)
4197+
if (isInInteractiveGame())
41984198
{
4199-
GameMessage *msg = TheMessageStream->appendMessage(GameMessage::MSG_SELF_DESTRUCT);
4200-
msg->appendBooleanArgument(TRUE);
4199+
if (!TheInGameUI->isQuitMenuVisible())
4200+
{
4201+
ToggleQuitMenu();
4202+
return;
4203+
}
4204+
4205+
if (isInMultiplayerGame() && TheGameInfo && !isSandbox)
4206+
{
4207+
GameMessage *msg = TheMessageStream->appendMessage(GameMessage::MSG_SELF_DESTRUCT);
4208+
msg->appendBooleanArgument(TRUE);
4209+
}
42014210
}
42024211

42034212
if (TheRecorder && TheRecorder->getMode() == RECORDERMODETYPE_RECORD)

0 commit comments

Comments
 (0)