5 #include "vg_steam_remote_storage.h"
7 #if defined( VALVE_CALLBACK_PACK_SMALL )
9 #pragma pack( push, 4 )
10 #elif defined( VALVE_CALLBACK_PACK_LARGE )
11 #pragma pack( push, 8 )
14 typedef void ISteamUGC
;
15 typedef u64 UGCQueryHandle_t
;
16 typedef u64 UGCUpdateHandle_t
;
18 const UGCQueryHandle_t k_UGCQueryHandleInvalid
= 0xffffffffffffffffull
;
19 const UGCUpdateHandle_t k_UGCUpdateHandleInvalid
= 0xffffffffffffffffull
;
21 /* Matching UGC types for queries */
22 typedef enum EUGCMatchingUGCType EUGCMatchingUGCType
;
23 enum EUGCMatchingUGCType
{
24 /* both mtx items and ready-to-use items */
25 k_EUGCMatchingUGCType_Items
= 0,
26 k_EUGCMatchingUGCType_Items_Mtx
= 1,
27 k_EUGCMatchingUGCType_Items_ReadyToUse
= 2,
28 k_EUGCMatchingUGCType_Collections
= 3,
29 k_EUGCMatchingUGCType_Artwork
= 4,
30 k_EUGCMatchingUGCType_Videos
= 5,
31 k_EUGCMatchingUGCType_Screenshots
= 6,
33 /* both web guides and integrated guides */
34 k_EUGCMatchingUGCType_AllGuides
= 7,
35 k_EUGCMatchingUGCType_WebGuides
= 8,
36 k_EUGCMatchingUGCType_IntegratedGuides
= 9,
38 /* ready-to-use items and integrated guides */
39 k_EUGCMatchingUGCType_UsableInGame
= 10,
40 k_EUGCMatchingUGCType_ControllerBindings
= 11,
42 /* game managed items (not managed by users) */
43 k_EUGCMatchingUGCType_GameManagedItems
= 12,
45 /* @note: will only be valid for CreateQueryUserUGCRequest requests */
46 k_EUGCMatchingUGCType_All
= ~0,
50 * Different lists of published UGC for a user.
51 * If the current logged in user is different than the specified user, then some
52 * options may not be allowed.
54 typedef enum EUserUGCList EUserUGCList
;
56 k_EUserUGCList_Published
,
57 k_EUserUGCList_VotedOn
,
58 k_EUserUGCList_VotedUp
,
59 k_EUserUGCList_VotedDown
,
60 k_EUserUGCList_WillVoteLater
,
61 k_EUserUGCList_Favorited
,
62 k_EUserUGCList_Subscribed
,
63 k_EUserUGCList_UsedOrPlayed
,
64 k_EUserUGCList_Followed
,
68 * Sort order for user published UGC lists (defaults to creation order
71 typedef enum EUserUGCListSortOrder EUserUGCListSortOrder
;
72 enum EUserUGCListSortOrder
{
73 k_EUserUGCListSortOrder_CreationOrderDesc
,
74 k_EUserUGCListSortOrder_CreationOrderAsc
,
75 k_EUserUGCListSortOrder_TitleAsc
,
76 k_EUserUGCListSortOrder_LastUpdatedDesc
,
77 k_EUserUGCListSortOrder_SubscriptionDateDesc
,
78 k_EUserUGCListSortOrder_VoteScoreDesc
,
79 k_EUserUGCListSortOrder_ForModeration
,
83 * Combination of sorting and filtering for queries across all UGC
85 typedef enum EUGCQuery EUGCQuery
;
87 k_EUGCQuery_RankedByVote
= 0,
88 k_EUGCQuery_RankedByPublicationDate
= 1,
89 k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate
= 2,
90 k_EUGCQuery_RankedByTrend
= 3,
91 k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate
= 4,
92 k_EUGCQuery_CreatedByFriendsRankedByPublicationDate
= 5,
93 k_EUGCQuery_RankedByNumTimesReported
= 6,
94 k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate
= 7,
95 k_EUGCQuery_NotYetRated
= 8,
96 k_EUGCQuery_RankedByTotalVotesAsc
= 9,
97 k_EUGCQuery_RankedByVotesUp
= 10,
98 k_EUGCQuery_RankedByTextSearch
= 11,
99 k_EUGCQuery_RankedByTotalUniqueSubscriptions
= 12,
100 k_EUGCQuery_RankedByPlaytimeTrend
= 13,
101 k_EUGCQuery_RankedByTotalPlaytime
= 14,
102 k_EUGCQuery_RankedByAveragePlaytimeTrend
= 15,
103 k_EUGCQuery_RankedByLifetimeAveragePlaytime
= 16,
104 k_EUGCQuery_RankedByPlaytimeSessionsTrend
= 17,
105 k_EUGCQuery_RankedByLifetimePlaytimeSessions
= 18,
106 k_EUGCQuery_RankedByLastUpdatedDate
= 19,
109 typedef enum EItemUpdateStatus EItemUpdateStatus
;
110 enum EItemUpdateStatus
{
111 /* The item update handle was invalid, job might be finished, listen too
112 * SubmitItemUpdateResult_t */
113 k_EItemUpdateStatusInvalid
= 0,
115 /* The item update is processing configuration data */
116 k_EItemUpdateStatusPreparingConfig
= 1,
118 /* The item update is reading and processing content files */
119 k_EItemUpdateStatusPreparingContent
= 2,
121 /* The item update is uploading content changes to Steam */
122 k_EItemUpdateStatusUploadingContent
= 3,
124 /* The item update is uploading new preview file image */
125 k_EItemUpdateStatusUploadingPreviewFile
= 4,
127 /* The item update is committing all changes */
128 k_EItemUpdateStatusCommittingChanges
= 5
131 typedef enum EItemState EItemState
;
133 /* item not tracked on client */
134 k_EItemStateNone
= 0,
136 /* current user is subscribed to this item. Not just cached. */
137 k_EItemStateSubscribed
= 1,
139 /* item was created with ISteamRemoteStorage */
140 k_EItemStateLegacyItem
= 2,
142 /* item is installed and usable (but maybe out of date) */
143 k_EItemStateInstalled
= 4,
145 /* items needs an update. Either because it's not installed yet or creator
147 k_EItemStateNeedsUpdate
= 8,
149 /* item update is currently downloading */
150 k_EItemStateDownloading
= 16,
152 /* DownloadItem() was called for this item, content isn't available until
153 * DownloadItemResult_t is fired */
154 k_EItemStateDownloadPending
= 32,
157 typedef enum EItemStatistic EItemStatistic
;
159 k_EItemStatistic_NumSubscriptions
= 0,
160 k_EItemStatistic_NumFavorites
= 1,
161 k_EItemStatistic_NumFollowers
= 2,
162 k_EItemStatistic_NumUniqueSubscriptions
= 3,
163 k_EItemStatistic_NumUniqueFavorites
= 4,
164 k_EItemStatistic_NumUniqueFollowers
= 5,
165 k_EItemStatistic_NumUniqueWebsiteViews
= 6,
166 k_EItemStatistic_ReportScore
= 7,
167 k_EItemStatistic_NumSecondsPlayed
= 8,
168 k_EItemStatistic_NumPlaytimeSessions
= 9,
169 k_EItemStatistic_NumComments
= 10,
170 k_EItemStatistic_NumSecondsPlayedDuringTimePeriod
= 11,
171 k_EItemStatistic_NumPlaytimeSessionsDuringTimePeriod
= 12,
174 typedef enum EItemPreviewType EItemPreviewType
;
175 enum EItemPreviewType
{
176 /* standard image file expected (e.g. jpg, png, gif, etc.) */
177 k_EItemPreviewType_Image
= 0,
179 k_EItemPreviewType_YouTubeVideo
= 1, /* video id is stored */
180 k_EItemPreviewType_Sketchfab
= 2, /* model id is stored */
183 * standard image file expected - cube map in the layout
192 k_EItemPreviewType_EnvironmentMap_HorizontalCross
= 3,
194 /* standard image file expected */
195 k_EItemPreviewType_EnvironmentMap_LatLong
= 4,
197 /* you can specify your own types above this value */
198 k_EItemPreviewType_ReservedMax
= 255,
201 const u32 kNumUGCResultsPerPage
= 50;
202 const u32 k_cchDeveloperMetadataMax
= 5000;
204 /* Details for a single published file/UGC */
205 typedef struct SteamUGCDetails_t SteamUGCDetails_t
;
206 struct SteamUGCDetails_t
{
207 PublishedFileId_t m_nPublishedFileId
;
208 EResult m_eResult
; /* The result of the operation. */
209 EWorkshopFileType m_eFileType
; /* Type of the file */
210 AppId_t m_nCreatorAppID
; /*ID of the app that created this file. */
211 AppId_t m_nConsumerAppID
; /* ID of the app that will consume this file. */
212 char m_rgchTitle
[k_cchPublishedDocumentTitleMax
]; /* title of document */
214 /* description of document */
215 char m_rgchDescription
[k_cchPublishedDocumentDescriptionMax
];
216 u64 m_ulSteamIDOwner
; /* Steam ID of the user who created this content. */
217 u32 m_rtimeCreated
; /* time when the published file was created */
218 u32 m_rtimeUpdated
; /* time when the published file was last updated */
220 /* time when the user added the published file to their list (not always
222 u32 m_rtimeAddedToUserList
;
223 ERemoteStoragePublishedFileVisibility m_eVisibility
; /* visibility */
224 steamapi_bool m_bBanned
; /* whether the file was banned */
226 /* developer has specifically flagged this item as accepted in the Workshop*/
227 steamapi_bool m_bAcceptedForUse
;
229 /* whether the list of tags was too long to be returned in the provided
231 steamapi_bool m_bTagsTruncated
;
233 /* comma separated list of all tags associated with this file */
234 char m_rgchTags
[k_cchTagListMax
];
236 /* file/url information */
237 UGCHandle_t m_hFile
; /* The handle of the primary file */
238 UGCHandle_t m_hPreviewFile
; /* The handle of the preview file */
240 /* The cloud filename of the primary file */
241 char m_pchFileName
[k_cchFilenameMax
];
243 /* Size of the primary file */
245 i32 m_nPreviewFileSize
; /* Size of the preview file */
246 char m_rgchURL
[k_cchPublishedFileURLMax
]; /* URL (for a video or a website)*/
248 /* voting information */
249 u32 m_unVotesUp
; /* number of votes up */
250 u32 m_unVotesDown
; /* number of votes down */
251 float m_flScore
; /* calculated score */
253 /* collection details */
258 * Callback for querying UGC
260 typedef struct SteamUGCQueryCompleted_t SteamUGCQueryCompleted_t
;
261 struct SteamUGCQueryCompleted_t
{
262 UGCQueryHandle_t m_handle
;
264 u32 m_unNumResultsReturned
;
265 u32 m_unTotalMatchingResults
;
267 /* indicates whether this data was retrieved from the local on-disk cache */
268 steamapi_bool m_bCachedData
;
270 /* If a paging cursor was used, then this will be the next cursor to get the
271 * next result set. */
272 char m_rgchNextCursor
[k_cchPublishedFileURLMax
];
274 enum { k_iSteamUGCQueryCompleted
= k_iSteamUGCCallbacks
+ 31 };
277 * Callback for requesting details on one piece of UGC
279 typedef struct SteamUGCRequestUGCDetailsResult_t
280 SteamUGCRequestUGCDetailsResult_t
;
281 struct SteamUGCRequestUGCDetailsResult_t
{
282 SteamUGCDetails_t m_details
;
284 /* indicates whether this data was retrieved from the local on-disk cache */
285 steamapi_bool m_bCachedData
;
287 enum { k_iSteamUGCRequestUGCDetailsResult
= k_iSteamUGCCallbacks
+ 2 };
291 * Purpose: result for ISteamUGC::CreateItem()
293 typedef struct CreateItemResult_t CreateItemResult_t
;
294 struct CreateItemResult_t
{
297 /* new item got this UGC PublishFileID */
298 PublishedFileId_t m_nPublishedFileId
;
299 steamapi_bool m_bUserNeedsToAcceptWorkshopLegalAgreement
;
301 enum { k_iCreateItemResult
= k_iSteamUGCCallbacks
+ 3 };
305 * Purpose: result for ISteamUGC::SubmitItemUpdate()
307 typedef struct SubmitItemUpdateResult_t SubmitItemUpdateResult_t
;
308 struct SubmitItemUpdateResult_t
{
310 steamapi_bool m_bUserNeedsToAcceptWorkshopLegalAgreement
;
311 PublishedFileId_t m_nPublishedFileId
;
313 enum { k_iSubmitItemUpdateResult
= k_iSteamUGCCallbacks
+ 4 };
317 * Purpose: a Workshop item has been installed or updated
319 typedef struct ItemInstalled_t ItemInstalled_t
;
320 struct ItemInstalled_t
{
322 PublishedFileId_t m_nPublishedFileId
;
324 enum { k_iItemInstalled
= k_iSteamUGCCallbacks
+ 5 };
328 * Purpose: result of DownloadItem(), existing item files can be accessed again
330 typedef struct DownloadItemResult_t DownloadItemResult_t
;
331 struct DownloadItemResult_t
{
333 PublishedFileId_t m_nPublishedFileId
;
336 enum { k_iDownloadItemResult
= k_iSteamUGCCallbacks
+ 6 };
339 * Purpose: result of AddItemToFavorites() or RemoveItemFromFavorites()
341 typedef struct UserFavoriteItemsListChanged_t UserFavoriteItemsListChanged_t
;
342 struct UserFavoriteItemsListChanged_t
{
343 PublishedFileId_t m_nPublishedFileId
;
345 steamapi_bool m_bWasAddRequest
;
347 enum { k_iUserFavoriteItemsListChanged
= k_iSteamUGCCallbacks
+ 7 };
350 * Purpose: The result of a call to SetUserItemVote()
352 typedef struct SetUserItemVoteResult_t SetUserItemVoteResult_t
;
353 struct SetUserItemVoteResult_t
{
354 PublishedFileId_t m_nPublishedFileId
;
356 steamapi_bool m_bVoteUp
;
358 enum { k_iSetUserItemVoteResult
= k_iSteamUGCCallbacks
+ 8 };
361 * Purpose: The result of a call to GetUserItemVote()
363 typedef struct GetUserItemVoteResult_t GetUserItemVoteResult_t
;
364 struct GetUserItemVoteResult_t
{
365 PublishedFileId_t m_nPublishedFileId
;
367 steamapi_bool m_bVotedUp
;
368 steamapi_bool m_bVotedDown
;
369 steamapi_bool m_bVoteSkipped
;
371 enum { k_iGetUserItemVoteResult
= k_iSteamUGCCallbacks
+ 9 };
374 * Purpose: The result of a call to StartPlaytimeTracking()
376 typedef struct StartPlaytimeTrackingResult_t StartPlaytimeTrackingResult_t
;
377 struct StartPlaytimeTrackingResult_t
{
380 enum { k_iStartPlaytimeTrackingResult
= k_iSteamUGCCallbacks
+ 10 };
383 * Purpose: The result of a call to StopPlaytimeTracking()
385 typedef struct StopPlaytimeTrackingResult_t StopPlaytimeTrackingResult_t
;
386 struct StopPlaytimeTrackingResult_t
{
389 enum { k_iStopPlaytimeTrackingResult
= k_iSteamUGCCallbacks
+ 11 };
392 * Purpose: The result of a call to AddDependency
394 typedef struct AddUGCDependencyResult_t AddUGCDependencyResult_t
;
395 struct AddUGCDependencyResult_t
{
397 PublishedFileId_t m_nPublishedFileId
;
398 PublishedFileId_t m_nChildPublishedFileId
;
400 enum { k_iAddUGCDependecyResult
= k_iSteamUGCCallbacks
+ 12 };
403 * Purpose: The result of a call to RemoveDependency
405 typedef struct RemoveUGCDependencyResult_t RemoveUGCDependencyResult_t
;
406 struct RemoveUGCDependencyResult_t
{
408 PublishedFileId_t m_nPublishedFileId
;
409 PublishedFileId_t m_nChildPublishedFileId
;
411 enum { k_iRemoveUGCDependecyResult
= k_iSteamUGCCallbacks
+ 13 };
415 * Purpose: The result of a call to AddAppDependency
417 typedef struct AddAppDependencyResult_t AddAppDependencyResult_t
;
418 struct AddAppDependencyResult_t
{
420 PublishedFileId_t m_nPublishedFileId
;
423 enum { k_iAddAppDependencyResult
= k_iSteamUGCCallbacks
+ 14 };
426 * Purpose: The result of a call to RemoveAppDependency
428 typedef struct RemoveAppDependencyResult_t RemoveAppDependencyResult_t
;
429 struct RemoveAppDependencyResult_t
{
431 PublishedFileId_t m_nPublishedFileId
;
434 enum { k_iRemoveAppDependencyResult
= k_iSteamUGCCallbacks
+ 15 };
437 * Purpose: The result of a call to GetAppDependencies. Callback may be called
438 * multiple times until all app dependencies have been returned.
440 typedef struct GetAppDependenciesResult_t GetAppDependenciesResult_t
;
441 struct GetAppDependenciesResult_t
{
443 PublishedFileId_t m_nPublishedFileId
;
444 AppId_t m_rgAppIDs
[32];
445 u32 m_nNumAppDependencies
; // number returned in this struct
446 u32 m_nTotalNumAppDependencies
; // total found
448 enum { k_iGetAppDependeniesResult
= k_iSteamUGCCallbacks
+ 16 };
451 * Purpose: The result of a call to DeleteItem
453 typedef struct DeleteItemResult_t DeleteItemResult_t
;
454 struct DeleteItemResult_t
{
456 PublishedFileId_t m_nPublishedFileId
;
458 enum { k_iDeleteItemResult
= k_iSteamUGCCallbacks
+ 17 };
462 * Purpose: signal that the list of subscribed items changed
464 typedef struct UserSubscribedItemsListChanged_t
465 UserSubscribedItemsListChanged_t
;
466 struct UserSubscribedItemsListChanged_t
{
469 enum { k_iUserSubscribedItemsListChanged
= k_iSteamUGCCallbacks
+ 18 };
473 * Purpose: Status of the user's acceptable/rejection of the app's specific
476 typedef struct WorkshopEULAStatus_t WorkshopEULAStatus_t
;
477 struct WorkshopEULAStatus_t
{
482 steamapi_bool m_bAccepted
;
483 steamapi_bool m_bNeedsAction
;
485 enum { k_iWorkshopEULAStatus
= k_iSteamUGCCallbacks
+ 20 };
489 #define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION016"
491 ISteamUGC
*SteamAPI_SteamUGC_v016();
492 ISteamUGC
*SteamAPI_SteamUGC()
494 return SteamAPI_SteamUGC_v016();
496 ISteamUGC
*SteamAPI_SteamGameServerUGC_v016();
497 ISteamUGC
*SteamAPI_SteamGameServerUGC()
499 return SteamAPI_SteamGameServerUGC_v016();
501 UGCQueryHandle_t
SteamAPI_ISteamUGC_CreateQueryUserUGCRequest(
502 ISteamUGC
*self
, AccountID_t unAccountID
, EUserUGCList eListType
,
503 EUGCMatchingUGCType eMatchingUGCType
, EUserUGCListSortOrder eSortOrder
,
504 AppId_t nCreatorAppID
, AppId_t nConsumerAppID
, u32 unPage
);
506 UGCQueryHandle_t
SteamAPI_ISteamUGC_CreateQueryAllUGCRequestPage(
507 ISteamUGC
*self
, EUGCQuery eQueryType
,
508 EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType
,
509 AppId_t nCreatorAppID
, AppId_t nConsumerAppID
, u32 unPage
);
511 UGCQueryHandle_t
SteamAPI_ISteamUGC_CreateQueryAllUGCRequestCursor(
512 ISteamUGC
*self
, EUGCQuery eQueryType
,
513 EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType
,
514 AppId_t nCreatorAppID
, AppId_t nConsumerAppID
, const char * pchCursor
);
516 UGCQueryHandle_t
SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest(
517 ISteamUGC
*self
, PublishedFileId_t
*pvecPublishedFileID
,
518 u32 unNumPublishedFileIDs
);
520 SteamAPICall_t
SteamAPI_ISteamUGC_SendQueryUGCRequest( ISteamUGC
* self
,
521 UGCQueryHandle_t handle
);
523 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCResult(
524 ISteamUGC
*self
, UGCQueryHandle_t handle
, u32 index
,
525 SteamUGCDetails_t
*pDetails
);
527 u32
SteamAPI_ISteamUGC_GetQueryUGCNumTags( ISteamUGC
* self
,
528 UGCQueryHandle_t handle
, u32 index
);
530 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCTag(
531 ISteamUGC
* self
, UGCQueryHandle_t handle
, u32 index
, u32 indexTag
,
532 char * pchValue
, u32 cchValueSize
);
534 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCTagDisplayName( ISteamUGC
* self
,
535 UGCQueryHandle_t handle
, u32 index
, u32 indexTag
, char * pchValue
,
538 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCPreviewURL( ISteamUGC
* self
,
539 UGCQueryHandle_t handle
, u32 index
, char * pchURL
, u32 cchURLSize
);
541 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCMetadata( ISteamUGC
* self
,
542 UGCQueryHandle_t handle
, u32 index
, char * pchMetadata
,
543 u32 cchMetadatasize
);
545 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCChildren( ISteamUGC
* self
,
546 UGCQueryHandle_t handle
, u32 index
,
547 PublishedFileId_t
*pvecPublishedFileID
, u32 cMaxEntries
);
549 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCStatistic( ISteamUGC
* self
,
550 UGCQueryHandle_t handle
, u32 index
, EItemStatistic eStatType
,
553 u32
SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews( ISteamUGC
* self
,
554 UGCQueryHandle_t handle
, u32 index
);
556 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview( ISteamUGC
* self
,
557 UGCQueryHandle_t handle
, u32 index
, u32 previewIndex
,
558 char *pchURLOrVideoID
, u32 cchURLSize
, char *pchOriginalFileName
,
559 u32 cchOriginalFileNameSize
, EItemPreviewType
*pPreviewType
);
561 u32
SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags( ISteamUGC
* self
,
562 UGCQueryHandle_t handle
, u32 index
);
564 steamapi_bool
SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag( ISteamUGC
* self
,
565 UGCQueryHandle_t handle
, u32 index
, u32 keyValueTagIndex
, char *pchKey
,
566 u32 cchKeySize
, char * pchValue
, u32 cchValueSize
);
568 steamapi_bool
SteamAPI_ISteamUGC_GetQueryFirstUGCKeyValueTag( ISteamUGC
* self
,
569 UGCQueryHandle_t handle
, u32 index
, const char *pchKey
, char *pchValue
,
572 steamapi_bool
SteamAPI_ISteamUGC_ReleaseQueryUGCRequest( ISteamUGC
* self
,
573 UGCQueryHandle_t handle
);
575 steamapi_bool
SteamAPI_ISteamUGC_AddRequiredTag( ISteamUGC
* self
,
576 UGCQueryHandle_t handle
, const char * pTagName
);
578 steamapi_bool
SteamAPI_ISteamUGC_AddRequiredTagGroup( ISteamUGC
* self
,
579 UGCQueryHandle_t handle
, const SteamParamStringArray_t
* pTagGroups
);
581 steamapi_bool
SteamAPI_ISteamUGC_AddExcludedTag( ISteamUGC
* self
,
582 UGCQueryHandle_t handle
, const char * pTagName
);
584 steamapi_bool
SteamAPI_ISteamUGC_SetReturnOnlyIDs( ISteamUGC
* self
,
585 UGCQueryHandle_t handle
, steamapi_bool bReturnOnlyIDs
);
587 steamapi_bool
SteamAPI_ISteamUGC_SetReturnKeyValueTags( ISteamUGC
* self
,
588 UGCQueryHandle_t handle
, steamapi_bool bReturnKeyValueTags
);
590 steamapi_bool
SteamAPI_ISteamUGC_SetReturnLongDescription( ISteamUGC
* self
,
591 UGCQueryHandle_t handle
, steamapi_bool bReturnLongDescription
);
593 steamapi_bool
SteamAPI_ISteamUGC_SetReturnMetadata( ISteamUGC
* self
,
594 UGCQueryHandle_t handle
, steamapi_bool bReturnMetadata
);
596 steamapi_bool
SteamAPI_ISteamUGC_SetReturnChildren( ISteamUGC
* self
,
597 UGCQueryHandle_t handle
, steamapi_bool bReturnChildren
);
599 steamapi_bool
SteamAPI_ISteamUGC_SetReturnAdditionalPreviews( ISteamUGC
* self
,
600 UGCQueryHandle_t handle
, steamapi_bool bReturnAdditionalPreviews
);
602 steamapi_bool
SteamAPI_ISteamUGC_SetReturnTotalOnly( ISteamUGC
* self
,
603 UGCQueryHandle_t handle
, steamapi_bool bReturnTotalOnly
);
605 steamapi_bool
SteamAPI_ISteamUGC_SetReturnPlaytimeStats( ISteamUGC
* self
,
606 UGCQueryHandle_t handle
, u32 unDays
);
608 steamapi_bool
SteamAPI_ISteamUGC_SetLanguage( ISteamUGC
* self
,
609 UGCQueryHandle_t handle
, const char * pchLanguage
);
611 steamapi_bool
SteamAPI_ISteamUGC_SetAllowCachedResponse( ISteamUGC
* self
,
612 UGCQueryHandle_t handle
, u32 unMaxAgeSeconds
);
614 steamapi_bool
SteamAPI_ISteamUGC_SetCloudFileNameFilter( ISteamUGC
* self
,
615 UGCQueryHandle_t handle
, const char * pMatchCloudFileName
);
617 steamapi_bool
SteamAPI_ISteamUGC_SetMatchAnyTag( ISteamUGC
* self
,
618 UGCQueryHandle_t handle
, steamapi_bool bMatchAnyTag
);
620 steamapi_bool
SteamAPI_ISteamUGC_SetSearchText( ISteamUGC
* self
,
621 UGCQueryHandle_t handle
, const char * pSearchText
);
623 steamapi_bool
SteamAPI_ISteamUGC_SetRankedByTrendDays( ISteamUGC
* self
,
624 UGCQueryHandle_t handle
, u32 unDays
);
626 steamapi_bool
SteamAPI_ISteamUGC_SetTimeCreatedDateRange( ISteamUGC
* self
,
627 UGCQueryHandle_t handle
, RTime32 rtStart
, RTime32 rtEnd
);
629 steamapi_bool
SteamAPI_ISteamUGC_SetTimeUpdatedDateRange( ISteamUGC
* self
,
630 UGCQueryHandle_t handle
, RTime32 rtStart
, RTime32 rtEnd
);
632 steamapi_bool
SteamAPI_ISteamUGC_AddRequiredKeyValueTag( ISteamUGC
* self
,
633 UGCQueryHandle_t handle
, const char * pKey
, const char * pValue
);
635 SteamAPICall_t
SteamAPI_ISteamUGC_RequestUGCDetails( ISteamUGC
* self
,
636 PublishedFileId_t nPublishedFileID
, u32 unMaxAgeSeconds
);
638 SteamAPICall_t
SteamAPI_ISteamUGC_CreateItem( ISteamUGC
* self
,
639 AppId_t nConsumerAppId
, EWorkshopFileType eFileType
);
641 UGCUpdateHandle_t
SteamAPI_ISteamUGC_StartItemUpdate( ISteamUGC
* self
,
642 AppId_t nConsumerAppId
, PublishedFileId_t nPublishedFileID
);
644 steamapi_bool
SteamAPI_ISteamUGC_SetItemTitle( ISteamUGC
* self
,
645 UGCUpdateHandle_t handle
, const char * pchTitle
);
647 steamapi_bool
SteamAPI_ISteamUGC_SetItemDescription( ISteamUGC
* self
,
648 UGCUpdateHandle_t handle
, const char * pchDescription
);
650 steamapi_bool
SteamAPI_ISteamUGC_SetItemUpdateLanguage( ISteamUGC
* self
,
651 UGCUpdateHandle_t handle
, const char * pchLanguage
);
653 steamapi_bool
SteamAPI_ISteamUGC_SetItemMetadata( ISteamUGC
* self
,
654 UGCUpdateHandle_t handle
, const char * pchMetaData
);
656 steamapi_bool
SteamAPI_ISteamUGC_SetItemVisibility( ISteamUGC
* self
,
657 UGCUpdateHandle_t handle
,
658 ERemoteStoragePublishedFileVisibility eVisibility
);
660 steamapi_bool
SteamAPI_ISteamUGC_SetItemTags( ISteamUGC
* self
,
661 UGCUpdateHandle_t updateHandle
, const SteamParamStringArray_t
* pTags
);
663 steamapi_bool
SteamAPI_ISteamUGC_SetItemContent( ISteamUGC
* self
,
664 UGCUpdateHandle_t handle
, const char * pszContentFolder
);
666 steamapi_bool
SteamAPI_ISteamUGC_SetItemPreview( ISteamUGC
* self
,
667 UGCUpdateHandle_t handle
, const char * pszPreviewFile
);
669 steamapi_bool
SteamAPI_ISteamUGC_SetAllowLegacyUpload( ISteamUGC
* self
,
670 UGCUpdateHandle_t handle
, steamapi_bool bAllowLegacyUpload
);
672 steamapi_bool
SteamAPI_ISteamUGC_RemoveAllItemKeyValueTags( ISteamUGC
* self
,
673 UGCUpdateHandle_t handle
);
675 steamapi_bool
SteamAPI_ISteamUGC_RemoveItemKeyValueTags( ISteamUGC
* self
,
676 UGCUpdateHandle_t handle
, const char * pchKey
);
678 steamapi_bool
SteamAPI_ISteamUGC_AddItemKeyValueTag( ISteamUGC
* self
,
679 UGCUpdateHandle_t handle
, const char * pchKey
, const char * pchValue
);
681 steamapi_bool
SteamAPI_ISteamUGC_AddItemPreviewFile( ISteamUGC
* self
,
682 UGCUpdateHandle_t handle
, const char * pszPreviewFile
,
683 EItemPreviewType type
);
685 steamapi_bool
SteamAPI_ISteamUGC_AddItemPreviewVideo( ISteamUGC
* self
,
686 UGCUpdateHandle_t handle
, const char * pszVideoID
);
688 steamapi_bool
SteamAPI_ISteamUGC_UpdateItemPreviewFile( ISteamUGC
* self
,
689 UGCUpdateHandle_t handle
, u32 index
, const char * pszPreviewFile
);
691 steamapi_bool
SteamAPI_ISteamUGC_UpdateItemPreviewVideo( ISteamUGC
* self
,
692 UGCUpdateHandle_t handle
, u32 index
, const char * pszVideoID
);
694 steamapi_bool
SteamAPI_ISteamUGC_RemoveItemPreview( ISteamUGC
* self
,
695 UGCUpdateHandle_t handle
, u32 index
);
697 SteamAPICall_t
SteamAPI_ISteamUGC_SubmitItemUpdate( ISteamUGC
* self
,
698 UGCUpdateHandle_t handle
, const char * pchChangeNote
);
700 EItemUpdateStatus
SteamAPI_ISteamUGC_GetItemUpdateProgress( ISteamUGC
* self
,
701 UGCUpdateHandle_t handle
, u64
* punBytesProcessed
, u64
* punBytesTotal
);
703 SteamAPICall_t
SteamAPI_ISteamUGC_SetUserItemVote( ISteamUGC
* self
,
704 PublishedFileId_t nPublishedFileID
, steamapi_bool bVoteUp
);
706 SteamAPICall_t
SteamAPI_ISteamUGC_GetUserItemVote( ISteamUGC
* self
,
707 PublishedFileId_t nPublishedFileID
);
709 SteamAPICall_t
SteamAPI_ISteamUGC_AddItemToFavorites( ISteamUGC
* self
,
710 AppId_t nAppId
, PublishedFileId_t nPublishedFileID
);
712 SteamAPICall_t
SteamAPI_ISteamUGC_RemoveItemFromFavorites( ISteamUGC
* self
,
713 AppId_t nAppId
, PublishedFileId_t nPublishedFileID
);
715 SteamAPICall_t
SteamAPI_ISteamUGC_SubscribeItem( ISteamUGC
* self
,
716 PublishedFileId_t nPublishedFileID
);
718 SteamAPICall_t
SteamAPI_ISteamUGC_UnsubscribeItem( ISteamUGC
* self
,
719 PublishedFileId_t nPublishedFileID
);
721 u32
SteamAPI_ISteamUGC_GetNumSubscribedItems( ISteamUGC
* self
);
723 u32
SteamAPI_ISteamUGC_GetSubscribedItems( ISteamUGC
* self
,
724 PublishedFileId_t
* pvecPublishedFileID
, u32 cMaxEntries
);
726 u32
SteamAPI_ISteamUGC_GetItemState( ISteamUGC
* self
,
727 PublishedFileId_t nPublishedFileID
);
729 steamapi_bool
SteamAPI_ISteamUGC_GetItemInstallInfo( ISteamUGC
* self
,
730 PublishedFileId_t nPublishedFileID
, u64
* punSizeOnDisk
, char * pchFolder
,
731 u32 cchFolderSize
, u32
* punTimeStamp
);
733 steamapi_bool
SteamAPI_ISteamUGC_GetItemDownloadInfo( ISteamUGC
* self
,
734 PublishedFileId_t nPublishedFileID
, u64
* punBytesDownloaded
,
735 u64
* punBytesTotal
);
737 steamapi_bool
SteamAPI_ISteamUGC_DownloadItem( ISteamUGC
* self
,
738 PublishedFileId_t nPublishedFileID
, steamapi_bool bHighPriority
);
740 steamapi_bool
SteamAPI_ISteamUGC_BInitWorkshopForGameServer( ISteamUGC
* self
,
741 DepotId_t unWorkshopDepotID
, const char * pszFolder
);
743 void SteamAPI_ISteamUGC_SuspendDownloads( ISteamUGC
* self
,
744 steamapi_bool bSuspend
);
746 SteamAPICall_t
SteamAPI_ISteamUGC_StartPlaytimeTracking( ISteamUGC
* self
,
747 PublishedFileId_t
* pvecPublishedFileID
, u32 unNumPublishedFileIDs
);
749 SteamAPICall_t
SteamAPI_ISteamUGC_StopPlaytimeTracking( ISteamUGC
* self
,
750 PublishedFileId_t
* pvecPublishedFileID
, u32 unNumPublishedFileIDs
);
752 SteamAPICall_t
SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems(
755 SteamAPICall_t
SteamAPI_ISteamUGC_AddDependency( ISteamUGC
* self
,
756 PublishedFileId_t nParentPublishedFileID
,
757 PublishedFileId_t nChildPublishedFileID
);
759 SteamAPICall_t
SteamAPI_ISteamUGC_RemoveDependency( ISteamUGC
* self
,
760 PublishedFileId_t nParentPublishedFileID
,
761 PublishedFileId_t nChildPublishedFileID
);
763 SteamAPICall_t
SteamAPI_ISteamUGC_AddAppDependency( ISteamUGC
* self
,
764 PublishedFileId_t nPublishedFileID
, AppId_t nAppID
);
766 SteamAPICall_t
SteamAPI_ISteamUGC_RemoveAppDependency( ISteamUGC
* self
,
767 PublishedFileId_t nPublishedFileID
, AppId_t nAppID
);
769 SteamAPICall_t
SteamAPI_ISteamUGC_GetAppDependencies( ISteamUGC
* self
,
770 PublishedFileId_t nPublishedFileID
);
772 SteamAPICall_t
SteamAPI_ISteamUGC_DeleteItem( ISteamUGC
* self
,
773 PublishedFileId_t nPublishedFileID
);
775 steamapi_bool
SteamAPI_ISteamUGC_ShowWorkshopEULA( ISteamUGC
* self
);
777 SteamAPICall_t
SteamAPI_ISteamUGC_GetWorkshopEULAStatus( ISteamUGC
* self
);
779 #endif /* VG_STEAM_UGC_H */