From e39b443280e854366d23157656da052745eb7041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fa=E9=B8=BD?= <43724908+Akarinnnnn@users.noreply.github.com> Date: Thu, 3 Jul 2025 18:23:12 +0800 Subject: [PATCH] Add callback or callresult annotations to interface methods. --- .vscode/launch.json | 17 ++++++ CodeGen/src/interfaces.py | 17 ++++++ .../Runtime/SteamHasAsyncResultAttributes.cs | 56 +++++++++++++++++++ .../Runtime/autogen/isteamapps.cs | 1 + .../Runtime/autogen/isteamfriends.cs | 8 +++ .../Runtime/autogen/isteamgameserver.cs | 3 + .../autogen/isteamgameserverinventory.cs | 3 + .../Runtime/autogen/isteamgameserverstats.cs | 2 + .../Runtime/autogen/isteamgameserverugc.cs | 20 +++++++ .../Runtime/autogen/isteamgameserverutils.cs | 1 + .../Runtime/autogen/isteamhtmlsurface.cs | 1 + .../Runtime/autogen/isteaminput.cs | 2 + .../Runtime/autogen/isteaminventory.cs | 3 + .../Runtime/autogen/isteammatchmaking.cs | 6 ++ .../Runtime/autogen/isteamremotestorage.cs | 21 +++++++ .../Runtime/autogen/isteamtimeline.cs | 2 + .../Runtime/autogen/isteamugc.cs | 20 +++++++ .../Runtime/autogen/isteamuser.cs | 4 ++ .../Runtime/autogen/isteamuserstats.cs | 10 ++++ .../Runtime/autogen/isteamutils.cs | 1 + .../Runtime/autogen/isteamvideo.cs | 1 + 21 files changed, 199 insertions(+) create mode 100644 .vscode/launch.json create mode 100644 com.rlabrecque.steamworks.net/Runtime/SteamHasAsyncResultAttributes.cs diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..bd99b379 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,17 @@ +{ + // 使用 IntelliSense 了解相关属性。 + // 悬停以查看现有属性的描述。 + // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "name": "CodeGen", + "type": "debugpy", + "request": "launch", + "program": "./Steamworks.NET_CodeGen.py", + "console": "integratedTerminal", + "cwd": "${workspaceFolder}/CodeGen/" + } + ] +} \ No newline at end of file diff --git a/CodeGen/src/interfaces.py b/CodeGen/src/interfaces.py index c394a689..41d3586d 100644 --- a/CodeGen/src/interfaces.py +++ b/CodeGen/src/interfaces.py @@ -800,6 +800,23 @@ def parse_func(f, interface, func): if c: g_Output.append("\t\t/// " + c + "") g_Output.append("\t\t/// ") + + strAsyncType: str = None + strAsyncStruct: str = None + + for attr in func.attributes: + if attr.name in ("STEAM_CALL_RESULT", "STEAM_CALL_BACK"): + if attr.name == "STEAM_CALL_RESULT": + strAsyncType = "CallResult" + elif attr.name == "STEAM_CALL_BACK": + strAsyncType = "Callback" + strAsyncStruct = attr.value + + + if strAsyncType is not None: + g_Output.append(f"\t\t[SteamHasAsync{strAsyncType}(typeof({strAsyncStruct}))]") + + g_Output.append("\t\tpublic static " + wrapperreturntype + " " + func.name.rstrip("0") + "(" + wrapperargs + ") {") g_Output.extend(functionBody) diff --git a/com.rlabrecque.steamworks.net/Runtime/SteamHasAsyncResultAttributes.cs b/com.rlabrecque.steamworks.net/Runtime/SteamHasAsyncResultAttributes.cs new file mode 100644 index 00000000..3e244367 --- /dev/null +++ b/com.rlabrecque.steamworks.net/Runtime/SteamHasAsyncResultAttributes.cs @@ -0,0 +1,56 @@ +// This file is provided under The MIT License as part of Steamworks.NET. +// Copyright (c) 2013-2022 Riley Labrecque +// Please see the included LICENSE.txt for additional information. + +// This file is automatically generated. +// Changes to this file will be reverted when you update Steamworks.NET + +#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) +#define DISABLESTEAMWORKS +#endif + +#if !DISABLESTEAMWORKS + +namespace Steamworks { + /// + /// Inform invokers use to receive async result. + /// + [System.AttributeUsage(System.AttributeTargets.Method, Inherited = false, AllowMultiple = false)] + public sealed class SteamHasAsyncCallResultAttribute : System.Attribute { + private System.Type callbackType; // for vs project ignore suggestion IDE0044, I'm not sure if Unity supports readonly field + + // See the attribute guidelines at + // http://go.microsoft.com/fwlink/?LinkId=85236 + + internal SteamHasAsyncCallResultAttribute(System.Type callbackType) { + this.callbackType = callbackType; + } + + /// + /// Result type of the async operation. + /// + public System.Type CallbackType { get { return callbackType; } } + } + + /// + /// Inform invokers use to receive async result. + /// + [System.AttributeUsage(System.AttributeTargets.Method, Inherited = false, AllowMultiple = false)] + public sealed class SteamHasAsyncCallbackAttribute : System.Attribute { + private System.Type callbackType; // for vs project ignore suggestion IDE0044, I'm not sure if Unity supports readonly field + + // See the attribute guidelines at + // http://go.microsoft.com/fwlink/?LinkId=85236 + + internal SteamHasAsyncCallbackAttribute(System.Type callbackType) { + this.callbackType = callbackType; + } + + /// + /// Result type of the async operation. + /// + public System.Type CallbackType { get { return callbackType; } } + } +} + +#endif // !DISABLESTEAMWORKS diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamapps.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamapps.cs index b33bf5bb..657141f5 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamapps.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamapps.cs @@ -223,6 +223,7 @@ public static void RequestAllProofOfPurchaseKeys() { NativeMethods.ISteamApps_RequestAllProofOfPurchaseKeys(CSteamAPIContext.GetSteamApps()); } + [SteamHasAsyncCallResult(typeof(FileDetailsResult_t))] public static SteamAPICall_t GetFileDetails(string pszFileName) { InteropHelp.TestIfAvailableClient(); using (var pszFileName2 = new InteropHelp.UTF8StringHandle(pszFileName)) { diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamfriends.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamfriends.cs index 025a6ec5..f18b2d6b 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamfriends.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamfriends.cs @@ -35,6 +35,7 @@ public static string GetPersonaName() { /// If the name change fails to happen on the server, then an additional global PersonaStateChange_t will be posted /// to change the name back, in addition to the SetPersonaNameResponse_t callback. /// + [SteamHasAsyncCallResult(typeof(SetPersonaNameResponse_t))] public static SteamAPICall_t SetPersonaName(string pchPersonaName) { InteropHelp.TestIfAvailableClient(); using (var pchPersonaName2 = new InteropHelp.UTF8StringHandle(pchPersonaName)) { @@ -215,6 +216,7 @@ public static bool GetClanActivityCounts(CSteamID steamIDClan, out int pnOnline, /// /// for clans a user is a member of, they will have reasonably up-to-date information, but for others you'll have to download the info to have the latest /// + [SteamHasAsyncCallResult(typeof(DownloadClanActivityCountsResult_t))] public static SteamAPICall_t DownloadClanActivityCounts(CSteamID[] psteamIDClans, int cClansToRequest) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamFriends_DownloadClanActivityCounts(CSteamAPIContext.GetSteamFriends(), psteamIDClans, cClansToRequest); @@ -365,6 +367,7 @@ public static bool RequestUserInformation(CSteamID steamIDUser, bool bRequireNam /// note that this won't download avatars automatically; if you get an officer, /// and no avatar image is available, call RequestUserInformation( steamID, false ) to download the avatar /// + [SteamHasAsyncCallResult(typeof(ClanOfficerListResponse_t))] public static SteamAPICall_t RequestClanOfficerList(CSteamID steamIDClan) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamFriends_RequestClanOfficerList(CSteamAPIContext.GetSteamFriends(), steamIDClan); @@ -504,6 +507,7 @@ public static AppId_t GetFriendCoplayGame(CSteamID steamIDFriend) { /// the behavior is somewhat sophisticated, because the user may or may not be already in the group chat from outside the game or in the overlay /// use ActivateGameOverlayToUser( "chat", steamIDClan ) to open the in-game overlay version of the chat /// + [SteamHasAsyncCallResult(typeof(JoinClanChatRoomCompletionResult_t))] public static SteamAPICall_t JoinClanChatRoom(CSteamID steamIDClan) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamFriends_JoinClanChatRoom(CSteamAPIContext.GetSteamFriends(), steamIDClan); @@ -591,16 +595,19 @@ public static int GetFriendMessage(CSteamID steamIDFriend, int iMessageID, out s /// /// following apis /// + [SteamHasAsyncCallResult(typeof(FriendsGetFollowerCount_t))] public static SteamAPICall_t GetFollowerCount(CSteamID steamID) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamFriends_GetFollowerCount(CSteamAPIContext.GetSteamFriends(), steamID); } + [SteamHasAsyncCallResult(typeof(FriendsIsFollowing_t))] public static SteamAPICall_t IsFollowing(CSteamID steamID) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamFriends_IsFollowing(CSteamAPIContext.GetSteamFriends(), steamID); } + [SteamHasAsyncCallResult(typeof(FriendsEnumerateFollowingList_t))] public static SteamAPICall_t EnumerateFollowingList(uint unStartIndex) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamFriends_EnumerateFollowingList(CSteamAPIContext.GetSteamFriends(), unStartIndex); @@ -663,6 +670,7 @@ public static void ActivateGameOverlayInviteDialogConnectString(string pchConnec /// Steam Community items equipped by a user on their profile /// You can register for EquippedProfileItemsChanged_t to know when a friend has changed their equipped profile items /// + [SteamHasAsyncCallResult(typeof(EquippedProfileItems_t))] public static SteamAPICall_t RequestEquippedProfileItems(CSteamID steamID) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamFriends_RequestEquippedProfileItems(CSteamAPIContext.GetSteamFriends(), steamID); diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserver.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserver.cs index 2a6692bd..e5896572 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserver.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserver.cs @@ -334,6 +334,7 @@ public static void GetGameplayStats() { NativeMethods.ISteamGameServer_GetGameplayStats(CSteamGameServerAPIContext.GetSteamGameServer()); } + [SteamHasAsyncCallResult(typeof(GSReputation_t))] public static SteamAPICall_t GetServerReputation() { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamGameServer_GetServerReputation(CSteamGameServerAPIContext.GetSteamGameServer()); @@ -380,6 +381,7 @@ public static int GetNextOutgoingPacket(byte[] pOut, int cbMaxOut, out uint pNet /// Server clan association /// associate this game server with this clan for the purposes of computing player compat /// + [SteamHasAsyncCallResult(typeof(AssociateWithClanResult_t))] public static SteamAPICall_t AssociateWithClan(CSteamID steamIDClan) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamGameServer_AssociateWithClan(CSteamGameServerAPIContext.GetSteamGameServer(), steamIDClan); @@ -388,6 +390,7 @@ public static SteamAPICall_t AssociateWithClan(CSteamID steamIDClan) { /// /// ask if any of the current players dont want to play with this new player - or vice versa /// + [SteamHasAsyncCallResult(typeof(ComputeNewPlayerCompatibilityResult_t))] public static SteamAPICall_t ComputeNewPlayerCompatibility(CSteamID steamIDNewPlayer) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamGameServer_ComputeNewPlayerCompatibility(CSteamGameServerAPIContext.GetSteamGameServer(), steamIDNewPlayer); diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverinventory.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverinventory.cs index 608216bd..3c2c7a6e 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverinventory.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverinventory.cs @@ -336,6 +336,7 @@ public static bool GetItemDefinitionProperty(SteamItemDef_t iDefinition, string /// user. These are promo items of type "manual" that won't be granted automatically. /// An example usage of this is an item that becomes available every week. /// + [SteamHasAsyncCallResult(typeof(SteamInventoryEligiblePromoItemDefIDs_t))] public static SteamAPICall_t RequestEligiblePromoItemDefinitionsIDs(CSteamID steamID) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamInventory_RequestEligiblePromoItemDefinitionsIDs(CSteamGameServerAPIContext.GetSteamInventory(), steamID); @@ -360,6 +361,7 @@ public static bool GetEligiblePromoItemDefinitionIDs(CSteamID steamID, SteamItem /// Once the purchase has been authorized and completed by the user, the callback SteamInventoryResultReady_t /// will be posted. /// + [SteamHasAsyncCallResult(typeof(SteamInventoryStartPurchaseResult_t))] public static SteamAPICall_t StartPurchase(SteamItemDef_t[] pArrayItemDefs, uint[] punArrayQuantity, uint unArrayLength) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamInventory_StartPurchase(CSteamGameServerAPIContext.GetSteamInventory(), pArrayItemDefs, punArrayQuantity, unArrayLength); @@ -368,6 +370,7 @@ public static SteamAPICall_t StartPurchase(SteamItemDef_t[] pArrayItemDefs, uint /// /// Request current prices for all applicable item definitions /// + [SteamHasAsyncCallResult(typeof(SteamInventoryRequestPricesResult_t))] public static SteamAPICall_t RequestPrices() { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamInventory_RequestPrices(CSteamGameServerAPIContext.GetSteamInventory()); diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverstats.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverstats.cs index 9899f720..022804d3 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverstats.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverstats.cs @@ -23,6 +23,7 @@ public static class SteamGameServerStats { /// these stats will only be auto-updated for clients playing on the server. For other /// users you'll need to call RequestUserStats() again to refresh any data /// + [SteamHasAsyncCallResult(typeof(GSStatsReceived_t))] public static SteamAPICall_t RequestUserStats(CSteamID steamIDUser) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamGameServerStats_RequestUserStats(CSteamGameServerAPIContext.GetSteamGameServerStats(), steamIDUser); @@ -100,6 +101,7 @@ public static bool ClearUserAchievement(CSteamID steamIDUser, string pchName) { /// or were out of date. In this case the server sends back updated values. /// The stats should be re-iterated to keep in sync. /// + [SteamHasAsyncCallResult(typeof(GSStatsStored_t))] public static SteamAPICall_t StoreUserStats(CSteamID steamIDUser) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamGameServerStats_StoreUserStats(CSteamGameServerAPIContext.GetSteamGameServerStats(), steamIDUser); diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverugc.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverugc.cs index f23dc93d..a9238855 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverugc.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverugc.cs @@ -53,6 +53,7 @@ public static UGCQueryHandle_t CreateQueryUGCDetailsRequest(PublishedFileId_t[] /// /// Send the query to Steam /// + [SteamHasAsyncCallResult(typeof(SteamUGCQueryCompleted_t))] public static SteamAPICall_t SendQueryUGCRequest(UGCQueryHandle_t handle) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_SendQueryUGCRequest(CSteamGameServerAPIContext.GetSteamUGC(), handle); @@ -337,6 +338,7 @@ public static bool AddRequiredKeyValueTag(UGCQueryHandle_t handle, string pKey, /// /// DEPRECATED - Use CreateQueryUGCDetailsRequest call above instead! /// + [SteamHasAsyncCallResult(typeof(SteamUGCRequestUGCDetailsResult_t))] public static SteamAPICall_t RequestUGCDetails(PublishedFileId_t nPublishedFileID, uint unMaxAgeSeconds) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_RequestUGCDetails(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID, unMaxAgeSeconds); @@ -346,6 +348,7 @@ public static SteamAPICall_t RequestUGCDetails(PublishedFileId_t nPublishedFileI /// Steam Workshop Creator API /// create new item for this app with no content attached yet /// + [SteamHasAsyncCallResult(typeof(CreateItemResult_t))] public static SteamAPICall_t CreateItem(AppId_t nConsumerAppId, EWorkshopFileType eFileType) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_CreateItem(CSteamGameServerAPIContext.GetSteamUGC(), nConsumerAppId, eFileType); @@ -544,6 +547,7 @@ public static bool SetRequiredGameVersions(UGCUpdateHandle_t handle, string pszG /// /// commit update process started with StartItemUpdate() /// + [SteamHasAsyncCallResult(typeof(SubmitItemUpdateResult_t))] public static SteamAPICall_t SubmitItemUpdate(UGCUpdateHandle_t handle, string pchChangeNote) { InteropHelp.TestIfAvailableGameServer(); using (var pchChangeNote2 = new InteropHelp.UTF8StringHandle(pchChangeNote)) { @@ -559,21 +563,25 @@ public static EItemUpdateStatus GetItemUpdateProgress(UGCUpdateHandle_t handle, /// /// Steam Workshop Consumer API /// + [SteamHasAsyncCallResult(typeof(SetUserItemVoteResult_t))] public static SteamAPICall_t SetUserItemVote(PublishedFileId_t nPublishedFileID, bool bVoteUp) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_SetUserItemVote(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID, bVoteUp); } + [SteamHasAsyncCallResult(typeof(GetUserItemVoteResult_t))] public static SteamAPICall_t GetUserItemVote(PublishedFileId_t nPublishedFileID) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_GetUserItemVote(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID); } + [SteamHasAsyncCallResult(typeof(UserFavoriteItemsListChanged_t))] public static SteamAPICall_t AddItemToFavorites(AppId_t nAppId, PublishedFileId_t nPublishedFileID) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_AddItemToFavorites(CSteamGameServerAPIContext.GetSteamUGC(), nAppId, nPublishedFileID); } + [SteamHasAsyncCallResult(typeof(UserFavoriteItemsListChanged_t))] public static SteamAPICall_t RemoveItemFromFavorites(AppId_t nAppId, PublishedFileId_t nPublishedFileID) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_RemoveItemFromFavorites(CSteamGameServerAPIContext.GetSteamUGC(), nAppId, nPublishedFileID); @@ -582,6 +590,7 @@ public static SteamAPICall_t RemoveItemFromFavorites(AppId_t nAppId, PublishedFi /// /// subscribe to this item, will be installed ASAP /// + [SteamHasAsyncCallResult(typeof(RemoteStorageSubscribePublishedFileResult_t))] public static SteamAPICall_t SubscribeItem(PublishedFileId_t nPublishedFileID) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_SubscribeItem(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID); @@ -590,6 +599,7 @@ public static SteamAPICall_t SubscribeItem(PublishedFileId_t nPublishedFileID) { /// /// unsubscribe from this item, will be uninstalled after game quits /// + [SteamHasAsyncCallResult(typeof(RemoteStorageUnsubscribePublishedFileResult_t))] public static SteamAPICall_t UnsubscribeItem(PublishedFileId_t nPublishedFileID) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_UnsubscribeItem(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID); @@ -672,16 +682,19 @@ public static void SuspendDownloads(bool bSuspend) { /// /// usage tracking /// + [SteamHasAsyncCallResult(typeof(StartPlaytimeTrackingResult_t))] public static SteamAPICall_t StartPlaytimeTracking(PublishedFileId_t[] pvecPublishedFileID, uint unNumPublishedFileIDs) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_StartPlaytimeTracking(CSteamGameServerAPIContext.GetSteamUGC(), pvecPublishedFileID, unNumPublishedFileIDs); } + [SteamHasAsyncCallResult(typeof(StopPlaytimeTrackingResult_t))] public static SteamAPICall_t StopPlaytimeTracking(PublishedFileId_t[] pvecPublishedFileID, uint unNumPublishedFileIDs) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_StopPlaytimeTracking(CSteamGameServerAPIContext.GetSteamUGC(), pvecPublishedFileID, unNumPublishedFileIDs); } + [SteamHasAsyncCallResult(typeof(StopPlaytimeTrackingResult_t))] public static SteamAPICall_t StopPlaytimeTrackingForAllItems() { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_StopPlaytimeTrackingForAllItems(CSteamGameServerAPIContext.GetSteamUGC()); @@ -690,11 +703,13 @@ public static SteamAPICall_t StopPlaytimeTrackingForAllItems() { /// /// parent-child relationship or dependency management /// + [SteamHasAsyncCallResult(typeof(AddUGCDependencyResult_t))] public static SteamAPICall_t AddDependency(PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_AddDependency(CSteamGameServerAPIContext.GetSteamUGC(), nParentPublishedFileID, nChildPublishedFileID); } + [SteamHasAsyncCallResult(typeof(RemoveUGCDependencyResult_t))] public static SteamAPICall_t RemoveDependency(PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_RemoveDependency(CSteamGameServerAPIContext.GetSteamUGC(), nParentPublishedFileID, nChildPublishedFileID); @@ -703,11 +718,13 @@ public static SteamAPICall_t RemoveDependency(PublishedFileId_t nParentPublished /// /// add/remove app dependence/requirements (usually DLC) /// + [SteamHasAsyncCallResult(typeof(AddAppDependencyResult_t))] public static SteamAPICall_t AddAppDependency(PublishedFileId_t nPublishedFileID, AppId_t nAppID) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_AddAppDependency(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID, nAppID); } + [SteamHasAsyncCallResult(typeof(RemoveAppDependencyResult_t))] public static SteamAPICall_t RemoveAppDependency(PublishedFileId_t nPublishedFileID, AppId_t nAppID) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_RemoveAppDependency(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID, nAppID); @@ -717,6 +734,7 @@ public static SteamAPICall_t RemoveAppDependency(PublishedFileId_t nPublishedFil /// request app dependencies. note that whatever callback you register for GetAppDependenciesResult_t may be called multiple times /// until all app dependencies have been returned /// + [SteamHasAsyncCallResult(typeof(GetAppDependenciesResult_t))] public static SteamAPICall_t GetAppDependencies(PublishedFileId_t nPublishedFileID) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_GetAppDependencies(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID); @@ -725,6 +743,7 @@ public static SteamAPICall_t GetAppDependencies(PublishedFileId_t nPublishedFile /// /// delete the item without prompting the user /// + [SteamHasAsyncCallResult(typeof(DeleteItemResult_t))] public static SteamAPICall_t DeleteItem(PublishedFileId_t nPublishedFileID) { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_DeleteItem(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID); @@ -741,6 +760,7 @@ public static bool ShowWorkshopEULA() { /// /// Retrieve information related to the user's acceptance or not of the app's specific Workshop EULA /// + [SteamHasAsyncCallResult(typeof(WorkshopEULAStatus_t))] public static SteamAPICall_t GetWorkshopEULAStatus() { InteropHelp.TestIfAvailableGameServer(); return (SteamAPICall_t)NativeMethods.ISteamUGC_GetWorkshopEULAStatus(CSteamGameServerAPIContext.GetSteamUGC()); diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverutils.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverutils.cs index 378006e2..5e5e0bae 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverutils.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverutils.cs @@ -172,6 +172,7 @@ public static bool BOverlayNeedsPresent() { /// k_ECheckFileSignatureInvalidSignature - The file exists, and the signing tab has been set for this file, but the file is either not signed or the signature does not match. /// k_ECheckFileSignatureValidSignature - The file is signed and the signature is valid. /// + [SteamHasAsyncCallResult(typeof(CheckFileSignature_t))] public static SteamAPICall_t CheckFileSignature(string szFileName) { InteropHelp.TestIfAvailableGameServer(); using (var szFileName2 = new InteropHelp.UTF8StringHandle(szFileName)) { diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamhtmlsurface.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamhtmlsurface.cs index cc564262..31b130f8 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamhtmlsurface.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamhtmlsurface.cs @@ -42,6 +42,7 @@ public static bool Shutdown() { /// not implement these callback handlers, the browser may appear to hang instead of /// navigating to new pages or triggering javascript popups. /// + [SteamHasAsyncCallResult(typeof(HTML_BrowserReady_t))] public static SteamAPICall_t CreateBrowser(string pchUserAgent, string pchUserCSS) { InteropHelp.TestIfAvailableClient(); using (var pchUserAgent2 = new InteropHelp.UTF8StringHandle(pchUserAgent)) diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminput.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminput.cs index 08ca24f4..cc2366c3 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminput.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminput.cs @@ -99,6 +99,7 @@ public static int GetConnectedControllers(InputHandle_t[] handlesOut) { /// Each controller that is already connected will generate a device connected /// callback when you enable them /// + [SteamHasAsyncCallback(typeof(SteamInputConfigurationLoaded_t))] public static void EnableDeviceCallbacks() { InteropHelp.TestIfAvailableClient(); NativeMethods.ISteamInput_EnableDeviceCallbacks(CSteamAPIContext.GetSteamInput()); @@ -117,6 +118,7 @@ public static void EnableDeviceCallbacks() { /// for lower latency than standard Steam callbacks. Supports one callback at a time. /// Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks /// + [SteamHasAsyncCallback(typeof(SteamInputGamepadSlotChange_t))] public static void EnableActionEventCallbacks(SteamInputActionEventCallbackPointer pCallback) { InteropHelp.TestIfAvailableClient(); NativeMethods.ISteamInput_EnableActionEventCallbacks(CSteamAPIContext.GetSteamInput(), pCallback); diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminventory.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminventory.cs index a86d6c80..4f7b310d 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminventory.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminventory.cs @@ -336,6 +336,7 @@ public static bool GetItemDefinitionProperty(SteamItemDef_t iDefinition, string /// user. These are promo items of type "manual" that won't be granted automatically. /// An example usage of this is an item that becomes available every week. /// + [SteamHasAsyncCallResult(typeof(SteamInventoryEligiblePromoItemDefIDs_t))] public static SteamAPICall_t RequestEligiblePromoItemDefinitionsIDs(CSteamID steamID) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamInventory_RequestEligiblePromoItemDefinitionsIDs(CSteamAPIContext.GetSteamInventory(), steamID); @@ -360,6 +361,7 @@ public static bool GetEligiblePromoItemDefinitionIDs(CSteamID steamID, SteamItem /// Once the purchase has been authorized and completed by the user, the callback SteamInventoryResultReady_t /// will be posted. /// + [SteamHasAsyncCallResult(typeof(SteamInventoryStartPurchaseResult_t))] public static SteamAPICall_t StartPurchase(SteamItemDef_t[] pArrayItemDefs, uint[] punArrayQuantity, uint unArrayLength) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamInventory_StartPurchase(CSteamAPIContext.GetSteamInventory(), pArrayItemDefs, punArrayQuantity, unArrayLength); @@ -368,6 +370,7 @@ public static SteamAPICall_t StartPurchase(SteamItemDef_t[] pArrayItemDefs, uint /// /// Request current prices for all applicable item definitions /// + [SteamHasAsyncCallResult(typeof(SteamInventoryRequestPricesResult_t))] public static SteamAPICall_t RequestPrices() { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamInventory_RequestPrices(CSteamAPIContext.GetSteamInventory()); diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteammatchmaking.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteammatchmaking.cs index 5945345f..bfecd7fa 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteammatchmaking.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteammatchmaking.cs @@ -78,6 +78,7 @@ public static bool RemoveFavoriteGame(AppId_t nAppID, uint nIP, ushort nConnPort /// } /// } /// + [SteamHasAsyncCallResult(typeof(LobbyMatchList_t))] public static SteamAPICall_t RequestLobbyList() { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamMatchmaking_RequestLobbyList(CSteamAPIContext.GetSteamMatchmaking()); @@ -164,6 +165,7 @@ public static CSteamID GetLobbyByIndex(int iLobby) { /// results will be returned by LobbyCreated_t callback and call result; lobby is joined & ready to use at this point /// a LobbyEnter_t callback will also be received (since the local user is joining their own lobby) /// + [SteamHasAsyncCallResult(typeof(LobbyCreated_t))] public static SteamAPICall_t CreateLobby(ELobbyType eLobbyType, int cMaxMembers) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamMatchmaking_CreateLobby(CSteamAPIContext.GetSteamMatchmaking(), eLobbyType, cMaxMembers); @@ -175,6 +177,7 @@ public static SteamAPICall_t CreateLobby(ELobbyType eLobbyType, int cMaxMembers) /// results will be returned by LobbyEnter_t callback & call result, check m_EChatRoomEnterResponse to see if was successful /// lobby metadata is available to use immediately on this call completing /// + [SteamHasAsyncCallResult(typeof(LobbyEnter_t))] public static SteamAPICall_t JoinLobby(CSteamID steamIDLobby) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamMatchmaking_JoinLobby(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby); @@ -804,6 +807,7 @@ public static bool GetBeaconDetails(PartyBeaconID_t ulBeaconID, out CSteamID pSt /// Join an open party. Steam will reserve one beacon slot for your SteamID, /// and return the necessary JoinGame string for you to use to connect /// + [SteamHasAsyncCallResult(typeof(JoinPartyCallback_t))] public static SteamAPICall_t JoinParty(PartyBeaconID_t ulBeaconID) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamParties_JoinParty(CSteamAPIContext.GetSteamParties(), ulBeaconID); @@ -830,6 +834,7 @@ public static bool GetAvailableBeaconLocations(SteamPartyBeaconLocation_t[] pLoc /// When people begin responding to your beacon, Steam will send you /// PartyReservationCallback_t callbacks to let you know who is on the way. /// + [SteamHasAsyncCallResult(typeof(CreateBeaconCallback_t))] public static SteamAPICall_t CreateBeacon(uint unOpenSlots, ref SteamPartyBeaconLocation_t pBeaconLocation, string pchConnectString, string pchMetadata) { InteropHelp.TestIfAvailableClient(); using (var pchConnectString2 = new InteropHelp.UTF8StringHandle(pchConnectString)) @@ -862,6 +867,7 @@ public static void CancelReservation(PartyBeaconID_t ulBeacon, CSteamID steamIDU /// Change the number of open beacon reservation slots. /// Call this if, for example, someone without a reservation joins your party (eg a friend, or via your own matchmaking system). /// + [SteamHasAsyncCallResult(typeof(ChangeNumOpenSlotsCallback_t))] public static SteamAPICall_t ChangeNumOpenSlots(PartyBeaconID_t ulBeacon, uint unOpenSlots) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamParties_ChangeNumOpenSlots(CSteamAPIContext.GetSteamParties(), ulBeacon, unOpenSlots); diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamremotestorage.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamremotestorage.cs index 7bc699b3..5361af31 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamremotestorage.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamremotestorage.cs @@ -37,6 +37,7 @@ public static int FileRead(string pchFile, byte[] pvData, int cubDataToRead) { } } + [SteamHasAsyncCallResult(typeof(RemoteStorageFileWriteAsyncComplete_t))] public static SteamAPICall_t FileWriteAsync(string pchFile, byte[] pvData, uint cubData) { InteropHelp.TestIfAvailableClient(); using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { @@ -44,6 +45,7 @@ public static SteamAPICall_t FileWriteAsync(string pchFile, byte[] pvData, uint } } + [SteamHasAsyncCallResult(typeof(RemoteStorageFileReadAsyncComplete_t))] public static SteamAPICall_t FileReadAsync(string pchFile, uint nOffset, uint cubToRead) { InteropHelp.TestIfAvailableClient(); using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { @@ -70,6 +72,7 @@ public static bool FileDelete(string pchFile) { } } + [SteamHasAsyncCallResult(typeof(RemoteStorageFileShareResult_t))] public static SteamAPICall_t FileShare(string pchFile) { InteropHelp.TestIfAvailableClient(); using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { @@ -189,6 +192,7 @@ public static void SetCloudEnabledForApp(bool bEnabled) { /// otherwise it will wait to download the file until all downloads with a lower priority /// value are completed. Downloads with equal priority will occur simultaneously. /// + [SteamHasAsyncCallResult(typeof(RemoteStorageDownloadUGCResult_t))] public static SteamAPICall_t UGCDownload(UGCHandle_t hContent, uint unPriority) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_UGCDownload(CSteamAPIContext.GetSteamRemoteStorage(), hContent, unPriority); @@ -243,6 +247,7 @@ public static UGCHandle_t GetCachedUGCHandle(int iCachedContent) { /// /// publishing UGC /// + [SteamHasAsyncCallResult(typeof(RemoteStoragePublishFileProgress_t))] public static SteamAPICall_t PublishWorkshopFile(string pchFile, string pchPreviewFile, AppId_t nConsumerAppId, string pchTitle, string pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, System.Collections.Generic.IList pTags, EWorkshopFileType eWorkshopFileType) { InteropHelp.TestIfAvailableClient(); using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) @@ -296,6 +301,7 @@ public static bool UpdatePublishedFileTags(PublishedFileUpdateHandle_t updateHan return NativeMethods.ISteamRemoteStorage_UpdatePublishedFileTags(CSteamAPIContext.GetSteamRemoteStorage(), updateHandle, new InteropHelp.SteamParamStringArray(pTags)); } + [SteamHasAsyncCallResult(typeof(RemoteStorageUpdatePublishedFileResult_t))] public static SteamAPICall_t CommitPublishedFileUpdate(PublishedFileUpdateHandle_t updateHandle) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_CommitPublishedFileUpdate(CSteamAPIContext.GetSteamRemoteStorage(), updateHandle); @@ -306,11 +312,13 @@ public static SteamAPICall_t CommitPublishedFileUpdate(PublishedFileUpdateHandle /// cached data may be returned, depending on how long ago it was cached. A value of 0 will force a refresh. /// A value of k_WorkshopForceLoadPublishedFileDetailsFromCache will use cached data if it exists, no matter how old it is. /// + [SteamHasAsyncCallResult(typeof(RemoteStorageGetPublishedFileDetailsResult_t))] public static SteamAPICall_t GetPublishedFileDetails(PublishedFileId_t unPublishedFileId, uint unMaxSecondsOld) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_GetPublishedFileDetails(CSteamAPIContext.GetSteamRemoteStorage(), unPublishedFileId, unMaxSecondsOld); } + [SteamHasAsyncCallResult(typeof(RemoteStorageDeletePublishedFileResult_t))] public static SteamAPICall_t DeletePublishedFile(PublishedFileId_t unPublishedFileId) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_DeletePublishedFile(CSteamAPIContext.GetSteamRemoteStorage(), unPublishedFileId); @@ -319,21 +327,25 @@ public static SteamAPICall_t DeletePublishedFile(PublishedFileId_t unPublishedFi /// /// enumerate the files that the current user published with this app /// + [SteamHasAsyncCallResult(typeof(RemoteStorageEnumerateUserPublishedFilesResult_t))] public static SteamAPICall_t EnumerateUserPublishedFiles(uint unStartIndex) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_EnumerateUserPublishedFiles(CSteamAPIContext.GetSteamRemoteStorage(), unStartIndex); } + [SteamHasAsyncCallResult(typeof(RemoteStorageSubscribePublishedFileResult_t))] public static SteamAPICall_t SubscribePublishedFile(PublishedFileId_t unPublishedFileId) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_SubscribePublishedFile(CSteamAPIContext.GetSteamRemoteStorage(), unPublishedFileId); } + [SteamHasAsyncCallResult(typeof(RemoteStorageEnumerateUserSubscribedFilesResult_t))] public static SteamAPICall_t EnumerateUserSubscribedFiles(uint unStartIndex) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_EnumerateUserSubscribedFiles(CSteamAPIContext.GetSteamRemoteStorage(), unStartIndex); } + [SteamHasAsyncCallResult(typeof(RemoteStorageUnsubscribePublishedFileResult_t))] public static SteamAPICall_t UnsubscribePublishedFile(PublishedFileId_t unPublishedFileId) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_UnsubscribePublishedFile(CSteamAPIContext.GetSteamRemoteStorage(), unPublishedFileId); @@ -346,26 +358,31 @@ public static bool UpdatePublishedFileSetChangeDescription(PublishedFileUpdateHa } } + [SteamHasAsyncCallResult(typeof(RemoteStorageGetPublishedItemVoteDetailsResult_t))] public static SteamAPICall_t GetPublishedItemVoteDetails(PublishedFileId_t unPublishedFileId) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_GetPublishedItemVoteDetails(CSteamAPIContext.GetSteamRemoteStorage(), unPublishedFileId); } + [SteamHasAsyncCallResult(typeof(RemoteStorageUpdateUserPublishedItemVoteResult_t))] public static SteamAPICall_t UpdateUserPublishedItemVote(PublishedFileId_t unPublishedFileId, bool bVoteUp) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_UpdateUserPublishedItemVote(CSteamAPIContext.GetSteamRemoteStorage(), unPublishedFileId, bVoteUp); } + [SteamHasAsyncCallResult(typeof(RemoteStorageGetPublishedItemVoteDetailsResult_t))] public static SteamAPICall_t GetUserPublishedItemVoteDetails(PublishedFileId_t unPublishedFileId) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_GetUserPublishedItemVoteDetails(CSteamAPIContext.GetSteamRemoteStorage(), unPublishedFileId); } + [SteamHasAsyncCallResult(typeof(RemoteStorageEnumerateUserPublishedFilesResult_t))] public static SteamAPICall_t EnumerateUserSharedWorkshopFiles(CSteamID steamId, uint unStartIndex, System.Collections.Generic.IList pRequiredTags, System.Collections.Generic.IList pExcludedTags) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles(CSteamAPIContext.GetSteamRemoteStorage(), steamId, unStartIndex, new InteropHelp.SteamParamStringArray(pRequiredTags), new InteropHelp.SteamParamStringArray(pExcludedTags)); } + [SteamHasAsyncCallResult(typeof(RemoteStoragePublishFileProgress_t))] public static SteamAPICall_t PublishVideo(EWorkshopVideoProvider eVideoProvider, string pchVideoAccount, string pchVideoIdentifier, string pchPreviewFile, AppId_t nConsumerAppId, string pchTitle, string pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, System.Collections.Generic.IList pTags) { InteropHelp.TestIfAvailableClient(); using (var pchVideoAccount2 = new InteropHelp.UTF8StringHandle(pchVideoAccount)) @@ -377,11 +394,13 @@ public static SteamAPICall_t PublishVideo(EWorkshopVideoProvider eVideoProvider, } } + [SteamHasAsyncCallResult(typeof(RemoteStorageSetUserPublishedFileActionResult_t))] public static SteamAPICall_t SetUserPublishedFileAction(PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_SetUserPublishedFileAction(CSteamAPIContext.GetSteamRemoteStorage(), unPublishedFileId, eAction); } + [SteamHasAsyncCallResult(typeof(RemoteStorageEnumeratePublishedFilesByUserActionResult_t))] public static SteamAPICall_t EnumeratePublishedFilesByUserAction(EWorkshopFileAction eAction, uint unStartIndex) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_EnumeratePublishedFilesByUserAction(CSteamAPIContext.GetSteamRemoteStorage(), eAction, unStartIndex); @@ -390,11 +409,13 @@ public static SteamAPICall_t EnumeratePublishedFilesByUserAction(EWorkshopFileAc /// /// this method enumerates the public view of workshop files /// + [SteamHasAsyncCallResult(typeof(RemoteStorageEnumerateWorkshopFilesResult_t))] public static SteamAPICall_t EnumeratePublishedWorkshopFiles(EWorkshopEnumerationType eEnumerationType, uint unStartIndex, uint unCount, uint unDays, System.Collections.Generic.IList pTags, System.Collections.Generic.IList pUserTags) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_EnumeratePublishedWorkshopFiles(CSteamAPIContext.GetSteamRemoteStorage(), eEnumerationType, unStartIndex, unCount, unDays, new InteropHelp.SteamParamStringArray(pTags), new InteropHelp.SteamParamStringArray(pUserTags)); } + [SteamHasAsyncCallResult(typeof(RemoteStorageDownloadUGCResult_t))] public static SteamAPICall_t UGCDownloadToLocation(UGCHandle_t hContent, string pchLocation, uint unPriority) { InteropHelp.TestIfAvailableClient(); using (var pchLocation2 = new InteropHelp.UTF8StringHandle(pchLocation)) { diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamtimeline.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamtimeline.cs index 46f73b36..43abc58f 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamtimeline.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamtimeline.cs @@ -165,6 +165,7 @@ public static void RemoveTimelineEvent(TimelineEventHandle_t ulEvent) { /// /// add a tag to whatever time range is represented by the event /// + [SteamHasAsyncCallResult(typeof(SteamTimelineEventRecordingExists_t))] public static SteamAPICall_t DoesEventRecordingExist(TimelineEventHandle_t ulEvent) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamTimeline_DoesEventRecordingExist(CSteamAPIContext.GetSteamTimeline(), ulEvent); @@ -222,6 +223,7 @@ public static void SetGamePhaseID(string pchPhaseID) { } } + [SteamHasAsyncCallResult(typeof(SteamTimelineGamePhaseRecordingExists_t))] public static SteamAPICall_t DoesGamePhaseRecordingExist(string pchPhaseID) { InteropHelp.TestIfAvailableClient(); using (var pchPhaseID2 = new InteropHelp.UTF8StringHandle(pchPhaseID)) { diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamugc.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamugc.cs index 1e03ea35..c31df740 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamugc.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamugc.cs @@ -53,6 +53,7 @@ public static UGCQueryHandle_t CreateQueryUGCDetailsRequest(PublishedFileId_t[] /// /// Send the query to Steam /// + [SteamHasAsyncCallResult(typeof(SteamUGCQueryCompleted_t))] public static SteamAPICall_t SendQueryUGCRequest(UGCQueryHandle_t handle) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_SendQueryUGCRequest(CSteamAPIContext.GetSteamUGC(), handle); @@ -337,6 +338,7 @@ public static bool AddRequiredKeyValueTag(UGCQueryHandle_t handle, string pKey, /// /// DEPRECATED - Use CreateQueryUGCDetailsRequest call above instead! /// + [SteamHasAsyncCallResult(typeof(SteamUGCRequestUGCDetailsResult_t))] public static SteamAPICall_t RequestUGCDetails(PublishedFileId_t nPublishedFileID, uint unMaxAgeSeconds) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_RequestUGCDetails(CSteamAPIContext.GetSteamUGC(), nPublishedFileID, unMaxAgeSeconds); @@ -346,6 +348,7 @@ public static SteamAPICall_t RequestUGCDetails(PublishedFileId_t nPublishedFileI /// Steam Workshop Creator API /// create new item for this app with no content attached yet /// + [SteamHasAsyncCallResult(typeof(CreateItemResult_t))] public static SteamAPICall_t CreateItem(AppId_t nConsumerAppId, EWorkshopFileType eFileType) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_CreateItem(CSteamAPIContext.GetSteamUGC(), nConsumerAppId, eFileType); @@ -544,6 +547,7 @@ public static bool SetRequiredGameVersions(UGCUpdateHandle_t handle, string pszG /// /// commit update process started with StartItemUpdate() /// + [SteamHasAsyncCallResult(typeof(SubmitItemUpdateResult_t))] public static SteamAPICall_t SubmitItemUpdate(UGCUpdateHandle_t handle, string pchChangeNote) { InteropHelp.TestIfAvailableClient(); using (var pchChangeNote2 = new InteropHelp.UTF8StringHandle(pchChangeNote)) { @@ -559,21 +563,25 @@ public static EItemUpdateStatus GetItemUpdateProgress(UGCUpdateHandle_t handle, /// /// Steam Workshop Consumer API /// + [SteamHasAsyncCallResult(typeof(SetUserItemVoteResult_t))] public static SteamAPICall_t SetUserItemVote(PublishedFileId_t nPublishedFileID, bool bVoteUp) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_SetUserItemVote(CSteamAPIContext.GetSteamUGC(), nPublishedFileID, bVoteUp); } + [SteamHasAsyncCallResult(typeof(GetUserItemVoteResult_t))] public static SteamAPICall_t GetUserItemVote(PublishedFileId_t nPublishedFileID) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_GetUserItemVote(CSteamAPIContext.GetSteamUGC(), nPublishedFileID); } + [SteamHasAsyncCallResult(typeof(UserFavoriteItemsListChanged_t))] public static SteamAPICall_t AddItemToFavorites(AppId_t nAppId, PublishedFileId_t nPublishedFileID) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_AddItemToFavorites(CSteamAPIContext.GetSteamUGC(), nAppId, nPublishedFileID); } + [SteamHasAsyncCallResult(typeof(UserFavoriteItemsListChanged_t))] public static SteamAPICall_t RemoveItemFromFavorites(AppId_t nAppId, PublishedFileId_t nPublishedFileID) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_RemoveItemFromFavorites(CSteamAPIContext.GetSteamUGC(), nAppId, nPublishedFileID); @@ -582,6 +590,7 @@ public static SteamAPICall_t RemoveItemFromFavorites(AppId_t nAppId, PublishedFi /// /// subscribe to this item, will be installed ASAP /// + [SteamHasAsyncCallResult(typeof(RemoteStorageSubscribePublishedFileResult_t))] public static SteamAPICall_t SubscribeItem(PublishedFileId_t nPublishedFileID) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_SubscribeItem(CSteamAPIContext.GetSteamUGC(), nPublishedFileID); @@ -590,6 +599,7 @@ public static SteamAPICall_t SubscribeItem(PublishedFileId_t nPublishedFileID) { /// /// unsubscribe from this item, will be uninstalled after game quits /// + [SteamHasAsyncCallResult(typeof(RemoteStorageUnsubscribePublishedFileResult_t))] public static SteamAPICall_t UnsubscribeItem(PublishedFileId_t nPublishedFileID) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_UnsubscribeItem(CSteamAPIContext.GetSteamUGC(), nPublishedFileID); @@ -672,16 +682,19 @@ public static void SuspendDownloads(bool bSuspend) { /// /// usage tracking /// + [SteamHasAsyncCallResult(typeof(StartPlaytimeTrackingResult_t))] public static SteamAPICall_t StartPlaytimeTracking(PublishedFileId_t[] pvecPublishedFileID, uint unNumPublishedFileIDs) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_StartPlaytimeTracking(CSteamAPIContext.GetSteamUGC(), pvecPublishedFileID, unNumPublishedFileIDs); } + [SteamHasAsyncCallResult(typeof(StopPlaytimeTrackingResult_t))] public static SteamAPICall_t StopPlaytimeTracking(PublishedFileId_t[] pvecPublishedFileID, uint unNumPublishedFileIDs) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_StopPlaytimeTracking(CSteamAPIContext.GetSteamUGC(), pvecPublishedFileID, unNumPublishedFileIDs); } + [SteamHasAsyncCallResult(typeof(StopPlaytimeTrackingResult_t))] public static SteamAPICall_t StopPlaytimeTrackingForAllItems() { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_StopPlaytimeTrackingForAllItems(CSteamAPIContext.GetSteamUGC()); @@ -690,11 +703,13 @@ public static SteamAPICall_t StopPlaytimeTrackingForAllItems() { /// /// parent-child relationship or dependency management /// + [SteamHasAsyncCallResult(typeof(AddUGCDependencyResult_t))] public static SteamAPICall_t AddDependency(PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_AddDependency(CSteamAPIContext.GetSteamUGC(), nParentPublishedFileID, nChildPublishedFileID); } + [SteamHasAsyncCallResult(typeof(RemoveUGCDependencyResult_t))] public static SteamAPICall_t RemoveDependency(PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_RemoveDependency(CSteamAPIContext.GetSteamUGC(), nParentPublishedFileID, nChildPublishedFileID); @@ -703,11 +718,13 @@ public static SteamAPICall_t RemoveDependency(PublishedFileId_t nParentPublished /// /// add/remove app dependence/requirements (usually DLC) /// + [SteamHasAsyncCallResult(typeof(AddAppDependencyResult_t))] public static SteamAPICall_t AddAppDependency(PublishedFileId_t nPublishedFileID, AppId_t nAppID) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_AddAppDependency(CSteamAPIContext.GetSteamUGC(), nPublishedFileID, nAppID); } + [SteamHasAsyncCallResult(typeof(RemoveAppDependencyResult_t))] public static SteamAPICall_t RemoveAppDependency(PublishedFileId_t nPublishedFileID, AppId_t nAppID) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_RemoveAppDependency(CSteamAPIContext.GetSteamUGC(), nPublishedFileID, nAppID); @@ -717,6 +734,7 @@ public static SteamAPICall_t RemoveAppDependency(PublishedFileId_t nPublishedFil /// request app dependencies. note that whatever callback you register for GetAppDependenciesResult_t may be called multiple times /// until all app dependencies have been returned /// + [SteamHasAsyncCallResult(typeof(GetAppDependenciesResult_t))] public static SteamAPICall_t GetAppDependencies(PublishedFileId_t nPublishedFileID) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_GetAppDependencies(CSteamAPIContext.GetSteamUGC(), nPublishedFileID); @@ -725,6 +743,7 @@ public static SteamAPICall_t GetAppDependencies(PublishedFileId_t nPublishedFile /// /// delete the item without prompting the user /// + [SteamHasAsyncCallResult(typeof(DeleteItemResult_t))] public static SteamAPICall_t DeleteItem(PublishedFileId_t nPublishedFileID) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_DeleteItem(CSteamAPIContext.GetSteamUGC(), nPublishedFileID); @@ -741,6 +760,7 @@ public static bool ShowWorkshopEULA() { /// /// Retrieve information related to the user's acceptance or not of the app's specific Workshop EULA /// + [SteamHasAsyncCallResult(typeof(WorkshopEULAStatus_t))] public static SteamAPICall_t GetWorkshopEULAStatus() { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUGC_GetWorkshopEULAStatus(CSteamAPIContext.GetSteamUGC()); diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuser.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuser.cs index 7fff6ace..c69b088b 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuser.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuser.cs @@ -266,6 +266,7 @@ public static void AdvertiseGame(CSteamID steamIDGameServer, uint unIPServer, us /// pDataToInclude, cbDataToInclude will be encrypted into the ticket /// ( This is asynchronous, you must wait for the ticket to be completed by the server ) /// + [SteamHasAsyncCallResult(typeof(EncryptedAppTicketResponse_t))] public static SteamAPICall_t RequestEncryptedAppTicket(byte[] pDataToInclude, int cbDataToInclude) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUser_RequestEncryptedAppTicket(CSteamAPIContext.GetSteamUser(), pDataToInclude, cbDataToInclude); @@ -314,6 +315,7 @@ public static int GetPlayerSteamLevel() { /// NOTE 2: The resulting authorization cookie has an expiration time of one day, /// so it would be a good idea to request and visit a new auth URL every 12 hours. /// + [SteamHasAsyncCallResult(typeof(StoreAuthURLResponse_t))] public static SteamAPICall_t RequestStoreAuthURL(string pchRedirectURL) { InteropHelp.TestIfAvailableClient(); using (var pchRedirectURL2 = new InteropHelp.UTF8StringHandle(pchRedirectURL)) { @@ -353,6 +355,7 @@ public static bool BIsPhoneRequiringVerification() { return NativeMethods.ISteamUser_BIsPhoneRequiringVerification(CSteamAPIContext.GetSteamUser()); } + [SteamHasAsyncCallResult(typeof(MarketEligibilityResponse_t))] public static SteamAPICall_t GetMarketEligibility() { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUser_GetMarketEligibility(CSteamAPIContext.GetSteamUser()); @@ -361,6 +364,7 @@ public static SteamAPICall_t GetMarketEligibility() { /// /// Retrieves anti indulgence / duration control for current user /// + [SteamHasAsyncCallResult(typeof(DurationControl_t))] public static SteamAPICall_t GetDurationControl() { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUser_GetDurationControl(CSteamAPIContext.GetSteamUser()); diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuserstats.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuserstats.cs index 2a8811e6..7bc0f875 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuserstats.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuserstats.cs @@ -172,6 +172,7 @@ public static string GetAchievementName(uint iAchievement) { /// if the other user has no stats, UserStatsReceived_t.m_eResult will be set to k_EResultFail /// these stats won't be auto-updated; you'll need to call RequestUserStats() again to refresh any data /// + [SteamHasAsyncCallResult(typeof(UserStatsReceived_t))] public static SteamAPICall_t RequestUserStats(CSteamID steamIDUser) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUserStats_RequestUserStats(CSteamAPIContext.GetSteamUserStats(), steamIDUser); @@ -224,6 +225,7 @@ public static bool ResetAllStats(bool bAchievementsToo) { /// asks the Steam back-end for a leaderboard by name, and will create it if it's not yet /// This call is asynchronous, with the result returned in LeaderboardFindResult_t /// + [SteamHasAsyncCallResult(typeof(LeaderboardFindResult_t))] public static SteamAPICall_t FindOrCreateLeaderboard(string pchLeaderboardName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType) { InteropHelp.TestIfAvailableClient(); using (var pchLeaderboardName2 = new InteropHelp.UTF8StringHandle(pchLeaderboardName)) { @@ -235,6 +237,7 @@ public static SteamAPICall_t FindOrCreateLeaderboard(string pchLeaderboardName, /// as above, but won't create the leaderboard if it's not found /// This call is asynchronous, with the result returned in LeaderboardFindResult_t /// + [SteamHasAsyncCallResult(typeof(LeaderboardFindResult_t))] public static SteamAPICall_t FindLeaderboard(string pchLeaderboardName) { InteropHelp.TestIfAvailableClient(); using (var pchLeaderboardName2 = new InteropHelp.UTF8StringHandle(pchLeaderboardName)) { @@ -284,6 +287,7 @@ public static ELeaderboardDisplayType GetLeaderboardDisplayType(SteamLeaderboard /// e.g. DownloadLeaderboardEntries( hLeaderboard, k_ELeaderboardDataRequestGlobalAroundUser, -3, 3 ) will return 7 rows, 3 before the user, 3 after /// k_ELeaderboardDataRequestFriends requests all the rows for friends of the current user /// + [SteamHasAsyncCallResult(typeof(LeaderboardScoresDownloaded_t))] public static SteamAPICall_t DownloadLeaderboardEntries(SteamLeaderboard_t hSteamLeaderboard, ELeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUserStats_DownloadLeaderboardEntries(CSteamAPIContext.GetSteamUserStats(), hSteamLeaderboard, eLeaderboardDataRequest, nRangeStart, nRangeEnd); @@ -294,6 +298,7 @@ public static SteamAPICall_t DownloadLeaderboardEntries(SteamLeaderboard_t hStea /// if a user doesn't have a leaderboard entry, they won't be included in the result /// a max of 100 users can be downloaded at a time, with only one outstanding call at a time /// + [SteamHasAsyncCallResult(typeof(LeaderboardScoresDownloaded_t))] public static SteamAPICall_t DownloadLeaderboardEntriesForUsers(SteamLeaderboard_t hSteamLeaderboard, CSteamID[] prgUsers, int cUsers) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUserStats_DownloadLeaderboardEntriesForUsers(CSteamAPIContext.GetSteamUserStats(), hSteamLeaderboard, prgUsers, cUsers); @@ -326,6 +331,7 @@ public static bool GetDownloadedLeaderboardEntry(SteamLeaderboardEntries_t hStea /// Details are extra game-defined information regarding how the user got that score /// pScoreDetails points to an array of int32's, cScoreDetailsCount is the number of int32's in the list /// + [SteamHasAsyncCallResult(typeof(LeaderboardScoreUploaded_t))] public static SteamAPICall_t UploadLeaderboardScore(SteamLeaderboard_t hSteamLeaderboard, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int nScore, int[] pScoreDetails, int cScoreDetailsCount) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUserStats_UploadLeaderboardScore(CSteamAPIContext.GetSteamUserStats(), hSteamLeaderboard, eLeaderboardUploadScoreMethod, nScore, pScoreDetails, cScoreDetailsCount); @@ -336,6 +342,7 @@ public static SteamAPICall_t UploadLeaderboardScore(SteamLeaderboard_t hSteamLea /// hContent is a handle to a piece of user generated content that was shared using ISteamUserRemoteStorage::FileShare(). /// This call is asynchronous, with the result returned in LeaderboardUGCSet_t. /// + [SteamHasAsyncCallResult(typeof(LeaderboardUGCSet_t))] public static SteamAPICall_t AttachLeaderboardUGC(SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUserStats_AttachLeaderboardUGC(CSteamAPIContext.GetSteamUserStats(), hSteamLeaderboard, hUGC); @@ -345,6 +352,7 @@ public static SteamAPICall_t AttachLeaderboardUGC(SteamLeaderboard_t hSteamLeade /// Retrieves the number of players currently playing your game (online + offline) /// This call is asynchronous, with the result returned in NumberOfCurrentPlayers_t /// + [SteamHasAsyncCallResult(typeof(NumberOfCurrentPlayers_t))] public static SteamAPICall_t GetNumberOfCurrentPlayers() { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUserStats_GetNumberOfCurrentPlayers(CSteamAPIContext.GetSteamUserStats()); @@ -355,6 +363,7 @@ public static SteamAPICall_t GetNumberOfCurrentPlayers() { /// for the game globally. /// This call is asynchronous, with the result returned in GlobalAchievementPercentagesReady_t. /// + [SteamHasAsyncCallResult(typeof(GlobalAchievementPercentagesReady_t))] public static SteamAPICall_t RequestGlobalAchievementPercentages() { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUserStats_RequestGlobalAchievementPercentages(CSteamAPIContext.GetSteamUserStats()); @@ -404,6 +413,7 @@ public static bool GetAchievementAchievedPercent(string pchName, out float pflPe /// nHistoryDays specifies how many days of day-by-day history to retrieve in addition /// to the overall totals. The limit is 60. /// + [SteamHasAsyncCallResult(typeof(GlobalStatsReceived_t))] public static SteamAPICall_t RequestGlobalStats(int nHistoryDays) { InteropHelp.TestIfAvailableClient(); return (SteamAPICall_t)NativeMethods.ISteamUserStats_RequestGlobalStats(CSteamAPIContext.GetSteamUserStats(), nHistoryDays); diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamutils.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamutils.cs index 005743fe..c5998ec5 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamutils.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamutils.cs @@ -172,6 +172,7 @@ public static bool BOverlayNeedsPresent() { /// k_ECheckFileSignatureInvalidSignature - The file exists, and the signing tab has been set for this file, but the file is either not signed or the signature does not match. /// k_ECheckFileSignatureValidSignature - The file is signed and the signature is valid. /// + [SteamHasAsyncCallResult(typeof(CheckFileSignature_t))] public static SteamAPICall_t CheckFileSignature(string szFileName) { InteropHelp.TestIfAvailableClient(); using (var szFileName2 = new InteropHelp.UTF8StringHandle(szFileName)) { diff --git a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamvideo.cs b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamvideo.cs index 451a6c1f..ae8062aa 100644 --- a/com.rlabrecque.steamworks.net/Runtime/autogen/isteamvideo.cs +++ b/com.rlabrecque.steamworks.net/Runtime/autogen/isteamvideo.cs @@ -35,6 +35,7 @@ public static bool IsBroadcasting(out int pnNumViewers) { /// /// Get the OPF Details for 360 Video Playback /// + [SteamHasAsyncCallback(typeof(GetOPFSettingsResult_t))] public static void GetOPFSettings(AppId_t unVideoAppID) { InteropHelp.TestIfAvailableClient(); NativeMethods.ISteamVideo_GetOPFSettings(CSteamAPIContext.GetSteamVideo(), unVideoAppID);