aboutsummaryrefslogtreecommitdiff
path: root/mp/src/public/steam/steam_gameserver.h
diff options
context:
space:
mode:
Diffstat (limited to 'mp/src/public/steam/steam_gameserver.h')
-rw-r--r--mp/src/public/steam/steam_gameserver.h22
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;
}