Skip to content

Commit 6aa763f

Browse files
authored
Ask before disconnecting using game menu (#4181)
1 parent 3bce408 commit 6aa763f

File tree

4 files changed

+27
-3
lines changed

4 files changed

+27
-3
lines changed

Client/core/CMainMenu.cpp

+13-2
Original file line numberDiff line numberDiff line change
@@ -842,6 +842,14 @@ bool CMainMenu::OnMenuClick(CGUIMouseEventArgs Args)
842842
case MENU_ITEM_MAP_EDITOR:
843843
AskUserIfHeWantsToDisconnect(m_pHoveredItem->menuType);
844844
return true;
845+
case MENU_ITEM_DISCONNECT:
846+
if (g_pCore->GetCVars()->GetValue("ask_before_disconnect", true))
847+
{
848+
AskUserIfHeWantsToDisconnect(m_pHoveredItem->menuType);
849+
return true;
850+
}
851+
852+
break;
845853
default:
846854
break;
847855
}
@@ -863,7 +871,7 @@ bool CMainMenu::OnMenuClick(CGUIMouseEventArgs Args)
863871
switch (m_pHoveredItem->menuType)
864872
{
865873
case MENU_ITEM_DISCONNECT:
866-
OnDisconnectButtonClick(pElement);
874+
OnDisconnectButtonClick();
867875
break;
868876
case MENU_ITEM_QUICK_CONNECT:
869877
OnQuickConnectButtonClick(pElement, Args.button == LeftButton);
@@ -948,7 +956,7 @@ void CMainMenu::HideServerInfo()
948956
m_ServerInfo.Hide();
949957
}
950958

951-
bool CMainMenu::OnDisconnectButtonClick(CGUIElement* pElement)
959+
bool CMainMenu::OnDisconnectButtonClick()
952960
{
953961
// Return if we haven't faded in yet
954962
if (m_ucFade != FADE_VISIBLE)
@@ -1251,6 +1259,9 @@ void CMainMenu::WantsToDisconnectCallBack(void* pData, uint uiButton)
12511259
case MENU_ITEM_MAP_EDITOR:
12521260
OnEditorButtonClick();
12531261
break;
1262+
case MENU_ITEM_DISCONNECT:
1263+
OnDisconnectButtonClick();
1264+
break;
12541265
default:
12551266
break;
12561267
}

Client/core/CMainMenu.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ class CMainMenu
8989
bool OnResumeButtonClick(CGUIElement* pElement);
9090
bool OnBrowseServersButtonClick(CGUIElement* pElement);
9191
bool OnHostGameButtonClick();
92-
bool OnDisconnectButtonClick(CGUIElement* pElement);
92+
bool OnDisconnectButtonClick();
9393
bool OnEditorButtonClick();
9494
bool OnSettingsButtonClick(CGUIElement* pElement);
9595
bool OnAboutButtonClick(CGUIElement* pElement);

Client/core/CSettings.cpp

+12
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,11 @@ void CSettings::CreateGUI()
411411
m_pPhotoSavingCheckbox->GetPosition(vecTemp, false);
412412
m_pPhotoSavingCheckbox->AutoSize(NULL, 20.0f);
413413

414+
m_pCheckBoxAskBeforeDisconnect = reinterpret_cast<CGUICheckBox*>(pManager->CreateCheckBox(pTabMultiplayer, _("Ask before disconnecting from server using main menu"), true));
415+
m_pCheckBoxAskBeforeDisconnect->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 20.0f));
416+
m_pCheckBoxAskBeforeDisconnect->GetPosition(vecTemp, false);
417+
m_pCheckBoxAskBeforeDisconnect->AutoSize(NULL, 20.0f);
418+
414419
m_pCheckBoxCustomizedSAFiles = reinterpret_cast<CGUICheckBox*>(pManager->CreateCheckBox(pTabMultiplayer, _("Use customized GTA:SA files"), true));
415420
m_pCheckBoxCustomizedSAFiles->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 20.0f));
416421
m_pCheckBoxCustomizedSAFiles->GetPosition(vecTemp, false);
@@ -3080,6 +3085,10 @@ void CSettings::LoadData()
30803085
CVARS_GET("allow_discord_rpc", bAllowDiscordRPC);
30813086
m_pCheckBoxAllowDiscordRPC->SetSelected(bAllowDiscordRPC);
30823087

3088+
bool bAskBeforeDisconnect;
3089+
CVARS_GET("ask_before_disconnect", bAskBeforeDisconnect);
3090+
m_pCheckBoxAskBeforeDisconnect->SetSelected(bAskBeforeDisconnect);
3091+
30833092
// Customized sa files
30843093
m_pCheckBoxCustomizedSAFiles->SetSelected(GetApplicationSettingInt("customized-sa-files-request") != 0);
30853094
m_pCheckBoxCustomizedSAFiles->SetVisible(GetApplicationSettingInt("customized-sa-files-show") != 0);
@@ -3557,6 +3566,9 @@ void CSettings::SaveData()
35573566
}
35583567
}
35593568

3569+
bool bAskBeforeDisconnect = m_pCheckBoxAskBeforeDisconnect->GetSelected();
3570+
CVARS_SET("ask_before_disconnect", bAskBeforeDisconnect);
3571+
35603572
// Grass
35613573
bool bGrassEnabled = m_pCheckBoxGrass->GetSelected();
35623574
CVARS_SET("grass", bGrassEnabled);

Client/core/CSettings.h

+1
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ class CSettings
216216
CGUICheckBox* m_pWin8ColorCheckBox;
217217
CGUICheckBox* m_pWin8MouseCheckBox;
218218
CGUICheckBox* m_pPhotoSavingCheckbox;
219+
CGUICheckBox* m_pCheckBoxAskBeforeDisconnect;
219220
CGUICheckBox* m_pProcessAffinityCheckbox;
220221
CGUILabel* m_pUpdateBuildTypeLabel;
221222
CGUIComboBox* m_pUpdateBuildTypeCombo;

0 commit comments

Comments
 (0)