|
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
|
|
//
|
|
|
|
// Purpose:
|
|
|
|
//
|
|
|
|
// $NoKeywords: $
|
|
|
|
//=============================================================================
|
|
|
|
|
|
|
|
#ifndef INTERNETGAMES_H
|
|
|
|
#define INTERNETGAMES_H
|
|
|
|
#ifdef _WIN32
|
|
|
|
#pragma once
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include "BaseGamesPage.h"
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// Purpose: Internet games list
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
class CInternetGames : public CBaseGamesPage
|
|
|
|
{
|
|
|
|
|
|
|
|
DECLARE_CLASS_SIMPLE( CInternetGames, CBaseGamesPage );
|
|
|
|
|
|
|
|
public:
|
|
|
|
CInternetGames( vgui::Panel *parent, const char *panelName = "InternetGames", EPageType eType = eInternetServer );
|
|
|
|
~CInternetGames();
|
|
|
|
|
|
|
|
// property page handlers
|
|
|
|
virtual void OnPageShow();
|
|
|
|
|
|
|
|
// returns true if the game list supports the specified ui elements
|
|
|
|
virtual bool SupportsItem(IGameList::InterfaceItem_e item);
|
|
|
|
|
|
|
|
// gets a new server list
|
|
|
|
MESSAGE_FUNC( GetNewServerList, "GetNewServerList" );
|
|
|
|
|
|
|
|
// serverlist refresh responses
|
|
|
|
virtual void ServerResponded( newgameserver_t &server );
|
|
|
|
//virtual void ServerFailedToRespond( HServerListRequest hReq, int iServer );
|
|
|
|
virtual void RefreshComplete( NServerResponse response );
|
|
|
|
MESSAGE_FUNC_INT( OnRefreshServer, "RefreshServer", serverID );
|
|
|
|
|
|
|
|
virtual int GetRegionCodeToFilter();
|
|
|
|
virtual bool CheckTagFilter( gameserveritem_t &server );
|
|
|
|
|
|
|
|
protected:
|
|
|
|
// vgui overrides
|
|
|
|
virtual void PerformLayout();
|
|
|
|
virtual void OnTick();
|
|
|
|
|
|
|
|
virtual const char *GetStringNoUnfilteredServers() { return "#ServerBrowser_NoInternetGames"; }
|
|
|
|
virtual const char *GetStringNoUnfilteredServersOnMaster() { return "#ServerBrowser_MasterServerHasNoServersListed"; }
|
|
|
|
virtual const char *GetStringNoServersResponded() { return "#ServerBrowser_NoInternetGamesResponded"; }
|
|
|
|
|
|
|
|
private:
|
|
|
|
// Called once per frame to see if sorting needs to occur again
|
|
|
|
void CheckRedoSort();
|
|
|
|
// Called once per frame to check re-send request to master server
|
|
|
|
void CheckRetryRequest( ESteamServerType serverType );
|
|
|
|
// opens context menu (user right clicked on a server)
|
|
|
|
MESSAGE_FUNC_INT( OnOpenContextMenu, "OpenContextMenu", itemID );
|
|
|
|
|
|
|
|
struct regions_s
|
|
|
|
{
|
|
|
|
CUtlSymbol name;
|
|
|
|
unsigned char code;
|
|
|
|
};
|
|
|
|
|
|
|
|
CUtlVector<struct regions_s> m_Regions; // list of the different regions you can query for
|
|
|
|
|
|
|
|
float m_fLastSort; // Time of last re-sort
|
|
|
|
bool m_bDirty; // Has the list been modified, thereby needing re-sort
|
|
|
|
bool m_bRequireUpdate; // checks whether we need an update upon opening
|
|
|
|
|
|
|
|
// error cases for if no servers are listed
|
|
|
|
bool m_bAnyServersRetrievedFromMaster;
|
|
|
|
bool m_bAnyServersRespondedToQuery;
|
|
|
|
bool m_bNoServersListedOnMaster;
|
|
|
|
|
|
|
|
bool m_bOfflineMode;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // INTERNETGAMES_H
|