mirror of
https://github.com/ENSL/NS.git
synced 2024-12-11 13:22:03 +00:00
5dcc163bd5
git-svn-id: https://unknownworlds.svn.cloudforge.com/ns1@379 67975925-1194-0748-b3d5-c16f83f1a3a1
91 lines
No EOL
2 KiB
C++
91 lines
No EOL
2 KiB
C++
#if !defined( HUD_SERVERS_PRIVH )
|
|
#define HUD_SERVERS_PRIVH
|
|
#pragma once
|
|
|
|
#include "common/netadr.h"
|
|
|
|
class CHudServers
|
|
{
|
|
public:
|
|
typedef struct request_s
|
|
{
|
|
struct request_s *next;
|
|
netadr_t remote_address;
|
|
int context;
|
|
} request_t;
|
|
|
|
typedef struct server_s
|
|
{
|
|
struct server_s *next;
|
|
netadr_t remote_address;
|
|
char *info;
|
|
int ping;
|
|
} server_t;
|
|
|
|
CHudServers();
|
|
~CHudServers();
|
|
|
|
void Think( double time );
|
|
void QueryThink( void );
|
|
int isQuerying( void );
|
|
|
|
int LoadMasterAddresses( int maxservers, int *count, netadr_t *padr );
|
|
|
|
void RequestList( void );
|
|
void RequestBroadcastList( int clearpending );
|
|
|
|
void ServerPing( int server );
|
|
void ServerRules( int server );
|
|
void ServerPlayers( int server );
|
|
|
|
void CancelRequest( void );
|
|
|
|
int CompareServers( server_t *p1, server_t *p2 );
|
|
|
|
void ClearServerList( server_t **ppList );
|
|
void ClearRequestList( request_t **ppList );
|
|
|
|
void AddServer( server_t **ppList, server_t *p );
|
|
|
|
void RemoveServerFromList( request_t **ppList, request_t *item );
|
|
|
|
request_t *FindRequest( int context, request_t *pList );
|
|
|
|
int ServerListSize( void );
|
|
char *GetServerInfo( int server );
|
|
int GetServerCount( void );
|
|
void SortServers( const char *fieldname );
|
|
|
|
void ListResponse( struct net_response_s *response );
|
|
void ServerResponse( struct net_response_s *response );
|
|
void PingResponse( struct net_response_s *response );
|
|
void RulesResponse( struct net_response_s *response );
|
|
void PlayersResponse( struct net_response_s *response );
|
|
private:
|
|
|
|
server_t *GetServer( int server );
|
|
|
|
//
|
|
char m_szToken[ 1024 ];
|
|
int m_nRequesting;
|
|
int m_nDone;
|
|
|
|
double m_dStarted;
|
|
|
|
request_t *m_pServerList;
|
|
request_t *m_pActiveList;
|
|
|
|
server_t *m_pServers;
|
|
|
|
int m_nServerCount;
|
|
|
|
int m_nActiveQueries;
|
|
int m_nQuerying;
|
|
double m_fElapsed;
|
|
|
|
request_t *m_pPingRequest;
|
|
request_t *m_pRulesRequest;
|
|
request_t *m_pPlayersRequest;
|
|
};
|
|
|
|
#endif // HUD_SERVERS_PRIVH
|