diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamapplist.h b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamapplist.h index 4a8acbb5..720c9976 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamapplist.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamapplist.h @@ -45,7 +45,7 @@ STEAM_DEFINE_USER_INTERFACE_ACCESSOR(ISteamAppList*, SteamAppList, STEAMAPPLIST_ #endif //--------------------------------------------------------------------------------- -// Purpose: Sent when a new app is installed +// Purpose: Sent when a new app is installed (not downloaded yet) //--------------------------------------------------------------------------------- STEAM_CALLBACK_BEGIN(SteamAppInstalled_t, k_iSteamAppListCallbacks + 1) STEAM_CALLBACK_MEMBER(0, AppId_t, m_nAppID) // ID of the app that installs diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamapps.h b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamapps.h index 62b5cd47..df14b2b7 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamapps.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamapps.h @@ -133,26 +133,6 @@ struct DlcInstalled_t { AppId_t m_nAppID; // AppID of the DLC }; -//----------------------------------------------------------------------------- -// Purpose: possible results when registering an activation code -//----------------------------------------------------------------------------- -enum ERegisterActivationCodeResult { - k_ERegisterActivationCodeResultOK = 0, - k_ERegisterActivationCodeResultFail = 1, - k_ERegisterActivationCodeResultAlreadyRegistered = 2, - k_ERegisterActivationCodeResultTimeout = 3, - k_ERegisterActivationCodeAlreadyOwned = 4, -}; - -//----------------------------------------------------------------------------- -// Purpose: response to RegisterActivationCode() -//----------------------------------------------------------------------------- -struct RegisterActivationCodeResponse_t { - enum { k_iCallback = k_iSteamAppsCallbacks + 8 }; - ERegisterActivationCodeResult m_eResult; - uint32 m_unPackageRegistered; // package that was registered. Only set on success -}; - //--------------------------------------------------------------------------------- // Purpose: posted after the user gains executes a Steam URL with command line or query parameters // such as steam://run///-commandline/?param1=value1¶m2=value2¶m3=value3 etc diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamcontroller.h b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamcontroller.h index f3a1ec04..ec74c03f 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamcontroller.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamcontroller.h @@ -21,9 +21,9 @@ #define STEAM_CONTROLLER_MAX_COUNT 16 -#define STEAM_CONTROLLER_MAX_ANALOG_ACTIONS 16 +#define STEAM_CONTROLLER_MAX_ANALOG_ACTIONS 24 -#define STEAM_CONTROLLER_MAX_DIGITAL_ACTIONS 128 +#define STEAM_CONTROLLER_MAX_DIGITAL_ACTIONS 256 #define STEAM_CONTROLLER_MAX_ORIGINS 8 @@ -446,6 +446,16 @@ enum EControllerActionOrigin { k_EControllerActionOrigin_SteamDeck_Reserved19, k_EControllerActionOrigin_SteamDeck_Reserved20, + k_EControllerActionOrigin_Switch_JoyConButton_N, // With a Horizontal JoyCon this will be Y or what would be Dpad Right when vertical + k_EControllerActionOrigin_Switch_JoyConButton_E, // X + k_EControllerActionOrigin_Switch_JoyConButton_S, // A + k_EControllerActionOrigin_Switch_JoyConButton_W, // B + + k_EControllerActionOrigin_PS5_LeftGrip, + k_EControllerActionOrigin_PS5_RightGrip, + k_EControllerActionOrigin_PS5_LeftFn, + k_EControllerActionOrigin_PS5_RightFn, + k_EControllerActionOrigin_Count, // If Steam has added support for new controllers origins will go here. k_EControllerActionOrigin_MaximumPossibleValue = 32767, // Origins are currently a maximum of 16 bits. }; @@ -523,6 +533,7 @@ typedef uint64 ControllerAnalogActionHandle_t; #define ControllerAnalogActionData_t InputAnalogActionData_t #define ControllerDigitalActionData_t InputDigitalActionData_t #define ControllerMotionData_t InputMotionData_t +#define ControllerMotionDataV2_t InputMotionDataV2_t #else struct ControllerAnalogActionData_t { // Type of data coming from this action, this will match what got specified in the action set diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamfriends.h b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamfriends.h index 7ea5d743..bb154013 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamfriends.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamfriends.h @@ -495,6 +495,8 @@ enum EPersonaChange { struct GameOverlayActivated_t { enum { k_iCallback = k_iSteamFriendsCallbacks + 31 }; uint8 m_bActive; // true if it's just been activated, false otherwise + bool m_bUserInitiated; // true if the user asked for the overlay to be activated/deactivated + AppId_t m_nAppID; // the appID of the game (should always be the current game) }; //----------------------------------------------------------------------------- diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamgameserver.h b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamgameserver.h index 291be30e..6b5e018a 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamgameserver.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamgameserver.h @@ -150,7 +150,9 @@ public: // Retrieve ticket to be sent to the entity who wishes to authenticate you ( using BeginAuthSession API ). // pcbTicket retrieves the length of the actual ticket. - virtual HAuthTicket GetAuthSessionTicket(void* pTicket, int cbMaxTicket, uint32* pcbTicket) = 0; + // SteamNetworkingIdentity is an optional parameter to hold the public IP address of the entity you are connecting to + // if an IP address is passed Steam will only allow the ticket to be used by an entity with that IP address + virtual HAuthTicket GetAuthSessionTicket(void* pTicket, int cbMaxTicket, uint32* pcbTicket, const SteamNetworkingIdentity* pSnid) = 0; // Authenticate ticket ( from GetAuthSessionTicket ) from entity steamID to be sure it is valid and isnt reused // Registers for callbacks if the entity goes offline or cancels the ticket ( see ValidateAuthTicketResponse_t callback and EAuthSessionResponse ) @@ -257,7 +259,7 @@ public: virtual void ForceMasterServerHeartbeat_DEPRECATED() = 0;) }; -#define STEAMGAMESERVER_INTERFACE_VERSION "SteamGameServer014" +#define STEAMGAMESERVER_INTERFACE_VERSION "SteamGameServer015" // Global accessor inline ISteamGameServer* SteamGameServer(); diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/isteaminput.h b/ScreenPlayWorkshop/SteamSDK/public/steam/isteaminput.h index 14c79947..98f03ca9 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/isteaminput.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/isteaminput.h @@ -17,9 +17,9 @@ #define STEAM_INPUT_MAX_COUNT 16 -#define STEAM_INPUT_MAX_ANALOG_ACTIONS 16 +#define STEAM_INPUT_MAX_ANALOG_ACTIONS 24 -#define STEAM_INPUT_MAX_DIGITAL_ACTIONS 128 +#define STEAM_INPUT_MAX_DIGITAL_ACTIONS 256 #define STEAM_INPUT_MAX_ORIGINS 8 @@ -316,10 +316,10 @@ enum EInputActionOrigin { k_EInputActionOrigin_Switch_LeftGrip_Upper, // Left JoyCon SL Button k_EInputActionOrigin_Switch_RightGrip_Lower, // Right JoyCon SL Button k_EInputActionOrigin_Switch_RightGrip_Upper, // Right JoyCon SR Button - k_EInputActionOrigin_Switch_Reserved11, - k_EInputActionOrigin_Switch_Reserved12, - k_EInputActionOrigin_Switch_Reserved13, - k_EInputActionOrigin_Switch_Reserved14, + k_EInputActionOrigin_Switch_JoyConButton_N, // With a Horizontal JoyCon this will be Y or what would be Dpad Right when vertical + k_EInputActionOrigin_Switch_JoyConButton_E, // X + k_EInputActionOrigin_Switch_JoyConButton_S, // A + k_EInputActionOrigin_Switch_JoyConButton_W, // B k_EInputActionOrigin_Switch_Reserved15, k_EInputActionOrigin_Switch_Reserved16, k_EInputActionOrigin_Switch_Reserved17, @@ -383,10 +383,10 @@ enum EInputActionOrigin { k_EInputActionOrigin_PS5_Gyro_Yaw, k_EInputActionOrigin_PS5_Gyro_Roll, k_EInputActionOrigin_PS5_DPad_Move, - k_EInputActionOrigin_PS5_Reserved1, - k_EInputActionOrigin_PS5_Reserved2, - k_EInputActionOrigin_PS5_Reserved3, - k_EInputActionOrigin_PS5_Reserved4, + k_EInputActionOrigin_PS5_LeftGrip, + k_EInputActionOrigin_PS5_RightGrip, + k_EInputActionOrigin_PS5_LeftFn, + k_EInputActionOrigin_PS5_RightFn, k_EInputActionOrigin_PS5_Reserved5, k_EInputActionOrigin_PS5_Reserved6, k_EInputActionOrigin_PS5_Reserved7, @@ -627,7 +627,7 @@ struct InputDigitalActionData_t { }; struct InputMotionData_t { - // Sensor-fused absolute rotation; will drift in heading + // Sensor-fused absolute rotation; will drift in heading toward average float rotQuatX; float rotQuatY; float rotQuatZ; @@ -644,6 +644,55 @@ struct InputMotionData_t { float rotVelZ; }; +struct InputMotionDataV2_t { + // + // Gyro post processing: + // + + // Drift Corrected Quaternion is calculated after steam input controller calibration values have been applied. + // Rawest _useful_ version of a quaternion. + // Most camera implementations should use this by comparing last rotation against current rotation, and applying the difference to the in game camera (plus your own sensitivity tweaks) + // It is worth viewing + float driftCorrectedQuatX; + float driftCorrectedQuatY; + float driftCorrectedQuatZ; + float driftCorrectedQuatW; + + // Sensor fusion corrects using accelerometer, and "average forward over time" for "forward". + // This can "ouija" your aim, so it's not so appropriate for camera controls (sensor fusion was originally made for racing game steering ) + // Same result as from old InputMotionData_t::rotQuatX/Y/Z/W + float sensorFusionQuatX; + float sensorFusionQuatY; + float sensorFusionQuatZ; + float sensorFusionQuatW; + + // Deferred Sensor fusion quaternion with deferred correction + // Reduces perception of "ouija" effect by only applying correction when the controller is below "low noise" thresholds, + // while the controller rotates fast - never when the user is attempting precision aim. + float deferredSensorFusionQuatX; + float deferredSensorFusionQuatY; + float deferredSensorFusionQuatZ; + float deferredSensorFusionQuatW; + + // Same as accel but values are calibrated such that 1 unit = 1G. + // X = Right + // Y = Forward out through the joystick USB port. + // Z = Up through the joystick axis. + float gravityX; + float gravityY; + float gravityZ; + + // + // Same as rotVel values in GetMotionData but values are calibrated to degrees per second. + // Local Space (controller relative) + // X = Pitch = left to right axis + // Y = Roll = axis through charging port + // Z = Yaw = axis through sticks + float degreesPerSecondX; + float degreesPerSecondY; + float degreesPerSecondZ; +}; + //----------------------------------------------------------------------------- // Purpose: when callbacks are enabled this fires each time a controller action // state changes @@ -878,7 +927,7 @@ public: // See isteamremoteplay.h for more information on Steam Remote Play sessions virtual uint32 GetRemotePlaySessionID(InputHandle_t inputHandle) = 0; - // Get a bitmask of the Steam Input Configuration types opted in for the current session. Returns ESteamInputConfigurationEnableType values.? + // Get a bitmask of the Steam Input Configuration types opted in for the current session. Returns ESteamInputConfigurationEnableType values. // Note: user can override the settings from the Steamworks Partner site so the returned values may not exactly match your default configuration virtual uint16 GetSessionInputConfigurationSettings() = 0; @@ -937,4 +986,4 @@ struct SteamInputConfigurationLoaded_t { #pragma pack(pop) -#endif // ISTEAMINPUT_H \ No newline at end of file +#endif // ISTEAMINPUT_H diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamparentalsettings.h b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamparentalsettings.h index d45f0db9..e205fef6 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamparentalsettings.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamparentalsettings.h @@ -28,6 +28,7 @@ enum EParentalFeature { k_EFeatureLibrary = 11, k_EFeatureTest = 12, k_EFeatureSiteLicense = 13, + k_EFeatureKioskMode = 14, k_EFeatureMax }; diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamugc.h b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamugc.h index 7e2fc8ba..57e5aa18 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamugc.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamugc.h @@ -146,6 +146,14 @@ enum EItemPreviewType { k_EItemPreviewType_ReservedMax = 255, // you can specify your own types above this value }; +enum EUGCContentDescriptorID { + k_EUGCContentDescriptor_NudityOrSexualContent = 1, + k_EUGCContentDescriptor_FrequentViolenceOrGore = 2, + k_EUGCContentDescriptor_AdultOnlySexualContent = 3, + k_EUGCContentDescriptor_GratuitousSexualContent = 4, + k_EUGCContentDescriptor_AnyMatureContent = 5, +}; + const uint32 kNumUGCResultsPerPage = 50; const uint32 k_cchDeveloperMetadataMax = 5000; @@ -223,6 +231,8 @@ public: STEAM_FLAT_NAME(GetQueryFirstUGCKeyValueTag) virtual bool GetQueryUGCKeyValueTag(UGCQueryHandle_t handle, uint32 index, const char* pchKey, STEAM_OUT_STRING_COUNT(cchValueSize) char* pchValue, uint32 cchValueSize) = 0; + virtual uint32 GetQueryUGCContentDescriptors(UGCQueryHandle_t handle, uint32 index, EUGCContentDescriptorID* pvecDescriptors, uint32 cMaxEntries) = 0; + // Release the request to free up memory, after retrieving results virtual bool ReleaseQueryUGCRequest(UGCQueryHandle_t handle) = 0; @@ -279,6 +289,8 @@ public: virtual bool UpdateItemPreviewFile(UGCUpdateHandle_t handle, uint32 index, const char* pszPreviewFile) = 0; // updates an existing preview file for this item. pszPreviewFile points to local file, which must be under 1MB in size virtual bool UpdateItemPreviewVideo(UGCUpdateHandle_t handle, uint32 index, const char* pszVideoID) = 0; // updates an existing preview video for this item virtual bool RemoveItemPreview(UGCUpdateHandle_t handle, uint32 index) = 0; // remove a preview by index starting at 0 (previews are sorted) + virtual bool AddContentDescriptor(UGCUpdateHandle_t handle, EUGCContentDescriptorID descid) = 0; + virtual bool RemoveContentDescriptor(UGCUpdateHandle_t handle, EUGCContentDescriptorID descid) = 0; STEAM_CALL_RESULT(SubmitItemUpdateResult_t) virtual SteamAPICall_t SubmitItemUpdate(UGCUpdateHandle_t handle, const char* pchChangeNote) = 0; // commit update process started with StartItemUpdate() @@ -357,7 +369,7 @@ public: virtual SteamAPICall_t GetWorkshopEULAStatus() = 0; }; -#define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION016" +#define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION017" // Global interface accessor inline ISteamUGC* SteamUGC(); diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamuser.h b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamuser.h index ccd9cd2a..05e44efc 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamuser.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamuser.h @@ -123,7 +123,10 @@ public: // Retrieve ticket to be sent to the entity who wishes to authenticate you. // pcbTicket retrieves the length of the actual ticket. - virtual HAuthTicket GetAuthSessionTicket(void* pTicket, int cbMaxTicket, uint32* pcbTicket) = 0; + // SteamNetworkingIdentity is an optional input parameter to hold the public IP address or SteamID of the entity you are connecting to + // if an IP address is passed Steam will only allow the ticket to be used by an entity with that IP address + // if a Steam ID is passed Steam will only allow the ticket to be used by that Steam ID + virtual HAuthTicket GetAuthSessionTicket(void* pTicket, int cbMaxTicket, uint32* pcbTicket, const SteamNetworkingIdentity* pSteamNetworkingIdentity) = 0; // Authenticate ticket from entity steamID to be sure it is valid and isnt reused // Registers for callbacks if the entity goes offline or cancels the ticket ( see ValidateAuthTicketResponse_t callback and EAuthSessionResponse ) @@ -208,7 +211,7 @@ public: virtual bool BSetDurationControlOnlineState(EDurationControlOnlineState eNewState) = 0; }; -#define STEAMUSER_INTERFACE_VERSION "SteamUser021" +#define STEAMUSER_INTERFACE_VERSION "SteamUser022" // Global interface accessor inline ISteamUser* SteamUser(); @@ -224,11 +227,11 @@ STEAM_DEFINE_USER_INTERFACE_ACCESSOR(ISteamUser*, SteamUser, STEAMUSER_INTERFACE #endif //----------------------------------------------------------------------------- -// Purpose: called when a connections to the Steam back-end has been established -// this means the Steam client now has a working connection to the Steam servers -// usually this will have occurred before the game has launched, and should +// Purpose: Called when an authenticated connection to the Steam back-end has been established. +// This means the Steam client now has a working connection to the Steam servers. +// Usually this will have occurred before the game has launched, and should // only be seen if the user has dropped connection due to a networking issue -// or a Steam server update +// or a Steam server update. //----------------------------------------------------------------------------- struct SteamServersConnected_t { enum { k_iCallback = k_iSteamUserCallbacks + 1 }; diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamutils.h b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamutils.h index e8aeb778..0c7dbe60 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/isteamutils.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/isteamutils.h @@ -6,9 +6,6 @@ #ifndef ISTEAMUTILS_H #define ISTEAMUTILS_H -#ifdef _WIN32 -#pragma once -#endif #include "steam_api_common.h" @@ -51,12 +48,6 @@ enum ETextFilteringContext { k_ETextFilteringContextName = 3, // Character or item name }; -// function prototype for warning message hook -#if defined(POSIX) -#define __cdecl -#endif -extern "C" typedef void(__cdecl* SteamAPIWarningMessageHook_t)(int, const char*); - //----------------------------------------------------------------------------- // Purpose: interface to user independent utility functions //----------------------------------------------------------------------------- @@ -295,6 +286,7 @@ struct GamepadTextInputDismissed_t { enum { k_iCallback = k_iSteamUtilsCallbacks + 14 }; bool m_bSubmitted; // true if user entered & accepted text (Call ISteamUtils::GetEnteredGamepadTextInput() for text), false if canceled input uint32 m_unSubmittedText; + AppId_t m_unAppID; }; // k_iSteamUtilsCallbacks + 15 through 35 are taken @@ -311,6 +303,14 @@ struct FloatingGamepadTextInputDismissed_t { enum { k_iCallback = k_iSteamUtilsCallbacks + 38 }; }; +//----------------------------------------------------------------------------- +// The text filtering dictionary has changed +//----------------------------------------------------------------------------- +struct FilterTextDictionaryChanged_t { + enum { k_iCallback = k_iSteamUtilsCallbacks + 39 }; + int m_eLanguage; // One of ELanguage, or k_LegallyRequiredFiltering +}; + #pragma pack(pop) #endif // ISTEAMUTILS_H diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/matchmakingtypes.h b/ScreenPlayWorkshop/SteamSDK/public/steam/matchmakingtypes.h index 6e9fc071..452d732c 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/matchmakingtypes.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/matchmakingtypes.h @@ -8,16 +8,6 @@ #ifndef MATCHMAKINGTYPES_H #define MATCHMAKINGTYPES_H -#ifdef _WIN32 -#pragma once -#endif - -#ifdef POSIX -#ifndef _snprintf -#define _snprintf snprintf -#endif -#endif - #include #include @@ -68,9 +58,6 @@ public: } void Init(unsigned int ip, uint16 usQueryPort, uint16 usConnectionPort); -#ifdef NETADR_H - netadr_t GetIPAndQueryPort(); -#endif // Access the query port. uint16 GetQueryPort() const; @@ -111,13 +98,6 @@ inline void servernetadr_t::Init(unsigned int ip, uint16 usQueryPort, uint16 usC m_usConnectionPort = usConnectionPort; } -#ifdef NETADR_H -inline netadr_t servernetadr_t::GetIPAndQueryPort() -{ - return netadr_t(m_unIP, m_usQueryPort); -} -#endif - inline uint16 servernetadr_t::GetQueryPort() const { return m_usQueryPort; @@ -154,9 +134,9 @@ inline const char* servernetadr_t::ToString(uint32 unIP, uint16 usPort) const static int nBuf = 0; unsigned char* ipByte = (unsigned char*)&unIP; #ifdef VALVE_BIG_ENDIAN - _snprintf(s[nBuf], sizeof(s[nBuf]), "%u.%u.%u.%u:%i", (int)(ipByte[0]), (int)(ipByte[1]), (int)(ipByte[2]), (int)(ipByte[3]), usPort); + snprintf(s[nBuf], sizeof(s[nBuf]), "%u.%u.%u.%u:%i", (int)(ipByte[0]), (int)(ipByte[1]), (int)(ipByte[2]), (int)(ipByte[3]), usPort); #else - _snprintf(s[nBuf], sizeof(s[nBuf]), "%u.%u.%u.%u:%i", (int)(ipByte[3]), (int)(ipByte[2]), (int)(ipByte[1]), (int)(ipByte[0]), usPort); + snprintf(s[nBuf], sizeof(s[nBuf]), "%u.%u.%u.%u:%i", (int)(ipByte[3]), (int)(ipByte[2]), (int)(ipByte[1]), (int)(ipByte[0]), usPort); #endif const char* pchRet = s[nBuf]; ++nBuf; diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/steam_api.json b/ScreenPlayWorkshop/SteamSDK/public/steam/steam_api.json index aa99da9f..c93ba668 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/steam_api.json +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/steam_api.json @@ -136,7 +136,9 @@ { "callback_id": 331, "fields": [ - { "fieldname":"m_bActive", "fieldtype":"uint8" } + { "fieldname":"m_bActive", "fieldtype":"uint8" }, + { "fieldname":"m_bUserInitiated", "fieldtype":"bool" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } ], "struct": "GameOverlayActivated_t" }, @@ -347,7 +349,8 @@ "callback_id": 714, "fields": [ { "fieldname":"m_bSubmitted", "fieldtype":"bool" }, - { "fieldname":"m_unSubmittedText", "fieldtype":"uint32" } + { "fieldname":"m_unSubmittedText", "fieldtype":"uint32" }, + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" } ], "struct": "GamepadTextInputDismissed_t" }, @@ -361,6 +364,13 @@ "fields": [], "struct": "FloatingGamepadTextInputDismissed_t" }, + { + "callback_id": 739, + "fields": [ + { "fieldname":"m_eLanguage", "fieldtype":"int" } + ], + "struct": "FilterTextDictionaryChanged_t" + }, { "callback_id": 502, "fields": [ @@ -968,14 +978,6 @@ ], "struct": "DlcInstalled_t" }, - { - "callback_id": 1008, - "fields": [ - { "fieldname":"m_eResult", "fieldtype":"ERegisterActivationCodeResult" }, - { "fieldname":"m_unPackageRegistered", "fieldtype":"uint32" } - ], - "struct": "RegisterActivationCodeResponse_t" - }, { "callback_id": 1014, "fields": [], @@ -2162,7 +2164,8 @@ { "name":"k_EAuthSessionResponseAuthTicketCanceled", "value":"6" }, { "name":"k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed", "value":"7" }, { "name":"k_EAuthSessionResponseAuthTicketInvalid", "value":"8" }, - { "name":"k_EAuthSessionResponsePublisherIssuedBan", "value":"9" } + { "name":"k_EAuthSessionResponsePublisherIssuedBan", "value":"9" }, + { "name":"k_EAuthSessionResponseAuthTicketNetworkIdentityFailure", "value":"10" } ] }, { @@ -2236,6 +2239,7 @@ { "enumname": "ENotificationPosition", "values": [ + { "name":"k_EPositionInvalid", "value":"-1" }, { "name":"k_EPositionTopLeft", "value":"0" }, { "name":"k_EPositionTopRight", "value":"1" }, { "name":"k_EPositionBottomLeft", "value":"2" }, @@ -2743,16 +2747,6 @@ { "name":"k_ELeaderboardUploadScoreMethodForceUpdate", "value":"2" } ] }, - { - "enumname": "ERegisterActivationCodeResult", - "values": [ - { "name":"k_ERegisterActivationCodeResultOK", "value":"0" }, - { "name":"k_ERegisterActivationCodeResultFail", "value":"1" }, - { "name":"k_ERegisterActivationCodeResultAlreadyRegistered", "value":"2" }, - { "name":"k_ERegisterActivationCodeResultTimeout", "value":"3" }, - { "name":"k_ERegisterActivationCodeAlreadyOwned", "value":"4" } - ] - }, { "enumname": "EP2PSessionError", "values": [ @@ -2850,6 +2844,7 @@ { "name":"k_EHTTPStatusCode304NotModified", "value":"304" }, { "name":"k_EHTTPStatusCode305UseProxy", "value":"305" }, { "name":"k_EHTTPStatusCode307TemporaryRedirect", "value":"307" }, + { "name":"k_EHTTPStatusCode308PermanentRedirect", "value":"308" }, { "name":"k_EHTTPStatusCode400BadRequest", "value":"400" }, { "name":"k_EHTTPStatusCode401Unauthorized", "value":"401" }, { "name":"k_EHTTPStatusCode402PaymentRequired", "value":"402" }, @@ -3153,10 +3148,10 @@ { "name":"k_EInputActionOrigin_Switch_LeftGrip_Upper", "value":"245" }, { "name":"k_EInputActionOrigin_Switch_RightGrip_Lower", "value":"246" }, { "name":"k_EInputActionOrigin_Switch_RightGrip_Upper", "value":"247" }, - { "name":"k_EInputActionOrigin_Switch_Reserved11", "value":"248" }, - { "name":"k_EInputActionOrigin_Switch_Reserved12", "value":"249" }, - { "name":"k_EInputActionOrigin_Switch_Reserved13", "value":"250" }, - { "name":"k_EInputActionOrigin_Switch_Reserved14", "value":"251" }, + { "name":"k_EInputActionOrigin_Switch_JoyConButton_N", "value":"248" }, + { "name":"k_EInputActionOrigin_Switch_JoyConButton_E", "value":"249" }, + { "name":"k_EInputActionOrigin_Switch_JoyConButton_S", "value":"250" }, + { "name":"k_EInputActionOrigin_Switch_JoyConButton_W", "value":"251" }, { "name":"k_EInputActionOrigin_Switch_Reserved15", "value":"252" }, { "name":"k_EInputActionOrigin_Switch_Reserved16", "value":"253" }, { "name":"k_EInputActionOrigin_Switch_Reserved17", "value":"254" }, @@ -3218,10 +3213,10 @@ { "name":"k_EInputActionOrigin_PS5_Gyro_Yaw", "value":"310" }, { "name":"k_EInputActionOrigin_PS5_Gyro_Roll", "value":"311" }, { "name":"k_EInputActionOrigin_PS5_DPad_Move", "value":"312" }, - { "name":"k_EInputActionOrigin_PS5_Reserved1", "value":"313" }, - { "name":"k_EInputActionOrigin_PS5_Reserved2", "value":"314" }, - { "name":"k_EInputActionOrigin_PS5_Reserved3", "value":"315" }, - { "name":"k_EInputActionOrigin_PS5_Reserved4", "value":"316" }, + { "name":"k_EInputActionOrigin_PS5_LeftGrip", "value":"313" }, + { "name":"k_EInputActionOrigin_PS5_RightGrip", "value":"314" }, + { "name":"k_EInputActionOrigin_PS5_LeftFn", "value":"315" }, + { "name":"k_EInputActionOrigin_PS5_RightFn", "value":"316" }, { "name":"k_EInputActionOrigin_PS5_Reserved5", "value":"317" }, { "name":"k_EInputActionOrigin_PS5_Reserved6", "value":"318" }, { "name":"k_EInputActionOrigin_PS5_Reserved7", "value":"319" }, @@ -3818,7 +3813,15 @@ { "name":"k_EControllerActionOrigin_SteamDeck_Reserved18", "value":"375" }, { "name":"k_EControllerActionOrigin_SteamDeck_Reserved19", "value":"376" }, { "name":"k_EControllerActionOrigin_SteamDeck_Reserved20", "value":"377" }, - { "name":"k_EControllerActionOrigin_Count", "value":"378" }, + { "name":"k_EControllerActionOrigin_Switch_JoyConButton_N", "value":"378" }, + { "name":"k_EControllerActionOrigin_Switch_JoyConButton_E", "value":"379" }, + { "name":"k_EControllerActionOrigin_Switch_JoyConButton_S", "value":"380" }, + { "name":"k_EControllerActionOrigin_Switch_JoyConButton_W", "value":"381" }, + { "name":"k_EControllerActionOrigin_PS5_LeftGrip", "value":"382" }, + { "name":"k_EControllerActionOrigin_PS5_RightGrip", "value":"383" }, + { "name":"k_EControllerActionOrigin_PS5_LeftFn", "value":"384" }, + { "name":"k_EControllerActionOrigin_PS5_RightFn", "value":"385" }, + { "name":"k_EControllerActionOrigin_Count", "value":"386" }, { "name":"k_EControllerActionOrigin_MaximumPossibleValue", "value":"32767" } ] }, @@ -3951,6 +3954,16 @@ { "name":"k_EItemPreviewType_ReservedMax", "value":"255" } ] }, + { + "enumname": "EUGCContentDescriptorID", + "values": [ + { "name":"k_EUGCContentDescriptor_NudityOrSexualContent", "value":"1" }, + { "name":"k_EUGCContentDescriptor_FrequentViolenceOrGore", "value":"2" }, + { "name":"k_EUGCContentDescriptor_AdultOnlySexualContent", "value":"3" }, + { "name":"k_EUGCContentDescriptor_GratuitousSexualContent", "value":"4" }, + { "name":"k_EUGCContentDescriptor_AnyMatureContent", "value":"5" } + ] + }, { "enumname": "ESteamItemFlags", "values": [ @@ -3976,7 +3989,8 @@ { "name":"k_EFeatureLibrary", "value":"11" }, { "name":"k_EFeatureTest", "value":"12" }, { "name":"k_EFeatureSiteLicense", "value":"13" }, - { "name":"k_EFeatureMax", "value":"14" } + { "name":"k_EFeatureKioskMode", "value":"14" }, + { "name":"k_EFeatureMax", "value":"15" } ] }, { @@ -4556,7 +4570,7 @@ { "kind": "user", "name": "SteamUser", - "name_flat": "SteamAPI_SteamUser_v021" + "name_flat": "SteamAPI_SteamUser_v022" } ], "classname": "ISteamUser", @@ -4685,7 +4699,8 @@ "params": [ { "paramname":"pTicket", "paramtype":"void *" }, { "paramname":"cbMaxTicket", "paramtype":"int" }, - { "paramname":"pcbTicket", "paramtype":"uint32 *" } + { "paramname":"pcbTicket", "paramtype":"uint32 *" }, + { "paramname":"pSteamNetworkingIdentity", "paramtype":"const SteamNetworkingIdentity *" } ], "returntype": "HAuthTicket" }, @@ -4831,7 +4846,7 @@ "returntype": "bool" } ], - "version_string": "SteamUser021" + "version_string": "SteamUser022" }, { "accessors": [ @@ -9735,12 +9750,12 @@ { "kind": "user", "name": "SteamUGC", - "name_flat": "SteamAPI_SteamUGC_v016" + "name_flat": "SteamAPI_SteamUGC_v017" }, { "kind": "gameserver", "name": "SteamGameServerUGC", - "name_flat": "SteamAPI_SteamGameServerUGC_v016" + "name_flat": "SteamAPI_SteamGameServerUGC_v017" } ], "classname": "ISteamUGC", @@ -9984,6 +9999,17 @@ ], "returntype": "bool" }, + { + "methodname": "GetQueryUGCContentDescriptors", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCContentDescriptors", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pvecDescriptors", "paramtype":"EUGCContentDescriptorID *" }, + { "paramname":"cMaxEntries", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, { "methodname": "ReleaseQueryUGCRequest", "methodname_flat": "SteamAPI_ISteamUGC_ReleaseQueryUGCRequest", @@ -10360,6 +10386,24 @@ ], "returntype": "bool" }, + { + "methodname": "AddContentDescriptor", + "methodname_flat": "SteamAPI_ISteamUGC_AddContentDescriptor", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"descid", "paramtype":"EUGCContentDescriptorID" } + ], + "returntype": "bool" + }, + { + "methodname": "RemoveContentDescriptor", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveContentDescriptor", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"descid", "paramtype":"EUGCContentDescriptorID" } + ], + "returntype": "bool" + }, { "callresult": "SubmitItemUpdateResult_t", "methodname": "SubmitItemUpdate", @@ -10611,7 +10655,7 @@ "returntype": "SteamAPICall_t" } ], - "version_string": "STEAMUGC_INTERFACE_VERSION016" + "version_string": "STEAMUGC_INTERFACE_VERSION017" }, { "accessors": [ @@ -12675,7 +12719,7 @@ { "kind": "gameserver", "name": "SteamGameServer", - "name_flat": "SteamAPI_SteamGameServer_v014" + "name_flat": "SteamAPI_SteamGameServer_v015" } ], "classname": "ISteamGameServer", @@ -12867,7 +12911,8 @@ "params": [ { "paramname":"pTicket", "paramtype":"void *" }, { "paramname":"cbMaxTicket", "paramtype":"int" }, - { "paramname":"pcbTicket", "paramtype":"uint32 *" } + { "paramname":"pcbTicket", "paramtype":"uint32 *" }, + { "paramname":"pSnid", "paramtype":"const SteamNetworkingIdentity *" } ], "returntype": "HAuthTicket" }, @@ -13011,7 +13056,7 @@ "returntype": "bool" } ], - "version_string": "SteamGameServer014" + "version_string": "SteamGameServer015" }, { "accessors": [ @@ -13431,6 +13476,29 @@ ], "struct": "InputMotionData_t" }, + { + "fields": [ + { "fieldname":"driftCorrectedQuatX", "fieldtype":"float" }, + { "fieldname":"driftCorrectedQuatY", "fieldtype":"float" }, + { "fieldname":"driftCorrectedQuatZ", "fieldtype":"float" }, + { "fieldname":"driftCorrectedQuatW", "fieldtype":"float" }, + { "fieldname":"sensorFusionQuatX", "fieldtype":"float" }, + { "fieldname":"sensorFusionQuatY", "fieldtype":"float" }, + { "fieldname":"sensorFusionQuatZ", "fieldtype":"float" }, + { "fieldname":"sensorFusionQuatW", "fieldtype":"float" }, + { "fieldname":"deferredSensorFusionQuatX", "fieldtype":"float" }, + { "fieldname":"deferredSensorFusionQuatY", "fieldtype":"float" }, + { "fieldname":"deferredSensorFusionQuatZ", "fieldtype":"float" }, + { "fieldname":"deferredSensorFusionQuatW", "fieldtype":"float" }, + { "fieldname":"gravityX", "fieldtype":"float" }, + { "fieldname":"gravityY", "fieldtype":"float" }, + { "fieldname":"gravityZ", "fieldtype":"float" }, + { "fieldname":"degreesPerSecondX", "fieldtype":"float" }, + { "fieldname":"degreesPerSecondY", "fieldtype":"float" }, + { "fieldname":"degreesPerSecondZ", "fieldtype":"float" } + ], + "struct": "InputMotionDataV2_t" + }, { "fields": [ { "fieldname":"controllerHandle", "fieldtype":"InputHandle_t" }, diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/steam_api_common.h b/ScreenPlayWorkshop/SteamSDK/public/steam/steam_api_common.h index e30144cf..3332b35e 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/steam_api_common.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/steam_api_common.h @@ -9,9 +9,6 @@ #ifndef STEAM_API_COMMON_H #define STEAM_API_COMMON_H -#ifdef _WIN32 -#pragma once -#endif #include "steamclientpublic.h" #include "steamtypes.h" @@ -25,7 +22,7 @@ #else #define S_API extern "C" __declspec(dllimport) #endif // STEAM_API_EXPORTS -#elif defined(GNUC) +#elif defined(__GNUC__) #if defined(STEAM_API_EXPORTS) #define S_API extern "C" __attribute__((visibility("default"))) #else @@ -53,12 +50,18 @@ protected: \ typedef int32 HSteamPipe; // handle to single instance of a steam user typedef int32 HSteamUser; -// function prototype -#if defined(POSIX) + +// #define away __cdecl on posix. +// This is really, really bad. We're sorry. But it's been this way for +// a long time now and it's scary to change it, as there may be others that +// depend on it. +#ifndef _WIN32 #define __cdecl #endif -extern "C" typedef void(__cdecl* SteamAPIWarningMessageHook_t)(int, const char*); -extern "C" typedef uint32 (*SteamAPI_CheckCallbackRegistered_t)(int iCallbackNum); + +// function prototype +extern "C" typedef void(S_CALLTYPE* SteamAPIWarningMessageHook_t)(int, const char*); +extern "C" typedef uint32(S_CALLTYPE* SteamAPI_CheckCallbackRegistered_t)(int iCallbackNum); #if defined(__SNC__) #pragma diag_suppress = 1700 // warning 1700: class "%s" has virtual functions but non-virtual destructor #endif diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/steam_api_flat.h b/ScreenPlayWorkshop/SteamSDK/public/steam/steam_api_flat.h index bf0311ea..aae98e30 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/steam_api_flat.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/steam_api_flat.h @@ -56,9 +56,9 @@ S_API ISteamRemotePlay* SteamAPI_ISteamClient_GetISteamRemotePlay(ISteamClient* // ISteamUser // A versioned accessor is exported by the library -S_API ISteamUser* SteamAPI_SteamUser_v021(); +S_API ISteamUser* SteamAPI_SteamUser_v022(); // Inline, unversioned accessor to get the current version. Essentially the same as SteamUser(), but using this ensures that you are using a matching library. -inline ISteamUser* SteamAPI_SteamUser() { return SteamAPI_SteamUser_v021(); } +inline ISteamUser* SteamAPI_SteamUser() { return SteamAPI_SteamUser_v022(); } S_API HSteamUser SteamAPI_ISteamUser_GetHSteamUser(ISteamUser* self); S_API bool SteamAPI_ISteamUser_BLoggedOn(ISteamUser* self); S_API uint64_steamid SteamAPI_ISteamUser_GetSteamID(ISteamUser* self); @@ -72,7 +72,7 @@ S_API EVoiceResult SteamAPI_ISteamUser_GetAvailableVoice(ISteamUser* self, uint3 S_API EVoiceResult SteamAPI_ISteamUser_GetVoice(ISteamUser* self, 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(ISteamUser* self, const void* pCompressed, uint32 cbCompressed, void* pDestBuffer, uint32 cbDestBufferSize, uint32* nBytesWritten, uint32 nDesiredSampleRate); S_API uint32 SteamAPI_ISteamUser_GetVoiceOptimalSampleRate(ISteamUser* self); -S_API HAuthTicket SteamAPI_ISteamUser_GetAuthSessionTicket(ISteamUser* self, void* pTicket, int cbMaxTicket, uint32* pcbTicket); +S_API HAuthTicket SteamAPI_ISteamUser_GetAuthSessionTicket(ISteamUser* self, void* pTicket, int cbMaxTicket, uint32* pcbTicket, const SteamNetworkingIdentity* pSteamNetworkingIdentity); S_API EBeginAuthSessionResult SteamAPI_ISteamUser_BeginAuthSession(ISteamUser* self, const void* pAuthTicket, int cbAuthTicket, uint64_steamid steamID); S_API void SteamAPI_ISteamUser_EndAuthSession(ISteamUser* self, uint64_steamid steamID); S_API void SteamAPI_ISteamUser_CancelAuthTicket(ISteamUser* self, HAuthTicket hAuthTicket); @@ -751,14 +751,14 @@ S_API bool SteamAPI_ISteamController_GetControllerBindingRevision(ISteamControll // ISteamUGC // A versioned accessor is exported by the library -S_API ISteamUGC* SteamAPI_SteamUGC_v016(); +S_API ISteamUGC* SteamAPI_SteamUGC_v017(); // Inline, unversioned accessor to get the current version. Essentially the same as SteamUGC(), but using this ensures that you are using a matching library. -inline ISteamUGC* SteamAPI_SteamUGC() { return SteamAPI_SteamUGC_v016(); } +inline ISteamUGC* SteamAPI_SteamUGC() { return SteamAPI_SteamUGC_v017(); } // A versioned accessor is exported by the library -S_API ISteamUGC* SteamAPI_SteamGameServerUGC_v016(); +S_API ISteamUGC* SteamAPI_SteamGameServerUGC_v017(); // Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerUGC(), but using this ensures that you are using a matching library. -inline ISteamUGC* SteamAPI_SteamGameServerUGC() { return SteamAPI_SteamGameServerUGC_v016(); } +inline ISteamUGC* SteamAPI_SteamGameServerUGC() { return SteamAPI_SteamGameServerUGC_v017(); } S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUserUGCRequest(ISteamUGC* self, AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage); S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryAllUGCRequestPage(ISteamUGC* self, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage); S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryAllUGCRequestCursor(ISteamUGC* self, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, const char* pchCursor); @@ -777,6 +777,7 @@ S_API bool SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview(ISteamUGC* self, UGCQ S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags(ISteamUGC* self, UGCQueryHandle_t handle, uint32 index); S_API bool SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag(ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, char* pchKey, uint32 cchKeySize, char* pchValue, uint32 cchValueSize); S_API bool SteamAPI_ISteamUGC_GetQueryFirstUGCKeyValueTag(ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, const char* pchKey, char* pchValue, uint32 cchValueSize); +S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCContentDescriptors(ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, EUGCContentDescriptorID* pvecDescriptors, uint32 cMaxEntries); S_API bool SteamAPI_ISteamUGC_ReleaseQueryUGCRequest(ISteamUGC* self, UGCQueryHandle_t handle); S_API bool SteamAPI_ISteamUGC_AddRequiredTag(ISteamUGC* self, UGCQueryHandle_t handle, const char* pTagName); S_API bool SteamAPI_ISteamUGC_AddRequiredTagGroup(ISteamUGC* self, UGCQueryHandle_t handle, const SteamParamStringArray_t* pTagGroups); @@ -818,6 +819,8 @@ S_API bool SteamAPI_ISteamUGC_AddItemPreviewVideo(ISteamUGC* self, UGCUpdateHand S_API bool SteamAPI_ISteamUGC_UpdateItemPreviewFile(ISteamUGC* self, UGCUpdateHandle_t handle, uint32 index, const char* pszPreviewFile); S_API bool SteamAPI_ISteamUGC_UpdateItemPreviewVideo(ISteamUGC* self, UGCUpdateHandle_t handle, uint32 index, const char* pszVideoID); S_API bool SteamAPI_ISteamUGC_RemoveItemPreview(ISteamUGC* self, UGCUpdateHandle_t handle, uint32 index); +S_API bool SteamAPI_ISteamUGC_AddContentDescriptor(ISteamUGC* self, UGCUpdateHandle_t handle, EUGCContentDescriptorID descid); +S_API bool SteamAPI_ISteamUGC_RemoveContentDescriptor(ISteamUGC* self, UGCUpdateHandle_t handle, EUGCContentDescriptorID descid); S_API SteamAPICall_t SteamAPI_ISteamUGC_SubmitItemUpdate(ISteamUGC* self, UGCUpdateHandle_t handle, const char* pchChangeNote); S_API EItemUpdateStatus SteamAPI_ISteamUGC_GetItemUpdateProgress(ISteamUGC* self, UGCUpdateHandle_t handle, uint64* punBytesProcessed, uint64* punBytesTotal); S_API SteamAPICall_t SteamAPI_ISteamUGC_SetUserItemVote(ISteamUGC* self, PublishedFileId_t nPublishedFileID, bool bVoteUp); @@ -1118,9 +1121,9 @@ S_API bool SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ParseString(IS // ISteamGameServer // A versioned accessor is exported by the library -S_API ISteamGameServer* SteamAPI_SteamGameServer_v014(); +S_API ISteamGameServer* SteamAPI_SteamGameServer_v015(); // Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServer(), but using this ensures that you are using a matching library. -inline ISteamGameServer* SteamAPI_SteamGameServer() { return SteamAPI_SteamGameServer_v014(); } +inline ISteamGameServer* SteamAPI_SteamGameServer() { return SteamAPI_SteamGameServer_v015(); } S_API void SteamAPI_ISteamGameServer_SetProduct(ISteamGameServer* self, const char* pszProduct); S_API void SteamAPI_ISteamGameServer_SetGameDescription(ISteamGameServer* self, const char* pszGameDescription); S_API void SteamAPI_ISteamGameServer_SetModDir(ISteamGameServer* self, const char* pszModDir); @@ -1145,7 +1148,7 @@ S_API void SteamAPI_ISteamGameServer_SetGameTags(ISteamGameServer* self, const c S_API void SteamAPI_ISteamGameServer_SetGameData(ISteamGameServer* self, const char* pchGameData); S_API void SteamAPI_ISteamGameServer_SetRegion(ISteamGameServer* self, const char* pszRegion); S_API void SteamAPI_ISteamGameServer_SetAdvertiseServerActive(ISteamGameServer* self, bool bActive); -S_API HAuthTicket SteamAPI_ISteamGameServer_GetAuthSessionTicket(ISteamGameServer* self, void* pTicket, int cbMaxTicket, uint32* pcbTicket); +S_API HAuthTicket SteamAPI_ISteamGameServer_GetAuthSessionTicket(ISteamGameServer* self, void* pTicket, int cbMaxTicket, uint32* pcbTicket, const SteamNetworkingIdentity* pSnid); S_API EBeginAuthSessionResult SteamAPI_ISteamGameServer_BeginAuthSession(ISteamGameServer* self, const void* pAuthTicket, int cbAuthTicket, uint64_steamid steamID); S_API void SteamAPI_ISteamGameServer_EndAuthSession(ISteamGameServer* self, uint64_steamid steamID); S_API void SteamAPI_ISteamGameServer_CancelAuthTicket(ISteamGameServer* self, HAuthTicket hAuthTicket); diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/steam_api_internal.h b/ScreenPlayWorkshop/SteamSDK/public/steam/steam_api_internal.h index 218a040d..e8d72fa7 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/steam_api_internal.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/steam_api_internal.h @@ -58,12 +58,6 @@ S_API void S_CALLTYPE SteamAPI_UnregisterCallback(class CCallbackBase* pCallback S_API void S_CALLTYPE SteamAPI_RegisterCallResult(class CCallbackBase* pCallback, SteamAPICall_t hAPICall); S_API void S_CALLTYPE SteamAPI_UnregisterCallResult(class CCallbackBase* pCallback, SteamAPICall_t hAPICall); -// disable this warning; this pattern need for steam callback registration -#ifdef _MSVC_VER -#pragma warning(push) -#pragma warning(disable : 4355) // 'this' : used in base member initializer list -#endif - #define _STEAM_CALLBACK_AUTO_HOOK(thisclass, func, param) #define _STEAM_CALLBACK_HELPER(_1, _2, SELECTED, ...) _STEAM_CALLBACK_##SELECTED #define _STEAM_CALLBACK_SELECT(X, Y) _STEAM_CALLBACK_HELPER X Y @@ -265,6 +259,9 @@ class ISteamInput; class ISteamParties; class ISteamRemotePlay; +// Forward declare types +struct SteamNetworkingIdentity; + //----------------------------------------------------------------------------- // Purpose: Base values for callback identifiers, each callback must // have a unique ID. @@ -310,10 +307,6 @@ enum { k_iSteamRemotePlayCallbacks = 5700 }; enum { k_iSteamChatCallbacks = 5900 }; // NOTE: Internal "IClientXxx" callback IDs go in clientenums.h -#ifdef _MSVC_VER -#pragma warning(pop) -#endif - // Macros used to annotate various Steamworks interfaces to generate the // flat API #ifdef API_GEN diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/steam_qt_enums_generated.h b/ScreenPlayWorkshop/SteamSDK/public/steam/steam_qt_enums_generated.h index d8f2baba..e0d00c3b 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/steam_qt_enums_generated.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/steam_qt_enums_generated.h @@ -211,6 +211,7 @@ enum class EAuthSessionResponse { K_EAuthSessionResponseAuthTicketInvalidAlreadyUsed = 7, K_EAuthSessionResponseAuthTicketInvalid = 8, K_EAuthSessionResponsePublisherIssuedBan = 9, + K_EAuthSessionResponseAuthTicketNetworkIdentityFailure = 10, }; Q_ENUM_NS(EAuthSessionResponse) @@ -278,6 +279,7 @@ enum class EChatSteamIDInstanceFlags { Q_ENUM_NS(EChatSteamIDInstanceFlags) enum class ENotificationPosition { + K_EPositionInvalid = -1, K_EPositionTopLeft = 0, K_EPositionTopRight = 1, K_EPositionBottomLeft = 2, @@ -741,15 +743,6 @@ enum class ELeaderboardUploadScoreMethod { }; Q_ENUM_NS(ELeaderboardUploadScoreMethod) -enum class ERegisterActivationCodeResult { - K_ERegisterActivationCodeResultOK = 0, - K_ERegisterActivationCodeResultFail = 1, - K_ERegisterActivationCodeResultAlreadyRegistered = 2, - K_ERegisterActivationCodeResultTimeout = 3, - K_ERegisterActivationCodeAlreadyOwned = 4, -}; -Q_ENUM_NS(ERegisterActivationCodeResult) - enum class EP2PSessionError { K_EP2PSessionErrorNone = 0, K_EP2PSessionErrorNoRightsToApp = 2, @@ -838,6 +831,7 @@ enum class EHTTPStatusCode { K_EHTTPStatusCode304NotModified = 304, K_EHTTPStatusCode305UseProxy = 305, K_EHTTPStatusCode307TemporaryRedirect = 307, + K_EHTTPStatusCode308PermanentRedirect = 308, K_EHTTPStatusCode400BadRequest = 400, K_EHTTPStatusCode401Unauthorized = 401, K_EHTTPStatusCode402PaymentRequired = 402, @@ -1139,10 +1133,10 @@ enum class EInputActionOrigin { K_EInputActionOrigin_Switch_LeftGrip_Upper = 245, K_EInputActionOrigin_Switch_RightGrip_Lower = 246, K_EInputActionOrigin_Switch_RightGrip_Upper = 247, - K_EInputActionOrigin_Switch_Reserved11 = 248, - K_EInputActionOrigin_Switch_Reserved12 = 249, - K_EInputActionOrigin_Switch_Reserved13 = 250, - K_EInputActionOrigin_Switch_Reserved14 = 251, + K_EInputActionOrigin_Switch_JoyConButton_N = 248, + K_EInputActionOrigin_Switch_JoyConButton_E = 249, + K_EInputActionOrigin_Switch_JoyConButton_S = 250, + K_EInputActionOrigin_Switch_JoyConButton_W = 251, K_EInputActionOrigin_Switch_Reserved15 = 252, K_EInputActionOrigin_Switch_Reserved16 = 253, K_EInputActionOrigin_Switch_Reserved17 = 254, @@ -1204,10 +1198,10 @@ enum class EInputActionOrigin { K_EInputActionOrigin_PS5_Gyro_Yaw = 310, K_EInputActionOrigin_PS5_Gyro_Roll = 311, K_EInputActionOrigin_PS5_DPad_Move = 312, - K_EInputActionOrigin_PS5_Reserved1 = 313, - K_EInputActionOrigin_PS5_Reserved2 = 314, - K_EInputActionOrigin_PS5_Reserved3 = 315, - K_EInputActionOrigin_PS5_Reserved4 = 316, + K_EInputActionOrigin_PS5_LeftGrip = 313, + K_EInputActionOrigin_PS5_RightGrip = 314, + K_EInputActionOrigin_PS5_LeftFn = 315, + K_EInputActionOrigin_PS5_RightFn = 316, K_EInputActionOrigin_PS5_Reserved5 = 317, K_EInputActionOrigin_PS5_Reserved6 = 318, K_EInputActionOrigin_PS5_Reserved7 = 319, @@ -1793,7 +1787,15 @@ enum class EControllerActionOrigin { K_EControllerActionOrigin_SteamDeck_Reserved18 = 375, K_EControllerActionOrigin_SteamDeck_Reserved19 = 376, K_EControllerActionOrigin_SteamDeck_Reserved20 = 377, - K_EControllerActionOrigin_Count = 378, + K_EControllerActionOrigin_Switch_JoyConButton_N = 378, + K_EControllerActionOrigin_Switch_JoyConButton_E = 379, + K_EControllerActionOrigin_Switch_JoyConButton_S = 380, + K_EControllerActionOrigin_Switch_JoyConButton_W = 381, + K_EControllerActionOrigin_PS5_LeftGrip = 382, + K_EControllerActionOrigin_PS5_RightGrip = 383, + K_EControllerActionOrigin_PS5_LeftFn = 384, + K_EControllerActionOrigin_PS5_RightFn = 385, + K_EControllerActionOrigin_Count = 386, K_EControllerActionOrigin_MaximumPossibleValue = 32767, }; Q_ENUM_NS(EControllerActionOrigin) @@ -1918,6 +1920,15 @@ enum class EItemPreviewType { }; Q_ENUM_NS(EItemPreviewType) +enum class EUGCContentDescriptorID { + K_EUGCContentDescriptor_NudityOrSexualContent = 1, + K_EUGCContentDescriptor_FrequentViolenceOrGore = 2, + K_EUGCContentDescriptor_AdultOnlySexualContent = 3, + K_EUGCContentDescriptor_GratuitousSexualContent = 4, + K_EUGCContentDescriptor_AnyMatureContent = 5, +}; +Q_ENUM_NS(EUGCContentDescriptorID) + enum class ESteamItemFlags { K_ESteamItemNoTrade = 1, K_ESteamItemRemoved = 256, @@ -1940,7 +1951,8 @@ enum class EParentalFeature { K_EFeatureLibrary = 11, K_EFeatureTest = 12, K_EFeatureSiteLicense = 13, - K_EFeatureMax = 14, + K_EFeatureKioskMode = 14, + K_EFeatureMax = 15, }; Q_ENUM_NS(EParentalFeature) diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/steamclientpublic.h b/ScreenPlayWorkshop/SteamSDK/public/steam/steamclientpublic.h index fc00f48d..e4ed4bdc 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/steamclientpublic.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/steamclientpublic.h @@ -78,7 +78,7 @@ enum EResult { k_EResultAccountLogonDenied = 63, // account login denied due to 2nd factor authentication failure k_EResultCannotUseOldPassword = 64, // The requested new password is not legal k_EResultInvalidLoginAuthCode = 65, // account login denied due to auth code invalid - k_EResultAccountLogonDeniedNoMail = 66, // account login denied due to 2nd factor auth failure - and no mail has been sent + k_EResultAccountLogonDeniedNoMail = 66, // account login denied due to 2nd factor auth failure - and no mail has been sent - partner site specific k_EResultHardwareNotCapableOfIPT = 67, // k_EResultIPTInitError = 68, // k_EResultParentalControlRestricted = 69, // operation failed due to parental control restrictions for current user @@ -203,6 +203,7 @@ enum EAuthSessionResponse { k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed = 7, // This ticket has already been used, it is not valid. k_EAuthSessionResponseAuthTicketInvalid = 8, // This ticket is not from a user instance currently connected to steam. k_EAuthSessionResponsePublisherIssuedBan = 9, // The user is banned for this game. The ban came via the web api and not VAC + k_EAuthSessionResponseAuthTicketNetworkIdentityFailure = 10, // The network identity in the ticket does not match the server authenticating the ticket }; // results from UserHasLicenseForApp @@ -293,6 +294,7 @@ enum EChatSteamIDInstanceFlags { // Purpose: Possible positions to tell the overlay to show notifications in //----------------------------------------------------------------------------- enum ENotificationPosition { + k_EPositionInvalid = -1, k_EPositionTopLeft = 0, k_EPositionTopRight = 1, k_EPositionBottomLeft = 2, @@ -849,6 +851,13 @@ CSteamID ClanIDFromChatID(const CSteamID& steamIDChat); //----------------------------------------------------------------------------- class CGameID { public: + enum EGameIDType { + k_EGameIDTypeApp = 0, + k_EGameIDTypeGameMod = 1, + k_EGameIDTypeShortcut = 2, + k_EGameIDTypeP2P = 3, + }; + CGameID() { m_gameID.m_nType = k_EGameIDTypeApp; @@ -879,12 +888,12 @@ public: m_gameID.m_nAppID = nAppID; } - CGameID(uint32 nAppID, uint32 nModID) + // Not validating anything .. use IsValid() + explicit CGameID(uint32 nAppID, uint32 nModID, CGameID::EGameIDType nType) { - m_ulGameID = 0; m_gameID.m_nAppID = nAppID; m_gameID.m_nModID = nModID; - m_gameID.m_nType = k_EGameIDTypeGameMod; + m_gameID.m_nType = nType; } CGameID(const CGameID& that) @@ -943,10 +952,14 @@ public: return m_gameID.m_nModID; } - uint32 AppID() const +#if !defined(VALVE_SHORTCUT_DEBUG) + uint32 AppID(bool = false) const { return m_gameID.m_nAppID; } +#else + uint32 AppID(bool bShortcutOK = false) const; +#endif bool operator==(const CGameID& rhs) const { @@ -971,13 +984,15 @@ public: return m_gameID.m_nAppID != k_uAppIdInvalid; case k_EGameIDTypeGameMod: - return m_gameID.m_nAppID != k_uAppIdInvalid && m_gameID.m_nModID & 0x80000000; + return m_gameID.m_nAppID != k_uAppIdInvalid && (m_gameID.m_nModID & 0x80000000); case k_EGameIDTypeShortcut: - return (m_gameID.m_nModID & 0x80000000) != 0; + return m_gameID.m_nAppID == k_uAppIdInvalid + && (m_gameID.m_nModID & 0x80000000) + && m_gameID.m_nModID >= (5000 | 0x80000000); // k_unMaxExpectedLocalAppId - shortcuts are pushed beyond that range case k_EGameIDTypeP2P: - return m_gameID.m_nAppID == k_uAppIdInvalid && m_gameID.m_nModID & 0x80000000; + return m_gameID.m_nAppID == k_uAppIdInvalid && (m_gameID.m_nModID & 0x80000000); default: return false; @@ -993,13 +1008,6 @@ public: // Internal stuff. Use the accessors above if possible // - enum EGameIDType { - k_EGameIDTypeApp = 0, - k_EGameIDTypeGameMod = 1, - k_EGameIDTypeShortcut = 2, - k_EGameIDTypeP2P = 3, - }; - struct GameID_t { #ifdef VALVE_BIG_ENDIAN unsigned int m_nModID : 32; @@ -1016,6 +1024,8 @@ public: uint64 m_ulGameID; GameID_t m_gameID; }; + + friend CGameID GameIDFromAppAndModPath(uint32 nAppID, const char* pchModPath); }; #pragma pack(pop) @@ -1064,7 +1074,7 @@ enum ESteamIPv6ConnectivityState { // Define compile time assert macros to let us validate the structure sizes. #define VALVE_COMPILE_TIME_ASSERT(pred) typedef char compile_time_assert_type[(pred) ? 1 : -1]; -#if defined(__linux__) || defined(__APPLE__) +#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) // The 32-bit version of gcc has the alignment requirement for uint64 and double set to // 4 meaning that even with #pragma pack(8) these types will only be four-byte aligned. // The 64-bit version of gcc has the alignment requirement for these types set to diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/steamhttpenums.h b/ScreenPlayWorkshop/SteamSDK/public/steam/steamhttpenums.h index e8ee5905..8a48b9c8 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/steamhttpenums.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/steamhttpenums.h @@ -59,6 +59,7 @@ enum EHTTPStatusCode { k_EHTTPStatusCode305UseProxy = 305, // k_EHTTPStatusCode306Unused = 306, (used in old HTTP spec, now unused in 1.1) k_EHTTPStatusCode307TemporaryRedirect = 307, + k_EHTTPStatusCode308PermanentRedirect = 308, // Error codes k_EHTTPStatusCode400BadRequest = 400, diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/steamnetworkingtypes.h b/ScreenPlayWorkshop/SteamSDK/public/steam/steamnetworkingtypes.h index 49d3fdff..5be10692 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/steamnetworkingtypes.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/steamnetworkingtypes.h @@ -1679,7 +1679,7 @@ inline SteamNetworkingPOPID CalculateSteamNetworkingPOPIDFromString(const char* // // There is also extra paranoia to make sure the bytes are not treated as signed. SteamNetworkingPOPID result = (uint32)(uint8)pszCode[0] << 16U; - if (pszCode[1]) { + if (result && pszCode[1]) { result |= ((uint32)(uint8)pszCode[1] << 8U); if (pszCode[2]) { result |= (uint32)(uint8)pszCode[2] | ((uint32)(uint8)pszCode[3] << 24U); @@ -1694,9 +1694,7 @@ inline SteamNetworkingPOPID CalculateSteamNetworkingPOPIDFromString(const char* template inline void GetSteamNetworkingLocationPOPStringFromID(SteamNetworkingPOPID id, char (&szCode)[N]) { -#if !defined(__GNUC__) || __GNUC__ >= 5 static_assert(N >= 5, "Fixed-size buffer not big enough to hold SDR POP ID"); -#endif szCode[0] = char(id >> 16U); szCode[1] = char(id >> 8U); szCode[2] = char(id); diff --git a/ScreenPlayWorkshop/SteamSDK/public/steam/steamtypes.h b/ScreenPlayWorkshop/SteamSDK/public/steam/steamtypes.h index 73d3debe..6a007630 100644 --- a/ScreenPlayWorkshop/SteamSDK/public/steam/steamtypes.h +++ b/ScreenPlayWorkshop/SteamSDK/public/steam/steamtypes.h @@ -1,27 +1,20 @@ -//========= Copyright © 1996-2008, Valve LLC, All rights reserved. ============ -// -// Purpose: -// -//============================================================================= +//========= Copyright 1996-2022, Valve LLC, All rights reserved. ============ #ifndef STEAMTYPES_H #define STEAMTYPES_H -#ifdef _WIN32 -#pragma once -#endif #define S_CALLTYPE __cdecl +// WARNING: __cdecl is potentially #defined away in steam_api_common.h // Steam-specific types. Defined here so this header file can be included in other code bases. #ifndef WCHARTYPES_H typedef unsigned char uint8; #endif -#if defined(__GNUC__) && !defined(_WIN32) && !defined(POSIX) +#ifdef __GNUC__ #if __GNUC__ < 4 #error "Steamworks requires GCC 4.X (4.2 or 4.4 have been tested)" #endif -#define POSIX 1 #endif #if defined(__LP64__) || defined(__x86_64__) || defined(_WIN64) || defined(__aarch64__) || defined(__s390x__) diff --git a/ScreenPlayWorkshop/SteamSDK/redistributable_bin/linux64/libsteam_api.so b/ScreenPlayWorkshop/SteamSDK/redistributable_bin/linux64/libsteam_api.so index d755843a..bbd3ff3f 100644 Binary files a/ScreenPlayWorkshop/SteamSDK/redistributable_bin/linux64/libsteam_api.so and b/ScreenPlayWorkshop/SteamSDK/redistributable_bin/linux64/libsteam_api.so differ diff --git a/ScreenPlayWorkshop/SteamSDK/redistributable_bin/osx/libsteam_api.dylib b/ScreenPlayWorkshop/SteamSDK/redistributable_bin/osx/libsteam_api.dylib index 41fc923c..4d1cd97a 100644 Binary files a/ScreenPlayWorkshop/SteamSDK/redistributable_bin/osx/libsteam_api.dylib and b/ScreenPlayWorkshop/SteamSDK/redistributable_bin/osx/libsteam_api.dylib differ diff --git a/ScreenPlayWorkshop/SteamSDK/redistributable_bin/steam_api.dll b/ScreenPlayWorkshop/SteamSDK/redistributable_bin/steam_api.dll index 3c4d47f7..5b03e977 100644 Binary files a/ScreenPlayWorkshop/SteamSDK/redistributable_bin/steam_api.dll and b/ScreenPlayWorkshop/SteamSDK/redistributable_bin/steam_api.dll differ diff --git a/ScreenPlayWorkshop/SteamSDK/redistributable_bin/steam_api.lib b/ScreenPlayWorkshop/SteamSDK/redistributable_bin/steam_api.lib index 44d01ec5..12726a50 100644 Binary files a/ScreenPlayWorkshop/SteamSDK/redistributable_bin/steam_api.lib and b/ScreenPlayWorkshop/SteamSDK/redistributable_bin/steam_api.lib differ diff --git a/ScreenPlayWorkshop/SteamSDK/redistributable_bin/win64/steam_api64.dll b/ScreenPlayWorkshop/SteamSDK/redistributable_bin/win64/steam_api64.dll index 5b798af1..45a49e96 100644 Binary files a/ScreenPlayWorkshop/SteamSDK/redistributable_bin/win64/steam_api64.dll and b/ScreenPlayWorkshop/SteamSDK/redistributable_bin/win64/steam_api64.dll differ diff --git a/ScreenPlayWorkshop/SteamSDK/redistributable_bin/win64/steam_api64.lib b/ScreenPlayWorkshop/SteamSDK/redistributable_bin/win64/steam_api64.lib index 7b6b2f8e..663b11e5 100644 Binary files a/ScreenPlayWorkshop/SteamSDK/redistributable_bin/win64/steam_api64.lib and b/ScreenPlayWorkshop/SteamSDK/redistributable_bin/win64/steam_api64.lib differ diff --git a/Tools/Steam/ContentBuilder/builder/steamcmd.exe b/Tools/Steam/ContentBuilder/builder/steamcmd.exe index 49bbee4f..fcec4f37 100644 Binary files a/Tools/Steam/ContentBuilder/builder/steamcmd.exe and b/Tools/Steam/ContentBuilder/builder/steamcmd.exe differ