| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453 |
- //====== Copyright 1996-2013, Valve Corporation, All rights reserved. =======
- //
- // Purpose: interface to steam ugc
- //
- //=============================================================================
- #ifndef ISTEAMUGC_H
- #define ISTEAMUGC_H
- #ifdef _WIN32
- #pragma once
- #endif
- #include "isteamclient.h"
- // callbacks
- #if defined( VALVE_CALLBACK_PACK_SMALL )
- #pragma pack( push, 4 )
- #elif defined( VALVE_CALLBACK_PACK_LARGE )
- #pragma pack( push, 8 )
- #else
- #error isteamclient.h must be included
- #endif
- typedef uint64 UGCQueryHandle_t;
- typedef uint64 UGCUpdateHandle_t;
- const UGCQueryHandle_t k_UGCQueryHandleInvalid = 0xffffffffffffffffull;
- const UGCUpdateHandle_t k_UGCUpdateHandleInvalid = 0xffffffffffffffffull;
- // Matching UGC types for queries
- enum EUGCMatchingUGCType
- {
- k_EUGCMatchingUGCType_Items = 0, // both mtx items and ready-to-use items
- k_EUGCMatchingUGCType_Items_Mtx = 1,
- k_EUGCMatchingUGCType_Items_ReadyToUse = 2,
- k_EUGCMatchingUGCType_Collections = 3,
- k_EUGCMatchingUGCType_Artwork = 4,
- k_EUGCMatchingUGCType_Videos = 5,
- k_EUGCMatchingUGCType_Screenshots = 6,
- k_EUGCMatchingUGCType_AllGuides = 7, // both web guides and integrated guides
- k_EUGCMatchingUGCType_WebGuides = 8,
- k_EUGCMatchingUGCType_IntegratedGuides = 9,
- k_EUGCMatchingUGCType_UsableInGame = 10, // ready-to-use items and integrated guides
- k_EUGCMatchingUGCType_ControllerBindings = 11,
- k_EUGCMatchingUGCType_GameManagedItems = 12, // game managed items (not managed by users)
- k_EUGCMatchingUGCType_All = ~0, // return everything
- };
- // Different lists of published UGC for a user.
- // If the current logged in user is different than the specified user, then some options may not be allowed.
- enum EUserUGCList
- {
- k_EUserUGCList_Published,
- k_EUserUGCList_VotedOn,
- k_EUserUGCList_VotedUp,
- k_EUserUGCList_VotedDown,
- k_EUserUGCList_WillVoteLater,
- k_EUserUGCList_Favorited,
- k_EUserUGCList_Subscribed,
- k_EUserUGCList_UsedOrPlayed,
- k_EUserUGCList_Followed,
- };
- // Sort order for user published UGC lists (defaults to creation order descending)
- enum EUserUGCListSortOrder
- {
- k_EUserUGCListSortOrder_CreationOrderDesc,
- k_EUserUGCListSortOrder_CreationOrderAsc,
- k_EUserUGCListSortOrder_TitleAsc,
- k_EUserUGCListSortOrder_LastUpdatedDesc,
- k_EUserUGCListSortOrder_SubscriptionDateDesc,
- k_EUserUGCListSortOrder_VoteScoreDesc,
- k_EUserUGCListSortOrder_ForModeration,
- };
- // Combination of sorting and filtering for queries across all UGC
- enum EUGCQuery
- {
- k_EUGCQuery_RankedByVote = 0,
- k_EUGCQuery_RankedByPublicationDate = 1,
- k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate = 2,
- k_EUGCQuery_RankedByTrend = 3,
- k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate = 4,
- k_EUGCQuery_CreatedByFriendsRankedByPublicationDate = 5,
- k_EUGCQuery_RankedByNumTimesReported = 6,
- k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate = 7,
- k_EUGCQuery_NotYetRated = 8,
- k_EUGCQuery_RankedByTotalVotesAsc = 9,
- k_EUGCQuery_RankedByVotesUp = 10,
- k_EUGCQuery_RankedByTextSearch = 11,
- k_EUGCQuery_RankedByTotalUniqueSubscriptions = 12,
- k_EUGCQuery_RankedByPlaytimeTrend = 13,
- k_EUGCQuery_RankedByTotalPlaytime = 14,
- k_EUGCQuery_RankedByAveragePlaytimeTrend = 15,
- k_EUGCQuery_RankedByLifetimeAveragePlaytime = 16,
- k_EUGCQuery_RankedByPlaytimeSessionsTrend = 17,
- k_EUGCQuery_RankedByLifetimePlaytimeSessions = 18,
- };
- enum EItemUpdateStatus
- {
- k_EItemUpdateStatusInvalid = 0, // The item update handle was invalid, job might be finished, listen too SubmitItemUpdateResult_t
- k_EItemUpdateStatusPreparingConfig = 1, // The item update is processing configuration data
- k_EItemUpdateStatusPreparingContent = 2, // The item update is reading and processing content files
- k_EItemUpdateStatusUploadingContent = 3, // The item update is uploading content changes to Steam
- k_EItemUpdateStatusUploadingPreviewFile = 4, // The item update is uploading new preview file image
- k_EItemUpdateStatusCommittingChanges = 5 // The item update is committing all changes
- };
- enum EItemState
- {
- k_EItemStateNone = 0, // item not tracked on client
- k_EItemStateSubscribed = 1, // current user is subscribed to this item. Not just cached.
- k_EItemStateLegacyItem = 2, // item was created with ISteamRemoteStorage
- k_EItemStateInstalled = 4, // item is installed and usable (but maybe out of date)
- k_EItemStateNeedsUpdate = 8, // items needs an update. Either because it's not installed yet or creator updated content
- k_EItemStateDownloading = 16, // item update is currently downloading
- k_EItemStateDownloadPending = 32, // DownloadItem() was called for this item, content isn't available until DownloadItemResult_t is fired
- };
- enum EItemStatistic
- {
- k_EItemStatistic_NumSubscriptions = 0,
- k_EItemStatistic_NumFavorites = 1,
- k_EItemStatistic_NumFollowers = 2,
- k_EItemStatistic_NumUniqueSubscriptions = 3,
- k_EItemStatistic_NumUniqueFavorites = 4,
- k_EItemStatistic_NumUniqueFollowers = 5,
- k_EItemStatistic_NumUniqueWebsiteViews = 6,
- k_EItemStatistic_ReportScore = 7,
- k_EItemStatistic_NumSecondsPlayed = 8,
- k_EItemStatistic_NumPlaytimeSessions = 9,
- k_EItemStatistic_NumComments = 10,
- };
- enum EItemPreviewType
- {
- k_EItemPreviewType_Image = 0, // standard image file expected (e.g. jpg, png, gif, etc.)
- k_EItemPreviewType_YouTubeVideo = 1, // video id is stored
- k_EItemPreviewType_Sketchfab = 2, // model id is stored
- k_EItemPreviewType_EnvironmentMap_HorizontalCross = 3, // standard image file expected - cube map in the layout
- // +---+---+-------+
- // | |Up | |
- // +---+---+---+---+
- // | L | F | R | B |
- // +---+---+---+---+
- // | |Dn | |
- // +---+---+---+---+
- k_EItemPreviewType_EnvironmentMap_LatLong = 4, // standard image file expected
- k_EItemPreviewType_ReservedMax = 255, // you can specify your own types above this value
- };
- const uint32 kNumUGCResultsPerPage = 50;
- const uint32 k_cchDeveloperMetadataMax = 5000;
- // Details for a single published file/UGC
- struct SteamUGCDetails_t
- {
- PublishedFileId_t m_nPublishedFileId;
- EResult m_eResult; // The result of the operation.
- EWorkshopFileType m_eFileType; // Type of the file
- AppId_t m_nCreatorAppID; // ID of the app that created this file.
- AppId_t m_nConsumerAppID; // ID of the app that will consume this file.
- char m_rgchTitle[k_cchPublishedDocumentTitleMax]; // title of document
- char m_rgchDescription[k_cchPublishedDocumentDescriptionMax]; // description of document
- uint64 m_ulSteamIDOwner; // Steam ID of the user who created this content.
- uint32 m_rtimeCreated; // time when the published file was created
- uint32 m_rtimeUpdated; // time when the published file was last updated
- uint32 m_rtimeAddedToUserList; // time when the user added the published file to their list (not always applicable)
- ERemoteStoragePublishedFileVisibility m_eVisibility; // visibility
- bool m_bBanned; // whether the file was banned
- bool m_bAcceptedForUse; // developer has specifically flagged this item as accepted in the Workshop
- bool m_bTagsTruncated; // whether the list of tags was too long to be returned in the provided buffer
- char m_rgchTags[k_cchTagListMax]; // comma separated list of all tags associated with this file
- // file/url information
- UGCHandle_t m_hFile; // The handle of the primary file
- UGCHandle_t m_hPreviewFile; // The handle of the preview file
- char m_pchFileName[k_cchFilenameMax]; // The cloud filename of the primary file
- int32 m_nFileSize; // Size of the primary file
- int32 m_nPreviewFileSize; // Size of the preview file
- char m_rgchURL[k_cchPublishedFileURLMax]; // URL (for a video or a website)
- // voting information
- uint32 m_unVotesUp; // number of votes up
- uint32 m_unVotesDown; // number of votes down
- float m_flScore; // calculated score
- // collection details
- uint32 m_unNumChildren;
- };
- //-----------------------------------------------------------------------------
- // Purpose: Steam UGC support API
- //-----------------------------------------------------------------------------
- class ISteamUGC
- {
- public:
- // Query UGC associated with a user. Creator app id or consumer app id must be valid and be set to the current running app. unPage should start at 1.
- virtual UGCQueryHandle_t CreateQueryUserUGCRequest( AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ) = 0;
- // Query for all matching UGC. Creator app id or consumer app id must be valid and be set to the current running app. unPage should start at 1.
- virtual UGCQueryHandle_t CreateQueryAllUGCRequest( EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ) = 0;
- // Query for the details of the given published file ids (the RequestUGCDetails call is deprecated and replaced with this)
- virtual UGCQueryHandle_t CreateQueryUGCDetailsRequest( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs ) = 0;
- // Send the query to Steam
- CALL_RESULT( SteamUGCQueryCompleted_t )
- virtual SteamAPICall_t SendQueryUGCRequest( UGCQueryHandle_t handle ) = 0;
- // Retrieve an individual result after receiving the callback for querying UGC
- virtual bool GetQueryUGCResult( UGCQueryHandle_t handle, uint32 index, SteamUGCDetails_t *pDetails ) = 0;
- virtual bool GetQueryUGCPreviewURL( UGCQueryHandle_t handle, uint32 index, OUT_STRING_COUNT(cchURLSize) char *pchURL, uint32 cchURLSize ) = 0;
- virtual bool GetQueryUGCMetadata( UGCQueryHandle_t handle, uint32 index, OUT_STRING_COUNT(cchMetadatasize) char *pchMetadata, uint32 cchMetadatasize ) = 0;
- virtual bool GetQueryUGCChildren( UGCQueryHandle_t handle, uint32 index, PublishedFileId_t* pvecPublishedFileID, uint32 cMaxEntries ) = 0;
- virtual bool GetQueryUGCStatistic( UGCQueryHandle_t handle, uint32 index, EItemStatistic eStatType, uint64 *pStatValue ) = 0;
- virtual uint32 GetQueryUGCNumAdditionalPreviews( UGCQueryHandle_t handle, uint32 index ) = 0;
- virtual bool GetQueryUGCAdditionalPreview( UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, OUT_STRING_COUNT(cchURLSize) char *pchURLOrVideoID, uint32 cchURLSize, OUT_STRING_COUNT(cchURLSize) char *pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType *pPreviewType ) = 0;
- virtual uint32 GetQueryUGCNumKeyValueTags( UGCQueryHandle_t handle, uint32 index ) = 0;
- virtual bool GetQueryUGCKeyValueTag( UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, OUT_STRING_COUNT(cchKeySize) char *pchKey, uint32 cchKeySize, OUT_STRING_COUNT(cchValueSize) char *pchValue, uint32 cchValueSize ) = 0;
- // Release the request to free up memory, after retrieving results
- virtual bool ReleaseQueryUGCRequest( UGCQueryHandle_t handle ) = 0;
- // Options to set for querying UGC
- virtual bool AddRequiredTag( UGCQueryHandle_t handle, const char *pTagName ) = 0;
- virtual bool AddExcludedTag( UGCQueryHandle_t handle, const char *pTagName ) = 0;
- virtual bool SetReturnOnlyIDs( UGCQueryHandle_t handle, bool bReturnOnlyIDs ) = 0;
- virtual bool SetReturnKeyValueTags( UGCQueryHandle_t handle, bool bReturnKeyValueTags ) = 0;
- virtual bool SetReturnLongDescription( UGCQueryHandle_t handle, bool bReturnLongDescription ) = 0;
- virtual bool SetReturnMetadata( UGCQueryHandle_t handle, bool bReturnMetadata ) = 0;
- virtual bool SetReturnChildren( UGCQueryHandle_t handle, bool bReturnChildren ) = 0;
- virtual bool SetReturnAdditionalPreviews( UGCQueryHandle_t handle, bool bReturnAdditionalPreviews ) = 0;
- virtual bool SetReturnTotalOnly( UGCQueryHandle_t handle, bool bReturnTotalOnly ) = 0;
- virtual bool SetLanguage( UGCQueryHandle_t handle, const char *pchLanguage ) = 0;
- virtual bool SetAllowCachedResponse( UGCQueryHandle_t handle, uint32 unMaxAgeSeconds ) = 0;
- // Options only for querying user UGC
- virtual bool SetCloudFileNameFilter( UGCQueryHandle_t handle, const char *pMatchCloudFileName ) = 0;
- // Options only for querying all UGC
- virtual bool SetMatchAnyTag( UGCQueryHandle_t handle, bool bMatchAnyTag ) = 0;
- virtual bool SetSearchText( UGCQueryHandle_t handle, const char *pSearchText ) = 0;
- virtual bool SetRankedByTrendDays( UGCQueryHandle_t handle, uint32 unDays ) = 0;
- virtual bool AddRequiredKeyValueTag( UGCQueryHandle_t handle, const char *pKey, const char *pValue ) = 0;
- // DEPRECATED - Use CreateQueryUGCDetailsRequest call above instead!
- virtual SteamAPICall_t RequestUGCDetails( PublishedFileId_t nPublishedFileID, uint32 unMaxAgeSeconds ) = 0;
- // Steam Workshop Creator API
- CALL_RESULT( CreateItemResult_t )
- virtual SteamAPICall_t CreateItem( AppId_t nConsumerAppId, EWorkshopFileType eFileType ) = 0; // create new item for this app with no content attached yet
- virtual UGCUpdateHandle_t StartItemUpdate( AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID ) = 0; // start an UGC item update. Set changed properties before commiting update with CommitItemUpdate()
- virtual bool SetItemTitle( UGCUpdateHandle_t handle, const char *pchTitle ) = 0; // change the title of an UGC item
- virtual bool SetItemDescription( UGCUpdateHandle_t handle, const char *pchDescription ) = 0; // change the description of an UGC item
- virtual bool SetItemUpdateLanguage( UGCUpdateHandle_t handle, const char *pchLanguage ) = 0; // specify the language of the title or description that will be set
- virtual bool SetItemMetadata( UGCUpdateHandle_t handle, const char *pchMetaData ) = 0; // change the metadata of an UGC item (max = k_cchDeveloperMetadataMax)
- virtual bool SetItemVisibility( UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility ) = 0; // change the visibility of an UGC item
- virtual bool SetItemTags( UGCUpdateHandle_t updateHandle, const SteamParamStringArray_t *pTags ) = 0; // change the tags of an UGC item
- virtual bool SetItemContent( UGCUpdateHandle_t handle, const char *pszContentFolder ) = 0; // update item content from this local folder
- virtual bool SetItemPreview( UGCUpdateHandle_t handle, const char *pszPreviewFile ) = 0; // change preview image file for this item. pszPreviewFile points to local image file, which must be under 1MB in size
- virtual bool RemoveItemKeyValueTags( UGCUpdateHandle_t handle, const char *pchKey ) = 0; // remove any existing key-value tags with the specified key
- virtual bool AddItemKeyValueTag( UGCUpdateHandle_t handle, const char *pchKey, const char *pchValue ) = 0; // add new key-value tags for the item. Note that there can be multiple values for a tag.
- virtual bool AddItemPreviewFile( UGCUpdateHandle_t handle, const char *pszPreviewFile, EItemPreviewType type ) = 0; // add preview file for this item. pszPreviewFile points to local file, which must be under 1MB in size
- virtual bool AddItemPreviewVideo( UGCUpdateHandle_t handle, const char *pszVideoID ) = 0; // add preview video for this item
- virtual bool UpdateItemPreviewFile( UGCUpdateHandle_t handle, uint32 index, const char *pszPreviewFile ) = 0; // updates an existing preview file for this item. pszPreviewFile points to local file, which must be under 1MB in size
- virtual bool UpdateItemPreviewVideo( UGCUpdateHandle_t handle, uint32 index, const char *pszVideoID ) = 0; // updates an existing preview video for this item
- virtual bool RemoveItemPreview( UGCUpdateHandle_t handle, uint32 index ) = 0; // remove a preview by index starting at 0 (previews are sorted)
- CALL_RESULT( SubmitItemUpdateResult_t )
- virtual SteamAPICall_t SubmitItemUpdate( UGCUpdateHandle_t handle, const char *pchChangeNote ) = 0; // commit update process started with StartItemUpdate()
- virtual EItemUpdateStatus GetItemUpdateProgress( UGCUpdateHandle_t handle, uint64 *punBytesProcessed, uint64* punBytesTotal ) = 0;
- // Steam Workshop Consumer API
- CALL_RESULT( SetUserItemVoteResult_t )
- virtual SteamAPICall_t SetUserItemVote( PublishedFileId_t nPublishedFileID, bool bVoteUp ) = 0;
- CALL_RESULT( GetUserItemVoteResult_t )
- virtual SteamAPICall_t GetUserItemVote( PublishedFileId_t nPublishedFileID ) = 0;
- CALL_RESULT( UserFavoriteItemsListChanged_t )
- virtual SteamAPICall_t AddItemToFavorites( AppId_t nAppId, PublishedFileId_t nPublishedFileID ) = 0;
- CALL_RESULT( UserFavoriteItemsListChanged_t )
- virtual SteamAPICall_t RemoveItemFromFavorites( AppId_t nAppId, PublishedFileId_t nPublishedFileID ) = 0;
- CALL_RESULT( RemoteStorageSubscribePublishedFileResult_t )
- virtual SteamAPICall_t SubscribeItem( PublishedFileId_t nPublishedFileID ) = 0; // subscribe to this item, will be installed ASAP
- CALL_RESULT( RemoteStorageUnsubscribePublishedFileResult_t )
- virtual SteamAPICall_t UnsubscribeItem( PublishedFileId_t nPublishedFileID ) = 0; // unsubscribe from this item, will be uninstalled after game quits
- virtual uint32 GetNumSubscribedItems() = 0; // number of subscribed items
- virtual uint32 GetSubscribedItems( PublishedFileId_t* pvecPublishedFileID, uint32 cMaxEntries ) = 0; // all subscribed item PublishFileIDs
- // get EItemState flags about item on this client
- virtual uint32 GetItemState( PublishedFileId_t nPublishedFileID ) = 0;
- // get info about currently installed content on disc for items that have k_EItemStateInstalled set
- // if k_EItemStateLegacyItem is set, pchFolder contains the path to the legacy file itself (not a folder)
- virtual bool GetItemInstallInfo( PublishedFileId_t nPublishedFileID, uint64 *punSizeOnDisk, OUT_STRING_COUNT( cchFolderSize ) char *pchFolder, uint32 cchFolderSize, uint32 *punTimeStamp ) = 0;
- // get info about pending update for items that have k_EItemStateNeedsUpdate set. punBytesTotal will be valid after download started once
- virtual bool GetItemDownloadInfo( PublishedFileId_t nPublishedFileID, uint64 *punBytesDownloaded, uint64 *punBytesTotal ) = 0;
-
- // download new or update already installed item. If function returns true, wait for DownloadItemResult_t. If the item is already installed,
- // then files on disk should not be used until callback received. If item is not subscribed to, it will be cached for some time.
- // If bHighPriority is set, any other item download will be suspended and this item downloaded ASAP.
- virtual bool DownloadItem( PublishedFileId_t nPublishedFileID, bool bHighPriority ) = 0;
- // game servers can set a specific workshop folder before issuing any UGC commands.
- // This is helpful if you want to support multiple game servers running out of the same install folder
- virtual bool BInitWorkshopForGameServer( DepotId_t unWorkshopDepotID, const char *pszFolder ) = 0;
- // SuspendDownloads( true ) will suspend all workshop downloads until SuspendDownloads( false ) is called or the game ends
- virtual void SuspendDownloads( bool bSuspend ) = 0;
- // usage tracking
- CALL_RESULT( StartPlaytimeTrackingResult_t );
- virtual SteamAPICall_t StartPlaytimeTracking( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs ) = 0;
- CALL_RESULT( StopPlaytimeTrackingResult_t );
- virtual SteamAPICall_t StopPlaytimeTracking( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs ) = 0;
- CALL_RESULT( StopPlaytimeTrackingResult_t );
- virtual SteamAPICall_t StopPlaytimeTrackingForAllItems() = 0;
- };
- #define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION009"
- //-----------------------------------------------------------------------------
- // Purpose: Callback for querying UGC
- //-----------------------------------------------------------------------------
- struct SteamUGCQueryCompleted_t
- {
- enum { k_iCallback = k_iClientUGCCallbacks + 1 };
- UGCQueryHandle_t m_handle;
- EResult m_eResult;
- uint32 m_unNumResultsReturned;
- uint32 m_unTotalMatchingResults;
- bool m_bCachedData; // indicates whether this data was retrieved from the local on-disk cache
- };
- //-----------------------------------------------------------------------------
- // Purpose: Callback for requesting details on one piece of UGC
- //-----------------------------------------------------------------------------
- struct SteamUGCRequestUGCDetailsResult_t
- {
- enum { k_iCallback = k_iClientUGCCallbacks + 2 };
- SteamUGCDetails_t m_details;
- bool m_bCachedData; // indicates whether this data was retrieved from the local on-disk cache
- };
- //-----------------------------------------------------------------------------
- // Purpose: result for ISteamUGC::CreateItem()
- //-----------------------------------------------------------------------------
- struct CreateItemResult_t
- {
- enum { k_iCallback = k_iClientUGCCallbacks + 3 };
- EResult m_eResult;
- PublishedFileId_t m_nPublishedFileId; // new item got this UGC PublishFileID
- bool m_bUserNeedsToAcceptWorkshopLegalAgreement;
- };
- //-----------------------------------------------------------------------------
- // Purpose: result for ISteamUGC::SubmitItemUpdate()
- //-----------------------------------------------------------------------------
- struct SubmitItemUpdateResult_t
- {
- enum { k_iCallback = k_iClientUGCCallbacks + 4 };
- EResult m_eResult;
- bool m_bUserNeedsToAcceptWorkshopLegalAgreement;
- };
- //-----------------------------------------------------------------------------
- // Purpose: a Workshop item has been installed or updated
- //-----------------------------------------------------------------------------
- struct ItemInstalled_t
- {
- enum { k_iCallback = k_iClientUGCCallbacks + 5 };
- AppId_t m_unAppID;
- PublishedFileId_t m_nPublishedFileId;
- };
- //-----------------------------------------------------------------------------
- // Purpose: result of DownloadItem(), existing item files can be accessed again
- //-----------------------------------------------------------------------------
- struct DownloadItemResult_t
- {
- enum { k_iCallback = k_iClientUGCCallbacks + 6 };
- AppId_t m_unAppID;
- PublishedFileId_t m_nPublishedFileId;
- EResult m_eResult;
- };
- //-----------------------------------------------------------------------------
- // Purpose: result of AddItemToFavorites() or RemoveItemFromFavorites()
- //-----------------------------------------------------------------------------
- struct UserFavoriteItemsListChanged_t
- {
- enum { k_iCallback = k_iClientUGCCallbacks + 7 };
- PublishedFileId_t m_nPublishedFileId;
- EResult m_eResult;
- bool m_bWasAddRequest;
- };
- //-----------------------------------------------------------------------------
- // Purpose: The result of a call to SetUserItemVote()
- //-----------------------------------------------------------------------------
- struct SetUserItemVoteResult_t
- {
- enum { k_iCallback = k_iClientUGCCallbacks + 8 };
- PublishedFileId_t m_nPublishedFileId;
- EResult m_eResult;
- bool m_bVoteUp;
- };
- //-----------------------------------------------------------------------------
- // Purpose: The result of a call to GetUserItemVote()
- //-----------------------------------------------------------------------------
- struct GetUserItemVoteResult_t
- {
- enum { k_iCallback = k_iClientUGCCallbacks + 9 };
- PublishedFileId_t m_nPublishedFileId;
- EResult m_eResult;
- bool m_bVotedUp;
- bool m_bVotedDown;
- bool m_bVoteSkipped;
- };
- //-----------------------------------------------------------------------------
- // Purpose: The result of a call to StartPlaytimeTracking()
- //-----------------------------------------------------------------------------
- struct StartPlaytimeTrackingResult_t
- {
- enum { k_iCallback = k_iClientUGCCallbacks + 10 };
- EResult m_eResult;
- };
- //-----------------------------------------------------------------------------
- // Purpose: The result of a call to StopPlaytimeTracking()
- //-----------------------------------------------------------------------------
- struct StopPlaytimeTrackingResult_t
- {
- enum { k_iCallback = k_iClientUGCCallbacks + 11 };
- EResult m_eResult;
- };
- #pragma pack( pop )
- #endif // ISTEAMUGC_H
|