diff --git a/Facepunch.Steamworks/Interfaces/Workshop.cs b/Facepunch.Steamworks/Interfaces/Workshop.cs index a9bde30..cdbe3a8 100644 --- a/Facepunch.Steamworks/Interfaces/Workshop.cs +++ b/Facepunch.Steamworks/Interfaces/Workshop.cs @@ -123,25 +123,23 @@ public Item GetItem( ulong itemid ) return new Item( itemid, this ); } - /// - /// The amount of item's the user is subscribed to for this App - /// - public uint GetAmountSubsribed() - { - return ugc.GetNumSubscribedItems(); - } /// /// Creates a list of all item's that the user is currently subscribed /// to for this App. This does not query titles or descriptions but /// allows you to get the directories, state and ID of any subscribed Item. - /// This is mostly useful for getting all subscribed items install location. + /// This is mostly useful for getting all subscribed items install location + /// on initial load to load all workshop content /// - public Item[] GetSubscribedItems(uint amount) + public unsafe Item[] GetSubscribedItems() { Item[] items; + uint subAmount; + var amount = ugc.GetNumSubscribedItems(); PublishedFileId_t[] vecSubscribedItems = new PublishedFileId_t[amount]; - uint subAmount = ugc.GetSubscribedItems(vecSubscribedItems, amount); - + fixed (PublishedFileId_t* vecSubscribedItems_ptr = vecSubscribedItems) + { + subAmount = ugc.GetSubscribedItems(vecSubscribedItems_ptr, amount); + } if (subAmount < amount) items = new Item[subAmount]; else diff --git a/Facepunch.Steamworks/SteamNative/SteamNative.SteamUGC.cs b/Facepunch.Steamworks/SteamNative/SteamNative.SteamUGC.cs index d44321b..7c5650f 100644 --- a/Facepunch.Steamworks/SteamNative/SteamNative.SteamUGC.cs +++ b/Facepunch.Steamworks/SteamNative/SteamNative.SteamUGC.cs @@ -284,12 +284,9 @@ public bool GetQueryUGCStatistic( UGCQueryHandle_t handle /*UGCQueryHandle_t*/, } // uint - public uint GetSubscribedItems( PublishedFileId_t[] pvecPublishedFileID /*PublishedFileId_t **/, uint cMaxEntries /*uint32*/ ) + public uint GetSubscribedItems( PublishedFileId_t* pvecPublishedFileID /*PublishedFileId_t **/, uint cMaxEntries /*uint32*/ ) { - fixed (PublishedFileId_t* pvecPublishedFileID_ptr = pvecPublishedFileID) - { - return platform.ISteamUGC_GetSubscribedItems((IntPtr)pvecPublishedFileID_ptr, cMaxEntries); - } + return platform.ISteamUGC_GetSubscribedItems( (IntPtr) pvecPublishedFileID, cMaxEntries ); } // SteamAPICall_t