From 6aef25e99339dc00c3724e98221fc8e7b9759f1c Mon Sep 17 00:00:00 2001 From: KyleSanderson Date: Sat, 11 Jan 2014 19:51:27 -0700 Subject: [PATCH] Welp. Sync SWAG (leaked in 583c8835f1f418aae9f9de485a1565a8db7091f7). --- swag.sp | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/swag.sp b/swag.sp index a76d7e0..3eff3f1 100644 --- a/swag.sp +++ b/swag.sp @@ -21,6 +21,9 @@ #include #include +new Handle:g_hSteamServersConnected = INVALID_HANDLE; +new Handle:g_hSteamServersDisconnected = INVALID_HANDLE; + public Plugin:myinfo = { name = "SteamWorks Additive Glider", /* SWAG */ author = "Kyle Sanderson", @@ -38,6 +41,9 @@ public APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max) CreateNative("Steam_SetRule", native_SetRule); CreateNative("Steam_ClearRules", native_ClearRules); CreateNative("Steam_ForceHeartbeat", native_ForceHeartbeat); + + g_hSteamServersConnected = CreateGlobalForward("Steam_SteamServersConnected", ET_Ignore); + g_hSteamServersDisonnected = CreateGlobalForward("Steam_SteamServersDisconnected", ET_Ignore); return APLRes_Success; } @@ -65,3 +71,43 @@ public native_IsConnected(Handle:plugin, numParams) { return SteamWorks_IsConnected(); } + +public native_SetRule(Handle:plugin, numParams) +{ + decl String:sKey[PLATFORM_MAX_PATH], String:sValue[PLATFORM_MAX_PATH]; + GetNativeString(1, sKey, sizeof(sKey)); + GetNativeString(2, sValue, sizeof(sValue)); + return SteamWorks_SetRule(sKey, sValue); +} + +public native_ClearRules(Handle:plugin, numParams) +{ + return SteamWorks_ClearRules(); +} + +public native_ForceHeartbeat(Handle:plugin, numParams) +{ + return SteamWorks_ForceHeartbeat(); +} + +public SteamWorks_SteamServersConnected() +{ + if (GetForwardFunctionCount(g_hSteamServersConnected) == 0) + { + return; + } + + Call_StartForward(g_hSteamServersConnected); + Call_Finish(); +} + +public SteamWorks_SteamServersDisconnected() +{ + if (GetForwardFunctionCount(g_hSteamServersDisconnected) == 0) + { + return; + } + + Call_StartForward(g_hSteamServersDisconnected); + Call_Finish(); +}