#pragma once namespace Steam { struct LobbyCreated { enum { CallbackID = 513 }; int m_eResult; int m_pad; SteamID m_ulSteamIDLobby; }; struct LobbyEnter { enum { CallbackID = 504 }; SteamID m_ulSteamIDLobby; int m_rgfChatPermissions; bool m_bLocked; int m_EChatRoomEnterResponse; }; class Matchmaking { public: virtual int GetFavoriteGameCount(); virtual bool GetFavoriteGame(int iGame, unsigned int *pnAppID, unsigned int *pnIP, unsigned short *pnConnPort, unsigned short *pnQueryPort, unsigned int *punFlags, unsigned int *pRTime32LastPlayedOnServer); virtual int AddFavoriteGame(unsigned int nAppID, unsigned int nIP, unsigned short nConnPort, unsigned short nQueryPort, unsigned int unFlags, unsigned int rTime32LastPlayedOnServer); virtual bool RemoveFavoriteGame(unsigned int nAppID, unsigned int nIP, unsigned short nConnPort, unsigned short nQueryPort, unsigned int unFlags); virtual unsigned __int64 RequestLobbyList(); virtual void AddRequestLobbyListStringFilter(const char *pchKeyToMatch, const char *pchValueToMatch, int eComparisonType); virtual void AddRequestLobbyListNumericalFilter(const char *pchKeyToMatch, int nValueToMatch, int eComparisonType); virtual void AddRequestLobbyListNearValueFilter(const char *pchKeyToMatch, int nValueToBeCloseTo); virtual void AddRequestLobbyListFilterSlotsAvailable(int nSlotsAvailable); virtual SteamID GetLobbyByIndex(int iLobby); virtual unsigned __int64 CreateLobby(int eLobbyType, int cMaxMembers); virtual unsigned __int64 JoinLobby(SteamID steamIDLobby); virtual void LeaveLobby(SteamID steamIDLobby); virtual bool InviteUserToLobby(SteamID steamIDLobby, SteamID steamIDInvitee); virtual int GetNumLobbyMembers(SteamID steamIDLobby); virtual SteamID GetLobbyMemberByIndex(SteamID steamIDLobby, int iMember); virtual const char *GetLobbyData(SteamID steamIDLobby, const char *pchKey); virtual bool SetLobbyData(SteamID steamIDLobby, const char *pchKey, const char *pchValue); virtual int GetLobbyDataCount(SteamID steamIDLobby); virtual bool GetLobbyDataByIndex(SteamID steamIDLobby, int iLobbyData, char *pchKey, int cchKeyBufferSize, char *pchValue, int cchValueBufferSize); virtual bool DeleteLobbyData(SteamID steamIDLobby, const char *pchKey); virtual const char *GetLobbyMemberData(SteamID steamIDLobby, SteamID steamIDUser, const char *pchKey); virtual void SetLobbyMemberData(SteamID steamIDLobby, const char *pchKey, const char *pchValue); virtual bool SendLobbyChatMsg(SteamID steamIDLobby, const void *pvMsgBody, int cubMsgBody); virtual int GetLobbyChatEntry(SteamID steamIDLobby, int iChatID, SteamID *pSteamIDUser, void *pvData, int cubData, int *peChatEntryType); virtual bool RequestLobbyData(SteamID steamIDLobby); virtual void SetLobbyGameServer(SteamID steamIDLobby, unsigned int unGameServerIP, unsigned short unGameServerPort, SteamID steamIDGameServer); virtual bool GetLobbyGameServer(SteamID steamIDLobby, unsigned int *punGameServerIP, unsigned short *punGameServerPort, SteamID *psteamIDGameServer); virtual bool SetLobbyMemberLimit(SteamID steamIDLobby, int cMaxMembers); virtual int GetLobbyMemberLimit(SteamID steamIDLobby); virtual bool SetLobbyType(SteamID steamIDLobby, int eLobbyType); virtual bool SetLobbyJoinable(SteamID steamIDLobby, bool bLobbyJoinable); virtual SteamID GetLobbyOwner(SteamID steamIDLobby); virtual bool SetLobbyOwner(SteamID steamIDLobby, SteamID steamIDNewOwner); }; }