diff options
Diffstat (limited to 'mp/src/public/steam/steam_gameserver.h')
| -rw-r--r-- | mp/src/public/steam/steam_gameserver.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/mp/src/public/steam/steam_gameserver.h b/mp/src/public/steam/steam_gameserver.h index 98e26a72..6b67da1d 100644 --- a/mp/src/public/steam/steam_gameserver.h +++ b/mp/src/public/steam/steam_gameserver.h @@ -59,6 +59,7 @@ S_API ISteamUtils *SteamGameServerUtils(); S_API ISteamNetworking *SteamGameServerNetworking(); S_API ISteamGameServerStats *SteamGameServerStats(); S_API ISteamHTTP *SteamGameServerHTTP(); +S_API ISteamUGC *SteamGameServerUGC(); #endif S_API void SteamGameServer_Shutdown(); @@ -67,9 +68,21 @@ S_API void SteamGameServer_RunCallbacks(); S_API bool SteamGameServer_BSecure(); S_API uint64 SteamGameServer_GetSteamID(); -#define STEAM_GAMESERVER_CALLBACK( thisclass, func, param, var ) CCallback< thisclass, param, true > var; void func( param *pParam ) + +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +// These macros are similar to the STEAM_CALLBACK_* macros in steam_api.h, but only trigger for gameserver callbacks +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +#define STEAM_GAMESERVER_CALLBACK( thisclass, func, /*callback_type, [deprecated] var*/... ) \ + _STEAM_CALLBACK_SELECT( ( __VA_ARGS__, GS, 3 ), ( this->SetGameserverFlag();, thisclass, func, __VA_ARGS__ ) ) + +#define STEAM_GAMESERVER_CALLBACK_MANUAL( thisclass, func, callback_type, var ) \ + CCallbackManual< thisclass, callback_type, true > var; void func( callback_type *pParam ) + +#define _STEAM_CALLBACK_GS( _, thisclass, func, param, var ) \ + CCallback< thisclass, param, true > var; void func( param *pParam ) + //----------------------------------------------------------------------------------------------------------------------------------------------------------// // steamclient.dll private wrapper functions // @@ -101,6 +114,7 @@ public: ISteamNetworking *SteamGameServerNetworking() { return m_pSteamGameServerNetworking; } ISteamGameServerStats *SteamGameServerStats() { return m_pSteamGameServerStats; } ISteamHTTP *SteamHTTP() { return m_pSteamHTTP; } + ISteamUGC *SteamUGC() { return m_pSteamUGC; } private: ISteamGameServer *m_pSteamGameServer; @@ -108,6 +122,7 @@ private: ISteamNetworking *m_pSteamGameServerNetworking; ISteamGameServerStats *m_pSteamGameServerStats; ISteamHTTP *m_pSteamHTTP; + ISteamUGC *m_pSteamUGC; }; inline CSteamGameServerAPIContext::CSteamGameServerAPIContext() @@ -122,6 +137,7 @@ inline void CSteamGameServerAPIContext::Clear() m_pSteamGameServerNetworking = NULL; m_pSteamGameServerStats = NULL; m_pSteamHTTP = NULL; + m_pSteamUGC = NULL; } S_API ISteamClient *g_pSteamClientGameServer; @@ -154,6 +170,10 @@ inline bool CSteamGameServerAPIContext::Init() if ( !m_pSteamHTTP ) return false; + m_pSteamUGC = g_pSteamClientGameServer->GetISteamUGC( hSteamUser, hSteamPipe, STEAMUGC_INTERFACE_VERSION ); + if ( !m_pSteamUGC ) + return false; + return true; } |