mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-11 19:29:08 +00:00
1
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
//===========================================================================//
|
||||
|
||||
#ifndef IMATCHMAKING_H
|
||||
#define IMATCHMAKING_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "const.h"
|
||||
#include "vgui/VGUI.h"
|
||||
|
||||
#if !defined( _X360 )
|
||||
#include "xbox/xboxstubs.h"
|
||||
#endif
|
||||
|
||||
class KeyValues;
|
||||
|
||||
enum SESSION_NOTIFY
|
||||
{
|
||||
SESSION_NOTIFY_FAIL_SEARCH,
|
||||
SESSION_NOTIFY_SEARCH_COMPLETED,
|
||||
SESSION_NOFIFY_MODIFYING_SESSION,
|
||||
SESSION_NOTIFY_MODIFYING_COMPLETED_HOST,
|
||||
SESSION_NOTIFY_MODIFYING_COMPLETED_CLIENT,
|
||||
SESSION_NOTIFY_MIGRATION_COMPLETED,
|
||||
SESSION_NOTIFY_CONNECT_SESSIONFULL,
|
||||
SESSION_NOTIFY_CONNECT_NOTAVAILABLE,
|
||||
SESSION_NOTIFY_CONNECTED_TOSESSION,
|
||||
SESSION_NOTIFY_CONNECTED_TOSERVER,
|
||||
SESSION_NOTIFY_CONNECT_FAILED,
|
||||
SESSION_NOTIFY_FAIL_CREATE,
|
||||
SESSION_NOTIFY_FAIL_MIGRATE,
|
||||
SESSION_NOTIFY_REGISTER_COMPLETED,
|
||||
SESSION_NOTIFY_FAIL_REGISTER,
|
||||
SESSION_NOTIFY_CLIENT_KICKED,
|
||||
SESSION_NOTIFY_CREATED_HOST,
|
||||
SESSION_NOTIFY_CREATED_CLIENT,
|
||||
SESSION_NOTIFY_LOST_HOST,
|
||||
SESSION_NOTIFY_LOST_SERVER,
|
||||
SESSION_NOTIFY_COUNTDOWN,
|
||||
SESSION_NOTIFY_ENDGAME_RANKED, // Ranked
|
||||
SESSION_NOTIFY_ENDGAME_HOST, // Unranked
|
||||
SESSION_NOTIFY_ENDGAME_CLIENT, // Unranked
|
||||
SESSION_NOTIFY_DUMPSTATS, // debugging
|
||||
SESSION_NOTIFY_WELCOME, // Close all dialogs and show the welcome main menu
|
||||
};
|
||||
|
||||
enum SESSION_PROPS
|
||||
{
|
||||
SESSION_CONTEXT,
|
||||
SESSION_PROPERTY,
|
||||
SESSION_FLAG,
|
||||
};
|
||||
|
||||
struct hostData_s
|
||||
{
|
||||
char hostName[MAX_PLAYER_NAME_LENGTH];
|
||||
char scenario[MAX_MAP_NAME];
|
||||
int gameState;
|
||||
int gameTime;
|
||||
XUID xuid;
|
||||
};
|
||||
|
||||
struct MM_QOS_t
|
||||
{
|
||||
int nPingMsMin; // Minimum round-trip time in ms
|
||||
int nPingMsMed; // Median round-trip time in ms
|
||||
float flBwUpKbs; // Bandwidth upstream in kilobytes/s
|
||||
float flBwDnKbs; // Bandwidth downstream in kilobytes/s
|
||||
float flLoss; // Average packet loss in percents
|
||||
};
|
||||
|
||||
#define NO_TIME_LIMIT 65000
|
||||
|
||||
abstract_class IMatchmaking
|
||||
{
|
||||
public:
|
||||
virtual void SessionNotification( const SESSION_NOTIFY notification, const int param = 0 ) = 0;
|
||||
virtual void AddSessionProperty( const uint nType, const char *pID, const char *pValue, const char *pValueType ) = 0;
|
||||
virtual void SetSessionProperties( KeyValues *pPropertyKeys ) = 0;
|
||||
virtual void SelectSession( uint idx ) = 0;
|
||||
virtual void ModifySession() = 0;
|
||||
virtual void UpdateMuteList() = 0;
|
||||
virtual void StartHost( bool bSystemLink = false ) = 0;
|
||||
virtual void StartClient( bool bSystemLink = false ) = 0;
|
||||
virtual bool StartGame() = 0;
|
||||
virtual bool CancelStartGame() = 0;
|
||||
virtual void ChangeTeam( const char *pTeamName ) = 0;
|
||||
virtual void TellClientsToConnect() = 0;
|
||||
virtual void CancelCurrentOperation() = 0;
|
||||
virtual void KickPlayerFromSession( uint64 id ) = 0;
|
||||
virtual void JoinInviteSession( XSESSION_INFO *pHostInfo ) = 0;
|
||||
virtual void JoinInviteSessionByID( XNKID nSessionID ) = 0;
|
||||
virtual void EndStatsReporting() = 0;
|
||||
|
||||
// For Gameui
|
||||
virtual KeyValues *GetSessionProperties() = 0;
|
||||
|
||||
// For voice chat
|
||||
virtual uint64 PlayerIdToXuid( int playerId ) = 0;
|
||||
virtual bool IsPlayerMuted( int iUserId, XUID id ) = 0;
|
||||
|
||||
// To determine host Quality-of-Service
|
||||
virtual MM_QOS_t GetQosWithLIVE() = 0;
|
||||
|
||||
// Used by non-'host' local machines which are starting a map to "prime" the caches. Will sit at near completion indefinitely --
|
||||
// the client is waiting for a TellClientsToConnect message
|
||||
virtual bool PreventFullServerStartup() = 0;
|
||||
};
|
||||
|
||||
#define VENGINE_MATCHMAKING_VERSION "VENGINE_MATCHMAKING_VERSION001"
|
||||
|
||||
#endif // IMATCHMAKING_H
|
||||
Reference in New Issue
Block a user