1
0
mirror of https://gitlab.com/kelteseth/ScreenPlay.git synced 2024-07-19 02:54:47 +02:00

Update steam sdk

This commit is contained in:
kelteseth 2017-07-04 12:35:26 +02:00
parent 08468e89f4
commit 6a9f7066d2
18 changed files with 551 additions and 1017 deletions

View File

@ -1,850 +0,0 @@
================================================================
Copyright © 1996-2016, Valve Corporation, All rights reserved.
================================================================
Welcome to the Steamworks SDK. For documentation please see our partner
website at: http://partner.steamgames.com
----------------------------------------------------------------
v1.39 6th January 2017
----------------------------------------------------------------
ISteamController
The two new Origin helper functions in this interface allow you to query a description and a glyph for types of controllers and inputs that are in the current SDK header, but also any type of controller that might be supported by the Steam client in the future. To achieve this, pass origin values directly returned from Get*ActionOrigin() functions into GetStringForActionOrigin() and GetGlyphForActionOrigin() and display the results programmatically without checking against the range of the Origin enumerations.
* TriggerVibration - Trigger a vibration event on supported controllers
* SetLEDColor - Set the controller LED color on supported controllers
* GetStringForActionOrigin - Returns a localized string (from Steam's language setting) for the specified origin
* GetGlyphForActionOrigin - Get a local path to art for on-screen glyph for a particular origin
* Updated Spacewar example to include example usage
ISteamFriends
* Removed k_EFriendFlagSuggested, since it was unused
ISteamInventory
* Updated and corrected documentation in the API
* RequestEligiblePromoItemDefinitionsIDs - Request the list of "eligible" promo items that can be manually granted to the given 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.
* GetEligiblePromoItemDefinitionIDs - After handling a SteamInventoryEligiblePromoItemDefIDs_t call result, use this function to pull out the list of item definition ids that the user can be manually granted via the AddPromoItems() call.
----------------------------------------------------------------
v1.38 14th October 2016
----------------------------------------------------------------
ISteamUGC
* Added ability to track the playtime of Workshop items. Call StartPlaytimeTracking() and StopPlaytimeTracking() when appropriate. On application shutdown all playtime tracking will stop, but StopPlaytimeTrackingForAllItems() can also be used.
* Added ability to query Workshop items by total playtime in a given period, total lifetime playtime, average playtime in a given period, lifetime average playtime, number of play sessions in a given period, and number of lifetime play sessions.
* Added ability to retrieve item statistics for number of seconds played, number of play sessions, and number of comments.
* Added SetReturnOnlyIDs() for queries. This is useful for retrieving the list of items a user has subscribed to or favorited without having to get all the details for those items.
* Modified GetQueryUGCStatistic() to take in a uint64 instead of a uint32 to support larger values
ISteamUser
* Added BIsPhoneIdentifying()
* Added BIsPhoneRequiringVerification()
ISteamScreenshots
* Added IsScreenshotsHooked() if the application has hooked the screenshot
* Added ability to add a VR screenshot that was saved to disk to the user's library
ISteamRemoteStorage
* Modified GetQuota() to take in uint64 from int32, since Steam Cloud can now support quotas above 2GB
* Removed RemoteStorageConflictResolution_t callback
ISteamApps
* Added GetFileDetails() which will return FileDetailsResult_t through a call result. The FileDetailsResult_t struct contains information on the original file's size, SHA1, etc.
ISteamFriends
* Deprecated k_EFriendRelationshipSuggested relationship type that was originally used by Facebook linking feature
----------------------------------------------------------------
v1.37 23rd May 2016
----------------------------------------------------------------
Starting with this release, SDK forward-compatibility has been improved. All executables and libraries built using the official C++ headers from this SDK will continue to work even when paired with runtime DLLs from future SDKs. This will eventually allow for the mixing of dynamic libraries (such as third-party plug-ins) built with different versions of Steamworks.
The VERSION_SAFE_STEAM_API_INTERFACES compile-time flag is no longer necessary for cross-version compatibility, and the SteamAPI_InitSafe and SteamGameServer_InitSafe functions have been removed. Applications which currently use these InitSafe functions should be changed to use the normal Init functions instead.
ISteamRemoteStorage
* Removed unsed UGCHandle_t m_hFile from RemoteStoragePublishedFileUpdated_t
ISteamUGC
* Added ability to add additional preview types to UGC such as standard images, YouTube videos, Sketchfab models, etc.
ISteamUser
* Added BIsPhoneVerified()
* Added BIsTwoFactorEnabled()
ISteamUtils
* Added IsSteamInBigPictureMode()
* Added StartVRDashboard(), which asks Steam to create and render the OpenVR Dashboard
ISteamApps
* Added RequestAllProofOfPurchaseKeys
----------------------------------------------------------------
v1.36 9th February 2016
----------------------------------------------------------------
ISteamController:
* added new function TriggerRepeatedHapticPulse()
Revision History:
----------------------------------------------------------------
v1.35 21st September 2015
----------------------------------------------------------------
ISteamController:
* The controller API has been redesigned to work with production Steam Controllers and take advantage of the configuration panel inside of Steam. The documentation on the partner site has a full overview of the new API.
ISteamRemoteStorage:
* Added asynchronous file read and write methods. These methods will not block your calling thread for the duration of the disk IO. Additionally, the IO is performed in a worker thread in the Steam engine, so they will not impact other Steam API calls.
- FileWriteAsync: Similar in use to FileWrite, however it returns a SteamAPICall_t handle. Use the RemoteStorageFileWriteAsyncComplete_t structure with your asynchronous Steam API handler, and that will indicate the results of the write. The data buffer passed in to FileWriteAsync is immediately copied, so you do not have to ensure it is valid throughout the entire asynchronous process.
- FileReadAsync: This function queues an asynchronous read on the file specified, and also returns a SteamAPICall_t handle. The completion event uses the new RemoteStorageFileReadAsyncComplete_t structure. Upon successful completion, you can use the new FileReadAsyncComplete function to read the data -- passing in the original call handle, a pointer to a buffer for the data, and the amount to read (which generally should be equal to the amount read as specified by the callback structure, which generally will be equal to the amount requested). Additionally, the FileReadAsync function lets you specify an offset to read at, so it is no longer necessary to read the entire file in one call.
----------------------------------------------------------------
v1.34 28th July 2015
----------------------------------------------------------------
ISteamUGC:
* Added ability to set and retrieve key-value tags on an item. There can be multiple values for each key.
* Added ability to query all UGC that have matching key-value tags.
* Added ability to specify a title and description on an item for a specific language (defaults to English).
* Added ability to query for items and return the title and description in a preferred language.
* Added ability to vote on an item and retrieve the current user's vote on a given item (duplicated from ISteamRemoteStorage).
----------------------------------------------------------------
v1.33 6th May 2015
----------------------------------------------------------------
UGC:
* Added DownloadItem(), which will force download a piece of UGC (it will be cached based on usage). This can be used by stand-alone game servers.
* Renamed GetItemUpdateInfo() => GetItemDownloadInfo() and added GetItemState() which can be used to determine whether an item is currently being downloaded, has already been downloaded, etc.
* Added ability to set and retrieve developer metadata for an item
* Added ability to modify a user's favorites list
* Added ability to retrieve preview image & video URLs
* Added ability to retrieve "children" for an item (e.g. for collections)
* Added ability to retrieve stats, such as current number of subscribers, lifetime unique subscribers, etc.
SteamVR
* steamvr.h has been removed. You can use the OpenVR SDK to access those interfaces: https://github.com/ValveSoftware/openvr
SteamVideo
* Added ability to check if a user is currently broadcasting
----------------------------------------------------------------
v1.32 5th February 2015
----------------------------------------------------------------
General:
* Added an auto-generated "flat" C-style API for common Steamworks features (steam_api_flat.h)
* Added an auto-generated C# binding for common Steamworks features (steam_api_interop.cs)
* Expanded the ISteamFriends interface to include steam levels and friends groups
* Expanded the ISteamHTTP interface to include cookie handling, SSL certificate verification, and network timeouts
* Fixed typos in ISteamHTMLSurface interface constants
Inventory:
* Added the initial version of ISteamInventory, a developer-preview release of our new Steam Inventory Service for managing and tracking a Steam-compatible inventory of in-game items. Please see the documentation for the Inventory Service on the partner website for more details.
----------------------------------------------------------------
v1.31 8th September 2014
----------------------------------------------------------------
UGC:
* The Workshop item content API in ISteamUGC now supports legacy workshop items uploaded via the ISteamRemoteStorage interface. ISteamUGC::GetItemInstallInfo(). This will return whether the item was a legacy item or a new item. If it is a legacy item, then the pchFolder variable will be the full path to the file.
HTML:
* Added initial version of ISteamHTMLSurface API, which allows games to get textures for html pages and interact with them. There is also a sample implementation in the SteamworksExample.
Virtual Reality:
* Added VR_IsHmdPresent, which returns true if an HMD appears to be present but does not initialize the VR API. This is useful when enabling/disabling UI elements to offer VR mode to a user.
* Added VR_GetStringForHmdError which turns an HmdError enum value into a string.
SteamPipe
* The example Steampipe batch file (run_build.bat) now uses run_app_build_http instead of run_app_build by default.
ContentPrep.app
* Updated wxPython requirements for this app (version 2.7 and 2.8 supported). App will prompt with updated URL to download compatible packages if necessary.
----------------------------------------------------------------
v1.30 10th July 2014
----------------------------------------------------------------
General:
* Added a new Workshop item content API in ISteamUGC that is easy to use and allows multiple files per item without any size limits. It uses the same
content system that handles regular content depots, resulting in faster and smaller downloads due to delta patching. Subscribed workshop items will
be placed in unique subfolders in the install folder, so the game doesn't need to fetch them using ISteamRemoteStorage anymore. The new API is not
backwards compatible with old items created with ISteamRemoteStorage. Added Workshop feature to steamworksexample using ISteamUGC.
Steam VR:
* VR_Init now requires that you call SteamAPI_Init first.
----------------------------------------------------------------
v1.29 24th April 2014
----------------------------------------------------------------
General:
* Adjust game server login to use a token instead of username/password. Tokens are randomly generated at account creation time and can be reset.
* Added existing text param to ISteamUtils::ShowGamepadTextInput() so games can prepopulate control before displaying to user.
* Updated retail disc installer to use a single multi-language steamsetup.exe replacing all Steam install MSI packages.
* Removed redistributable Steam libraries for dedicated servers. Standalone dedicated server should use shared "Steamworks SDK Redist" depots.
* steamcmd is now included for Linux and OSX.
Music:
* Introducing API to control the Steam Music Player from external software. As an example this gives games the opportunity to pause the music or lower the volume, when an important cut scene is shown, and start playing afterwards.
* Added menu and code to the Steamworks Example to demonstrate this API.
* This feature is currently limited to users in the Steam Music Player Beta. It will have no effect on other users.
UGC:
* ISteamUGC - Add m_bCachedData to SteamUGCQueryCompleted_t and SteamUGCRequestUGCDetailsResult_t which can be used to determine if the data was retrieved from the cache.
* ISteamUGC - Allow clients to get cached responses for ISteamUGC queries. This is so client code doesn't have to build their own caching layer on top of ISteamUGC.
* ISteamRemoteStorage - add the name of the shared file to RemoteStorageFileShareResult_t so it can be matched up to the request if a game has multiple outstanding FileShare requests going on at the same time
Steam VR:
* Renamed GetEyeMatrix to GetHeadFromEyePose and made it return an HmdMatrix34t. This doesn't actually change the values it was returning, it just updates the name to match the values that were already being returned. Changed the driver interface too.
* Renamed GetWorldFromHeadPose to GetTrackerFromHeadPose to avoid confusion about the game's world space vs. the tracker's coordinate system.
* Also renamed GetLastWorldFromHeadPose to GetLastTrackerFromHeadPose.
* Added GetTrackerZeroPose method to get the tracker zero pose.
* Added VR support to the Linux/SDL version of the Steamworks Example.
----------------------------------------------------------------
v1.28 28th January 2014
----------------------------------------------------------------
* Added Steamworks Virtual Reality API via steamvr.h.
* Added ISteamUtils::IsSteamRunningInVRMode, which returns true if the Steam Client is running in VR mode.
* Deprecated ISteamGameserver::GetGameplayStats and ISteamGameserver::GetServerReputation. These calls already return no data and will be removed in a future SDK update.
* Added result code k_EResultRateLimitExceeded, which can now be returned if a user has too many outstanding friend requests.
----------------------------------------------------------------
v1.26a 14th November 2013
----------------------------------------------------------------
* Fix missing accessor function in steam_api.h for SteamUGC()
----------------------------------------------------------------
v1.26 6th November 2013
----------------------------------------------------------------
* Includes libsteam_api.so for 64-bit Linux.
* Callbacks ValidateAuthTicketResponse_t and GSClientApprove_t now contain the SteamID of the owner of current game. If the game is borrowed, this is different than the player's SteamID.
* Added ISteamFriends::GetPlayerNickname, which returns the nickname the current user has set for the specified player.
* Fix p2p networking apis on Linux so they work with dedicated servers
* Fix command line argument handling bug in SteamAPI_RestartAppIfNecessary on Linux and OSX.
* Added ISteamApps::GetLaunchQueryParam, which will get the value associated with the given key if a game is launched via a url with query paramaters, such as steam://run/<appid>//?param1=value1;param2=value2;param3=value3. If the game is already running when such a url is executed, instead it will receive a NewLaunchQueryParameters_t callback.
* Added EUGCReadAction parameter to ISteamRemoteStorage:UGCRead that allows the game to keep the file open if it needs to seek around the file for arbitrary data, rather than always closing the file when the last byte is read.
* Added new ISteamUGC interface that is used for querying for lists of UGC details (e.g. Workshop items, screenshots, videos, artwork, guides, etc.). The ISteamUGC interface should be used instead of ISteamRemoteStorage, which contains similar, but less flexible and powerful functionality.
* Removed tools for deprecated content system
----------------------------------------------------------------
v1.25 1st October 2013
----------------------------------------------------------------
* Fixed a crash in the 1.24 SDK update when attempting to call ISteamRemoteStorage::GetPublishedFileDetails by adding a missing parameter unMaxSecondsOld, which allows a game to request potentially-cached details (passing a value of 0 retains the previous behavior).
----------------------------------------------------------------
v1.24 17th July 2013
----------------------------------------------------------------
User:
* Added ISteamUser::GetBadgeLevel and ISteamUser::GetPlayerSteamLevel functions
Friends:
* Games can now initiate Steam Friend requests, removals, request -accepts and request-ignores via ISteamFriends ActivateGameOverlayToUser API. This prompts the user for confirmation before action is taken.
Mac:
* Updated the OS X Content Prep tool and game wrapper for improved compatibility with OS X 10.8 (Mountain Lion).
Linux:
* Added install script for the Steam Linux Runtime tools (run "bash tools/linux/setup.sh" to install), see tools/linux/README.txt for details.
* SteamworksExample is now available on Linux
----------------------------------------------------------------
v1.23a 25th February 2013
----------------------------------------------------------------
Windows:
* Fix passing command-line parameters across SteamApi_RestartAppIfNeccessary()
----------------------------------------------------------------
v1.23 19th February 2013
----------------------------------------------------------------
Cloud:
* Added ISteamScreenshots::TagPublishedFile() which allows tagging workshop content that is visible or active when a screenshot is taken.
* Added ISteamRemoteStorage::UGCDownloadToLocation() which allows a developer to specify a location on disk to download workshop content.
Setup tool:
* Added Arabic to the supported languages for the PC Gold Master Setup Tool
* Fixed regression in localized EULA support in Mac OS X Gold Master Setup Tool
Windows:
* Fix SteamAPI_RestartAppIfNecessary() on 64 bit Windows
* When launching a game's development build from outside of Steam, fixed using steam_appid.txt in the Steam Overlay and for authorizing microtransactions (broken in the SDK 1.22)
Mac:
* Fixed many Steam callbacks not working for 64 bit OS X games due to mismatched structure alignment between the SDK and the Steam client
* Implemented SteamAPI_RestartAppIfNecessary()
Linux:
* Removed the need to redistribute libtier0_s.so and libvstdlib_s.so
* Fixed finding and loading steamclient.so, so LD_LIBRARY_PATH does not need to be set for game to talk with Steam
* Implemented SteamAPI_RestartAppIfNecessary()
----------------------------------------------------------------
v1.22 12th December 2012
----------------------------------------------------------------
Apps
* Added new API call ISteamApps::MarkContentCorrupt() so a game can hint Steam that some of it's local content seems corrupt. Steam will verify the content next time the game is started.
* Added new API call ISteamApps::GetCurrentBetaName() so a game can get the current content beta branch name if the user chose to opt-in to a content beta.
Cloud
* Added an offset parameter to ISteamRemoteStorage::UGCRead() to allow reading files in chunks, and increased the limit from 100MB to 200MB when downloading files this way.
HTTP
* Added support for streaming HTTP requests with ISteamHTTP::SendHTTPRequestAndStreamResponse() and ISteamHTTP::GetHTTPStreamingResponseBodyData()
Linux
* Updated libsteam_api.so to find Steam in its new install location
----------------------------------------------------------------
v1.21 25th October 2012
----------------------------------------------------------------
Big Picture
* Added ISteamUtils::ShowGamepadTextInput() to enable usage of the Big Picture gamepad text input control in-game. UI is rendered by the Steam Overlay.
* Added ISteamUtils::GetEnteredGamepadTextLength() and ISteamUtils::GetEnteredGamepadTextInput() to retrieve entered gamepad text.
* Added GamepadTextInputDismissed_t callback to detect when the user has entered gamepad data.
----------------------------------------------------------------
v1.20 30th August 2012
----------------------------------------------------------------
SteamPipe
* Added local server and builder tools for new content system.
Mac
* OSX Supports 64 bit build targets.
* Spacewar has been updated to be buildable as a 64 bit OSX sample application.
Friends
* Added a callback for the result of ISteamFriends::SetPersonaName().
* Changed ISteamFriends::ActivateGameOverlayToStore() to take an additional parameter so app can be directly added to the cart.
Cloud
* Added ISteamRemoteStorage::FileWriteStreamOpen(), FileWriteStreamWriteChunk(), FileWriteStreamClose() and FileWriteStreamCancel() for streaming operations.
* Changed parameters to ISteamRemoteStorage::PublisheVideo().
* Added file type to ISteamRemoteStorage::GetPublishedFileDetails() callback result (RemoteStorageGetPublishedFileDetailsResult_t).
* Added a callback to indicate that a published file that a user owns was deleted (RemoteStoragePublishedFileDeleted_t).
ISteamUserStats
* Added ISteamUserStats::GetNumAchievements() and ISteamUserStats::GetAchievementName().
----------------------------------------------------------------
v1.19 22nd March 2012
----------------------------------------------------------------
Friends
* Added ISteamFriends::GetFollowerCount()
* Added ISteamFriends::IsFollowing()
* Added ISteamFriends::EnumerateFollowingList()
Cloud
* Added ISteamRemoteStorage::UpdatePublishedFileSetChangeDescription()
* Added ISteamRemoteStorage::GetPublishedItemVoteDetails()
* Added ISteamRemoteStorage::UpdateUserPublishedItemVote()
* Added ISteamRemoteStorage::GetUserPublishedItemVoteDetails()
* Added ISteamRemoteStorage::EnumerateUserSharedWorkshopFiles()
* Added ISteamRemoteStorage::PublishVideo()
* Added ISteamRemoteStorage::SetUserPublishedFileAction()
* Added ISteamRemoteStorage::EnumeratePublishedFilesByUserAction()
* Added ISteamRemoteStorage::EnumeratePublishedWorkshopFiles()
ISteamGameServer
* Updated callback for SteamGameServer::ComputeNewPlayerCompatibility to include the steam id the compatibility was calculated for
----------------------------------------------------------------
v1.18 7th February 2012
----------------------------------------------------------------
Cloud
* Removed ISteamRemoteStorage::PublishFile() and consolidated the API to PublishWorkshopFile()
* Updated ISteamRemoteStorage::PublishWorkshopFile() to better define the type of workshop file being published
* Replaced ISteamRemoteStorage::UpdatePublishedFile() with a new mechanism to update existing files through CreatePublishedFileUpdateRequest() UpdatePublishedFile[Property](), and CommitPublishedFileUpdate()
* Increased the description field for a workshop file from 256 -> 8000 characters
* Added ISteamRemoteStorage::GetUGCDownloadProgress()
* Added file size limit of 100MB to ISteamRemoteStorage::FileWrite()
Apps:
* Added ISteamApps::RequestAppProofOfPurchaseKey
----------------------------------------------------------------
v1.17 2nd November 2011
----------------------------------------------------------------
Cloud
* Added ISteamRemoteStorage::PublishFile(), PublishWorkshopFile(), UpdatePublishedFile(), DeletePublishedFile() which enables sharing, updating, and unsharing of cloud content with the Steam community
* Added ISteamRemoteStorage::EnumerateUserPublishedFiles to enumerate content that a user has shared with the Steam community
* Added ISteamRemoteStorage::GetPublishedFileDetails() which gets the metadata associated with a piece of community shared content
* Added ISteamRemoteStorage::SubscribePublishedFile(), EnumerateUserSubscribedFiles(), and UnsubscribePublishedFiles() which allow for management of community content that a user is interested in and marked as a favorite
User
* Updated ISteamUser::GetAuthSessionTicket(), When creating a ticket for use by the AuthenticateUserTicket Web API, the calling application should wait for the callback GetAuthSessionTicketResponse_t generated by the API call before attempting to use the ticket to ensure that the ticket has been communicated to the server. If this callback does not come in a timely fashion ( 10 - 20 seconds ), your client is not connected to Steam, and the AuthenticeUserTicket will fail because it can not authenticate the user.
Friends
* Added ISteamFriends::RequestFriendRichPresence, which allows requesting rich presence keys for any Steam user playing the same game as you
* Added a set of functions to ISteamFriends which allow games to integrate with Steam Chat. Games can both join group chats, as well as get friends chats and show them in-line in the game. This API isnt currently used in a game, so there may be some rough edges around the user experience to work out, and some experimentation is required.
Game Servers
* Removed the ISteamMasterServerUpdater interface. It has been merged into the ISteamGameServer interface, which is used to communicate all game server state changes.
* Significant changes to the game server init sequence. (See the comments for SteamGameServer_Init and the ISteamGameServer interface.)
* Removed interface to legacy master server mode
* Groundwork for implementing named steam accounts for game servers
* Old player auth system is deprecated. It may be removed in a future version of the SDK.
Tools
* Added tool for automated DRM submissions in /sdk/tools/drm/
----------------------------------------------------------------
v1.16 29th July 2011
----------------------------------------------------------------
HTTP
* added ISteamHTTP::SetHTTPRequestRawPostBody() to set the raw body of a POST request
Screenshots
* added ISteamScreenshots interface, which enables adding screenshots to the user's screenshot library and tagging them with location data or relevant players that are visible in the screenshot. A game can provide screenshots based on game events using WriteScreenshot, AddScreenshotToLibrary, or TriggerScreenshot. A game can also choose to provide its own screenshots when the Steam screenshot hotkey is pressed by calling HookScreenshots() and listening for the ScreenshotRequested_t callback.
----------------------------------------------------------------
v1.15 1st June 2011
----------------------------------------------------------------
Bug fixes
* Fixed exposing HTTP interface
* Fixed setting AppID for game processes started outside of Steam or which require administrative privileges
----------------------------------------------------------------
v1.14 16th May 2011
----------------------------------------------------------------
Stats and Achievements
* Added a set of functions for accessing global achievement unlock percentages
** RequestGlobalAchievementPercentages() to request the completion percentages from the backend
** GetMostAchievedAchievementInfo() and GetNextMostAchievedAchievementInfo() to iterate achievement completion percentages
** GetAchievementAchievedPercent() to query the global unlock percentage for a specific achievement
* Added a set of functions for accessing global stats values. To enable a global stats set stats as "aggregated" from the Steamworks admin page.
** RequestGlobalStats() to request the global stats data from the backend
** GetGlobalStat() to get the global total for a stat
** GetGlobalStatHistory() to get per day totals for a stat
HTTP
* added ISteamHTTP::GetHTTPDownloadProgressPct() get the progress of an HTTP request
----------------------------------------------------------------
v1.13 26th April 2011
----------------------------------------------------------------
Rich Presence
* added a new Rich Presence system to allow for sharing game specific per user data between users
* ISteamFriends::SetRichPresense() can be used to set key/value presence data for the current user
* ISteamFriends::GetFriendRichPresence() and related functions can be used to retrieve presence data for a particular user
* Two special presence keys exist:
** the "connect" key can be set to specify a custom command line used by friends when joining that user
** the "status" key can be set to specify custom text that will show up in the 'view game info' dialog in the Steam friends list
HTTP
* added ISteamHTTP, which exposes methods for making HTTP requests
Downloadable Content
* added ISteamApps::GetDLCCount() and ISteamApps::BGetDLCDataByIndex() to allow for enumerating DLC content for the current title
* added ISteamApps::InstallDLC() and ISteamApps::UninstallDLC() to control installing optional content
P2P Networking
* added ISteamNetworking::CloseP2PChannelWithUser(), to allow for closing a single channel to a user. When all channels are closed, the connection to that user is automatically closed.
* added ISteamNetworking::AllowP2PPacketRelay(), which can be used to prevent allowing P2P connections from falling back to relay
Voice
* ISteamUser::GetAvailableVoice() & ISteamUser::GetVoice() now take the desired sample rate to determine the number of uncompressed bytes to return
* added ISteamUser::GetVoiceOptimalSampleRate() to return the frequency of the voice data as it's stored internally
Friends
* added ISteamFriends methods to retrieve the list of users the player has recently played with
Content Tool
* all files are now encrypted by default
* add command line option to app creation wizard
* add command line edit option by right clicking on app
* update cache size in CDDB after each build
* look for install scripts at build time and automatically add CDDB flag
* fix language names for chinese
* add menu button to easily rev version
* warn if rebuilding existing version
* allow specifying subfolder when ftp-ing depots to valve
* better error messaging if ftp fails
* clean up various small display bugs
* don't trash ValidOSList tag when updating CDDB
OSX DirectX to OpenGL
* added the graphics layer used to port Valve games to OSX which can now be used by all Steamworks developers
* included in the Steamworks Example application. Can be enabled by building with DX9MODE=1
----------------------------------------------------------------
v1.12 10th November 2010
----------------------------------------------------------------
Cloud
* added a set of function to handle publishing User Generated Content (UGC) files to the backend, and to download others users UGC files. This enables games to have users easily publish & share content with each other.
* Added ISteamRemoteStorage::FileForget() which tells a file to remain on disk but to be removed from the backend. This can be used to manage which files should be synchronized if you have more files to store than your quota allows.
* Added ISteamRemoteStorage::FilePersisted() to tell if the file is set to be synchronized with the backend.
* Added ISteamRemoteStorage::FileDelete() which tells a file to be deleted locally, from cloud, and from other clients that have the file. This can be used to properly delete a save file rather than writing a 1-byte file as a sentinel.
* Added ISteamRemoteStorage::SetSyncPlatforms(), GetSyncPlatforms() to tell steam which platforms a file should be synchronized to. This allows OSX not to download PC-specific files, or vice-versa.
* Added ISteamRemoteStorage::IsCloudEnabledForAccount(), IsCloudEnabledForApp(), and SetCloudEnabledForApp(). When cloud is disabled the APIs still work as normal and an alternate location on disk is not needed. It just means the files will not be synchronized with the backend.
Leaderboards
* added ISteamUserStats::DownloadLeaderboardEntriesForUsers(), which downloads scores for an arbitrary set of users
* added ISteamUserStats::AttachLeaderboardUGC(), to attach a clouded file to a leaderboard entry
Friends
* added ISteamFriends::RequestUserInformation(), to asynchronously request a users persona name & avatar by steamID
* added ISteamFriends::RequestClanOfficerList(), to asynchronously download the set of officers for a clan. GetClanOwner(), GetClanOfficerCount(), and GetClanOfficerByIndex() can then be used to access the data.
Matchmaking
* added k_ELobbyTypePrivate option to creating lobbies - this means that the lobby won't show up to friends or be returned in searches
* added LobbyDataUpdate_t::m_bSuccess, to easily check if a RequestLobbyData() call failed to find the specified lobby
Authentication
* added ISteamApps::GetEarliestPurchaseUnixTime(), for games that want to reward users who have played for a long time
* added ISteamApps::BIsSubscribedFromFreeWeekend(), so games can show different offers or information for users who currently only have rights to play the game due to a free weekend promotion
* added ISteamGameServer::GetAuthSessionTicket(), BeginAuthSession(), EndAuthSession(), and CancelAuthTicket(), matching what exists in ISteamUser. This allows game servers and clients to authenticate each other in a unified manner.
OSX
* The Steamworks Spacewar example now builds/runs on OS X
* The OSX retail install setup application is now contained in goldmaster\disk_assets\SteamRetailInstaller.dmg
PS3
* added several functions regarding PS3 support. This is still a work in progress, and no PS3 binaries are included.
----------------------------------------------------------------
v1.11 23rd August 2010
----------------------------------------------------------------
Networking
* added virtual ports to the P2P networking API to help with routing messages to different systems
* added ISteamUser::BIsBehindNAT() to detect when a user is behind a NAT
Friends / Matchmaking
* added support for retrieving large (184x184) avatars
* added ISteamUser::AdvertiseGame() which can be used send join game info to friends without using the game server APIs
64-bit support
* 64-bit windows binaries are included in the sdk/redistributable_bin/ folder
* VAC and CEG are not yet supported
Authentication
* added ticket based remote authentication library
Other
* added ISteamUser::CheckFileSignature which can be used in conjunction with the signing tab on the partner site to verify that an executable has not been modified
----------------------------------------------------------------
v1.10 20th July 2010
----------------------------------------------------------------
Friends / Matchmaking
* added function ISteamFriends::GetClanTag(), which returns the abbreviation set for a group
* added "stats" and "achievements" options to ISteamFriends::ActivateGameOverlayToUser()
* added function ISteamFriends::ActivateGameOverlayInviteDialog() to open the invite dialog for a specific lobby
* renamed ISteamMatchmaking::SetGameType() to the more correct SetGameTags()
Authentication
* added ISteamUtils::CheckFileSignature(), which can be used to verify that a binary has a valid signature
Other
* added #pragma pack() in several places around structures in headers
----------------------------------------------------------------
v1.09 12th May 2010
----------------------------------------------------------------
Mac Steamworks!
* new binaries in the sdk/redistributable_bin/osx/ folder
Other
* explicit pragma( pack, 8 ) added around all callbacks and structures, for devs who have use a different default packing
* renamed function ISteamGameServer::SetGameType() to the more accurate ISteamGameServer::SetGameTags()
----------------------------------------------------------------
v1.08 27st January 2010
----------------------------------------------------------------
Matchmaking
* added function ISteamMatching::AddRequestLobbyListDistanceFilter(), to specify how far geographically you want to search for other lobbies
* added function ISteamMatching::AddRequestLobbyListResultCountFilter(), to specify how the maximum number of lobby you results you need (less is faster)
Stats & Achievements
* added interface ISteamGameServerStats, which enables access to stats and achievements for users to the game server
* removed function ISteamGameServer::BGetUserAchievementStatus(), now handled by ISteamGameServerStats
* added ISteamUserStats::GetAchievementAndUnlockTime(), which returns if and when a user unlocked an achievement
Other
* added new constant k_cwchPersonaNameMax (32), which is the maximum number of unicode characters a users name can be
* removed ISteamRemoteStorage::FileDelete() - NOTE: it will be back, it's only removed since it hadn't been implemented on the back-end yet
* added function ISteamGameServer::GetServerReputation(), gives returns a game server reputation score based on how long users typically play on the server
----------------------------------------------------------------
v1.07 16th December 2009
----------------------------------------------------------------
* Replaced SteamAPI_RestartApp() with SteamAPI_RestartAppIfNecessary(). This new function detects if the process was started through Steam, and starts the current game through Steam if necessary.
* Added ISteamUtils::BOverlayNeedsPresent() so games with event driven rendering can determine when the Steam overlay needs to draw
----------------------------------------------------------------
v1.06 30th September 2009
----------------------------------------------------------------
Voice
* ISteamUser::GetCompressedVoice() has been replaced with ISteamUser::GetVoice which can be used to retrieve compressed and uncompressed voice data
* Added ISteamUser::GetAvailableVoice() to retrieve the amount of captured audio data that is available
Matchmaking
* Added a new callback LobbyKicked_t that is sent when a user has been disconnected from a lobby
* Through ISteamMatchmakingServers, multiple server list requests of the same type can now be outstanding at the same time
Steamworks Setup Application:
* Streamlined configuration process
* Now supports EULAs greater than 32k bytes
Content Tool
* Added DLC checkbox to depot creation wizard
Other
* Added SteamAPI_IsSteamRunning()
* Added SteamAPI_RestartApp() so CEG users can restart their game through Steam if launched through Windows Games Explorer
----------------------------------------------------------------
v1.05 11th June 2009
----------------------------------------------------------------
Matchmaking
* Added the SteamID of the gameserver to the gameserveritem_t structure (returned only by newer game servers)
* Added ISteamUserStats::GetNumberOfCurrentPlayers(), asyncronously returns the number users currently running this game
* Added k_ELobbyComparisonNotEqual comparision functions for filters
* Added option to use comparison functions for string filters
* Added ISteamMatchmaking::AddRequestLobbyListFilterSlotsAvailable( int nSlotsAvailable ) filter function, so you can find a lobby for a group of users to join
* Extended ISteamMatchmaking::CreateLobby() to take the max number of users in the lobby
* Added ISteamMatchmaking::GetLobbyDataCount(), ISteamMatchmaking::GetLobbyDataByIndex() so you can iterate all the data set on a lobby
* Added ISteamMatchmaking::DeleteLobbyData() so you can clear a key from a lobby
* Added ISteamMatchmaking::SetLobbyOwner() so that ownership of a lobby can be transferred
* Added ISteamMatchmaking::SetLobbyJoinable()
* Added ISteamGameServer::SetGameData(), so game server can set more information that can be filtered for in the server pinging API
Networking
* Added a set of connectionless networking functions for easy use for making peer-to-peer (NAT traversal) connections. Includes supports for windowed reliable sendsand fragementation/re-assembly of large packets. See ISteamNetworking.h for more details.
Leaderboards
* Added enum ELeaderboardUploadScoreMethod and changed ISteamUserStats::UploadLeaderboardScore() to take this - lets you force a score to be changed even if it's worse than the prior score
Callbacks
* Added CCallbackManual<> class to steam_api.h, a version of CCallback<> that doesn't register itself automatically in it's the constructor
Downloadable Content
* Added ISteamUser::UserHasLicenseForApp() and ISteamGameServer::UserHasLicenseForApp() to enable checking if a user owns DLC in multiplayer. See the DLC documentation for more info.
Game Overlay
* ISteamFriends::ActivateGameOverlay() now accepts "Stats" and "Achievements"
----------------------------------------------------------------
v1.04 9th Mar 2009
----------------------------------------------------------------
Added Peer To Peer Multi-Player Authentication/Authorization:
* Allows each peer to verify the unique identity of the peers ( by steam account id ) in their game and determine if that user is allowed access to the game.
* Added to the ISteamUser interface: GetAuthSessionTicket(), BeginAuthSession(), EndAuthSession() and CancelAuthTicket()
* Additional information can be found in the API Overview on the Steamworks site
Added support for purchasing downloadable content in game:
* Added ISteamApps::BIsDlcInstalled() and the DlcInstalled_t callback, which enable a game to check if downloadable content is owned and installed
* Added ISteamFriends::ActivateGameOverlayToStore(), which opens the Steam game overlay to the store page for an appID (can be a game or DLC)
Gold Master Creation:
* It is no longer optional to encrypt depots on a GM
* The GM configuration file now supports an included_depots key, which along with the excluded_depots key, allows you to specify exactly which depots are placed on a GM
* Simplified the configuration process for the setup application
* The documentation for creating a Gold Master has been rewritten and extended. See the Steamworks site for more information.
Added Leaderboards:
* 10k+ leaderboards can now be created programmatically per game, and queried globally or compared to friends
* Added to ISteamUserStats interface
* See SteamworksExample for a usage example
Other:
* Added SteamShutdown_t callback, which will alert the game when Steam wants to shut down
* Added ISteamUtils::IsOverlayEnabled(), which can be used to detect if the user has disabled the overlay in the Steam settings
* Added ISteamUserStats::ResetAllStats(), which can be used to reset all stats (and optionally achievements) for a user
* Moved SetWarningMessageHook() from ISteamClient to ISteamUtils
* Added SteamAPI_SetTryCatchCallbacks, sets whether or not Steam_RunCallbacks() should do a try {} catch (...) {} around calls to issuing callbacks
* In CCallResult callback, CCallResult::IsActive() will return false and can now reset the CCallResult
* Added support for zero-size depots
* Properly strip illegal characters from depot names
----------------------------------------------------------------
v1.03 16th Jan 2009
----------------------------------------------------------------
Major changes:
* ISteamRemoteStorage interface has been added, which contains functions to store per-user data in the Steam Cloud back-end.
** To use this, you must first use the partner web site to enable Cloud for your game.
** The current setting is allowing 1MB of storage per-game per-user (we hope to increase this over time).
Lobby & Matchmaking related changes:
* ISteamFriends::GetFriendGamePlayed() now also return the steamID of the lobby the friend is in, if any. It now takes a pointer to a new FriendGameInfo_t struct, which it fills
* Removed ISteamFriends::GetFriendsLobbies(), since this is now redundant to ISteamFriends::GetFriendGamePlayed()
* Added enum ELobbyComparison, to set the comparison operator in ISteamMatchmaking::AddRequestLobbyListNumericalFilter()
* Changed ISteamMatchmaking::CreateLobby(), JoinLobby() and RequestLobbyList() to now return SteamAPICall_t handles, so you can easily track if a particular call has completed (see below)
* Added ISteamMatchmaking::SetLobbyType(), which can switch a lobby between searchable (public) and friends-only
* Added ISteamMatchmaking::GetLobbyOwner(), which returns the steamID of the user who is currently the owner of the lobby. The back-end ensures that one and only one user is ever the owner. If that user leaves the lobby, another user will become the owner.
Steam game-overlay interaction:
* Added a new callback GameLobbyJoinRequested_t, which is sent to the game if the user selects 'Join friends game' from the Steam friends list, and that friend is in a lobby. The game should initiate connection to that lobby.
* Changed ISteamFriends::ActivateGameOverlay() can now go to "Friends", "Community", "Players", "Settings", "LobbyInvite", "OfficialGameGroup"
* Added ISteamFriends::ActivateGameOverlayToUser(), which can open a either a chat dialog or another users Steam community profile
* Added ISteamFriends::ActivateGameOverlayToWebPage(), which opens the Steam game-overlay web browser to the specified url
Stats system changes:
* Added ISteamUserStats::RequestUserStats(), to download the current game stats of another user
* Added ISteamUserStats::GetUserStat() and ISteamUserStats::GetUserAchievement() to access the other users stats, once they've been downloaded
Callback system changes:
* Added new method for handling asynchronous call results, currently used by CreateLobby(), JoinLobby(), RequestLobbyList(), and RequestUserStats(). Each of these functions returns a handle, SteamAPICall_t, that can be used to track the completion state of a call.
* Added new object CCallResult<>, which can map the completion of a SteamAPICall_t to a function, and include the right data. See SteamworksExample for a usage example.
* Added ISteamUtils::IsAPICallCompleted(), GetAPICallFailureReason(), and GetAPICallResult(), which can be used to track the state of a SteamAPICall_t (although it is recommended to use CCallResult<>, which wraps these up nicely)
Other:
* Added ISteamGameServer::GetPublicIP(), which is the IP address of a game server as seen by the Steam back-end
* Added "allow relay" parameter to ISteamNetworking::CreateP2PConnectionSocket() and CreateListenSocket(), which specified if being bounced through Steam relay servers is OK if a direct p2p connection fails (will have a much higher latency, but increases chance of making a connection)
* Added IPCFailure_t callback, which will be posted to the game if Steam itself has crashed, or if Steam_RunCallbacks() hasn't been called in a long time
----------------------------------------------------------------
v1.02 4th Sep 2008
----------------------------------------------------------------
The following interfaces have been updated:
ISteamUser
// Starts voice recording. Once started, use GetCompressedVoice() to get the data
virtual void StartVoiceRecording( ) = 0;
// Stops voice recording. Because people often release push-to-talk keys early, the system will keep recording for
// a little bit after this function is called. GetCompressedVoice() should continue to be called until it returns
// k_eVoiceResultNotRecording
virtual void StopVoiceRecording( ) = 0;
// Gets the latest voice data. It should be called as often as possible once recording has started.
// nBytesWritten is set to the number of bytes written to pDestBuffer.
virtual EVoiceResult GetCompressedVoice( void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten ) = 0;
// Decompresses a chunk of data produced by GetCompressedVoice(). nBytesWritten is set to the
// number of bytes written to pDestBuffer. The output format of the data is 16-bit signed at
// 11025 samples per second.
virtual EVoiceResult DecompressVoice( void *pCompressed, uint32 cbCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten ) = 0;
virtual int InitiateGameConnection( void *pAuthBlob, int cbMaxAuthBlob, CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure ) = 0;
This has been extended to be usable for games that don't use the other parts of Steamworks matchmaking. This allows any multiplayer game to easily notify the Steam client of the IP:Port of the game server the user is connected to, so that their friends can join them via the Steam friends list. Empty values are taken for auth blob.
virtual bool GetUserDataFolder( char *pchBuffer, int cubBuffer ) = 0;
This function returns a hint as a good place to store per- user per-game data.
ISteamMatchmaking
Added a set of server-side lobby filters, as well as voice chat, lobby member limits, and a way of quickly accessing the list of lobbies a users friends are in.
// filters for lobbies
// this needs to be called before RequestLobbyList() to take effect
// these are cleared on each call to RequestLobbyList()
virtual void AddRequestLobbyListFilter( const char *pchKeyToMatch, const char *pchValueToMatch ) = 0;
// numerical comparison - 0 is equal, -1 is the lobby value is less than nValueToMatch, 1 is the lobby value is greater than nValueToMatch
virtual void AddRequestLobbyListNumericalFilter( const char *pchKeyToMatch, int nValueToMatch, int nComparisonType /* 0 is equal, -1 is less than, 1 is greater than */ ) = 0;
// sets RequestLobbyList() to only returns lobbies which aren't yet full - needs SetLobbyMemberLimit() called on the lobby to set an initial limit
virtual void AddRequestLobbyListSlotsAvailableFilter() = 0;
// returns the details of a game server set in a lobby - returns false if there is no game server set, or that lobby doesn't exist
virtual bool GetLobbyGameServer( CSteamID steamIDLobby, uint32 *punGameServerIP, uint16 *punGameServerPort, CSteamID *psteamIDGameServer ) = 0;
// set the limit on the # of users who can join the lobby
virtual bool SetLobbyMemberLimit( CSteamID steamIDLobby, int cMaxMembers ) = 0;
// returns the current limit on the # of users who can join the lobby; returns 0 if no limit is defined
virtual int GetLobbyMemberLimit( CSteamID steamIDLobby ) = 0;
// asks the Steam servers for a list of lobbies that friends are in
// returns results by posting one RequestFriendsLobbiesResponse_t callback per friend/lobby pair
// if no friends are in lobbies, RequestFriendsLobbiesResponse_t will be posted but with 0 results
// filters don't apply to lobbies (currently)
virtual bool RequestFriendsLobbies() = 0;
ISteamUtils
// Sets the position where the overlay instance for the currently calling game should show notifications.
// This position is per-game and if this function is called from outside of a game context it will do nothing.
virtual void SetOverlayNotificationPosition( ENotificationPosition eNotificationPosition ) = 0;
ISteamFriends
virtual int GetFriendAvatar( CSteamID steamIDFriend, int eAvatarSize ) = 0;
This function now takes an eAvatarSize parameter, which can be k_EAvatarSize32x32 or k_EAvatarSize64x64 (previously it always just returned a handle to the 32x32 image)
----------------------------------------------------------------
v1.01 8th Aug 2008
----------------------------------------------------------------
The Steamworks SDK has been updated to simplfy game server authentication and better expose application state
----------------------------------------------------------------
v1.0:
----------------------------------------------------------------
- Initial Steamworks SDK release

View File

@ -66,6 +66,7 @@ enum EControllerSourceMode
k_EControllerSourceMode_MouseJoystick,
k_EControllerSourceMode_MouseRegion,
k_EControllerSourceMode_RadialMenu,
k_EControllerSourceMode_SingleButton,
k_EControllerSourceMode_Switches
};
@ -236,11 +237,20 @@ enum EControllerActionOrigin
k_EControllerActionOrigin_SteamV2_RightBumper,
k_EControllerActionOrigin_SteamV2_LeftGrip,
k_EControllerActionOrigin_SteamV2_RightGrip,
k_EControllerActionOrigin_SteamV2_LeftGrip_Upper,
k_EControllerActionOrigin_SteamV2_RightGrip_Upper,
k_EControllerActionOrigin_SteamV2_LeftBumper_Pressure,
k_EControllerActionOrigin_SteamV2_RightBumper_Pressure,
k_EControllerActionOrigin_SteamV2_LeftGrip_Pressure,
k_EControllerActionOrigin_SteamV2_RightGrip_Pressure,
k_EControllerActionOrigin_SteamV2_LeftGrip_Upper_Pressure,
k_EControllerActionOrigin_SteamV2_RightGrip_Upper_Pressure,
k_EControllerActionOrigin_SteamV2_Start,
k_EControllerActionOrigin_SteamV2_Back,
k_EControllerActionOrigin_SteamV2_LeftPad_Touch,
k_EControllerActionOrigin_SteamV2_LeftPad_Swipe,
k_EControllerActionOrigin_SteamV2_LeftPad_Click,
k_EControllerActionOrigin_SteamV2_LeftPad_Pressure,
k_EControllerActionOrigin_SteamV2_LeftPad_DPadNorth,
k_EControllerActionOrigin_SteamV2_LeftPad_DPadSouth,
k_EControllerActionOrigin_SteamV2_LeftPad_DPadWest,
@ -248,6 +258,7 @@ enum EControllerActionOrigin
k_EControllerActionOrigin_SteamV2_RightPad_Touch,
k_EControllerActionOrigin_SteamV2_RightPad_Swipe,
k_EControllerActionOrigin_SteamV2_RightPad_Click,
k_EControllerActionOrigin_SteamV2_RightPad_Pressure,
k_EControllerActionOrigin_SteamV2_RightPad_DPadNorth,
k_EControllerActionOrigin_SteamV2_RightPad_DPadSouth,
k_EControllerActionOrigin_SteamV2_RightPad_DPadWest,

View File

@ -94,6 +94,23 @@ public:
OUT_ARRAY_COUNT( punOutItemsArraySize,Output array) SteamItemDetails_t *pOutItemsArray,
uint32 *punOutItemsArraySize ) = 0;
// In combination with GetResultItems, you can use GetResultItemProperty to retrieve
// dynamic string properties for a given item returned in the result set.
//
// Property names are always composed of ASCII letters, numbers, and/or underscores.
//
// Pass a NULL pointer for pchPropertyName to get a comma - separated list of available
// property names.
//
// If pchValueBuffer is NULL, *punValueBufferSize will contain the
// suggested buffer size. Otherwise it will be the number of bytes actually copied
// to pchValueBuffer. If the results do not fit in the given buffer, partial
// results may be copied.
virtual bool GetResultItemProperty( SteamInventoryResult_t resultHandle,
uint32 unItemIndex,
const char *pchPropertyName,
OUT_STRING_COUNT( punValueBufferSizeOut ) char *pchValueBuffer, uint32 *punValueBufferSizeOut ) = 0;
// Returns the server time at which the result was generated. Compare against
// the value of IClientUtils::GetServerRealTime() to determine age.
METHOD_DESC(Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age.)
@ -175,12 +192,9 @@ public:
//
// GenerateItems() creates one or more items and then generates a SteamInventoryCallback_t
// notification with a matching nCallbackContext parameter. This API is insecure, and could
// be abused by hacked clients. This call is normally disabled unless you explicitly enable
// "Development mode" on the Inventory Service section of the Steamworks website.
// You should not enable this mode for a shipping game!
// Note that Steam accounts that belong to the publisher group for your game are granted
// an exception - as a developer, you may use this to generate and test items in your game.
// notification with a matching nCallbackContext parameter. This API is only intended
// for prototyping - it is only usable by Steam accounts that belong to the publisher group
// for your game.
// If punArrayQuantity is not NULL, it should be the same length as pArrayItems and should
// describe the quantity of each item to generate.
virtual bool GenerateItems( SteamInventoryResult_t *pResultHandle, ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, ARRAY_COUNT(unArrayLength) const uint32 *punArrayQuantity, uint32 unArrayLength ) = 0;
@ -201,18 +215,18 @@ public:
// ConsumeItem() removes items from the inventory, permanently. They cannot be recovered.
// Not for the faint of heart - if your game implements item removal at all, a high-friction
// UI confirmation process is highly recommended. Similar to GenerateItems, punArrayQuantity
// can be NULL or else an array of the same length as pArrayItems which describe the quantity
// of each item to destroy.
// UI confirmation process is highly recommended.
METHOD_DESC(ConsumeItem() removes items from the inventory permanently.)
virtual bool ConsumeItem( SteamInventoryResult_t *pResultHandle, SteamItemInstanceID_t itemConsume, uint32 unQuantity ) = 0;
// ExchangeItems() is an atomic combination of item generation and consumption.
// It can be used to implement crafting recipes or transmutations, or items which unpack
// themselves into other items (e.g., a chest).
// ExchangeItems requires a whitelist - you must define recipes (lists of the components
// required for the exchange) on the target ItemDefinition. Exchanges that do not match
// a recipe, or do not provide the required amounts, will fail.
// Exchange recipes are defined in the ItemDef, and explicitly list the required item
// types and resulting generated type.
// Exchange recipes are evaluated atomically by the Inventory Service; if the supplied
// components do not match the recipe, or do not contain sufficient quantity, the
// exchange will fail.
virtual bool ExchangeItems( SteamInventoryResult_t *pResultHandle,
ARRAY_COUNT(unArrayGenerateLength) const SteamItemDef_t *pArrayGenerate, ARRAY_COUNT(unArrayGenerateLength) const uint32 *punArrayGenerateQuantity, uint32 unArrayGenerateLength,
ARRAY_COUNT(unArrayDestroyLength) const SteamItemInstanceID_t *pArrayDestroy, ARRAY_COUNT(unArrayDestroyLength) const uint32 *punArrayDestroyQuantity, uint32 unArrayDestroyLength ) = 0;
@ -314,7 +328,7 @@ public:
DESC(Size of array is passed in and actual size used is returned in this param) uint32 *punItemDefIDsArraySize ) = 0;
};
#define STEAMINVENTORY_INTERFACE_VERSION "STEAMINVENTORY_INTERFACE_V001"
#define STEAMINVENTORY_INTERFACE_VERSION "STEAMINVENTORY_INTERFACE_V002"
// SteamInventoryResultReady_t callbacks are fired whenever asynchronous

View File

@ -123,17 +123,19 @@ enum EItemState
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,
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,
k_EItemStatistic_NumSecondsPlayedDuringTimePeriod = 11,
k_EItemStatistic_NumPlaytimeSessionsDuringTimePeriod = 12,
};
enum EItemPreviewType
@ -234,6 +236,7 @@ public:
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 SetReturnPlaytimeStats( UGCQueryHandle_t handle, uint32 unDays ) = 0;
virtual bool SetLanguage( UGCQueryHandle_t handle, const char *pchLanguage ) = 0;
virtual bool SetAllowCachedResponse( UGCQueryHandle_t handle, uint32 unMaxAgeSeconds ) = 0;
@ -320,9 +323,15 @@ public:
virtual SteamAPICall_t StopPlaytimeTracking( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs ) = 0;
CALL_RESULT( StopPlaytimeTrackingResult_t )
virtual SteamAPICall_t StopPlaytimeTrackingForAllItems() = 0;
// parent-child relationship or dependency management
CALL_RESULT( AddUGCDependencyResult_t )
virtual SteamAPICall_t AddDependency( PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ) = 0;
CALL_RESULT( RemoveUGCDependencyResult_t )
virtual SteamAPICall_t RemoveDependency( PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ) = 0;
};
#define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION009"
#define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION010"
//-----------------------------------------------------------------------------
// Purpose: Callback for querying UGC
@ -447,6 +456,28 @@ struct StopPlaytimeTrackingResult_t
EResult m_eResult;
};
//-----------------------------------------------------------------------------
// Purpose: The result of a call to AddDependency
//-----------------------------------------------------------------------------
struct AddUGCDependencyResult_t
{
enum { k_iCallback = k_iClientUGCCallbacks + 12 };
EResult m_eResult;
PublishedFileId_t m_nPublishedFileId;
PublishedFileId_t m_nChildPublishedFileId;
};
//-----------------------------------------------------------------------------
// Purpose: The result of a call to RemoveDependency
//-----------------------------------------------------------------------------
struct RemoveUGCDependencyResult_t
{
enum { k_iCallback = k_iClientUGCCallbacks + 13 };
EResult m_eResult;
PublishedFileId_t m_nPublishedFileId;
PublishedFileId_t m_nChildPublishedFileId;
};
#pragma pack( pop )

View File

@ -89,36 +89,50 @@ public:
// k_eVoiceResultNotRecording
virtual void StopVoiceRecording( ) = 0;
// Determine the amount of captured audio data that is available in bytes.
// This provides both the compressed and uncompressed data. Please note that the uncompressed
// data is not the raw feed from the microphone: data may only be available if audible
// levels of speech are detected.
// nUncompressedVoiceDesiredSampleRate is necessary to know the number of bytes to return in pcbUncompressed - can be set to 0 if you don't need uncompressed (the usual case)
// If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nUncompressedVoiceDesiredSampleRate
virtual EVoiceResult GetAvailableVoice( uint32 *pcbCompressed, uint32 *pcbUncompressed, uint32 nUncompressedVoiceDesiredSampleRate ) = 0;
// Determine the size of captured audio data that is available from GetVoice.
// Most applications will only use compressed data and should ignore the other
// parameters, which exist primarily for backwards compatibility. See comments
// below for further explanation of "uncompressed" data.
virtual EVoiceResult GetAvailableVoice( uint32 *pcbCompressed, uint32 *pcbUncompressed_Deprecated = 0, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated = 0 ) = 0;
// Gets the latest voice data from the microphone. Compressed data is an arbitrary format, and is meant to be handed back to
// DecompressVoice() for playback later as a binary blob. Uncompressed data is 16-bit, signed integer, 11025Hz PCM format.
// Please note that the uncompressed data is not the raw feed from the microphone: data may only be available if audible
// levels of speech are detected, and may have passed through denoising filters, etc.
// This function should be called as often as possible once recording has started; once per frame at least.
// nBytesWritten is set to the number of bytes written to pDestBuffer.
// nUncompressedBytesWritten is set to the number of bytes written to pUncompressedDestBuffer.
// You must grab both compressed and uncompressed here at the same time, if you want both.
// Matching data that is not read during this call will be thrown away.
// GetAvailableVoice() can be used to determine how much data is actually available.
// If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nUncompressedVoiceDesiredSampleRate
virtual EVoiceResult GetVoice( bool bWantCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, bool bWantUncompressed, void *pUncompressedDestBuffer, uint32 cbUncompressedDestBufferSize, uint32 *nUncompressBytesWritten, uint32 nUncompressedVoiceDesiredSampleRate ) = 0;
// ---------------------------------------------------------------------------
// NOTE: "uncompressed" audio is a deprecated feature and should not be used
// by most applications. It is raw single-channel 16-bit PCM wave data which
// may have been run through preprocessing filters and/or had silence removed,
// so the uncompressed audio could have a shorter duration than you expect.
// There may be no data at all during long periods of silence. Also, fetching
// uncompressed audio will cause GetVoice to discard any leftover compressed
// audio, so you must fetch both types at once. Finally, GetAvailableVoice is
// not precisely accurate when the uncompressed size is requested. So if you
// really need to use uncompressed audio, you should call GetVoice frequently
// with two very large (20kb+) output buffers instead of trying to allocate
// perfectly-sized buffers. But most applications should ignore all of these
// details and simply leave the "uncompressed" parameters as NULL/zero.
// ---------------------------------------------------------------------------
// Decompresses a chunk of compressed data produced by GetVoice().
// nBytesWritten is set to the number of bytes written to pDestBuffer unless the return value is k_EVoiceResultBufferTooSmall.
// In that case, nBytesWritten is set to the size of the buffer required to decompress the given
// data. The suggested buffer size for the destination buffer is 22 kilobytes.
// The output format of the data is 16-bit signed at the requested samples per second.
// If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nDesiredSampleRate
// Read captured audio data from the microphone buffer. This should be called
// at least once per frame, and preferably every few milliseconds, to keep the
// microphone input delay as low as possible. Most applications will only use
// compressed data and should pass NULL/zero for the "uncompressed" parameters.
// Compressed data can be transmitted by your application and decoded into raw
// using the DecompressVoice function below.
virtual EVoiceResult GetVoice( bool bWantCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, bool bWantUncompressed_Deprecated = false, void *pUncompressedDestBuffer_Deprecated = 0, uint32 cbUncompressedDestBufferSize_Deprecated = 0, uint32 *nUncompressBytesWritten_Deprecated = 0, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated = 0 ) = 0;
// Decodes the compressed voice data returned by GetVoice. The output data is
// raw single-channel 16-bit PCM audio. The decoder supports any sample rate
// from 11025 to 48000; see GetVoiceOptimalSampleRate() below for details.
// If the output buffer is not large enough, then *nBytesWritten will be set
// to the required buffer size, and k_EVoiceResultBufferTooSmall is returned.
// It is suggested to start with a 20kb buffer and reallocate as necessary.
virtual EVoiceResult DecompressVoice( const void *pCompressed, uint32 cbCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, uint32 nDesiredSampleRate ) = 0;
// This returns the frequency of the voice data as it's stored internally; calling DecompressVoice() with this size will yield the best results
// This returns the native sample rate of the Steam voice decompressor; using
// this sample rate for DecompressVoice will perform the least CPU processing.
// However, the final audio quality will depend on how well the audio device
// (and/or your application's audio output SDK) deals with lower sample rates.
// You may find that you get the best audio output quality when you ignore
// this function and use the native sample rate of your audio output device,
// which is usually 48000 or 44100.
virtual uint32 GetVoiceOptimalSampleRate() = 0;
// Retrieve ticket to be sent to the entity who wishes to authenticate you.

View File

@ -159,9 +159,19 @@ public:
// ask SteamUI to create and render its OpenVR dashboard
virtual void StartVRDashboard() = 0;
// Returns true if the HMD content will be streamed via Steam In-Home Streaming
virtual bool IsVRHeadsetStreamingEnabled() = 0;
// Set whether the HMD content will be streamed via Steam In-Home Streaming
// If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed.
// If this is set to false, then the application window will be streamed instead, and remote input will be allowed.
// The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game.
// (this is useful for games that have asymmetric multiplayer gameplay)
virtual void SetVRHeadsetStreamingEnabled( bool bEnabled ) = 0;
};
#define STEAMUTILS_INTERFACE_VERSION "SteamUtils008"
#define STEAMUTILS_INTERFACE_VERSION "SteamUtils009"
// callbacks

View File

@ -36,9 +36,14 @@ public:
// returns true if user is uploading a live broadcast
virtual bool IsBroadcasting( int *pnNumViewers ) = 0;
// Get the OPF Details for 360 Video Playback
CALL_BACK( GetOPFSettingsResult_t )
virtual void GetOPFSettings( AppId_t unVideoAppID ) = 0;
virtual bool GetOPFStringForApp( AppId_t unVideoAppID, char *pchBuffer, int32 *pnBufferSize ) = 0;
};
#define STEAMVIDEO_INTERFACE_VERSION "STEAMVIDEO_INTERFACE_V001"
#define STEAMVIDEO_INTERFACE_VERSION "STEAMVIDEO_INTERFACE_V002"
DEFINE_CALLBACK( BroadcastUploadStart_t, k_iClientVideoCallbacks + 4 )
END_DEFINE_CALLBACK_0()
@ -51,7 +56,13 @@ DEFINE_CALLBACK( GetVideoURLResult_t, k_iClientVideoCallbacks + 11 )
CALLBACK_MEMBER( 0, EResult, m_eResult )
CALLBACK_MEMBER( 1, AppId_t, m_unVideoAppID )
CALLBACK_MEMBER( 2, char, m_rgchURL[256] )
END_DEFINE_CALLBACK_1()
END_DEFINE_CALLBACK_3()
DEFINE_CALLBACK( GetOPFSettingsResult_t, k_iClientVideoCallbacks + 24 )
CALLBACK_MEMBER( 0, EResult, m_eResult )
CALLBACK_MEMBER( 1, AppId_t, m_unVideoAppID )
END_DEFINE_CALLBACK_2()
#pragma pack( pop )

View File

@ -108,6 +108,7 @@
,{"typedef": "BroadcastUploadStart_t::SteamCallback_t","type": "struct BroadcastUploadStart_t"}
,{"typedef": "BroadcastUploadStop_t::SteamCallback_t","type": "struct BroadcastUploadStop_t"}
,{"typedef": "GetVideoURLResult_t::SteamCallback_t","type": "struct GetVideoURLResult_t"}
,{"typedef": "GetOPFSettingsResult_t::SteamCallback_t","type": "struct GetOPFSettingsResult_t"}
,{"typedef": "CCallResult::func_t","type": "void (T::*)(P *, _Bool)"}
,{"typedef": "CCallback::func_t","type": "void (T::*)(P *)"}
],
@ -226,6 +227,8 @@
,{"name": "k_EResultInvalidItemType","value": "104"}
,{"name": "k_EResultIPBanned","value": "105"}
,{"name": "k_EResultGSLTExpired","value": "106"}
,{"name": "k_EResultInsufficientFunds","value": "107"}
,{"name": "k_EResultTooManyPending","value": "108"}
]}
, {"enumname": "EVoiceResult","values": [
{"name": "k_EVoiceResultOK","value": "0"}
@ -323,6 +326,7 @@
,{"name": "k_EAppOwnershipFlags_PendingGift","value": "32768"}
,{"name": "k_EAppOwnershipFlags_RentalNotActivated","value": "65536"}
,{"name": "k_EAppOwnershipFlags_Rental","value": "131072"}
,{"name": "k_EAppOwnershipFlags_SiteLicense","value": "262144"}
]}
, {"enumname": "EAppType","values": [
{"name": "k_EAppType_Invalid","value": "0"}
@ -805,7 +809,8 @@
,{"name": "k_EControllerSourceMode_MouseJoystick","value": "12"}
,{"name": "k_EControllerSourceMode_MouseRegion","value": "13"}
,{"name": "k_EControllerSourceMode_RadialMenu","value": "14"}
,{"name": "k_EControllerSourceMode_Switches","value": "15"}
,{"name": "k_EControllerSourceMode_SingleButton","value": "15"}
,{"name": "k_EControllerSourceMode_Switches","value": "16"}
]}
, {"enumname": "EControllerActionOrigin","values": [
{"name": "k_EControllerActionOrigin_None","value": "0"}
@ -964,37 +969,47 @@
,{"name": "k_EControllerActionOrigin_SteamV2_RightBumper","value": "153"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftGrip","value": "154"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightGrip","value": "155"}
,{"name": "k_EControllerActionOrigin_SteamV2_Start","value": "156"}
,{"name": "k_EControllerActionOrigin_SteamV2_Back","value": "157"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftPad_Touch","value": "158"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftPad_Swipe","value": "159"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftPad_Click","value": "160"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftPad_DPadNorth","value": "161"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftPad_DPadSouth","value": "162"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftPad_DPadWest","value": "163"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftPad_DPadEast","value": "164"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightPad_Touch","value": "165"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightPad_Swipe","value": "166"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightPad_Click","value": "167"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightPad_DPadNorth","value": "168"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightPad_DPadSouth","value": "169"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightPad_DPadWest","value": "170"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightPad_DPadEast","value": "171"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftTrigger_Pull","value": "172"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftTrigger_Click","value": "173"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightTrigger_Pull","value": "174"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightTrigger_Click","value": "175"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftStick_Move","value": "176"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftStick_Click","value": "177"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftStick_DPadNorth","value": "178"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftStick_DPadSouth","value": "179"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftStick_DPadWest","value": "180"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftStick_DPadEast","value": "181"}
,{"name": "k_EControllerActionOrigin_SteamV2_Gyro_Move","value": "182"}
,{"name": "k_EControllerActionOrigin_SteamV2_Gyro_Pitch","value": "183"}
,{"name": "k_EControllerActionOrigin_SteamV2_Gyro_Yaw","value": "184"}
,{"name": "k_EControllerActionOrigin_SteamV2_Gyro_Roll","value": "185"}
,{"name": "k_EControllerActionOrigin_Count","value": "186"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftGrip_Upper","value": "156"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightGrip_Upper","value": "157"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftBumper_Pressure","value": "158"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightBumper_Pressure","value": "159"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftGrip_Pressure","value": "160"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightGrip_Pressure","value": "161"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftGrip_Upper_Pressure","value": "162"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightGrip_Upper_Pressure","value": "163"}
,{"name": "k_EControllerActionOrigin_SteamV2_Start","value": "164"}
,{"name": "k_EControllerActionOrigin_SteamV2_Back","value": "165"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftPad_Touch","value": "166"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftPad_Swipe","value": "167"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftPad_Click","value": "168"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftPad_Pressure","value": "169"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftPad_DPadNorth","value": "170"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftPad_DPadSouth","value": "171"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftPad_DPadWest","value": "172"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftPad_DPadEast","value": "173"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightPad_Touch","value": "174"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightPad_Swipe","value": "175"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightPad_Click","value": "176"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightPad_Pressure","value": "177"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightPad_DPadNorth","value": "178"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightPad_DPadSouth","value": "179"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightPad_DPadWest","value": "180"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightPad_DPadEast","value": "181"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftTrigger_Pull","value": "182"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftTrigger_Click","value": "183"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightTrigger_Pull","value": "184"}
,{"name": "k_EControllerActionOrigin_SteamV2_RightTrigger_Click","value": "185"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftStick_Move","value": "186"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftStick_Click","value": "187"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftStick_DPadNorth","value": "188"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftStick_DPadSouth","value": "189"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftStick_DPadWest","value": "190"}
,{"name": "k_EControllerActionOrigin_SteamV2_LeftStick_DPadEast","value": "191"}
,{"name": "k_EControllerActionOrigin_SteamV2_Gyro_Move","value": "192"}
,{"name": "k_EControllerActionOrigin_SteamV2_Gyro_Pitch","value": "193"}
,{"name": "k_EControllerActionOrigin_SteamV2_Gyro_Yaw","value": "194"}
,{"name": "k_EControllerActionOrigin_SteamV2_Gyro_Roll","value": "195"}
,{"name": "k_EControllerActionOrigin_Count","value": "196"}
]}
, {"enumname": "ESteamControllerLEDFlag","values": [
{"name": "k_ESteamControllerLEDFlag_SetColor","value": "0"}
@ -1086,6 +1101,8 @@
,{"name": "k_EItemStatistic_NumSecondsPlayed","value": "8"}
,{"name": "k_EItemStatistic_NumPlaytimeSessions","value": "9"}
,{"name": "k_EItemStatistic_NumComments","value": "10"}
,{"name": "k_EItemStatistic_NumSecondsPlayedDuringTimePeriod","value": "11"}
,{"name": "k_EItemStatistic_NumPlaytimeSessionsDuringTimePeriod","value": "12"}
]}
, {"enumname": "EItemPreviewType","values": [
{"name": "k_EItemPreviewType_Image","value": "0"}
@ -1841,6 +1858,14 @@
{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]}
,{"struct": "StopPlaytimeTrackingResult_t","fields": [
{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]}
,{"struct": "AddUGCDependencyResult_t","fields": [
{ "fieldname": "m_eResult", "fieldtype": "enum EResult"},
{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"},
{ "fieldname": "m_nChildPublishedFileId", "fieldtype": "PublishedFileId_t"}]}
,{"struct": "RemoveUGCDependencyResult_t","fields": [
{ "fieldname": "m_eResult", "fieldtype": "enum EResult"},
{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"},
{ "fieldname": "m_nChildPublishedFileId", "fieldtype": "PublishedFileId_t"}]}
,{"struct": "SteamAppInstalled_t","fields": [
{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]}
,{"struct": "SteamAppUninstalled_t","fields": [
@ -1967,6 +1992,9 @@
{ "fieldname": "m_eResult", "fieldtype": "enum EResult"},
{ "fieldname": "m_unVideoAppID", "fieldtype": "AppId_t"},
{ "fieldname": "m_rgchURL", "fieldtype": "char [256]"}]}
,{"struct": "GetOPFSettingsResult_t","fields": [
{ "fieldname": "m_eResult", "fieldtype": "enum EResult"},
{ "fieldname": "m_unVideoAppID", "fieldtype": "AppId_t"}]}
,{"struct": "CSteamAPIContext","fields": [
{ "fieldname": "m_pSteamClient", "fieldtype": "class ISteamClient *"},
{ "fieldname": "m_pSteamUser", "fieldtype": "class ISteamUser *"},
@ -2417,8 +2445,8 @@
"returntype": "EVoiceResult",
"params": [
{ "paramname": "pcbCompressed" ,"paramtype": "uint32 *"},
{ "paramname": "pcbUncompressed" ,"paramtype": "uint32 *"},
{ "paramname": "nUncompressedVoiceDesiredSampleRate" ,"paramtype": "uint32"}
{ "paramname": "pcbUncompressed_Deprecated" ,"paramtype": "uint32 *"},
{ "paramname": "nUncompressedVoiceDesiredSampleRate_Deprecated" ,"paramtype": "uint32"}
]
}
,{
@ -2430,11 +2458,11 @@
{ "paramname": "pDestBuffer" ,"paramtype": "void *"},
{ "paramname": "cbDestBufferSize" ,"paramtype": "uint32"},
{ "paramname": "nBytesWritten" ,"paramtype": "uint32 *"},
{ "paramname": "bWantUncompressed" ,"paramtype": "bool"},
{ "paramname": "pUncompressedDestBuffer" ,"paramtype": "void *"},
{ "paramname": "cbUncompressedDestBufferSize" ,"paramtype": "uint32"},
{ "paramname": "nUncompressBytesWritten" ,"paramtype": "uint32 *"},
{ "paramname": "nUncompressedVoiceDesiredSampleRate" ,"paramtype": "uint32"}
{ "paramname": "bWantUncompressed_Deprecated" ,"paramtype": "bool"},
{ "paramname": "pUncompressedDestBuffer_Deprecated" ,"paramtype": "void *"},
{ "paramname": "cbUncompressedDestBufferSize_Deprecated" ,"paramtype": "uint32"},
{ "paramname": "nUncompressBytesWritten_Deprecated" ,"paramtype": "uint32 *"},
{ "paramname": "nUncompressedVoiceDesiredSampleRate_Deprecated" ,"paramtype": "uint32"}
]
}
,{
@ -3336,6 +3364,19 @@
"methodname": "StartVRDashboard",
"returntype": "void"
}
,{
"classname": "ISteamUtils",
"methodname": "IsVRHeadsetStreamingEnabled",
"returntype": "bool"
}
,{
"classname": "ISteamUtils",
"methodname": "SetVRHeadsetStreamingEnabled",
"returntype": "void",
"params": [
{ "paramname": "bEnabled" ,"paramtype": "bool"}
]
}
,{
"classname": "ISteamMatchmaking",
"methodname": "GetFavoriteGameCount",
@ -6301,6 +6342,15 @@
{ "paramname": "bReturnTotalOnly" ,"paramtype": "bool"}
]
}
,{
"classname": "ISteamUGC",
"methodname": "SetReturnPlaytimeStats",
"returntype": "bool",
"params": [
{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"},
{ "paramname": "unDays" ,"paramtype": "uint32"}
]
}
,{
"classname": "ISteamUGC",
"methodname": "SetLanguage",
@ -6694,6 +6744,24 @@
"methodname": "StopPlaytimeTrackingForAllItems", "callresult": "StopPlaytimeTrackingResult_t",
"returntype": "SteamAPICall_t"
}
,{
"classname": "ISteamUGC",
"methodname": "AddDependency", "callresult": "AddUGCDependencyResult_t",
"returntype": "SteamAPICall_t",
"params": [
{ "paramname": "nParentPublishedFileID" ,"paramtype": "PublishedFileId_t"},
{ "paramname": "nChildPublishedFileID" ,"paramtype": "PublishedFileId_t"}
]
}
,{
"classname": "ISteamUGC",
"methodname": "RemoveDependency", "callresult": "RemoveUGCDependencyResult_t",
"returntype": "SteamAPICall_t",
"params": [
{ "paramname": "nParentPublishedFileID" ,"paramtype": "PublishedFileId_t"},
{ "paramname": "nChildPublishedFileID" ,"paramtype": "PublishedFileId_t"}
]
}
,{
"classname": "ISteamAppList",
"methodname": "GetNumInstalledApps",
@ -7065,6 +7133,18 @@
{ "paramname": "punOutItemsArraySize" ,"paramtype": "uint32 *"}
]
}
,{
"classname": "ISteamInventory",
"methodname": "GetResultItemProperty",
"returntype": "bool",
"params": [
{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"},
{ "paramname": "unItemIndex" ,"paramtype": "uint32"},
{ "paramname": "pchPropertyName" ,"paramtype": "const char *"},
{ "paramname": "pchValueBuffer" ,"out_string_count": "punValueBufferSizeOut" ,"paramtype": "char *"},
{ "paramname": "punValueBufferSizeOut" ,"paramtype": "uint32 *"}
]
}
,{
"classname": "ISteamInventory",
"methodname": "GetResultTimestamp", "desc": "Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age.",
@ -7290,6 +7370,24 @@
{ "paramname": "pnNumViewers" ,"paramtype": "int *"}
]
}
,{
"classname": "ISteamVideo",
"methodname": "GetOPFSettings", "callback": "GetOPFSettingsResult_t",
"returntype": "void",
"params": [
{ "paramname": "unVideoAppID" ,"paramtype": "AppId_t"}
]
}
,{
"classname": "ISteamVideo",
"methodname": "GetOPFStringForApp",
"returntype": "bool",
"params": [
{ "paramname": "unVideoAppID" ,"paramtype": "AppId_t"},
{ "paramname": "pchBuffer" ,"paramtype": "char *"},
{ "paramname": "pnBufferSize" ,"paramtype": "int32 *"}
]
}
,{
"classname": "ISteamGameServer",
"methodname": "InitGameServer",

View File

@ -181,8 +181,8 @@ S_API void SteamAPI_ISteamUser_TrackAppUsageEvent(intptr_t instancePtr, class CG
S_API bool SteamAPI_ISteamUser_GetUserDataFolder(intptr_t instancePtr, char * pchBuffer, int cubBuffer);
S_API void SteamAPI_ISteamUser_StartVoiceRecording(intptr_t instancePtr);
S_API void SteamAPI_ISteamUser_StopVoiceRecording(intptr_t instancePtr);
S_API EVoiceResult SteamAPI_ISteamUser_GetAvailableVoice(intptr_t instancePtr, uint32 * pcbCompressed, uint32 * pcbUncompressed, uint32 nUncompressedVoiceDesiredSampleRate);
S_API EVoiceResult SteamAPI_ISteamUser_GetVoice(intptr_t instancePtr, bool bWantCompressed, void * pDestBuffer, uint32 cbDestBufferSize, uint32 * nBytesWritten, bool bWantUncompressed, void * pUncompressedDestBuffer, uint32 cbUncompressedDestBufferSize, uint32 * nUncompressBytesWritten, uint32 nUncompressedVoiceDesiredSampleRate);
S_API EVoiceResult SteamAPI_ISteamUser_GetAvailableVoice(intptr_t instancePtr, uint32 * pcbCompressed, uint32 * pcbUncompressed_Deprecated, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated);
S_API EVoiceResult SteamAPI_ISteamUser_GetVoice(intptr_t instancePtr, bool bWantCompressed, void * pDestBuffer, uint32 cbDestBufferSize, uint32 * nBytesWritten, bool bWantUncompressed_Deprecated, void * pUncompressedDestBuffer_Deprecated, uint32 cbUncompressedDestBufferSize_Deprecated, uint32 * nUncompressBytesWritten_Deprecated, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated);
S_API EVoiceResult SteamAPI_ISteamUser_DecompressVoice(intptr_t instancePtr, const void * pCompressed, uint32 cbCompressed, void * pDestBuffer, uint32 cbDestBufferSize, uint32 * nBytesWritten, uint32 nDesiredSampleRate);
S_API uint32 SteamAPI_ISteamUser_GetVoiceOptimalSampleRate(intptr_t instancePtr);
S_API HAuthTicket SteamAPI_ISteamUser_GetAuthSessionTicket(intptr_t instancePtr, void * pTicket, int cbMaxTicket, uint32 * pcbTicket);
@ -298,6 +298,8 @@ S_API bool SteamAPI_ISteamUtils_IsSteamRunningInVR(intptr_t instancePtr);
S_API void SteamAPI_ISteamUtils_SetOverlayNotificationInset(intptr_t instancePtr, int nHorizontalInset, int nVerticalInset);
S_API bool SteamAPI_ISteamUtils_IsSteamInBigPictureMode(intptr_t instancePtr);
S_API void SteamAPI_ISteamUtils_StartVRDashboard(intptr_t instancePtr);
S_API bool SteamAPI_ISteamUtils_IsVRHeadsetStreamingEnabled(intptr_t instancePtr);
S_API void SteamAPI_ISteamUtils_SetVRHeadsetStreamingEnabled(intptr_t instancePtr, bool bEnabled);
S_API int SteamAPI_ISteamMatchmaking_GetFavoriteGameCount(intptr_t instancePtr);
S_API bool SteamAPI_ISteamMatchmaking_GetFavoriteGame(intptr_t instancePtr, int iGame, AppId_t * pnAppID, uint32 * pnIP, uint16 * pnConnPort, uint16 * pnQueryPort, uint32 * punFlags, uint32 * pRTime32LastPlayedOnServer);
S_API int SteamAPI_ISteamMatchmaking_AddFavoriteGame(intptr_t instancePtr, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags, uint32 rTime32LastPlayedOnServer);
@ -639,6 +641,7 @@ S_API bool SteamAPI_ISteamUGC_SetReturnMetadata(intptr_t instancePtr, UGCQueryHa
S_API bool SteamAPI_ISteamUGC_SetReturnChildren(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnChildren);
S_API bool SteamAPI_ISteamUGC_SetReturnAdditionalPreviews(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnAdditionalPreviews);
S_API bool SteamAPI_ISteamUGC_SetReturnTotalOnly(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnTotalOnly);
S_API bool SteamAPI_ISteamUGC_SetReturnPlaytimeStats(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 unDays);
S_API bool SteamAPI_ISteamUGC_SetLanguage(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pchLanguage);
S_API bool SteamAPI_ISteamUGC_SetAllowCachedResponse(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 unMaxAgeSeconds);
S_API bool SteamAPI_ISteamUGC_SetCloudFileNameFilter(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pMatchCloudFileName);
@ -683,6 +686,8 @@ S_API void SteamAPI_ISteamUGC_SuspendDownloads(intptr_t instancePtr, bool bSuspe
S_API SteamAPICall_t SteamAPI_ISteamUGC_StartPlaytimeTracking(intptr_t instancePtr, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs);
S_API SteamAPICall_t SteamAPI_ISteamUGC_StopPlaytimeTracking(intptr_t instancePtr, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs);
S_API SteamAPICall_t SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems(intptr_t instancePtr);
S_API SteamAPICall_t SteamAPI_ISteamUGC_AddDependency(intptr_t instancePtr, PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID);
S_API SteamAPICall_t SteamAPI_ISteamUGC_RemoveDependency(intptr_t instancePtr, PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID);
S_API uint32 SteamAPI_ISteamAppList_GetNumInstalledApps(intptr_t instancePtr);
S_API uint32 SteamAPI_ISteamAppList_GetInstalledApps(intptr_t instancePtr, AppId_t * pvecAppID, uint32 unMaxAppIDs);
S_API int SteamAPI_ISteamAppList_GetAppName(intptr_t instancePtr, AppId_t nAppID, char * pchName, int cchNameMax);
@ -725,6 +730,7 @@ S_API void SteamAPI_ISteamHTMLSurface_AllowStartRequest(intptr_t instancePtr, HH
S_API void SteamAPI_ISteamHTMLSurface_JSDialogResponse(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, bool bResult);
S_API EResult SteamAPI_ISteamInventory_GetResultStatus(intptr_t instancePtr, SteamInventoryResult_t resultHandle);
S_API bool SteamAPI_ISteamInventory_GetResultItems(intptr_t instancePtr, SteamInventoryResult_t resultHandle, struct SteamItemDetails_t * pOutItemsArray, uint32 * punOutItemsArraySize);
S_API bool SteamAPI_ISteamInventory_GetResultItemProperty(intptr_t instancePtr, SteamInventoryResult_t resultHandle, uint32 unItemIndex, const char * pchPropertyName, char * pchValueBuffer, uint32 * punValueBufferSizeOut);
S_API uint32 SteamAPI_ISteamInventory_GetResultTimestamp(intptr_t instancePtr, SteamInventoryResult_t resultHandle);
S_API bool SteamAPI_ISteamInventory_CheckResultSteamID(intptr_t instancePtr, SteamInventoryResult_t resultHandle, class CSteamID steamIDExpected);
S_API void SteamAPI_ISteamInventory_DestroyResult(intptr_t instancePtr, SteamInventoryResult_t resultHandle);
@ -749,6 +755,8 @@ S_API SteamAPICall_t SteamAPI_ISteamInventory_RequestEligiblePromoItemDefinition
S_API bool SteamAPI_ISteamInventory_GetEligiblePromoItemDefinitionIDs(intptr_t instancePtr, class CSteamID steamID, SteamItemDef_t * pItemDefIDs, uint32 * punItemDefIDsArraySize);
S_API void SteamAPI_ISteamVideo_GetVideoURL(intptr_t instancePtr, AppId_t unVideoAppID);
S_API bool SteamAPI_ISteamVideo_IsBroadcasting(intptr_t instancePtr, int * pnNumViewers);
S_API void SteamAPI_ISteamVideo_GetOPFSettings(intptr_t instancePtr, AppId_t unVideoAppID);
S_API bool SteamAPI_ISteamVideo_GetOPFStringForApp(intptr_t instancePtr, AppId_t unVideoAppID, char * pchBuffer, int32 * pnBufferSize);
S_API bool SteamAPI_ISteamGameServer_InitGameServer(intptr_t instancePtr, uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char * pchVersionString);
S_API void SteamAPI_ISteamGameServer_SetProduct(intptr_t instancePtr, const char * pszProduct);
S_API void SteamAPI_ISteamGameServer_SetGameDescription(intptr_t instancePtr, const char * pszGameDescription);

View File

@ -7,11 +7,6 @@
#ifndef STEAM_API_INTERNAL_H
#define STEAM_API_INTERNAL_H
#include "isteamugc.h"
#include "steam_api.h"
#include "steamtypes.h"
S_API HSteamUser SteamAPI_GetHSteamUser();
S_API void * S_CALLTYPE SteamInternal_ContextInit( void *pContextInitData );
S_API void * S_CALLTYPE SteamInternal_CreateInterface( const char *ver );

View File

@ -100,9 +100,9 @@ internal static extern void SteamAPI_ISteamUser_StartVoiceRecording(IntPtr insta
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_StopVoiceRecording")]
internal static extern void SteamAPI_ISteamUser_StopVoiceRecording(IntPtr instancePtr);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetAvailableVoice")]
internal static extern uint SteamAPI_ISteamUser_GetAvailableVoice(IntPtr instancePtr, ref uint pcbCompressed, ref uint pcbUncompressed, uint nUncompressedVoiceDesiredSampleRate);
internal static extern uint SteamAPI_ISteamUser_GetAvailableVoice(IntPtr instancePtr, ref uint pcbCompressed, ref uint pcbUncompressed_Deprecated, uint nUncompressedVoiceDesiredSampleRate_Deprecated);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetVoice")]
internal static extern uint SteamAPI_ISteamUser_GetVoice(IntPtr instancePtr, bool bWantCompressed, IntPtr pDestBuffer, uint cbDestBufferSize, ref uint nBytesWritten, bool bWantUncompressed, IntPtr pUncompressedDestBuffer, uint cbUncompressedDestBufferSize, ref uint nUncompressBytesWritten, uint nUncompressedVoiceDesiredSampleRate);
internal static extern uint SteamAPI_ISteamUser_GetVoice(IntPtr instancePtr, bool bWantCompressed, IntPtr pDestBuffer, uint cbDestBufferSize, ref uint nBytesWritten, bool bWantUncompressed_Deprecated, IntPtr pUncompressedDestBuffer_Deprecated, uint cbUncompressedDestBufferSize_Deprecated, ref uint nUncompressBytesWritten_Deprecated, uint nUncompressedVoiceDesiredSampleRate_Deprecated);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_DecompressVoice")]
internal static extern uint SteamAPI_ISteamUser_DecompressVoice(IntPtr instancePtr, IntPtr pCompressed, uint cbCompressed, IntPtr pDestBuffer, uint cbDestBufferSize, ref uint nBytesWritten, uint nDesiredSampleRate);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetVoiceOptimalSampleRate")]
@ -333,6 +333,10 @@ internal static extern void SteamAPI_ISteamUtils_SetOverlayNotificationInset(Int
internal static extern bool SteamAPI_ISteamUtils_IsSteamInBigPictureMode(IntPtr instancePtr);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_StartVRDashboard")]
internal static extern void SteamAPI_ISteamUtils_StartVRDashboard(IntPtr instancePtr);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_IsVRHeadsetStreamingEnabled")]
internal static extern bool SteamAPI_ISteamUtils_IsVRHeadsetStreamingEnabled(IntPtr instancePtr);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_SetVRHeadsetStreamingEnabled")]
internal static extern void SteamAPI_ISteamUtils_SetVRHeadsetStreamingEnabled(IntPtr instancePtr, bool bEnabled);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetFavoriteGameCount")]
internal static extern int SteamAPI_ISteamMatchmaking_GetFavoriteGameCount(IntPtr instancePtr);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetFavoriteGame")]
@ -1015,6 +1019,8 @@ internal static extern bool SteamAPI_ISteamUGC_SetReturnChildren(IntPtr instance
internal static extern bool SteamAPI_ISteamUGC_SetReturnAdditionalPreviews(IntPtr instancePtr, ulong handle, bool bReturnAdditionalPreviews);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnTotalOnly")]
internal static extern bool SteamAPI_ISteamUGC_SetReturnTotalOnly(IntPtr instancePtr, ulong handle, bool bReturnTotalOnly);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnPlaytimeStats")]
internal static extern bool SteamAPI_ISteamUGC_SetReturnPlaytimeStats(IntPtr instancePtr, ulong handle, uint unDays);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetLanguage")]
internal static extern bool SteamAPI_ISteamUGC_SetLanguage(IntPtr instancePtr, ulong handle, string pchLanguage);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetAllowCachedResponse")]
@ -1103,6 +1109,10 @@ internal static extern ulong SteamAPI_ISteamUGC_StartPlaytimeTracking(IntPtr ins
internal static extern ulong SteamAPI_ISteamUGC_StopPlaytimeTracking(IntPtr instancePtr, ref ulong pvecPublishedFileID, uint unNumPublishedFileIDs);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems")]
internal static extern ulong SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems(IntPtr instancePtr);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddDependency")]
internal static extern ulong SteamAPI_ISteamUGC_AddDependency(IntPtr instancePtr, ulong nParentPublishedFileID, ulong nChildPublishedFileID);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_RemoveDependency")]
internal static extern ulong SteamAPI_ISteamUGC_RemoveDependency(IntPtr instancePtr, ulong nParentPublishedFileID, ulong nChildPublishedFileID);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamAppList_GetNumInstalledApps")]
internal static extern uint SteamAPI_ISteamAppList_GetNumInstalledApps(IntPtr instancePtr);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamAppList_GetInstalledApps")]
@ -1187,6 +1197,8 @@ internal static extern void SteamAPI_ISteamHTMLSurface_JSDialogResponse(IntPtr i
internal static extern uint SteamAPI_ISteamInventory_GetResultStatus(IntPtr instancePtr, int resultHandle);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetResultItems")]
internal static extern bool SteamAPI_ISteamInventory_GetResultItems(IntPtr instancePtr, int resultHandle, [In, Out] SteamItemDetails_t[] pOutItemsArray, ref uint punOutItemsArraySize);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetResultItemProperty")]
internal static extern bool SteamAPI_ISteamInventory_GetResultItemProperty(IntPtr instancePtr, int resultHandle, uint unItemIndex, string pchPropertyName, System.Text.StringBuilder pchValueBuffer, ref uint punValueBufferSizeOut);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetResultTimestamp")]
internal static extern uint SteamAPI_ISteamInventory_GetResultTimestamp(IntPtr instancePtr, int resultHandle);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_CheckResultSteamID")]
@ -1235,6 +1247,10 @@ internal static extern bool SteamAPI_ISteamInventory_GetEligiblePromoItemDefinit
internal static extern void SteamAPI_ISteamVideo_GetVideoURL(IntPtr instancePtr, uint unVideoAppID);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamVideo_IsBroadcasting")]
internal static extern bool SteamAPI_ISteamVideo_IsBroadcasting(IntPtr instancePtr, ref int pnNumViewers);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamVideo_GetOPFSettings")]
internal static extern void SteamAPI_ISteamVideo_GetOPFSettings(IntPtr instancePtr, uint unVideoAppID);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamVideo_GetOPFStringForApp")]
internal static extern bool SteamAPI_ISteamVideo_GetOPFStringForApp(IntPtr instancePtr, uint unVideoAppID, string pchBuffer, ref int pnBufferSize);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_InitGameServer")]
internal static extern bool SteamAPI_ISteamGameServer_InitGameServer(IntPtr instancePtr, uint unIP, char usGamePort, char usQueryPort, uint unFlags, uint nGameAppId, string pchVersionString);
[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetProduct")]
@ -1348,6 +1364,11 @@ public delegate void SteamAPI_UserStatsReceived_t_Callback(UserStatsReceived_t p
public static extern ulong CUserStatsReceived_t_SetCallback(SteamAPI_UserStatsReceived_t_Callback func);
[DllImportAttribute("Steam_api", EntryPoint = "CUserStatsReceived_t_RemoveCallback")]
public static extern ulong CUserStatsReceived_t_RemoveCallback(ulong handle);
public delegate void SteamAPI_GetOPFSettingsResult_t_Callback(GetOPFSettingsResult_t pGetOPFSettingsResult_t);
[DllImportAttribute("Steam_api", EntryPoint = "CGetOPFSettingsResult_t_SetCallback")]
public static extern ulong CGetOPFSettingsResult_t_SetCallback(SteamAPI_GetOPFSettingsResult_t_Callback func);
[DllImportAttribute("Steam_api", EntryPoint = "CGetOPFSettingsResult_t_RemoveCallback")]
public static extern ulong CGetOPFSettingsResult_t_RemoveCallback(ulong handle);
public delegate void SteamAPI_RemoteStorageFileReadAsyncComplete_t_CallResult(RemoteStorageFileReadAsyncComplete_t pRemoteStorageFileReadAsyncComplete_t, bool bIOFailure);
[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileReadAsyncComplete_t_SetCallResult")]
public static extern ulong CRemoteStorageFileReadAsyncComplete_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageFileReadAsyncComplete_t_CallResult func);
@ -1418,6 +1439,11 @@ public delegate void SteamAPI_RemoteStorageGetPublishedFileDetailsResult_t_CallR
public static extern ulong CRemoteStorageGetPublishedFileDetailsResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageGetPublishedFileDetailsResult_t_CallResult func);
[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageGetPublishedFileDetailsResult_t_RemoveCallResult")]
public static extern ulong CRemoteStorageGetPublishedFileDetailsResult_t_RemoveCallResult(ulong handle);
public delegate void SteamAPI_AddUGCDependencyResult_t_CallResult(AddUGCDependencyResult_t pAddUGCDependencyResult_t, bool bIOFailure);
[DllImportAttribute("Steam_api", EntryPoint = "CAddUGCDependencyResult_t_SetCallResult")]
public static extern ulong CAddUGCDependencyResult_t_SetCallResult(ulong hAPICall, SteamAPI_AddUGCDependencyResult_t_CallResult func);
[DllImportAttribute("Steam_api", EntryPoint = "CAddUGCDependencyResult_t_RemoveCallResult")]
public static extern ulong CAddUGCDependencyResult_t_RemoveCallResult(ulong handle);
public delegate void SteamAPI_RemoteStorageDownloadUGCResult_t_CallResult(RemoteStorageDownloadUGCResult_t pRemoteStorageDownloadUGCResult_t, bool bIOFailure);
[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageDownloadUGCResult_t_SetCallResult")]
public static extern ulong CRemoteStorageDownloadUGCResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageDownloadUGCResult_t_CallResult func);
@ -1523,6 +1549,11 @@ public delegate void SteamAPI_RemoteStorageEnumerateWorkshopFilesResult_t_CallRe
public static extern ulong CRemoteStorageEnumerateWorkshopFilesResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageEnumerateWorkshopFilesResult_t_CallResult func);
[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateWorkshopFilesResult_t_RemoveCallResult")]
public static extern ulong CRemoteStorageEnumerateWorkshopFilesResult_t_RemoveCallResult(ulong handle);
public delegate void SteamAPI_RemoveUGCDependencyResult_t_CallResult(RemoveUGCDependencyResult_t pRemoveUGCDependencyResult_t, bool bIOFailure);
[DllImportAttribute("Steam_api", EntryPoint = "CRemoveUGCDependencyResult_t_SetCallResult")]
public static extern ulong CRemoveUGCDependencyResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoveUGCDependencyResult_t_CallResult func);
[DllImportAttribute("Steam_api", EntryPoint = "CRemoveUGCDependencyResult_t_RemoveCallResult")]
public static extern ulong CRemoveUGCDependencyResult_t_RemoveCallResult(ulong handle);
public delegate void SteamAPI_GSReputation_t_CallResult(GSReputation_t pGSReputation_t, bool bIOFailure);
[DllImportAttribute("Steam_api", EntryPoint = "CGSReputation_t_SetCallResult")]
public static extern ulong CGSReputation_t_SetCallResult(ulong hAPICall, SteamAPI_GSReputation_t_CallResult func);
@ -1671,8 +1702,8 @@ namespace Valve.Steamworks
public abstract bool GetUserDataFolder(string pchBuffer,int cubBuffer);
public abstract void StartVoiceRecording();
public abstract void StopVoiceRecording();
public abstract uint GetAvailableVoice(ref uint pcbCompressed,ref uint pcbUncompressed,uint nUncompressedVoiceDesiredSampleRate);
public abstract uint GetVoice(bool bWantCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,bool bWantUncompressed,IntPtr pUncompressedDestBuffer,uint cbUncompressedDestBufferSize,ref uint nUncompressBytesWritten,uint nUncompressedVoiceDesiredSampleRate);
public abstract uint GetAvailableVoice(ref uint pcbCompressed,ref uint pcbUncompressed_Deprecated,uint nUncompressedVoiceDesiredSampleRate_Deprecated);
public abstract uint GetVoice(bool bWantCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,bool bWantUncompressed_Deprecated,IntPtr pUncompressedDestBuffer_Deprecated,uint cbUncompressedDestBufferSize_Deprecated,ref uint nUncompressBytesWritten_Deprecated,uint nUncompressedVoiceDesiredSampleRate_Deprecated);
public abstract uint DecompressVoice(IntPtr pCompressed,uint cbCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,uint nDesiredSampleRate);
public abstract uint GetVoiceOptimalSampleRate();
public abstract uint GetAuthSessionTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket);
@ -1800,6 +1831,8 @@ namespace Valve.Steamworks
public abstract void SetOverlayNotificationInset(int nHorizontalInset,int nVerticalInset);
public abstract bool IsSteamInBigPictureMode();
public abstract void StartVRDashboard();
public abstract bool IsVRHeadsetStreamingEnabled();
public abstract void SetVRHeadsetStreamingEnabled(bool bEnabled);
}
@ -2243,6 +2276,7 @@ namespace Valve.Steamworks
public abstract bool SetReturnChildren(ulong handle,bool bReturnChildren);
public abstract bool SetReturnAdditionalPreviews(ulong handle,bool bReturnAdditionalPreviews);
public abstract bool SetReturnTotalOnly(ulong handle,bool bReturnTotalOnly);
public abstract bool SetReturnPlaytimeStats(ulong handle,uint unDays);
public abstract bool SetLanguage(ulong handle,string pchLanguage);
public abstract bool SetAllowCachedResponse(ulong handle,uint unMaxAgeSeconds);
public abstract bool SetCloudFileNameFilter(ulong handle,string pMatchCloudFileName);
@ -2287,6 +2321,8 @@ namespace Valve.Steamworks
public abstract ulong StartPlaytimeTracking(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs);
public abstract ulong StopPlaytimeTracking(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs);
public abstract ulong StopPlaytimeTrackingForAllItems();
public abstract ulong AddDependency(ulong nParentPublishedFileID,ulong nChildPublishedFileID);
public abstract ulong RemoveDependency(ulong nParentPublishedFileID,ulong nChildPublishedFileID);
}
@ -2347,6 +2383,7 @@ namespace Valve.Steamworks
public abstract IntPtr GetIntPtr();
public abstract uint GetResultStatus(int resultHandle);
public abstract bool GetResultItems(int resultHandle,out SteamItemDetails_t [] pOutItemsArray);
public abstract bool GetResultItemProperty(int resultHandle,uint unItemIndex,string pchPropertyName,out string pchValueBuffer);
public abstract uint GetResultTimestamp(int resultHandle);
public abstract bool CheckResultSteamID(int resultHandle,ulong steamIDExpected);
public abstract void DestroyResult(int resultHandle);
@ -2377,6 +2414,8 @@ namespace Valve.Steamworks
public abstract IntPtr GetIntPtr();
public abstract void GetVideoURL(uint unVideoAppID);
public abstract bool IsBroadcasting(ref int pnNumViewers);
public abstract void GetOPFSettings(uint unVideoAppID);
public abstract bool GetOPFStringForApp(uint unVideoAppID,string pchBuffer,ref int pnBufferSize);
}
@ -2723,20 +2762,20 @@ public override void StopVoiceRecording()
CheckIfUsable();
NativeEntrypoints.SteamAPI_ISteamUser_StopVoiceRecording(m_pSteamUser);
}
public override uint GetAvailableVoice(ref uint pcbCompressed,ref uint pcbUncompressed,uint nUncompressedVoiceDesiredSampleRate)
public override uint GetAvailableVoice(ref uint pcbCompressed,ref uint pcbUncompressed_Deprecated,uint nUncompressedVoiceDesiredSampleRate_Deprecated)
{
CheckIfUsable();
pcbCompressed = 0;
pcbUncompressed = 0;
uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetAvailableVoice(m_pSteamUser,ref pcbCompressed,ref pcbUncompressed,nUncompressedVoiceDesiredSampleRate);
pcbUncompressed_Deprecated = 0;
uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetAvailableVoice(m_pSteamUser,ref pcbCompressed,ref pcbUncompressed_Deprecated,nUncompressedVoiceDesiredSampleRate_Deprecated);
return result;
}
public override uint GetVoice(bool bWantCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,bool bWantUncompressed,IntPtr pUncompressedDestBuffer,uint cbUncompressedDestBufferSize,ref uint nUncompressBytesWritten,uint nUncompressedVoiceDesiredSampleRate)
public override uint GetVoice(bool bWantCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,bool bWantUncompressed_Deprecated,IntPtr pUncompressedDestBuffer_Deprecated,uint cbUncompressedDestBufferSize_Deprecated,ref uint nUncompressBytesWritten_Deprecated,uint nUncompressedVoiceDesiredSampleRate_Deprecated)
{
CheckIfUsable();
nBytesWritten = 0;
nUncompressBytesWritten = 0;
uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetVoice(m_pSteamUser,bWantCompressed,pDestBuffer,cbDestBufferSize,ref nBytesWritten,bWantUncompressed,pUncompressedDestBuffer,cbUncompressedDestBufferSize,ref nUncompressBytesWritten,nUncompressedVoiceDesiredSampleRate);
nUncompressBytesWritten_Deprecated = 0;
uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetVoice(m_pSteamUser,bWantCompressed,pDestBuffer,cbDestBufferSize,ref nBytesWritten,bWantUncompressed_Deprecated,pUncompressedDestBuffer_Deprecated,cbUncompressedDestBufferSize_Deprecated,ref nUncompressBytesWritten_Deprecated,nUncompressedVoiceDesiredSampleRate_Deprecated);
return result;
}
public override uint DecompressVoice(IntPtr pCompressed,uint cbCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,uint nDesiredSampleRate)
@ -3470,6 +3509,17 @@ public override void StartVRDashboard()
CheckIfUsable();
NativeEntrypoints.SteamAPI_ISteamUtils_StartVRDashboard(m_pSteamUtils);
}
public override bool IsVRHeadsetStreamingEnabled()
{
CheckIfUsable();
bool result = NativeEntrypoints.SteamAPI_ISteamUtils_IsVRHeadsetStreamingEnabled(m_pSteamUtils);
return result;
}
public override void SetVRHeadsetStreamingEnabled(bool bEnabled)
{
CheckIfUsable();
NativeEntrypoints.SteamAPI_ISteamUtils_SetVRHeadsetStreamingEnabled(m_pSteamUtils,bEnabled);
}
}
@ -5894,6 +5944,12 @@ public override bool SetReturnTotalOnly(ulong handle,bool bReturnTotalOnly)
bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnTotalOnly(m_pSteamUGC,handle,bReturnTotalOnly);
return result;
}
public override bool SetReturnPlaytimeStats(ulong handle,uint unDays)
{
CheckIfUsable();
bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnPlaytimeStats(m_pSteamUGC,handle,unDays);
return result;
}
public override bool SetLanguage(ulong handle,string pchLanguage)
{
CheckIfUsable();
@ -6168,6 +6224,18 @@ public override ulong StopPlaytimeTrackingForAllItems()
ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems(m_pSteamUGC);
return result;
}
public override ulong AddDependency(ulong nParentPublishedFileID,ulong nChildPublishedFileID)
{
CheckIfUsable();
ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_AddDependency(m_pSteamUGC,nParentPublishedFileID,nChildPublishedFileID);
return result;
}
public override ulong RemoveDependency(ulong nParentPublishedFileID,ulong nChildPublishedFileID)
{
CheckIfUsable();
ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_RemoveDependency(m_pSteamUGC,nParentPublishedFileID,nChildPublishedFileID);
return result;
}
}
@ -6452,6 +6520,16 @@ public override bool GetResultItems(int resultHandle,out SteamItemDetails_t [] p
result = NativeEntrypoints.SteamAPI_ISteamInventory_GetResultItems(m_pSteamInventory,resultHandle,pOutItemsArray,ref punOutItemsArraySize);
return result;
}
public override bool GetResultItemProperty(int resultHandle,uint unItemIndex,string pchPropertyName,out string pchValueBuffer)
{
CheckIfUsable();
uint punValueBufferSizeOut = 0;
bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GetResultItemProperty(m_pSteamInventory,resultHandle,unItemIndex,pchPropertyName,null,ref punValueBufferSizeOut);
System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder((int)punValueBufferSizeOut);
result = NativeEntrypoints.SteamAPI_ISteamInventory_GetResultItemProperty(m_pSteamInventory,resultHandle,unItemIndex,pchPropertyName,pStrBuffer1,ref punValueBufferSizeOut);
pchValueBuffer = pStrBuffer1.ToString();
return result;
}
public override uint GetResultTimestamp(int resultHandle)
{
CheckIfUsable();
@ -6637,6 +6715,18 @@ public override bool IsBroadcasting(ref int pnNumViewers)
bool result = NativeEntrypoints.SteamAPI_ISteamVideo_IsBroadcasting(m_pSteamVideo,ref pnNumViewers);
return result;
}
public override void GetOPFSettings(uint unVideoAppID)
{
CheckIfUsable();
NativeEntrypoints.SteamAPI_ISteamVideo_GetOPFSettings(m_pSteamVideo,unVideoAppID);
}
public override bool GetOPFStringForApp(uint unVideoAppID,string pchBuffer,ref int pnBufferSize)
{
CheckIfUsable();
pnBufferSize = 0;
bool result = NativeEntrypoints.SteamAPI_ISteamVideo_GetOPFStringForApp(m_pSteamVideo,unVideoAppID,pchBuffer,ref pnBufferSize);
return result;
}
}
@ -7004,6 +7094,26 @@ public class CUserStatsReceived_t_Callback
m_Handle = Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_SetCallback(func);
}
}
public class CGetOPFSettingsResult_t_Callback
{
public CGetOPFSettingsResult_t_Callback() { }
~CGetOPFSettingsResult_t_Callback()
{
if(m_Handle != 0)
{
Valve.Interop.NativeEntrypoints.CGetOPFSettingsResult_t_RemoveCallback(m_Handle);
}
}
ulong m_Handle = 0;
public void Set(Valve.Interop.NativeEntrypoints.SteamAPI_GetOPFSettingsResult_t_Callback func)
{
if (m_Handle != 0)
{
Valve.Interop.NativeEntrypoints.CGetOPFSettingsResult_t_RemoveCallback(m_Handle);
}
m_Handle = Valve.Interop.NativeEntrypoints.CGetOPFSettingsResult_t_SetCallback(func);
}
}
public class CRemoteStorageFileReadAsyncComplete_t_CallResult
{
public CRemoteStorageFileReadAsyncComplete_t_CallResult() { }
@ -7284,6 +7394,26 @@ public class CRemoteStorageGetPublishedFileDetailsResult_t_CallResult
m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedFileDetailsResult_t_SetCallResult(hAPICall, func);
}
}
public class CAddUGCDependencyResult_t_CallResult
{
public CAddUGCDependencyResult_t_CallResult() { }
~CAddUGCDependencyResult_t_CallResult()
{
if(m_Handle != 0)
{
Valve.Interop.NativeEntrypoints.CAddUGCDependencyResult_t_RemoveCallResult(m_Handle);
}
}
ulong m_Handle = 0;
public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_AddUGCDependencyResult_t_CallResult func)
{
if (m_Handle != 0)
{
Valve.Interop.NativeEntrypoints.CAddUGCDependencyResult_t_RemoveCallResult(m_Handle);
}
m_Handle = Valve.Interop.NativeEntrypoints.CAddUGCDependencyResult_t_SetCallResult(hAPICall, func);
}
}
public class CRemoteStorageDownloadUGCResult_t_CallResult
{
public CRemoteStorageDownloadUGCResult_t_CallResult() { }
@ -7704,6 +7834,26 @@ public class CRemoteStorageEnumerateWorkshopFilesResult_t_CallResult
m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateWorkshopFilesResult_t_SetCallResult(hAPICall, func);
}
}
public class CRemoveUGCDependencyResult_t_CallResult
{
public CRemoveUGCDependencyResult_t_CallResult() { }
~CRemoveUGCDependencyResult_t_CallResult()
{
if(m_Handle != 0)
{
Valve.Interop.NativeEntrypoints.CRemoveUGCDependencyResult_t_RemoveCallResult(m_Handle);
}
}
ulong m_Handle = 0;
public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoveUGCDependencyResult_t_CallResult func)
{
if (m_Handle != 0)
{
Valve.Interop.NativeEntrypoints.CRemoveUGCDependencyResult_t_RemoveCallResult(m_Handle);
}
m_Handle = Valve.Interop.NativeEntrypoints.CRemoveUGCDependencyResult_t_SetCallResult(hAPICall, func);
}
}
public class CGSReputation_t_CallResult
{
public CGSReputation_t_CallResult() { }
@ -8249,6 +8399,8 @@ public enum EResult
k_EResultInvalidItemType = 104,
k_EResultIPBanned = 105,
k_EResultGSLTExpired = 106,
k_EResultInsufficientFunds = 107,
k_EResultTooManyPending = 108,
}
public enum EVoiceResult
{
@ -8354,6 +8506,7 @@ public enum EAppOwnershipFlags
k_EAppOwnershipFlags_PendingGift = 32768,
k_EAppOwnershipFlags_RentalNotActivated = 65536,
k_EAppOwnershipFlags_Rental = 131072,
k_EAppOwnershipFlags_SiteLicense = 262144,
}
public enum EAppType
{
@ -8880,7 +9033,8 @@ public enum EControllerSourceMode
k_EControllerSourceMode_MouseJoystick = 12,
k_EControllerSourceMode_MouseRegion = 13,
k_EControllerSourceMode_RadialMenu = 14,
k_EControllerSourceMode_Switches = 15,
k_EControllerSourceMode_SingleButton = 15,
k_EControllerSourceMode_Switches = 16,
}
public enum EControllerActionOrigin
{
@ -9040,37 +9194,47 @@ public enum EControllerActionOrigin
k_EControllerActionOrigin_SteamV2_RightBumper = 153,
k_EControllerActionOrigin_SteamV2_LeftGrip = 154,
k_EControllerActionOrigin_SteamV2_RightGrip = 155,
k_EControllerActionOrigin_SteamV2_Start = 156,
k_EControllerActionOrigin_SteamV2_Back = 157,
k_EControllerActionOrigin_SteamV2_LeftPad_Touch = 158,
k_EControllerActionOrigin_SteamV2_LeftPad_Swipe = 159,
k_EControllerActionOrigin_SteamV2_LeftPad_Click = 160,
k_EControllerActionOrigin_SteamV2_LeftPad_DPadNorth = 161,
k_EControllerActionOrigin_SteamV2_LeftPad_DPadSouth = 162,
k_EControllerActionOrigin_SteamV2_LeftPad_DPadWest = 163,
k_EControllerActionOrigin_SteamV2_LeftPad_DPadEast = 164,
k_EControllerActionOrigin_SteamV2_RightPad_Touch = 165,
k_EControllerActionOrigin_SteamV2_RightPad_Swipe = 166,
k_EControllerActionOrigin_SteamV2_RightPad_Click = 167,
k_EControllerActionOrigin_SteamV2_RightPad_DPadNorth = 168,
k_EControllerActionOrigin_SteamV2_RightPad_DPadSouth = 169,
k_EControllerActionOrigin_SteamV2_RightPad_DPadWest = 170,
k_EControllerActionOrigin_SteamV2_RightPad_DPadEast = 171,
k_EControllerActionOrigin_SteamV2_LeftTrigger_Pull = 172,
k_EControllerActionOrigin_SteamV2_LeftTrigger_Click = 173,
k_EControllerActionOrigin_SteamV2_RightTrigger_Pull = 174,
k_EControllerActionOrigin_SteamV2_RightTrigger_Click = 175,
k_EControllerActionOrigin_SteamV2_LeftStick_Move = 176,
k_EControllerActionOrigin_SteamV2_LeftStick_Click = 177,
k_EControllerActionOrigin_SteamV2_LeftStick_DPadNorth = 178,
k_EControllerActionOrigin_SteamV2_LeftStick_DPadSouth = 179,
k_EControllerActionOrigin_SteamV2_LeftStick_DPadWest = 180,
k_EControllerActionOrigin_SteamV2_LeftStick_DPadEast = 181,
k_EControllerActionOrigin_SteamV2_Gyro_Move = 182,
k_EControllerActionOrigin_SteamV2_Gyro_Pitch = 183,
k_EControllerActionOrigin_SteamV2_Gyro_Yaw = 184,
k_EControllerActionOrigin_SteamV2_Gyro_Roll = 185,
k_EControllerActionOrigin_Count = 186,
k_EControllerActionOrigin_SteamV2_LeftGrip_Upper = 156,
k_EControllerActionOrigin_SteamV2_RightGrip_Upper = 157,
k_EControllerActionOrigin_SteamV2_LeftBumper_Pressure = 158,
k_EControllerActionOrigin_SteamV2_RightBumper_Pressure = 159,
k_EControllerActionOrigin_SteamV2_LeftGrip_Pressure = 160,
k_EControllerActionOrigin_SteamV2_RightGrip_Pressure = 161,
k_EControllerActionOrigin_SteamV2_LeftGrip_Upper_Pressure = 162,
k_EControllerActionOrigin_SteamV2_RightGrip_Upper_Pressure = 163,
k_EControllerActionOrigin_SteamV2_Start = 164,
k_EControllerActionOrigin_SteamV2_Back = 165,
k_EControllerActionOrigin_SteamV2_LeftPad_Touch = 166,
k_EControllerActionOrigin_SteamV2_LeftPad_Swipe = 167,
k_EControllerActionOrigin_SteamV2_LeftPad_Click = 168,
k_EControllerActionOrigin_SteamV2_LeftPad_Pressure = 169,
k_EControllerActionOrigin_SteamV2_LeftPad_DPadNorth = 170,
k_EControllerActionOrigin_SteamV2_LeftPad_DPadSouth = 171,
k_EControllerActionOrigin_SteamV2_LeftPad_DPadWest = 172,
k_EControllerActionOrigin_SteamV2_LeftPad_DPadEast = 173,
k_EControllerActionOrigin_SteamV2_RightPad_Touch = 174,
k_EControllerActionOrigin_SteamV2_RightPad_Swipe = 175,
k_EControllerActionOrigin_SteamV2_RightPad_Click = 176,
k_EControllerActionOrigin_SteamV2_RightPad_Pressure = 177,
k_EControllerActionOrigin_SteamV2_RightPad_DPadNorth = 178,
k_EControllerActionOrigin_SteamV2_RightPad_DPadSouth = 179,
k_EControllerActionOrigin_SteamV2_RightPad_DPadWest = 180,
k_EControllerActionOrigin_SteamV2_RightPad_DPadEast = 181,
k_EControllerActionOrigin_SteamV2_LeftTrigger_Pull = 182,
k_EControllerActionOrigin_SteamV2_LeftTrigger_Click = 183,
k_EControllerActionOrigin_SteamV2_RightTrigger_Pull = 184,
k_EControllerActionOrigin_SteamV2_RightTrigger_Click = 185,
k_EControllerActionOrigin_SteamV2_LeftStick_Move = 186,
k_EControllerActionOrigin_SteamV2_LeftStick_Click = 187,
k_EControllerActionOrigin_SteamV2_LeftStick_DPadNorth = 188,
k_EControllerActionOrigin_SteamV2_LeftStick_DPadSouth = 189,
k_EControllerActionOrigin_SteamV2_LeftStick_DPadWest = 190,
k_EControllerActionOrigin_SteamV2_LeftStick_DPadEast = 191,
k_EControllerActionOrigin_SteamV2_Gyro_Move = 192,
k_EControllerActionOrigin_SteamV2_Gyro_Pitch = 193,
k_EControllerActionOrigin_SteamV2_Gyro_Yaw = 194,
k_EControllerActionOrigin_SteamV2_Gyro_Roll = 195,
k_EControllerActionOrigin_Count = 196,
}
public enum ESteamControllerLEDFlag
{
@ -9170,6 +9334,8 @@ public enum EItemStatistic
k_EItemStatistic_NumSecondsPlayed = 8,
k_EItemStatistic_NumPlaytimeSessions = 9,
k_EItemStatistic_NumComments = 10,
k_EItemStatistic_NumSecondsPlayedDuringTimePeriod = 11,
k_EItemStatistic_NumPlaytimeSessionsDuringTimePeriod = 12,
}
public enum EItemPreviewType
{
@ -10149,6 +10315,18 @@ public enum ESteamItemFlags
{
public EResult m_eResult;
}
[StructLayout(LayoutKind.Sequential)] public struct AddUGCDependencyResult_t
{
public EResult m_eResult;
public ulong m_nPublishedFileId;
public ulong m_nChildPublishedFileId;
}
[StructLayout(LayoutKind.Sequential)] public struct RemoveUGCDependencyResult_t
{
public EResult m_eResult;
public ulong m_nPublishedFileId;
public ulong m_nChildPublishedFileId;
}
[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t
{
public uint m_nAppID;
@ -10346,6 +10524,11 @@ public enum ESteamItemFlags
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string m_rgchURL; //char[256]
}
[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t
{
public EResult m_eResult;
public uint m_unVideoAppID;
}
[StructLayout(LayoutKind.Sequential)] public struct CSteamAPIContext
{
public IntPtr m_pSteamClient; // class ISteamClient *

View File

@ -51,11 +51,15 @@ inline void SteamGameServer_ReleaseCurrentThreadMemory();
S_API bool SteamGameServer_BSecure();
S_API uint64 SteamGameServer_GetSteamID();
// If your application contains modules which could be built against different Steamworks SDK
// versions, then you should define VERSION_SAFE_STEAM_API_INTERFACES to enforce that you cannot
// use the version-less global accessors. Instead, create and use CSteamGameServerAPIContext
// objects to retrieve interface pointers which are appropriate for your Steamworks SDK headers.
#if !defined( VERSION_SAFE_STEAM_API_INTERFACES ) && !defined( STEAM_API_EXPORTS )
//----------------------------------------------------------------------------------------------------------------------------------------------------------//
// Global accessors for game server C++ APIs. See individual isteam*.h files for details.
// You should not cache the results of these accessors or pass the result pointers across
// modules! Different modules may be compiled against different SDK header versions, and
// the interface pointers could therefore be different across modules. Every line of code
// which calls into a Steamworks API should retrieve the interface from a global accessor.
//----------------------------------------------------------------------------------------------------------------------------------------------------------//
#if !defined( STEAM_API_EXPORTS )
inline ISteamClient *SteamGameServerClient();
inline ISteamGameServer *SteamGameServer();
inline ISteamUtils *SteamGameServerUtils();
@ -130,33 +134,35 @@ S_API HSteamUser S_CALLTYPE SteamGameServer_GetHSteamUser();
S_API bool S_CALLTYPE SteamInternal_GameServer_Init( uint32 unIP, uint16 usPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString );
#if !defined( VERSION_SAFE_STEAM_API_INTERFACES ) && !defined( STEAM_API_EXPORTS )
#if !defined( STEAM_API_EXPORTS )
inline void S_CALLTYPE SteamGameServerInternal_OnContextInit( void* p )
{
((CSteamGameServerAPIContext*)p)->Clear();
if ( SteamGameServer_GetHSteamPipe() )
((CSteamGameServerAPIContext*)p)->Init();
}
inline CSteamGameServerAPIContext& SteamGameServerInternal_ModuleContext()
{
// SteamInternal_ContextInit takes a base pointer for the equivalent of
// struct { void (*pFn)(void* pCtx); uintp counter; CSteamAPIContext ctx; }
// Do not change layout of 2 + sizeof... or add non-pointer aligned data!
// NOTE: declaring "static CSteamAPIConext" creates a large function
// which queries the initialization status of the object. We know that
// it is pointer-aligned and fully memset with zeros, so just alias a
// static buffer of the appropriate size and call it a CSteamAPIContext.
static void* ctx[ sizeof(CSteamGameServerAPIContext)/sizeof(void*) ];
return *(CSteamGameServerAPIContext*)ctx;
static void* s_CallbackCounterAndContext[2 + sizeof( CSteamGameServerAPIContext ) / sizeof( void* )] = { (void*)&SteamGameServerInternal_OnContextInit, 0 };
return *(CSteamGameServerAPIContext*)SteamInternal_ContextInit( s_CallbackCounterAndContext );
}
#define _STEAMINTERNAL_ACCESSOR_BODY( AccessFunc ) \
if ( !SteamGameServer_GetHSteamPipe() ) return 0; \
CSteamGameServerAPIContext &ctx = SteamGameServerInternal_ModuleContext(); \
if ( !ctx.AccessFunc() ) ctx.Init(); \
return ctx.AccessFunc();
inline ISteamClient *SteamGameServerClient() { _STEAMINTERNAL_ACCESSOR_BODY( SteamClient ) }
inline ISteamGameServer *SteamGameServer() { _STEAMINTERNAL_ACCESSOR_BODY( SteamGameServer ) }
inline ISteamUtils *SteamGameServerUtils() { _STEAMINTERNAL_ACCESSOR_BODY( SteamGameServerUtils ) }
inline ISteamNetworking *SteamGameServerNetworking() { _STEAMINTERNAL_ACCESSOR_BODY( SteamGameServerNetworking ) }
inline ISteamGameServerStats *SteamGameServerStats() { _STEAMINTERNAL_ACCESSOR_BODY( SteamGameServerStats ) }
inline ISteamHTTP *SteamGameServerHTTP() { _STEAMINTERNAL_ACCESSOR_BODY( SteamHTTP ) }
inline ISteamInventory *SteamGameServerInventory() { _STEAMINTERNAL_ACCESSOR_BODY( SteamInventory ) }
inline ISteamUGC *SteamGameServerUGC() { _STEAMINTERNAL_ACCESSOR_BODY( SteamUGC ) }
inline ISteamApps *SteamGameServerApps() { _STEAMINTERNAL_ACCESSOR_BODY( SteamApps ) }
#undef _STEAMINTERNAL_ACCESSOR_BODY
#endif // !defined( VERSION_SAFE_STEAM_API_INTERFACES ) && !defined( STEAM_API_EXPORTS )
inline ISteamClient *SteamGameServerClient() { return SteamGameServerInternal_ModuleContext().SteamClient(); }
inline ISteamGameServer *SteamGameServer() { return SteamGameServerInternal_ModuleContext().SteamGameServer(); }
inline ISteamUtils *SteamGameServerUtils() { return SteamGameServerInternal_ModuleContext().SteamGameServerUtils(); }
inline ISteamNetworking *SteamGameServerNetworking() { return SteamGameServerInternal_ModuleContext().SteamGameServerNetworking(); }
inline ISteamGameServerStats *SteamGameServerStats() { return SteamGameServerInternal_ModuleContext().SteamGameServerStats(); }
inline ISteamHTTP *SteamGameServerHTTP() { return SteamGameServerInternal_ModuleContext().SteamHTTP(); }
inline ISteamInventory *SteamGameServerInventory() { return SteamGameServerInternal_ModuleContext().SteamInventory(); }
inline ISteamUGC *SteamGameServerUGC() { return SteamGameServerInternal_ModuleContext().SteamUGC(); }
inline ISteamApps *SteamGameServerApps() { return SteamGameServerInternal_ModuleContext().SteamApps(); }
#endif // !defined( STEAM_API_EXPORTS )
inline void CSteamGameServerAPIContext::Clear()

View File

@ -131,6 +131,8 @@ enum EResult
k_EResultInvalidItemType = 104, // the type of thing we were requested to act on is invalid
k_EResultIPBanned = 105, // the ip address has been banned from taking this action
k_EResultGSLTExpired = 106, // this token has expired from disuse; can be reset for use
k_EResultInsufficientFunds = 107, // user doesn't have enough wallet funds to complete the action
k_EResultTooManyPending = 108, // There are too many of this thing pending already
};
// Error codes for use with the voice functions
@ -267,6 +269,7 @@ enum EAppOwnershipFlags
k_EAppOwnershipFlags_PendingGift = 0x8000, // user has pending gift to redeem
k_EAppOwnershipFlags_RentalNotActivated = 0x10000, // Rental hasn't been activated yet
k_EAppOwnershipFlags_Rental = 0x20000, // Is a rental
k_EAppOwnershipFlags_SiteLicense = 0x40000, // Is from a site license
};