diff --git a/Pawn/includes/SteamWorks.inc b/Pawn/includes/SteamWorks.inc index 565969fb..2d571895 100644 --- a/Pawn/includes/SteamWorks.inc +++ b/Pawn/includes/SteamWorks.inc @@ -70,9 +70,9 @@ enum EResult k_EResultDiskFull = 54, // Operation canceled - not enough disk space. k_EResultRemoteCallFailed = 55, // an remote call or IPC call failed k_EResultPasswordUnset = 56, // Password could not be verified as it's unset server side - k_EResultExternalAccountUnlinked = 57, // External account (PSN, Facebook...) is not linked to a Steam account + k_EResultExternalAccountUnlinked = 57, // External account (int PSN, Facebook...) is not linked to a Steam account k_EResultPSNTicketInvalid = 58, // PSN ticket was invalid - k_EResultExternalAccountAlreadyLinked = 59, // External account (PSN, Facebook...) is already linked to some other account, must explicitly request to replace/delete the link first + k_EResultExternalAccountAlreadyLinked = 59, // External account (int PSN, Facebook...) is already linked to some other account, must explicitly request to replace/delete the link first k_EResultRemoteFileConflict = 60, // The sync cannot resume due to a conflict between the local and remote files k_EResultIllegalPassword = 61, // The requested new password is not legal k_EResultSameAsPreviousValue = 62, // new value is the same as the old one ( secret question and answer ) @@ -130,7 +130,6 @@ enum EHTTPMethod k_EHTTPMethodPUT, k_EHTTPMethodDELETE, k_EHTTPMethodOPTIONS, - k_EHTTPMethodPATCH, // The remaining HTTP methods are not yet supported, per rfc2616 section 5.1.1 only GET and HEAD are required for // a compliant general purpose server. We'll likely add more as we find uses for them. @@ -212,41 +211,40 @@ enum EGCResults k_EGCResultInvalidMessage = 4, // Something was wrong with the message being sent with SendMessage }; -native bool:SteamWorks_IsVACEnabled(); -native bool:SteamWorks_GetPublicIP(ipaddr[4]); -native SteamWorks_GetPublicIPCell(); -native bool:SteamWorks_IsLoaded(); -native bool:SteamWorks_SetGameData(const String:sData[]); -native bool:SteamWorks_SetGameDescription(const String:sDesc[]); -native bool:SteamWorks_SetMapName(const String:sMapName[]); -native bool:SteamWorks_IsConnected(); -native bool:SteamWorks_SetRule(const String:sKey[], const String:sValue[]); -native bool:SteamWorks_ClearRules(); -native bool:SteamWorks_ForceHeartbeat(); -native bool:SteamWorks_GetUserGroupStatus(client, groupid); -native bool:SteamWorks_GetUserGroupStatusAuthID(authid, groupid); - -native EUserHasLicenseForAppResult:SteamWorks_HasLicenseForApp(client, app); -native EUserHasLicenseForAppResult:SteamWorks_HasLicenseForAppId(authid, app); -native SteamWorks_GetClientSteamID(client, String:sSteamID[], length); - -native bool:SteamWorks_RequestStatsAuthID(authid, appid); -native bool:SteamWorks_RequestStats(client, appid); -native bool:SteamWorks_GetStatCell(client, const String:sKey[], &value); -native bool:SteamWorks_GetStatAuthIDCell(authid, const String:sKey[], &value); -native bool:SteamWorks_GetStatFloat(client, const String:sKey[], &Float:value); -native bool:SteamWorks_GetStatAuthIDFloat(authid, const String:sKey[], &Float:value); - -native Handle:SteamWorks_CreateHTTPRequest(EHTTPMethod:method, const String:sURL[]); -native bool:SteamWorks_SetHTTPRequestContextValue(Handle:hHandle, any:data1, any:data2=0); -native bool:SteamWorks_SetHTTPRequestNetworkActivityTimeout(Handle:hHandle, timeout); -native bool:SteamWorks_SetHTTPRequestHeaderValue(Handle:hHandle, const String:sName[], const String:sValue[]); -native bool:SteamWorks_SetHTTPRequestGetOrPostParameter(Handle:hHandle, const String:sName[], const String:sValue[]); -native bool:SteamWorks_SetHTTPRequestUserAgentInfo(Handle:hHandle, const String:sUserAgentInfo[]); -native bool:SteamWorks_SetHTTPRequestRequiresVerifiedCertificate(Handle:hHandle, bool:bRequireVerifiedCertificate); -native bool:SteamWorks_SetHTTPRequestAbsoluteTimeoutMS(Handle:hHandle, unMilliseconds); - -#if SOURCEMOD_V_MAJOR >= 1 && SOURCEMOD_V_MINOR >= 9 +native bool SteamWorks_IsVACEnabled(); +native bool SteamWorks_GetPublicIP(ipaddr[4]); +native int SteamWorks_GetPublicIPCell(); +native bool SteamWorks_IsLoaded(); +native bool SteamWorks_SetGameDescription(const char[] sDesc); +native bool SteamWorks_SetMapName(const char[] sMapName); +native bool SteamWorks_IsConnected(); +native bool SteamWorks_SetRule(const char[] sKey, const char[] sValue); +native bool SteamWorks_ClearRules(); +native bool SteamWorks_ForceHeartbeat(); +native bool SteamWorks_GetUserGroupStatus(int client, int groupid); +native bool SteamWorks_GetUserGroupStatusAuthID(int authid, int groupid); + +native EUserHasLicenseForAppResult SteamWorks_HasLicenseForApp(int client, int app); +native EUserHasLicenseForAppResult SteamWorks_HasLicenseForAppId(int authid, int app); +native int SteamWorks_GetClientSteamID(int client, char[] sSteamID, int length); + +native bool SteamWorks_RequestStatsAuthID(int authid, int appid); +native bool SteamWorks_RequestStats(int client, int appid); +native bool SteamWorks_GetStatCell(int client, const char[] sKey, int &value); +native bool SteamWorks_GetStatAuthIDCell(int authid, const char[] sKey, int &value); +native bool SteamWorks_GetStatFloat(int client, const char[] sKey, float &value); +native bool SteamWorks_GetStatAuthIDFloat(int authid, const char[] sKey, float &value); + +native Handle SteamWorks_CreateHTTPRequest(EHTTPMethod method, const char[] sURL); +native bool SteamWorks_SetHTTPRequestContextValue(Handle hHandle, any data1, any data2=0); +native bool SteamWorks_SetHTTPRequestNetworkActivityTimeout(Handle hHandle, int timeout); +native bool SteamWorks_SetHTTPRequestHeaderValue(Handle hHandle, const char[] sName, const char[] sValue); +native bool SteamWorks_SetHTTPRequestGetOrPostParameter(Handle hHandle, const char[] sName, const char[] sValue); +native bool SteamWorks_SetHTTPRequestUserAgentInfo(Handle hHandle, const char[] sUserAgentInfo); +native bool SteamWorks_SetHTTPRequestRequiresVerifiedCertificate(Handle hHandle, bool bRequireVerifiedCertificate); +native bool SteamWorks_SetHTTPRequestAbsoluteTimeoutMS(Handle hHandle, int unMilliseconds); + + typeset SteamWorksHTTPRequestCompleted { function void (Handle hRequest, bool bFailure, bool bRequestSuccessful, EHTTPStatusCode eStatusCode); @@ -268,81 +266,48 @@ typeset SteamWorksHTTPDataReceived function void (Handle hRequest, bool bFailure, int offset, int bytesreceived, any data1, any data2); }; +native bool SteamWorks_SetHTTPCallbacks(Handle hHandle, SteamWorksHTTPRequestCompleted fCompleted = INVALID_FUNCTION, SteamWorksHTTPHeadersReceived fHeaders = INVALID_FUNCTION, SteamWorksHTTPDataReceived fData = INVALID_FUNCTION, Handle hCalling = INVALID_HANDLE); +native bool SteamWorks_SendHTTPRequest(Handle hRequest); +native bool SteamWorks_SendHTTPRequestAndStreamResponse(Handle hRequest); +native bool SteamWorks_DeferHTTPRequest(Handle hRequest); +native bool SteamWorks_PrioritizeHTTPRequest(Handle hRequest); +native bool SteamWorks_GetHTTPResponseHeaderSize(Handle hRequest, const char[] sHeader, int &size); +native bool SteamWorks_GetHTTPResponseHeaderValue(Handle hRequest, const char[] sHeader, char[] sValue, int size); +native bool SteamWorks_GetHTTPResponseBodySize(Handle hRequest, int &size); +native bool SteamWorks_GetHTTPResponseBodyData(Handle hRequest, char[] sBody, int length); +native bool SteamWorks_GetHTTPStreamingResponseBodyData(Handle hRequest, int cOffset, char[] sBody, int length); +native bool SteamWorks_GetHTTPDownloadProgressPct(Handle hRequest, float &percent); +native bool SteamWorks_GetHTTPRequestWasTimedOut(Handle hRequest, bool &bWasTimedOut); +native bool SteamWorks_SetHTTPRequestRawPostBody(Handle hRequest, const char[] sContentType, const char[] sBody, int bodylen); + typeset SteamWorksHTTPBodyCallback { - function void (const char sData[]); - function void (const char sData[], any value); - function void (const int data[], any value, int datalen); + function void (const char[] sData); + function void (const char[] sData, any value); + function void (const int[] data, any value, int datalen); }; -#else +native bool SteamWorks_GetHTTPResponseBodyCallback(Handle hRequest, SteamWorksHTTPBodyCallback fCallback, any data = 0, Handle hPlugin = INVALID_HANDLE); +native bool SteamWorks_WriteHTTPResponseBodyToFile(Handle hRequest, const char[] sFileName); -funcenum SteamWorksHTTPRequestCompleted -{ - public(Handle:hRequest, bool:bFailure, bool:bRequestSuccessful, EHTTPStatusCode:eStatusCode), - public(Handle:hRequest, bool:bFailure, bool:bRequestSuccessful, EHTTPStatusCode:eStatusCode, any:data1), - public(Handle:hRequest, bool:bFailure, bool:bRequestSuccessful, EHTTPStatusCode:eStatusCode, any:data1, any:data2) -}; +forward void SW_OnValidateClient(int ownerauthid, int authid); +forward void SteamWorks_OnValidateClient(int ownerauthid, int authid); +forward void SteamWorks_SteamServersConnected(); +forward void SteamWorks_SteamServersConnectFailure(EResult result); +forward void SteamWorks_SteamServersDisconnected(EResult result); -funcenum SteamWorksHTTPHeadersReceived -{ - public(Handle:hRequest, bool:bFailure), - public(Handle:hRequest, bool:bFailure, any:data1), - public(Handle:hRequest, bool:bFailure, any:data1, any:data2) -}; +forward Action SteamWorks_RestartRequested(); +forward void SteamWorks_TokenRequested(char[] sToken, int maxlen); -funcenum SteamWorksHTTPDataReceived -{ - public(Handle:hRequest, bool:bFailure, offset, bytesreceived), - public(Handle:hRequest, bool:bFailure, offset, bytesreceived, any:data1), - public(Handle:hRequest, bool:bFailure, offset, bytesreceived, any:data1, any:data2) -}; +forward void SteamWorks_OnClientGroupStatus(int authid, int groupid, bool isMember, bool isOfficer); -funcenum SteamWorksHTTPBodyCallback -{ - public(const String:sData[]), - public(const String:sData[], any:value), - public(const data[], any:value, datalen) -}; +forward EGCResults SteamWorks_GCSendMessage(int unMsgType, const char[] pubData, int cubData); +forward void SteamWorks_GCMsgAvailable(int cubData); +forward EGCResults SteamWorks_GCRetrieveMessage(int punMsgType, const char[] pubDest, int cubDest, int pcubMsgSize); -#endif +native EGCResults SteamWorks_SendMessageToGC(int unMsgType, const char[] pubData, int cubData); -native bool:SteamWorks_SetHTTPCallbacks(Handle:hHandle, SteamWorksHTTPRequestCompleted:fCompleted = INVALID_FUNCTION, SteamWorksHTTPHeadersReceived:fHeaders = INVALID_FUNCTION, SteamWorksHTTPDataReceived:fData = INVALID_FUNCTION, Handle:hCalling = INVALID_HANDLE); -native bool:SteamWorks_SendHTTPRequest(Handle:hRequest); -native bool:SteamWorks_SendHTTPRequestAndStreamResponse(Handle:hRequest); -native bool:SteamWorks_DeferHTTPRequest(Handle:hRequest); -native bool:SteamWorks_PrioritizeHTTPRequest(Handle:hRequest); -native bool:SteamWorks_GetHTTPResponseHeaderSize(Handle:hRequest, const String:sHeader[], &size); -native bool:SteamWorks_GetHTTPResponseHeaderValue(Handle:hRequest, const String:sHeader[], String:sValue[], size); -native bool:SteamWorks_GetHTTPResponseBodySize(Handle:hRequest, &size); -native bool:SteamWorks_GetHTTPResponseBodyData(Handle:hRequest, String:sBody[], length); -native bool:SteamWorks_GetHTTPStreamingResponseBodyData(Handle:hRequest, cOffset, String:sBody[], length); -native bool:SteamWorks_GetHTTPDownloadProgressPct(Handle:hRequest, &Float:percent); -native bool:SteamWorks_GetHTTPRequestWasTimedOut(Handle:hRequest, &bool:bWasTimedOut); -native bool:SteamWorks_SetHTTPRequestRawPostBody(Handle:hRequest, const String:sContentType[], const String:sBody[], bodylen); -native bool:SteamWorks_SetHTTPRequestRawPostBodyFromFile(Handle:hRequest, const String:sContentType[], const String:sFileName[]); - -native bool:SteamWorks_GetHTTPResponseBodyCallback(Handle:hRequest, SteamWorksHTTPBodyCallback:fCallback, any:data = 0, Handle:hPlugin = INVALID_HANDLE); /* Look up, moved definition for 1.7+ compat. */ -native bool:SteamWorks_WriteHTTPResponseBodyToFile(Handle:hRequest, const String:sFileName[]); - -forward SW_OnValidateClient(ownerauthid, authid); -forward SteamWorks_OnValidateClient(ownerauthid, authid); -forward SteamWorks_SteamServersConnected(); -forward SteamWorks_SteamServersConnectFailure(EResult:result); -forward SteamWorks_SteamServersDisconnected(EResult:result); - -forward Action:SteamWorks_RestartRequested(); -forward SteamWorks_TokenRequested(String:sToken[], maxlen); - -forward SteamWorks_OnClientGroupStatus(authid, groupid, bool:isMember, bool:isOfficer); - -forward EGCResults:SteamWorks_GCSendMessage(unMsgType, const String:pubData[], cubData); -forward SteamWorks_GCMsgAvailable(cubData); -forward EGCResults:SteamWorks_GCRetrieveMessage(punMsgType, const String:pubDest[], cubDest, pcubMsgSize); - -native EGCResults:SteamWorks_SendMessageToGC(unMsgType, const String:pubData[], cubData); - -public Extension:__ext_SteamWorks = +public Extension __ext_SteamWorks = { name = "SteamWorks", file = "SteamWorks.ext", @@ -359,13 +324,12 @@ public Extension:__ext_SteamWorks = }; #if !defined REQUIRE_EXTENSIONS -public __ext_SteamWorks_SetNTVOptional() +public void __ext_SteamWorks_SetNTVOptional() { MarkNativeAsOptional("SteamWorks_IsVACEnabled"); MarkNativeAsOptional("SteamWorks_GetPublicIP"); MarkNativeAsOptional("SteamWorks_GetPublicIPCell"); MarkNativeAsOptional("SteamWorks_IsLoaded"); - MarkNativeAsOptional("SteamWorks_SetGameData"); MarkNativeAsOptional("SteamWorks_SetGameDescription"); MarkNativeAsOptional("SteamWorks_IsConnected"); MarkNativeAsOptional("SteamWorks_SetRule"); @@ -405,7 +369,6 @@ public __ext_SteamWorks_SetNTVOptional() MarkNativeAsOptional("SteamWorks_GetHTTPStreamingResponseBodyData"); MarkNativeAsOptional("SteamWorks_GetHTTPDownloadProgressPct"); MarkNativeAsOptional("SteamWorks_SetHTTPRequestRawPostBody"); - MarkNativeAsOptional("SteamWorks_SetHTTPRequestRawPostBodyFromFile"); MarkNativeAsOptional("SteamWorks_GetHTTPResponseBodyCallback"); MarkNativeAsOptional("SteamWorks_WriteHTTPResponseBodyToFile");