File tree Expand file tree Collapse file tree
GeneralsMD/Code/GameEngine/Source
Generals/Code/GameEngine/Source Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -137,9 +137,9 @@ void destroyQuitMenu()
137137 */
138138static void exitQuitMenu ()
139139{
140+ TheGameLogic->quit (FALSE );
140141 // destroy the quit menu
141142 destroyQuitMenu ();
142- TheGameLogic->quit (FALSE );
143143}
144144static void noExitQuitMenu ()
145145{
@@ -148,9 +148,9 @@ static void noExitQuitMenu()
148148
149149static void quitToDesktopQuitMenu ()
150150{
151+ TheGameLogic->quit (TRUE );
151152 // destroy the quit menu
152153 destroyQuitMenu ();
153- TheGameLogic->quit (TRUE );
154154}
155155
156156static void surrenderQuitMenu ()
Original file line number Diff line number Diff 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)
Original file line number Diff line number Diff line change @@ -137,9 +137,9 @@ void destroyQuitMenu()
137137 */
138138static void exitQuitMenu ()
139139{
140+ TheGameLogic->quit (FALSE );
140141 // destroy the quit menu
141142 destroyQuitMenu ();
142- TheGameLogic->quit (FALSE );
143143}
144144static void noExitQuitMenu ()
145145{
@@ -148,9 +148,9 @@ static void noExitQuitMenu()
148148
149149static void quitToDesktopQuitMenu ()
150150{
151+ TheGameLogic->quit (TRUE );
151152 // destroy the quit menu
152153 destroyQuitMenu ();
153- TheGameLogic->quit (TRUE );
154154}
155155
156156static void surrenderQuitMenu ()
Original file line number Diff line number Diff 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)
You can’t perform that action at this time.
0 commit comments