Skip to content

Commit 92e1c73

Browse files
committed
Add "beta" CVAR "_beta_qc_rightclick_command"
This variable lets you execute a command of your choice when you right click the "quick connect" button. By default this CVAR is set to "reconnect", but you can set it to anything - "connect orange.mtasa.com" or "nick timw0w". In the console, type "_beta_qc_rightclick_command" and press enter. This will tell you the current value of the CVAR. You can do "_beta_qc_rightclick_command=nick timw0w" to change the value of the CVAR.
1 parent 6ede4f2 commit 92e1c73

File tree

3 files changed

+56
-49
lines changed

3 files changed

+56
-49
lines changed

Client/core/CClientVariables.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,7 @@ void CClientVariables::LoadDefaults()
350350
DEFAULT("browser_remote_websites", true); // Load remote websites?
351351
DEFAULT("browser_remote_javascript", true); // Execute javascript on remote websites?
352352
DEFAULT("filter_duplicate_log_lines", true); // Filter duplicate log lines for debug view and clientscript.log
353+
DEFAULT("_beta_qc_rightclick_command", _S("reconnect")); // Command to run when right clicking quick connect (beta - can be removed at any time)
353354

354355
if (!Exists("locale"))
355356
{

Client/core/CMainMenu.cpp

Lines changed: 54 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -796,74 +796,80 @@ bool CMainMenu::OnMenuClick(CGUIMouseEventArgs Args)
796796
{
797797
CGUIElement* pElement = Args.pWindow;
798798

799-
// Handle all our clicks to the menu from here
800-
if (m_pHoveredItem)
801-
{
802-
// For detecting startup problems
803-
WatchDogUserDidInteractWithMenu();
799+
// Only handle all our clicks to the menu from here
800+
if (!m_pHoveredItem)
801+
return true;
804802

805-
// Possible disconnect question for user
806-
if (g_pCore->IsConnected())
807-
{
808-
switch (m_pHoveredItem->menuType)
809-
{
810-
case MENU_ITEM_HOST_GAME:
811-
case MENU_ITEM_MAP_EDITOR:
812-
AskUserIfHeWantsToDisconnect(m_pHoveredItem->menuType);
813-
return true;
814-
default:
815-
break;
816-
}
817-
}
803+
if (Args.button != LeftButton && m_pHoveredItem->menuType != MENU_ITEM_QUICK_CONNECT)
804+
return true;
805+
806+
// For detecting startup problems
807+
WatchDogUserDidInteractWithMenu();
818808

809+
// Possible disconnect question for user
810+
if (g_pCore->IsConnected())
811+
{
819812
switch (m_pHoveredItem->menuType)
820813
{
821-
case MENU_ITEM_DISCONNECT:
822-
OnDisconnectButtonClick(pElement);
823-
break;
824-
case MENU_ITEM_QUICK_CONNECT:
825-
OnQuickConnectButtonClick(pElement);
826-
break;
827-
case MENU_ITEM_BROWSE_SERVERS:
828-
OnBrowseServersButtonClick(pElement);
829-
break;
830814
case MENU_ITEM_HOST_GAME:
831-
OnHostGameButtonClick();
832-
break;
833815
case MENU_ITEM_MAP_EDITOR:
834-
OnEditorButtonClick();
835-
break;
836-
case MENU_ITEM_SETTINGS:
837-
OnSettingsButtonClick(pElement);
838-
break;
839-
case MENU_ITEM_ABOUT:
840-
OnAboutButtonClick(pElement);
841-
break;
842-
case MENU_ITEM_QUIT:
843-
OnQuitButtonClick(pElement);
844-
break;
816+
AskUserIfHeWantsToDisconnect(m_pHoveredItem->menuType);
817+
return true;
845818
default:
846819
break;
847820
}
848821
}
822+
823+
switch (m_pHoveredItem->menuType)
824+
{
825+
case MENU_ITEM_DISCONNECT:
826+
OnDisconnectButtonClick(pElement);
827+
break;
828+
case MENU_ITEM_QUICK_CONNECT:
829+
OnQuickConnectButtonClick(pElement, Args.button == LeftButton);
830+
break;
831+
case MENU_ITEM_BROWSE_SERVERS:
832+
OnBrowseServersButtonClick(pElement);
833+
break;
834+
case MENU_ITEM_HOST_GAME:
835+
OnHostGameButtonClick();
836+
break;
837+
case MENU_ITEM_MAP_EDITOR:
838+
OnEditorButtonClick();
839+
break;
840+
case MENU_ITEM_SETTINGS:
841+
OnSettingsButtonClick(pElement);
842+
break;
843+
case MENU_ITEM_ABOUT:
844+
OnAboutButtonClick(pElement);
845+
break;
846+
case MENU_ITEM_QUIT:
847+
OnQuitButtonClick(pElement);
848+
break;
849+
default:
850+
break;
851+
}
852+
849853
return true;
850854
}
851855

852-
bool CMainMenu::OnQuickConnectButtonClick(CGUIElement* pElement)
856+
bool CMainMenu::OnQuickConnectButtonClick(CGUIElement* pElement, bool left)
853857
{
854858
// Return if we haven't faded in yet
855859
if (m_ucFade != FADE_VISIBLE)
856860
return false;
857861

862+
// If we're right clicking, execute special command
863+
if (!left)
864+
{
865+
std::string command;
866+
CVARS_GET("_beta_qc_rightclick_command", command);
867+
g_pCore->GetCommands()->Execute(command.data());
868+
return true;
869+
}
870+
858871
m_ServerBrowser.SetVisible(true);
859872
m_ServerBrowser.OnQuickConnectButtonClick();
860-
/*
861-
// if ( !m_bIsInSubWindow )
862-
{
863-
m_QuickConnect.SetVisible ( true );
864-
// m_bIsInSubWindow = true;
865-
}
866-
*/
867873
return true;
868874
}
869875

Client/core/CMainMenu.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ class CMainMenu
8282
bool OnMenuEnter(CGUIElement* pElement);
8383
bool OnMenuExit(CGUIElement* pElement);
8484
bool OnMenuClick(CGUIMouseEventArgs Args);
85-
bool OnQuickConnectButtonClick(CGUIElement* pElement);
85+
bool OnQuickConnectButtonClick(CGUIElement* pElement, bool left);
8686
bool OnResumeButtonClick(CGUIElement* pElement);
8787
bool OnBrowseServersButtonClick(CGUIElement* pElement);
8888
bool OnHostGameButtonClick();

0 commit comments

Comments
 (0)