Skip to content

Commit c6ee106

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

4 files changed

Lines changed: 28 additions & 14 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 & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3640,12 +3640,19 @@ void GameLogic::quit(Bool toDesktop)
36403640
{
36413641
if (isInGame())
36423642
{
3643-
const Bool isSandbox = TheGameInfo && TheGameInfo->isSandbox();
3644-
3645-
if (isInMultiplayerGame() && TheGameInfo && !isSandbox)
3643+
if (isInInteractiveGame())
36463644
{
3647-
GameMessage *msg = TheMessageStream->appendMessage(GameMessage::MSG_SELF_DESTRUCT);
3648-
msg->appendBooleanArgument(TRUE);
3645+
if (!TheInGameUI->isQuitMenuVisible())
3646+
{
3647+
ToggleQuitMenu();
3648+
return;
3649+
}
3650+
3651+
if (isInMultiplayerGame() && TheGameInfo && !TheGameInfo->isSandbox())
3652+
{
3653+
GameMessage *msg = TheMessageStream->appendMessage(GameMessage::MSG_SELF_DESTRUCT);
3654+
msg->appendBooleanArgument(TRUE);
3655+
}
36493656
}
36503657

36513658
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 & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4192,12 +4192,19 @@ void GameLogic::quit(Bool toDesktop)
41924192
{
41934193
if (isInGame())
41944194
{
4195-
const Bool isSandbox = TheGameInfo && TheGameInfo->isSandbox();
4196-
4197-
if (isInMultiplayerGame() && TheGameInfo && !isSandbox)
4195+
if (isInInteractiveGame())
41984196
{
4199-
GameMessage *msg = TheMessageStream->appendMessage(GameMessage::MSG_SELF_DESTRUCT);
4200-
msg->appendBooleanArgument(TRUE);
4197+
if (!TheInGameUI->isQuitMenuVisible())
4198+
{
4199+
ToggleQuitMenu();
4200+
return;
4201+
}
4202+
4203+
if (isInMultiplayerGame() && TheGameInfo && !TheGameInfo->isSandbox())
4204+
{
4205+
GameMessage *msg = TheMessageStream->appendMessage(GameMessage::MSG_SELF_DESTRUCT);
4206+
msg->appendBooleanArgument(TRUE);
4207+
}
42014208
}
42024209

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

0 commit comments

Comments
 (0)