|
|
//========= Copyright � 1996-2001, Valve LLC, All rights reserved. ============
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================
#include "pch_serverbrowser.h"
using namespace vgui;
// HACK: Copy/paste from ugc_utils... not worth adding to project just for this
uint64 GetMapIDFromMapPath( const char *pMapPath ) { char tmp[ MAX_PATH ]; V_strcpy_safe( tmp, pMapPath ); V_FixSlashes( tmp, '/' ); // internal path strings use forward slashes, make sure we compare like that.
if ( V_strstr( tmp, "workshop/" ) ) { V_StripFilename( tmp ); V_StripTrailingSlash( tmp ); const char* szDirName = V_GetFileName( tmp ); return V_atoui64( szDirName ); }
return 0; }
//-----------------------------------------------------------------------------
// Purpose: Constructor
//-----------------------------------------------------------------------------
CServerContextMenu::CServerContextMenu(Panel *parent) : Menu(parent, "ServerContextMenu") { }
//-----------------------------------------------------------------------------
// Purpose: Destructor
//-----------------------------------------------------------------------------
CServerContextMenu::~CServerContextMenu() { }
//-----------------------------------------------------------------------------
// Purpose: Activates the menu
//-----------------------------------------------------------------------------
void CServerContextMenu::ShowMenu( Panel *target, unsigned int serverID, bool showConnect, bool showViewGameInfo, bool showRefresh, bool showAddToFavorites ) { if (showConnect) { AddMenuItem("ConnectToServer", "#ServerBrowser_ConnectToServer", new KeyValues("ConnectToServer", "serverID", serverID), target); }
if (showViewGameInfo) { AddMenuItem("ViewGameInfo", "#ServerBrowser_ViewServerInfo", new KeyValues("ViewGameInfo", "serverID", serverID), target); }
if (showRefresh) { AddMenuItem("RefreshServer", "#ServerBrowser_RefreshServer", new KeyValues("RefreshServer", "serverID", serverID), target); }
if (showAddToFavorites) { AddMenuItem("AddToFavorites", "#ServerBrowser_AddServerToFavorites", new KeyValues("AddToFavorites", "serverID", serverID), target); AddMenuItem("AddToBlacklist", "#ServerBrowser_AddServerToBlacklist", new KeyValues("AddToBlacklist", "serverID", serverID), target); }
gameserveritem_t *pServer = ServerBrowserDialog().GetServer( serverID ); if ( pServer && GetMapIDFromMapPath( pServer->m_szMap ) != 0 ) { AddMenuItem( "ViewWorkshop", "#ServerBrowser_ViewInWorkshop", new KeyValues( "ViewInWorkshop", "serverID", serverID ), target ); }
int x, y, gx, gy; input()->GetCursorPos(x, y); ipanel()->GetPos(surface()->GetEmbeddedPanel(), gx, gy); SetPos(x - gx, y - gy); SetVisible(true); }
|