3 #include "vg_steam_remote_storage.h"
5 #if defined( VALVE_CALLBACK_PACK_SMALL )
7 #pragma pack( push, 4 )
8 #elif defined( VALVE_CALLBACK_PACK_LARGE )
9 #pragma pack( push, 8 )
12 typedef void ISteamUGC
;
13 typedef u64 UGCQueryHandle_t
;
14 typedef u64 UGCUpdateHandle_t
;
16 static const UGCQueryHandle_t k_UGCQueryHandleInvalid
= 0xffffffffffffffffull
;
17 static const UGCUpdateHandle_t k_UGCUpdateHandleInvalid
= 0xffffffffffffffffull
;
19 /* Matching UGC types for queries */
20 typedef enum EUGCMatchingUGCType EUGCMatchingUGCType
;
21 enum EUGCMatchingUGCType
{
22 /* both mtx items and ready-to-use items */
23 k_EUGCMatchingUGCType_Items
= 0,
24 k_EUGCMatchingUGCType_Items_Mtx
= 1,
25 k_EUGCMatchingUGCType_Items_ReadyToUse
= 2,
26 k_EUGCMatchingUGCType_Collections
= 3,
27 k_EUGCMatchingUGCType_Artwork
= 4,
28 k_EUGCMatchingUGCType_Videos
= 5,
29 k_EUGCMatchingUGCType_Screenshots
= 6,
31 /* both web guides and integrated guides */
32 k_EUGCMatchingUGCType_AllGuides
= 7,
33 k_EUGCMatchingUGCType_WebGuides
= 8,
34 k_EUGCMatchingUGCType_IntegratedGuides
= 9,
36 /* ready-to-use items and integrated guides */
37 k_EUGCMatchingUGCType_UsableInGame
= 10,
38 k_EUGCMatchingUGCType_ControllerBindings
= 11,
40 /* game managed items (not managed by users) */
41 k_EUGCMatchingUGCType_GameManagedItems
= 12,
43 /* @note: will only be valid for CreateQueryUserUGCRequest requests */
44 k_EUGCMatchingUGCType_All
= ~0,
48 * Different lists of published UGC for a user.
49 * If the current logged in user is different than the specified user, then some
50 * options may not be allowed.
52 typedef enum EUserUGCList EUserUGCList
;
54 k_EUserUGCList_Published
,
55 k_EUserUGCList_VotedOn
,
56 k_EUserUGCList_VotedUp
,
57 k_EUserUGCList_VotedDown
,
58 k_EUserUGCList_WillVoteLater
,
59 k_EUserUGCList_Favorited
,
60 k_EUserUGCList_Subscribed
,
61 k_EUserUGCList_UsedOrPlayed
,
62 k_EUserUGCList_Followed
,
66 * Sort order for user published UGC lists (defaults to creation order
69 typedef enum EUserUGCListSortOrder EUserUGCListSortOrder
;
70 enum EUserUGCListSortOrder
{
71 k_EUserUGCListSortOrder_CreationOrderDesc
,
72 k_EUserUGCListSortOrder_CreationOrderAsc
,
73 k_EUserUGCListSortOrder_TitleAsc
,
74 k_EUserUGCListSortOrder_LastUpdatedDesc
,
75 k_EUserUGCListSortOrder_SubscriptionDateDesc
,
76 k_EUserUGCListSortOrder_VoteScoreDesc
,
77 k_EUserUGCListSortOrder_ForModeration
,
81 * Combination of sorting and filtering for queries across all UGC
83 typedef enum EUGCQuery EUGCQuery
;
85 k_EUGCQuery_RankedByVote
= 0,
86 k_EUGCQuery_RankedByPublicationDate
= 1,
87 k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate
= 2,
88 k_EUGCQuery_RankedByTrend
= 3,
89 k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate
= 4,
90 k_EUGCQuery_CreatedByFriendsRankedByPublicationDate
= 5,
91 k_EUGCQuery_RankedByNumTimesReported
= 6,
92 k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate
= 7,
93 k_EUGCQuery_NotYetRated
= 8,
94 k_EUGCQuery_RankedByTotalVotesAsc
= 9,
95 k_EUGCQuery_RankedByVotesUp
= 10,
96 k_EUGCQuery_RankedByTextSearch
= 11,
97 k_EUGCQuery_RankedByTotalUniqueSubscriptions
= 12,
98 k_EUGCQuery_RankedByPlaytimeTrend
= 13,
99 k_EUGCQuery_RankedByTotalPlaytime
= 14,
100 k_EUGCQuery_RankedByAveragePlaytimeTrend
= 15,
101 k_EUGCQuery_RankedByLifetimeAveragePlaytime
= 16,
102 k_EUGCQuery_RankedByPlaytimeSessionsTrend
= 17,
103 k_EUGCQuery_RankedByLifetimePlaytimeSessions
= 18,
104 k_EUGCQuery_RankedByLastUpdatedDate
= 19,
107 typedef enum EItemUpdateStatus EItemUpdateStatus
;
108 enum EItemUpdateStatus
{
109 /* The item update handle was invalid, job might be finished, listen too
110 * SubmitItemUpdateResult_t */
111 k_EItemUpdateStatusInvalid
= 0,
113 /* The item update is processing configuration data */
114 k_EItemUpdateStatusPreparingConfig
= 1,
116 /* The item update is reading and processing content files */
117 k_EItemUpdateStatusPreparingContent
= 2,
119 /* The item update is uploading content changes to Steam */
120 k_EItemUpdateStatusUploadingContent
= 3,
122 /* The item update is uploading new preview file image */
123 k_EItemUpdateStatusUploadingPreviewFile
= 4,
125 /* The item update is committing all changes */
126 k_EItemUpdateStatusCommittingChanges
= 5
129 typedef enum EItemState EItemState
;
131 /* item not tracked on client */
132 k_EItemStateNone
= 0,
134 /* current user is subscribed to this item. Not just cached. */
135 k_EItemStateSubscribed
= 1,
137 /* item was created with ISteamRemoteStorage */
138 k_EItemStateLegacyItem
= 2,
140 /* item is installed and usable (but maybe out of date) */
141 k_EItemStateInstalled
= 4,
143 /* items needs an update. Either because it's not installed yet or creator
145 k_EItemStateNeedsUpdate
= 8,
147 /* item update is currently downloading */
148 k_EItemStateDownloading
= 16,
150 /* DownloadItem() was called for this item, content isn't available until
151 * DownloadItemResult_t is fired */
152 k_EItemStateDownloadPending
= 32,
155 typedef enum EItemStatistic EItemStatistic
;
157 k_EItemStatistic_NumSubscriptions
= 0,
158 k_EItemStatistic_NumFavorites
= 1,
159 k_EItemStatistic_NumFollowers
= 2,
160 k_EItemStatistic_NumUniqueSubscriptions
= 3,
161 k_EItemStatistic_NumUniqueFavorites
= 4,
162 k_EItemStatistic_NumUniqueFollowers
= 5,
163 k_EItemStatistic_NumUniqueWebsiteViews
= 6,
164 k_EItemStatistic_ReportScore
= 7,
165 k_EItemStatistic_NumSecondsPlayed
= 8,
166 k_EItemStatistic_NumPlaytimeSessions
= 9,
167 k_EItemStatistic_NumComments
= 10,
168 k_EItemStatistic_NumSecondsPlayedDuringTimePeriod
= 11,
169 k_EItemStatistic_NumPlaytimeSessionsDuringTimePeriod
= 12,
172 typedef enum EItemPreviewType EItemPreviewType
;
173 enum EItemPreviewType
{
174 /* standard image file expected (e.g. jpg, png, gif, etc.) */
175 k_EItemPreviewType_Image
= 0,
177 k_EItemPreviewType_YouTubeVideo
= 1, /* video id is stored */
178 k_EItemPreviewType_Sketchfab
= 2, /* model id is stored */
181 * standard image file expected - cube map in the layout
190 k_EItemPreviewType_EnvironmentMap_HorizontalCross
= 3,
192 /* standard image file expected */
193 k_EItemPreviewType_EnvironmentMap_LatLong
= 4,
195 /* you can specify your own types above this value */
196 k_EItemPreviewType_ReservedMax
= 255,
199 static const u32 kNumUGCResultsPerPage
= 50;
200 static const u32 k_cchDeveloperMetadataMax
= 5000;
202 /* Details for a single published file/UGC */
203 typedef struct SteamUGCDetails_t SteamUGCDetails_t
;
204 struct SteamUGCDetails_t
{
205 PublishedFileId_t m_nPublishedFileId
;
206 EResult m_eResult
; /* The result of the operation. */
207 EWorkshopFileType m_eFileType
; /* Type of the file */
208 AppId_t m_nCreatorAppID
; /*ID of the app that created this file. */
209 AppId_t m_nConsumerAppID
; /* ID of the app that will consume this file. */
210 char m_rgchTitle
[k_cchPublishedDocumentTitleMax
]; /* title of document */
212 /* description of document */
213 char m_rgchDescription
[k_cchPublishedDocumentDescriptionMax
];
214 u64 m_ulSteamIDOwner
; /* Steam ID of the user who created this content. */
215 u32 m_rtimeCreated
; /* time when the published file was created */
216 u32 m_rtimeUpdated
; /* time when the published file was last updated */
218 /* time when the user added the published file to their list (not always
220 u32 m_rtimeAddedToUserList
;
221 ERemoteStoragePublishedFileVisibility m_eVisibility
; /* visibility */
222 steamapi_bool m_bBanned
; /* whether the file was banned */
224 /* developer has specifically flagged this item as accepted in the Workshop*/
225 steamapi_bool m_bAcceptedForUse
;
227 /* whether the list of tags was too long to be returned in the provided
229 steamapi_bool m_bTagsTruncated
;
231 /* comma separated list of all tags associated with this file */
232 char m_rgchTags
[k_cchTagListMax
];
234 /* file/url information */
235 UGCHandle_t m_hFile
; /* The handle of the primary file */
236 UGCHandle_t m_hPreviewFile
; /* The handle of the preview file */
238 /* The cloud filename of the primary file */
239 char m_pchFileName
[k_cchFilenameMax
];
241 /* Size of the primary file */
243 i32 m_nPreviewFileSize
; /* Size of the preview file */
244 char m_rgchURL
[k_cchPublishedFileURLMax
]; /* URL (for a video or a website)*/
246 /* voting information */
247 u32 m_unVotesUp
; /* number of votes up */
248 u32 m_unVotesDown
; /* number of votes down */
249 float m_flScore
; /* calculated score */
251 /* collection details */
256 * Callback for querying UGC
258 typedef struct SteamUGCQueryCompleted_t SteamUGCQueryCompleted_t
;
259 struct SteamUGCQueryCompleted_t
{
260 UGCQueryHandle_t m_handle
;
262 u32 m_unNumResultsReturned
;
263 u32 m_unTotalMatchingResults
;
265 /* indicates whether this data was retrieved from the local on-disk cache */
266 steamapi_bool m_bCachedData
;
268 /* If a paging cursor was used, then this will be the next cursor to get the
269 * next result set. */
270 char m_rgchNextCursor
[k_cchPublishedFileURLMax
];
272 enum { k_iSteamUGCQueryCompleted
= k_iSteamUGCCallbacks
+ 31 };
275 * Callback for requesting details on one piece of UGC
277 typedef struct SteamUGCRequestUGCDetailsResult_t
278 SteamUGCRequestUGCDetailsResult_t
;
279 struct SteamUGCRequestUGCDetailsResult_t
{
280 SteamUGCDetails_t m_details
;
282 /* indicates whether this data was retrieved from the local on-disk cache */
283 steamapi_bool m_bCachedData
;
285 enum { k_iSteamUGCRequestUGCDetailsResult
= k_iSteamUGCCallbacks
+ 2 };
289 * Purpose: result for ISteamUGC::CreateItem()
291 typedef struct CreateItemResult_t CreateItemResult_t
;
292 struct CreateItemResult_t
{
295 /* new item got this UGC PublishFileID */
296 PublishedFileId_t m_nPublishedFileId
;
297 steamapi_bool m_bUserNeedsToAcceptWorkshopLegalAgreement
;
299 enum { k_iCreateItemResult
= k_iSteamUGCCallbacks
+ 3 };
303 * Purpose: result for ISteamUGC::SubmitItemUpdate()
305 typedef struct SubmitItemUpdateResult_t SubmitItemUpdateResult_t
;
306 struct SubmitItemUpdateResult_t
{
308 steamapi_bool m_bUserNeedsToAcceptWorkshopLegalAgreement
;
309 PublishedFileId_t m_nPublishedFileId
;
311 enum { k_iSubmitItemUpdateResult
= k_iSteamUGCCallbacks
+ 4 };
315 * Purpose: a Workshop item has been installed or updated
317 typedef struct ItemInstalled_t ItemInstalled_t
;
318 struct ItemInstalled_t
{
320 PublishedFileId_t m_nPublishedFileId
;
322 enum { k_iItemInstalled
= k_iSteamUGCCallbacks
+ 5 };
326 * Purpose: result of DownloadItem(), existing item files can be accessed again
328 typedef struct DownloadItemResult_t DownloadItemResult_t
;
329 struct DownloadItemResult_t
{
331 PublishedFileId_t m_nPublishedFileId
;
334 enum { k_iDownloadItemResult
= k_iSteamUGCCallbacks
+ 6 };
337 * Purpose: result of AddItemToFavorites() or RemoveItemFromFavorites()
339 typedef struct UserFavoriteItemsListChanged_t UserFavoriteItemsListChanged_t
;
340 struct UserFavoriteItemsListChanged_t
{
341 PublishedFileId_t m_nPublishedFileId
;
343 steamapi_bool m_bWasAddRequest
;
345 enum { k_iUserFavoriteItemsListChanged
= k_iSteamUGCCallbacks
+ 7 };
348 * Purpose: The result of a call to SetUserItemVote()
350 typedef struct SetUserItemVoteResult_t SetUserItemVoteResult_t
;
351 struct SetUserItemVoteResult_t
{
352 PublishedFileId_t m_nPublishedFileId
;
354 steamapi_bool m_bVoteUp
;
356 enum { k_iSetUserItemVoteResult
= k_iSteamUGCCallbacks
+ 8 };
359 * Purpose: The result of a call to GetUserItemVote()
361 typedef struct GetUserItemVoteResult_t GetUserItemVoteResult_t
;
362 struct GetUserItemVoteResult_t
{
363 PublishedFileId_t m_nPublishedFileId
;
365 steamapi_bool m_bVotedUp
;
366 steamapi_bool m_bVotedDown
;
367 steamapi_bool m_bVoteSkipped
;
369 enum { k_iGetUserItemVoteResult
= k_iSteamUGCCallbacks
+ 9 };
372 * Purpose: The result of a call to StartPlaytimeTracking()
374 typedef struct StartPlaytimeTrackingResult_t StartPlaytimeTrackingResult_t
;
375 struct StartPlaytimeTrackingResult_t
{
378 enum { k_iStartPlaytimeTrackingResult
= k_iSteamUGCCallbacks
+ 10 };
381 * Purpose: The result of a call to StopPlaytimeTracking()
383 typedef struct StopPlaytimeTrackingResult_t StopPlaytimeTrackingResult_t
;
384 struct StopPlaytimeTrackingResult_t
{
387 enum { k_iStopPlaytimeTrackingResult
= k_iSteamUGCCallbacks
+ 11 };
390 * Purpose: The result of a call to AddDependency
392 typedef struct AddUGCDependencyResult_t AddUGCDependencyResult_t
;
393 struct AddUGCDependencyResult_t
{
395 PublishedFileId_t m_nPublishedFileId
;
396 PublishedFileId_t m_nChildPublishedFileId
;
398 enum { k_iAddUGCDependecyResult
= k_iSteamUGCCallbacks
+ 12 };
401 * Purpose: The result of a call to RemoveDependency
403 typedef struct RemoveUGCDependencyResult_t RemoveUGCDependencyResult_t
;
404 struct RemoveUGCDependencyResult_t
{
406 PublishedFileId_t m_nPublishedFileId
;
407 PublishedFileId_t m_nChildPublishedFileId
;
409 enum { k_iRemoveUGCDependecyResult
= k_iSteamUGCCallbacks
+ 13 };
413 * Purpose: The result of a call to AddAppDependency
415 typedef struct AddAppDependencyResult_t AddAppDependencyResult_t
;
416 struct AddAppDependencyResult_t
{
418 PublishedFileId_t m_nPublishedFileId
;
421 enum { k_iAddAppDependencyResult
= k_iSteamUGCCallbacks
+ 14 };
424 * Purpose: The result of a call to RemoveAppDependency
426 typedef struct RemoveAppDependencyResult_t RemoveAppDependencyResult_t
;
427 struct RemoveAppDependencyResult_t
{
429 PublishedFileId_t m_nPublishedFileId
;
432 enum { k_iRemoveAppDependencyResult
= k_iSteamUGCCallbacks
+ 15 };
435 * Purpose: The result of a call to GetAppDependencies. Callback may be called
436 * multiple times until all app dependencies have been returned.
438 typedef struct GetAppDependenciesResult_t GetAppDependenciesResult_t
;
439 struct GetAppDependenciesResult_t
{
441 PublishedFileId_t m_nPublishedFileId
;
442 AppId_t m_rgAppIDs
[32];
443 u32 m_nNumAppDependencies
; // number returned in this struct
444 u32 m_nTotalNumAppDependencies
; // total found
446 enum { k_iGetAppDependeniesResult
= k_iSteamUGCCallbacks
+ 16 };
449 * Purpose: The result of a call to DeleteItem
451 typedef struct DeleteItemResult_t DeleteItemResult_t
;
452 struct DeleteItemResult_t
{
454 PublishedFileId_t m_nPublishedFileId
;
456 enum { k_iDeleteItemResult
= k_iSteamUGCCallbacks
+ 17 };
460 * Purpose: signal that the list of subscribed items changed
462 typedef struct UserSubscribedItemsListChanged_t
463 UserSubscribedItemsListChanged_t
;
464 struct UserSubscribedItemsListChanged_t
{
467 enum { k_iUserSubscribedItemsListChanged
= k_iSteamUGCCallbacks
+ 18 };
471 * Purpose: Status of the user's acceptable/rejection of the app's specific
474 typedef struct WorkshopEULAStatus_t WorkshopEULAStatus_t
;
475 struct WorkshopEULAStatus_t
{
480 steamapi_bool m_bAccepted
;
481 steamapi_bool m_bNeedsAction
;
483 enum { k_iWorkshopEULAStatus
= k_iSteamUGCCallbacks
+ 20 };
487 #define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION016"
489 ISteamUGC
*SteamAPI_SteamUGC_v016();
490 static inline ISteamUGC
*SteamAPI_SteamUGC()
492 return SteamAPI_SteamUGC_v016();
494 ISteamUGC
*SteamAPI_SteamGameServerUGC_v016();
495 static inline ISteamUGC
*SteamAPI_SteamGameServerUGC()
497 return SteamAPI_SteamGameServerUGC_v016();
499 UGCQueryHandle_t
SteamAPI_ISteamUGC_CreateQueryUserUGCRequest(
500 ISteamUGC
*self
, AccountID_t unAccountID
, EUserUGCList eListType
,
501 EUGCMatchingUGCType eMatchingUGCType
, EUserUGCListSortOrder eSortOrder
,
502 AppId_t nCreatorAppID
, AppId_t nConsumerAppID
, u32 unPage
);
504 UGCQueryHandle_t
SteamAPI_ISteamUGC_CreateQueryAllUGCRequestPage(
505 ISteamUGC
*self
, EUGCQuery eQueryType
,
506 EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType
,
507 AppId_t nCreatorAppID
, AppId_t nConsumerAppID
, u32 unPage
);
509 UGCQueryHandle_t
SteamAPI_ISteamUGC_CreateQueryAllUGCRequestCursor(
510 ISteamUGC
*self
, EUGCQuery eQueryType
,
511 EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType
,
512 AppId_t nCreatorAppID
, AppId_t nConsumerAppID
, const char * pchCursor
);
514 UGCQueryHandle_t
SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest(
515 ISteamUGC
*self
, PublishedFileId_t
*pvecPublishedFileID
,
516 u32 unNumPublishedFileIDs
);
518 SteamAPICall_t
SteamAPI_ISteamUGC_SendQueryUGCRequest( ISteamUGC
* self
,
519 UGCQueryHandle_t handle
);
521 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCResult(
522 ISteamUGC
*self
, UGCQueryHandle_t handle
, u32 index
,
523 SteamUGCDetails_t
*pDetails
);
525 u32
SteamAPI_ISteamUGC_GetQueryUGCNumTags( ISteamUGC
* self
,
526 UGCQueryHandle_t handle
, u32 index
);
528 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCTag(
529 ISteamUGC
* self
, UGCQueryHandle_t handle
, u32 index
, u32 indexTag
,
530 char * pchValue
, u32 cchValueSize
);
532 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCTagDisplayName( ISteamUGC
* self
,
533 UGCQueryHandle_t handle
, u32 index
, u32 indexTag
, char * pchValue
,
536 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCPreviewURL( ISteamUGC
* self
,
537 UGCQueryHandle_t handle
, u32 index
, char * pchURL
, u32 cchURLSize
);
539 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCMetadata( ISteamUGC
* self
,
540 UGCQueryHandle_t handle
, u32 index
, char * pchMetadata
,
541 u32 cchMetadatasize
);
543 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCChildren( ISteamUGC
* self
,
544 UGCQueryHandle_t handle
, u32 index
,
545 PublishedFileId_t
*pvecPublishedFileID
, u32 cMaxEntries
);
547 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCStatistic( ISteamUGC
* self
,
548 UGCQueryHandle_t handle
, u32 index
, EItemStatistic eStatType
,
551 u32
SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews( ISteamUGC
* self
,
552 UGCQueryHandle_t handle
, u32 index
);
554 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview( ISteamUGC
* self
,
555 UGCQueryHandle_t handle
, u32 index
, u32 previewIndex
,
556 char *pchURLOrVideoID
, u32 cchURLSize
, char *pchOriginalFileName
,
557 u32 cchOriginalFileNameSize
, EItemPreviewType
*pPreviewType
);
559 u32
SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags( ISteamUGC
* self
,
560 UGCQueryHandle_t handle
, u32 index
);
562 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag( ISteamUGC
* self
,
563 UGCQueryHandle_t handle
, u32 index
, u32 keyValueTagIndex
, char *pchKey
,
564 u32 cchKeySize
, char * pchValue
, u32 cchValueSize
);
566 steamapi_bool
SteamAPI_ISteamUGC_GetQueryFirstUGCKeyValueTag( ISteamUGC
* self
,
567 UGCQueryHandle_t handle
, u32 index
, const char *pchKey
, char *pchValue
,
570 steamapi_bool
SteamAPI_ISteamUGC_ReleaseQueryUGCRequest( ISteamUGC
* self
,
571 UGCQueryHandle_t handle
);
573 steamapi_bool
SteamAPI_ISteamUGC_AddRequiredTag( ISteamUGC
* self
,
574 UGCQueryHandle_t handle
, const char * pTagName
);
576 steamapi_bool
SteamAPI_ISteamUGC_AddRequiredTagGroup( ISteamUGC
* self
,
577 UGCQueryHandle_t handle
, const SteamParamStringArray_t
* pTagGroups
);
579 steamapi_bool
SteamAPI_ISteamUGC_AddExcludedTag( ISteamUGC
* self
,
580 UGCQueryHandle_t handle
, const char * pTagName
);
582 steamapi_bool
SteamAPI_ISteamUGC_SetReturnOnlyIDs( ISteamUGC
* self
,
583 UGCQueryHandle_t handle
, steamapi_bool bReturnOnlyIDs
);
585 steamapi_bool
SteamAPI_ISteamUGC_SetReturnKeyValueTags( ISteamUGC
* self
,
586 UGCQueryHandle_t handle
, steamapi_bool bReturnKeyValueTags
);
588 steamapi_bool
SteamAPI_ISteamUGC_SetReturnLongDescription( ISteamUGC
* self
,
589 UGCQueryHandle_t handle
, steamapi_bool bReturnLongDescription
);
591 steamapi_bool
SteamAPI_ISteamUGC_SetReturnMetadata( ISteamUGC
* self
,
592 UGCQueryHandle_t handle
, steamapi_bool bReturnMetadata
);
594 steamapi_bool
SteamAPI_ISteamUGC_SetReturnChildren( ISteamUGC
* self
,
595 UGCQueryHandle_t handle
, steamapi_bool bReturnChildren
);
597 steamapi_bool
SteamAPI_ISteamUGC_SetReturnAdditionalPreviews( ISteamUGC
* self
,
598 UGCQueryHandle_t handle
, steamapi_bool bReturnAdditionalPreviews
);
600 steamapi_bool
SteamAPI_ISteamUGC_SetReturnTotalOnly( ISteamUGC
* self
,
601 UGCQueryHandle_t handle
, steamapi_bool bReturnTotalOnly
);
603 steamapi_bool
SteamAPI_ISteamUGC_SetReturnPlaytimeStats( ISteamUGC
* self
,
604 UGCQueryHandle_t handle
, u32 unDays
);
606 steamapi_bool
SteamAPI_ISteamUGC_SetLanguage( ISteamUGC
* self
,
607 UGCQueryHandle_t handle
, const char * pchLanguage
);
609 steamapi_bool
SteamAPI_ISteamUGC_SetAllowCachedResponse( ISteamUGC
* self
,
610 UGCQueryHandle_t handle
, u32 unMaxAgeSeconds
);
612 steamapi_bool
SteamAPI_ISteamUGC_SetCloudFileNameFilter( ISteamUGC
* self
,
613 UGCQueryHandle_t handle
, const char * pMatchCloudFileName
);
615 steamapi_bool
SteamAPI_ISteamUGC_SetMatchAnyTag( ISteamUGC
* self
,
616 UGCQueryHandle_t handle
, steamapi_bool bMatchAnyTag
);
618 steamapi_bool
SteamAPI_ISteamUGC_SetSearchText( ISteamUGC
* self
,
619 UGCQueryHandle_t handle
, const char * pSearchText
);
621 steamapi_bool
SteamAPI_ISteamUGC_SetRankedByTrendDays( ISteamUGC
* self
,
622 UGCQueryHandle_t handle
, u32 unDays
);
624 steamapi_bool
SteamAPI_ISteamUGC_SetTimeCreatedDateRange( ISteamUGC
* self
,
625 UGCQueryHandle_t handle
, RTime32 rtStart
, RTime32 rtEnd
);
627 steamapi_bool
SteamAPI_ISteamUGC_SetTimeUpdatedDateRange( ISteamUGC
* self
,
628 UGCQueryHandle_t handle
, RTime32 rtStart
, RTime32 rtEnd
);
630 steamapi_bool
SteamAPI_ISteamUGC_AddRequiredKeyValueTag( ISteamUGC
* self
,
631 UGCQueryHandle_t handle
, const char * pKey
, const char * pValue
);
633 SteamAPICall_t
SteamAPI_ISteamUGC_RequestUGCDetails( ISteamUGC
* self
,
634 PublishedFileId_t nPublishedFileID
, u32 unMaxAgeSeconds
);
636 SteamAPICall_t
SteamAPI_ISteamUGC_CreateItem( ISteamUGC
* self
,
637 AppId_t nConsumerAppId
, EWorkshopFileType eFileType
);
639 UGCUpdateHandle_t
SteamAPI_ISteamUGC_StartItemUpdate( ISteamUGC
* self
,
640 AppId_t nConsumerAppId
, PublishedFileId_t nPublishedFileID
);
642 steamapi_bool
SteamAPI_ISteamUGC_SetItemTitle( ISteamUGC
* self
,
643 UGCUpdateHandle_t handle
, const char * pchTitle
);
645 steamapi_bool
SteamAPI_ISteamUGC_SetItemDescription( ISteamUGC
* self
,
646 UGCUpdateHandle_t handle
, const char * pchDescription
);
648 steamapi_bool
SteamAPI_ISteamUGC_SetItemUpdateLanguage( ISteamUGC
* self
,
649 UGCUpdateHandle_t handle
, const char * pchLanguage
);
651 steamapi_bool
SteamAPI_ISteamUGC_SetItemMetadata( ISteamUGC
* self
,
652 UGCUpdateHandle_t handle
, const char * pchMetaData
);
654 steamapi_bool
SteamAPI_ISteamUGC_SetItemVisibility( ISteamUGC
* self
,
655 UGCUpdateHandle_t handle
,
656 ERemoteStoragePublishedFileVisibility eVisibility
);
658 steamapi_bool
SteamAPI_ISteamUGC_SetItemTags( ISteamUGC
* self
,
659 UGCUpdateHandle_t updateHandle
, const SteamParamStringArray_t
* pTags
);
661 steamapi_bool
SteamAPI_ISteamUGC_SetItemContent( ISteamUGC
* self
,
662 UGCUpdateHandle_t handle
, const char * pszContentFolder
);
664 steamapi_bool
SteamAPI_ISteamUGC_SetItemPreview( ISteamUGC
* self
,
665 UGCUpdateHandle_t handle
, const char * pszPreviewFile
);
667 steamapi_bool
SteamAPI_ISteamUGC_SetAllowLegacyUpload( ISteamUGC
* self
,
668 UGCUpdateHandle_t handle
, steamapi_bool bAllowLegacyUpload
);
670 steamapi_bool
SteamAPI_ISteamUGC_RemoveAllItemKeyValueTags( ISteamUGC
* self
,
671 UGCUpdateHandle_t handle
);
673 steamapi_bool
SteamAPI_ISteamUGC_RemoveItemKeyValueTags( ISteamUGC
* self
,
674 UGCUpdateHandle_t handle
, const char * pchKey
);
676 steamapi_bool
SteamAPI_ISteamUGC_AddItemKeyValueTag( ISteamUGC
* self
,
677 UGCUpdateHandle_t handle
, const char * pchKey
, const char * pchValue
);
679 steamapi_bool
SteamAPI_ISteamUGC_AddItemPreviewFile( ISteamUGC
* self
,
680 UGCUpdateHandle_t handle
, const char * pszPreviewFile
,
681 EItemPreviewType type
);
683 steamapi_bool
SteamAPI_ISteamUGC_AddItemPreviewVideo( ISteamUGC
* self
,
684 UGCUpdateHandle_t handle
, const char * pszVideoID
);
686 steamapi_bool
SteamAPI_ISteamUGC_UpdateItemPreviewFile( ISteamUGC
* self
,
687 UGCUpdateHandle_t handle
, u32 index
, const char * pszPreviewFile
);
689 steamapi_bool
SteamAPI_ISteamUGC_UpdateItemPreviewVideo( ISteamUGC
* self
,
690 UGCUpdateHandle_t handle
, u32 index
, const char * pszVideoID
);
692 steamapi_bool
SteamAPI_ISteamUGC_RemoveItemPreview( ISteamUGC
* self
,
693 UGCUpdateHandle_t handle
, u32 index
);
695 SteamAPICall_t
SteamAPI_ISteamUGC_SubmitItemUpdate( ISteamUGC
* self
,
696 UGCUpdateHandle_t handle
, const char * pchChangeNote
);
698 EItemUpdateStatus
SteamAPI_ISteamUGC_GetItemUpdateProgress( ISteamUGC
* self
,
699 UGCUpdateHandle_t handle
, u64
* punBytesProcessed
, u64
* punBytesTotal
);
701 SteamAPICall_t
SteamAPI_ISteamUGC_SetUserItemVote( ISteamUGC
* self
,
702 PublishedFileId_t nPublishedFileID
, steamapi_bool bVoteUp
);
704 SteamAPICall_t
SteamAPI_ISteamUGC_GetUserItemVote( ISteamUGC
* self
,
705 PublishedFileId_t nPublishedFileID
);
707 SteamAPICall_t
SteamAPI_ISteamUGC_AddItemToFavorites( ISteamUGC
* self
,
708 AppId_t nAppId
, PublishedFileId_t nPublishedFileID
);
710 SteamAPICall_t
SteamAPI_ISteamUGC_RemoveItemFromFavorites( ISteamUGC
* self
,
711 AppId_t nAppId
, PublishedFileId_t nPublishedFileID
);
713 SteamAPICall_t
SteamAPI_ISteamUGC_SubscribeItem( ISteamUGC
* self
,
714 PublishedFileId_t nPublishedFileID
);
716 SteamAPICall_t
SteamAPI_ISteamUGC_UnsubscribeItem( ISteamUGC
* self
,
717 PublishedFileId_t nPublishedFileID
);
719 u32
SteamAPI_ISteamUGC_GetNumSubscribedItems( ISteamUGC
* self
);
721 u32
SteamAPI_ISteamUGC_GetSubscribedItems( ISteamUGC
* self
,
722 PublishedFileId_t
* pvecPublishedFileID
, u32 cMaxEntries
);
724 u32
SteamAPI_ISteamUGC_GetItemState( ISteamUGC
* self
,
725 PublishedFileId_t nPublishedFileID
);
727 steamapi_bool
SteamAPI_ISteamUGC_GetItemInstallInfo( ISteamUGC
* self
,
728 PublishedFileId_t nPublishedFileID
, u64
* punSizeOnDisk
, char * pchFolder
,
729 u32 cchFolderSize
, u32
* punTimeStamp
);
731 steamapi_bool
SteamAPI_ISteamUGC_GetItemDownloadInfo( ISteamUGC
* self
,
732 PublishedFileId_t nPublishedFileID
, u64
* punBytesDownloaded
,
733 u64
* punBytesTotal
);
735 steamapi_bool
SteamAPI_ISteamUGC_DownloadItem( ISteamUGC
* self
,
736 PublishedFileId_t nPublishedFileID
, steamapi_bool bHighPriority
);
738 steamapi_bool
SteamAPI_ISteamUGC_BInitWorkshopForGameServer( ISteamUGC
* self
,
739 DepotId_t unWorkshopDepotID
, const char * pszFolder
);
741 void SteamAPI_ISteamUGC_SuspendDownloads( ISteamUGC
* self
,
742 steamapi_bool bSuspend
);
744 SteamAPICall_t
SteamAPI_ISteamUGC_StartPlaytimeTracking( ISteamUGC
* self
,
745 PublishedFileId_t
* pvecPublishedFileID
, u32 unNumPublishedFileIDs
);
747 SteamAPICall_t
SteamAPI_ISteamUGC_StopPlaytimeTracking( ISteamUGC
* self
,
748 PublishedFileId_t
* pvecPublishedFileID
, u32 unNumPublishedFileIDs
);
750 SteamAPICall_t
SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems(
753 SteamAPICall_t
SteamAPI_ISteamUGC_AddDependency( ISteamUGC
* self
,
754 PublishedFileId_t nParentPublishedFileID
,
755 PublishedFileId_t nChildPublishedFileID
);
757 SteamAPICall_t
SteamAPI_ISteamUGC_RemoveDependency( ISteamUGC
* self
,
758 PublishedFileId_t nParentPublishedFileID
,
759 PublishedFileId_t nChildPublishedFileID
);
761 SteamAPICall_t
SteamAPI_ISteamUGC_AddAppDependency( ISteamUGC
* self
,
762 PublishedFileId_t nPublishedFileID
, AppId_t nAppID
);
764 SteamAPICall_t
SteamAPI_ISteamUGC_RemoveAppDependency( ISteamUGC
* self
,
765 PublishedFileId_t nPublishedFileID
, AppId_t nAppID
);
767 SteamAPICall_t
SteamAPI_ISteamUGC_GetAppDependencies( ISteamUGC
* self
,
768 PublishedFileId_t nPublishedFileID
);
770 SteamAPICall_t
SteamAPI_ISteamUGC_DeleteItem( ISteamUGC
* self
,
771 PublishedFileId_t nPublishedFileID
);
773 steamapi_bool
SteamAPI_ISteamUGC_ShowWorkshopEULA( ISteamUGC
* self
);
775 SteamAPICall_t
SteamAPI_ISteamUGC_GetWorkshopEULAStatus( ISteamUGC
* self
);