diff --git a/.idea/dictionaries/project.xml b/.idea/dictionaries/project.xml index 9efa2c9..48fbc6a 100644 --- a/.idea/dictionaries/project.xml +++ b/.idea/dictionaries/project.xml @@ -3,8 +3,13 @@ abcdefghijklmnopqrstuvwxyz indicies + isteamapps + isteamclient + isteaminventory + isteamuser koalabox koaloader + steamapps wstr diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index e46e9d6..eacbd10 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -6,5 +6,6 @@ + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 894afee..9a2af2a 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -10,6 +10,7 @@ + diff --git a/CMakeLists.txt b/CMakeLists.txt index 1a52075..8f8b35c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.24) -project(SmokeAPI VERSION 2.0.5) +project(SmokeAPI VERSION 3.0.0) include(KoalaBox/cmake/KoalaBox.cmake) @@ -28,87 +28,75 @@ configure_build_config(extra_build_config) set( SMOKE_API_SOURCES - src/common/app_cache.cpp - src/common/app_cache.hpp - src/common/steamclient_exports.cpp - src/common/steamclient_exports.hpp - src/core/api.cpp - src/core/api.hpp - src/core/globals.cpp - src/core/globals.hpp - src/core/paths.cpp - src/core/paths.hpp - src/core/types.cpp - src/core/types.hpp - src/game_mode/exports/steam_api.cpp - src/game_mode/exports/steam_api_flat.cpp - src/game_mode/exports/steam_api_internal.cpp - src/game_mode/exports/steam_api_unversioned.cpp - src/game_mode/virtuals/isteamapps.cpp - src/game_mode/virtuals/isteamclient.cpp - src/game_mode/virtuals/isteaminventory.cpp - src/game_mode/virtuals/isteamuser.cpp - src/game_mode/virtuals/steam_api_virtuals.hpp + src/exports/steamclient.cpp + src/exports/steamclient.hpp + src/exports/steam_api.cpp + src/exports/steam_api_flat.cpp + src/exports/steam_api_internal.cpp + src/exports/steam_api_unversioned.cpp + src/virtuals/isteamapps.cpp + src/virtuals/isteamclient.cpp + src/virtuals/isteaminventory.cpp + src/virtuals/isteamuser.cpp + src/virtuals/steam_api_virtuals.hpp + src/smoke_api/cache.cpp + src/smoke_api/cache.hpp src/smoke_api/config.cpp src/smoke_api/config.hpp src/smoke_api/smoke_api.cpp src/smoke_api/smoke_api.hpp - src/steam_impl/steam_apps.cpp - src/steam_impl/steam_apps.hpp - src/steam_impl/steam_client.cpp - src/steam_impl/steam_client.hpp - src/steam_impl/steam_impl.cpp - src/steam_impl/steam_impl.hpp - src/steam_impl/steam_inventory.cpp - src/steam_impl/steam_inventory.hpp - src/steam_impl/steam_user.cpp - src/steam_impl/steam_user.hpp + src/smoke_api/api.cpp + src/smoke_api/api.hpp + src/smoke_api/globals.cpp + src/smoke_api/globals.hpp + src/smoke_api/types.cpp + src/smoke_api/types.hpp + src/steam_interface/steam_apps.cpp + src/steam_interface/steam_apps.hpp + src/steam_interface/steam_client.cpp + src/steam_interface/steam_client.hpp + src/steam_interface/steam_interface.cpp + src/steam_interface/steam_interface.hpp + src/steam_interface/steam_inventory.cpp + src/steam_interface/steam_inventory.hpp + src/steam_interface/steam_user.cpp + src/steam_interface/steam_user.hpp src/main.cpp ${GENERATED_LINKER_EXPORTS} ) -# Include store_mode mode sources only in 32-bit builds -if (CMAKE_SIZEOF_VOID_P EQUAL 4) - # TODO: Use list(APPEND ...) ? - set( - SMOKE_API_SOURCES ${SMOKE_API_SOURCES} - src/store_mode/steamclient/client_app_manager.cpp - src/store_mode/steamclient/client_apps.cpp - src/store_mode/steamclient/client_inventory.cpp - src/store_mode/steamclient/client_user.cpp - src/store_mode/steamclient/client_utils.cpp - src/store_mode/steamclient/steamclient.cpp - src/store_mode/steamclient/steamclient.hpp - src/store_mode/vstdlib/vstdlib.cpp - src/store_mode/vstdlib/vstdlib.hpp - src/store_mode/store.cpp - src/store_mode/store.hpp - src/store_mode/store_api.cpp - src/store_mode/store_api.hpp - src/store_mode/store_cache.cpp - src/store_mode/store_cache.hpp - src/game_mode/exports/steam_api.cpp - ) -endif () - add_library(SmokeAPI SHARED ${SMOKE_API_SOURCES} ${VERSION_RESOURCE}) -# There is a weird bug where c++23 features are not enabled in x64 builds, +# There is a weird MSVC bug where c++23 features are not enabled in x64 builds, # while they are available in x86. I've no idea what causes this discrepancy, # but manually setting the MSVC compiler option fixes this issue. target_compile_options(SmokeAPI PRIVATE /std:c++latest) configure_linker_exports( TARGET SmokeAPI + HEADER_NAME "linker_exports_for_steam_api" FORWARDED_DLL "${STEAMAPI_DLL}_o" - INPUT_SOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/game_mode/exports" + INPUT_SOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/exports" DLL_FILES_GLOB "${CMAKE_CURRENT_SOURCE_DIR}/res/steamworks/*/binaries/${STEAM_API_DLL}" ) +configure_linker_exports( + TARGET SmokeAPI + HEADER_NAME "linker_exports_for_version" + FORWARDED_DLL "C:/Windows/System32/version.dll" + INPUT_SOURCES_DIR "" + DLL_FILES_GLOB "C:/Windows/System32/version.dll" +) + configure_output_name(${STEAMAPI_DLL}) configure_include_directories() target_link_libraries(SmokeAPI PRIVATE KoalaBox) +target_precompile_headers(SmokeAPI REUSE_FROM KoalaBox) + +set(B_PRODUCTION_MODE ON) +CPMAddPackage("gh:batterycenter/embed@1.2.19") +b_embed(SmokeAPI "res/interface_lookup.json") add_subdirectory(tools) diff --git a/KoalaBox b/KoalaBox index 63837c4..e749d5c 160000 --- a/KoalaBox +++ b/KoalaBox @@ -1 +1 @@ -Subproject commit 63837c420c5e972f254b1630316d96186f5b96ef +Subproject commit e749d5c90cfbefbb76164f4d148cf4ce2359fa4c diff --git a/README.adoc b/README.adoc index 18f2979..5d0db0f 100644 --- a/README.adoc +++ b/README.adoc @@ -1,21 +1,15 @@ -= 🐨 SmokeAPI ♨ - -IMPORTANT: Steam has started checking for presence of SmokeAPI in its client, hence do not try to use store mode. Otherwise, there is a real possibility of getting your account banSned. += SmokeAPI _Legit DLC Unlocker for Steamworks_ -image::https://www.gstatic.com/android/keyboard/emojikitchen/20201001/u1f428/u1f428_u2615.png[,128,align="center"] - == ✨ Features * 🔓 Legit DLC Unlocking * 🛅 Inventory emulation * 📝 Config-less operation -* Multiple installation methods: -** 🛍️ Store mode -** 🎮 Game mode -*** 🪝 Hook mode -*** 🔀 Proxy mode +* 2️⃣ installation methods: +** 🪝 Hook mode +** 🔀 Proxy mode == 🔗 Links @@ -30,9 +24,15 @@ image::https://www.gstatic.com/android/keyboard/emojikitchen/20201001/u1f428/u1f === What is SmokeAPI? SmokeAPI is a DLC unlocker for the games that are legitimately owned in your Steam account. -It attempts to spoof games that use Steamworks SDK into believing that you own desired DLCs. +It attempts to fool games that use Steamworks SDK into believing that you own desired DLCs. However, SmokeAPI does not modify the rest of the Steamworks SDK, hence features like multiplayer, achievements, etc. remain fully functional. +IMPORTANT: DLC unlocking is possible only in games that specifically use Steamworks SDK for ownership verification. +But games may implement additional ownership checks, which may require custom solutions. +If the check is server-side, as is the case in online-only games, then SmokeAPI cannot help in any way. +Finally, even if you unlock the DLCs, games might still require additional DLC files, which would have to be downloaded from somewhere else. +Check corresponding game topic in the forum for possible download links. + .Supported versions [%collapsible] ==== @@ -40,76 +40,56 @@ SmokeAPI aims to support all released SteamAPI versions. When it encountered a new, unsupported interface version, it will fall back on the latest supported version. Below is a list of supported interface versions: -* ISteamClient v6 — v20. (Versions before 6 did not contain any DLC related interfaces) +* ISteamClient v6 — v21. (Versions before 6 did not contain any DLC related interfaces) * ISteamApps v2 — v8. (Version 1 did not contain any DLC related functions) -* ISteamUser v12 — v21. (Versions before 12 did not contain any DLC related functions) +* ISteamUser v12 — v23. (Versions before 12 did not contain any DLC related functions) * ISteamInventory v1 — v3. Steam inventory does not work in all games with steam inventory because of custom implementation, and online checks. -A list of games where inventory emulation has been shown to work is as follows: -* Project Winter -* Euro Truck Simulator 2 -* Hero Siege (if you bypass EAC) ==== == 🛠 Installation Instructions WARNING: Please proceed with installation at your own risk. -Usage of this unlocker entails breaking one or more terms of service, which might result in a permanent loss of your account. +Usage of this unlocker entails breaking one or more terms of service, which might result in a permanent ban/deactivation of your account. +:koaloader: https://github.com/acidicoala/Koaloader[Koaloader] :smokeapi_release: https://github.com/acidicoala/SmokeAPI/releases/latest[SmokeAPI Releases] -SmokeAPI supports 2 main modes of installation: *Store* mode and *Game* mode, which are described in the next section. +SmokeAPI is loaded into a game process, which limits it to that particular game only. +SmokeAPI supports 2 installation modes: hook mode and proxy mode. -=== 🛍️ Store mode +|=== +|Mode |Advantages |Disadvantages -NOTE: It is worth noting that the following instructions describe a _manual_ installation method. -You can benefit from _automatic_ installation and GUI configuration by using https://github.com/acidicoala/Koalageddon2#readme[Koalageddon v2]. +|🪝 Hook mode +|Persists after game updates +|Might need an additional DLL (Koaloader) -In this installation mode, SmokeAPI is loaded into the Steam process, which makes it able to affect all Steam games. +|🔀 Proxy mode +|Guaranteed to load +|Might need reinstallation if Steam updates affected DLL files -:steam-dir: the Steam directoryfootnote:fn-steam-dir[The root directory where Steam is installed] +|=== -. Download the latest Koaloader release zip from https://github.com/acidicoala/Koaloader/releases/latest[Koaloader Releases]. -. From Koaloader archive unpack `version.dll` from `version-32`, and place it in {steam-dir}. -. In {steam-dir} create the following Koaloader configuration file: -+ -.`Koaloader.config.json` -[%collapsible] -==== -[source,json] ----- -{ - "auto_load": false, - "targets": [ - "Steam.exe" - ], - "modules": [ - { - "path": "SmokeAPI.dll", - "required": true - } - ] -} ----- -==== -. Download the latest SmokeAPI release zip from {smokeapi_release}. -. From SmokeAPI archive unpack `steam_api.dll`, rename it to `SmokeAPI.dll`, and place it in {steam-dir}. -=== 🎮 Game mode - -In this installation mode, SmokeAPI is loaded into a game process, which limits it to that particular game only. -This mode itself supports 2 modes: hook mode and proxy mode. Try installing the unlocker in hook mode first. If it doesn't work, try installing it in proxy mode. ==== 🪝 Hook mode -. Download the latest Koaloader release zip from https://github.com/acidicoala/Koaloader/releases/latest[Koaloader Releases]. -. From Koaloader archive unpack `version.dll` from version-32/64, depending on the game bitness, and place it next to the game exe file. . Download the latest SmokeAPI release zip from {smokeapi_release}. -. From SmokeAPI archive unpack `steam_api.dll`/`steam_api64.dll`, depending on the game bitness, rename it to `SmokeAPI.dll`, and place it next to the game exe file. +. From SmokeAPI archive unpack `steam_api.dll` or `steam_api64.dll`, depending on the game bitness, rename it to `version.dll`, and place it next to the game exe file. + +==== 🪝 Hook mode (Alternative) + +If a game doesn't load `version.dll`, you can use one of the {koaloader} DLLs that the game does in fact load. For example, assuming that the game loads `d3d9.dll`: + +. Download the latest Koaloader release zip from https://github.com/acidicoala/Koaloader/releases/latest[Koaloader Releases]. +. From Koaloader archive unpack `d3d9.dll` from `d3d9-32` or `d3d9-64`, depending on the game bitness, and place it next to the game exe file. +. Download the latest SmokeAPI release zip from {smokeapi_release}. +. From SmokeAPI archive unpack `steam_api.dll` or `steam_api64.dll`, depending on the game bitness, rename it to `SmokeAPI.dll`, and place it next to the game exe file. ==== 🔀 Proxy mode @@ -121,10 +101,9 @@ If the unlocker is not working as expected, then please fully read the https://g == ⚙ Configuration -NOTE: This document describes configuration for version 2 of SmokeAPI. -You can find the version 1 documentation https://github.com/acidicoala/SmokeAPI/blob/v1.0.3/README.md#-configuration[here]. +NOTE: This document describes configuration for version 3 of SmokeAPI. +You can find the version 2 documentation https://github.com/acidicoala/SmokeAPI/blob/v2.0.5/README.md#-configuration[here]. -:steam_config: https://github.com/acidicoala/public-entitlements/blob/main/steam/v2/store_config.json :fn-app-id: footnote:fn-app-id[App/DLC IDs can be obtained from https://steamdb.info[SteamDB] or https://steambase.io[Steambase]. Keep in mind that you need to be signed in with a steam account in order to see accurate inventory item IDs on that website.] SmokeAPI does not require any manual configuration. @@ -132,7 +111,7 @@ By default, it uses the most reasonable options and tries to unlock all DLCs tha However, there might be circumstances in which you need more custom-tailored behaviour, such as disabling certain DLCs, or selectively enabling just a few of them. In this case you can use a configuration file link:res/SmokeAPI.config.json[SmokeAPI.config.json] that you can find here in this repository or in the release zip. To use it, simply place it next to the SmokeAPI DLL. -It will be read upon each launch of a game or the store. +It will be read upon each launch of the game. In the absence of the config file, default values specified below will be used. The configuration file is expected to conform to the Json standard. @@ -142,13 +121,6 @@ The configuration file is expected to conform to the Json standard. Type::: Boolean Default::: `false` -`unlock_family_sharing`:: *_Store mode only_*. -Toggles Family Sharing bypass, which enables the borrower of a shared library to start and continue playing games when library owner is playing as well. -+ -[horizontal] -Type::: Boolean -Default::: `true` - `default_app_status`:: This option sets the default DLC unlocking behaviour. + [horizontal] @@ -196,7 +168,7 @@ Do not modify this value. + [horizontal] Type::: Integer -Default::: `2` +Default::: `3` `extra_dlcs`:: See <> to understand the use case for this option. + @@ -206,25 +178,14 @@ The format is the same as in the aforementioned GitHub config. Type::: Object Default::: `{}` -`store_config`:: *_Store mode only_*. -An object that specifies offsets required for store mode operation. -It will override the config fetched from {steam_config}[remote source] or local cache. -Do not modify this value unless you know what you are doing. -+ -[horizontal] -Type::: Object -Default::: See {steam_config}[online config] - .Complete example - [%collapsible] ==== [source,json] ---- { - "$version": 2, + "$version": 3, "logging": true, - "unlock_family_sharing": true, "default_app_status": "unlocked", "override_app_status": { "1234": "original", @@ -249,14 +210,6 @@ Default::: See {steam_config}[online config] "98766": "Example DLC 3" } } - }, - "store_config": { - "client_engine_steam_client_internal_ordinal": 12, - "steam_client_internal_interface_selector_ordinal": 18, - "vstdlib_callback_address_offset": 20, - "vstdlib_callback_data_offset": 0, - "vstdlib_callback_interceptor_address_offset": 1, - "vstdlib_callback_name_offset": 4 } } ---- @@ -286,11 +239,11 @@ They will be added to the list of missing DLC IDs to facilitate config-less oper === 🚦 Requirements -:fn-lower-ver: footnote:lower-versions[Older versions may be supported as well.] +:vs-bt-2022: https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022[Visual Studio Build Tools 2022] * CMake v3.24 (Make sure that cmake is available from powershell) -* Visual Studio 2022{fn-lower-ver}. -* Tested on Windows 11 SDK (10.0.22621.0){fn-lower-ver}. +* {vs-bt-2022} with `Desktop Development for C++` workload installed +** Tested on Windows 11 SDK (10.0.26100.4188) === 👨‍💻 Commands @@ -314,7 +267,7 @@ For example: == 📚 Open-Source libraries -This project makes use of the open source projects specified in the https://github.com/acidicoala/KoalaBox#-open-source-libraries[KoalaBox Readme] +TODO == 📄 License diff --git a/res/SmokeAPI.config.json b/res/SmokeAPI.config.json index 6871c7c..6e867ba 100644 --- a/res/SmokeAPI.config.json +++ b/res/SmokeAPI.config.json @@ -1,13 +1,11 @@ { - "$version": 2, + "$version": 3, "logging": true, - "unlock_family_sharing": true, "default_app_status": "unlocked", "override_app_id": 0, "override_app_status": {}, "override_dlc_status": {}, "auto_inject_inventory": true, "extra_inventory_items": [], - "extra_dlcs": {}, - "store_config": null + "extra_dlcs": {} } diff --git a/res/dummy/README.md b/res/dummy/README.md new file mode 100644 index 0000000..cf3d042 --- /dev/null +++ b/res/dummy/README.md @@ -0,0 +1 @@ +This directory contains dummy headers used by the `simplecpp` preprocessor \ No newline at end of file diff --git a/res/dummy/cell/pad.h b/res/dummy/cell/pad.h new file mode 100644 index 0000000..e69de29 diff --git a/res/dummy/stdint.h b/res/dummy/stdint.h new file mode 100644 index 0000000..e69de29 diff --git a/res/dummy/stdio.h b/res/dummy/stdio.h new file mode 100644 index 0000000..e69de29 diff --git a/res/dummy/string.h b/res/dummy/string.h new file mode 100644 index 0000000..e69de29 diff --git a/res/interface_lookup.json b/res/interface_lookup.json index f5e8b61..d4880cf 100644 --- a/res/interface_lookup.json +++ b/res/interface_lookup.json @@ -1,5720 +1,5831 @@ { - "STEAMAPPLIST_INTERFACE_VERSION001": { - "GetAppBuildId": 4, - "GetAppInstallDir": 3, - "GetAppName": 2, - "GetInstalledApps": 1, - "GetNumInstalledApps": 0 - }, "STEAMAPPS_INTERFACE_VERSION001": { "GetAppData": 0 }, + "SteamGameServer004": { + "LogOn": 0, + "LogOff": 1, + "BLoggedOn": 2, + "BSecure": 3, + "GetSteamID": 4, + "SendUserConnectAndAuthenticate": 5, + "CreateUnauthenticatedUserConnection": 6, + "SendUserDisconnect": 7, + "BUpdateUserData": 8, + "BSetServerType": 9, + "UpdateServerStatus": 10, + "UpdateSpectatorPort": 11, + "SetGameType": 12, + "BGetUserAchievementStatus": 13 + }, + "SteamMasterServerUpdater001": { + "SetActive": 0, + "SetHeartbeatInterval": 1, + "HandleIncomingPacket": 2, + "GetNextOutgoingPacket": 3, + "SetBasicServerData": 4, + "ClearAllKeyValues": 5, + "SetKeyValue": 6, + "NotifyShutdown": 7, + "WasRestartRequested": 8, + "ForceHeartbeat": 9, + "AddMasterServer": 10, + "RemoveMasterServer": 11, + "GetNumMasterServers": 12, + "GetMasterServerAddress": 13 + }, + "SteamFriends003": { + "GetPersonaName": 0, + "SetPersonaName": 1, + "GetPersonaState": 2, + "GetFriendCount": 3, + "GetFriendByIndex": 4, + "GetFriendRelationship": 5, + "GetFriendPersonaState": 6, + "GetFriendPersonaName": 7, + "GetFriendAvatar": 8, + "GetFriendGamePlayed": 9, + "GetFriendPersonaNameHistory": 10, + "HasFriend": 11, + "GetClanCount": 12, + "GetClanByIndex": 13, + "GetClanName": 14, + "GetFriendCountFromSource": 15, + "GetFriendFromSourceByIndex": 16, + "IsUserInSource": 17, + "SetInGameVoiceSpeaking": 18, + "ActivateGameOverlay": 19 + }, + "SteamClient007": { + "CreateSteamPipe": 0, + "BReleaseSteamPipe": 1, + "ConnectToGlobalUser": 2, + "CreateLocalUser": 3, + "ReleaseUser": 4, + "GetISteamUser": 5, + "GetISteamGameServer": 6, + "SetLocalIPBinding": 7, + "GetISteamFriends": 8, + "GetISteamUtils": 9, + "GetISteamMatchmaking": 10, + "GetISteamContentServer": 11, + "GetISteamMasterServerUpdater": 12, + "GetISteamMatchmakingServers": 13, + "GetISteamGenericInterface": 14, + "RunFrame": 15, + "GetIPCCallCount": 16, + "GetISteamUserStats": 17, + "GetISteamApps": 18, + "GetISteamNetworking": 19, + "SetWarningMessageHook": 20, + "GetISteamRemoteStorage": 21 + }, + "SteamUser009": { + "GetHSteamUser": 0, + "BLoggedOn": 1, + "GetSteamID": 2, + "InitiateGameConnection": 3, + "TerminateGameConnection": 4, + "TrackAppUsageEvent": 5, + "RefreshSteam2Login": 6 + }, + "SteamNetworking001": { + "CreateListenSocket": 0, + "CreateP2PConnectionSocket": 1, + "CreateConnectionSocket": 2, + "DestroySocket": 3, + "DestroyListenSocket": 4, + "SendDataOnSocket": 5, + "IsDataAvailableOnSocket": 6, + "RetrieveDataFromSocket": 7, + "IsDataAvailable": 8, + "RetrieveData": 9, + "GetSocketInfo": 10, + "GetListenSocketInfo": 11 + }, + "STEAMUSERSTATS_INTERFACE_VERSION003": { + "RequestCurrentStats": 0, + "GetStat": 2, + "SetStat": 4, + "UpdateAvgRateStat": 5, + "GetAchievement": 6, + "SetAchievement": 7, + "ClearAchievement": 8, + "StoreStats": 9, + "GetAchievementIcon": 10, + "GetAchievementDisplayAttribute": 11, + "IndicateAchievementProgress": 12 + }, + "SteamUtils002": { + "GetSecondsSinceAppActive": 0, + "GetSecondsSinceComputerActive": 1, + "GetConnectedUniverse": 2, + "GetServerRealTime": 3, + "GetIPCountry": 4, + "GetImageSize": 5, + "GetImageRGBA": 6, + "GetCSERIPPort": 7, + "GetCurrentBatteryPower": 8, + "GetAppID": 9, + "SetOverlayNotificationPosition": 10, + "IsAPICallCompleted": 11, + "GetAPICallFailureReason": 12, + "GetAPICallResult": 13 + }, + "SteamMatchMakingServers001": { + "GetFavoriteGameCount": 0, + "GetFavoriteGame": 1, + "AddFavoriteGame": 2, + "RemoveFavoriteGame": 3, + "RequestLobbyList": 4, + "AddRequestLobbyListStringFilter": 5, + "AddRequestLobbyListNumericalFilter": 6, + "AddRequestLobbyListNearValueFilter": 7, + "AddRequestLobbyListFilterSlotsAvailable": 8, + "GetLobbyByIndex": 9, + "CreateLobby": 10, + "JoinLobby": 11, + "LeaveLobby": 12, + "InviteUserToLobby": 13, + "GetNumLobbyMembers": 14, + "GetLobbyMemberByIndex": 15, + "GetLobbyData": 16, + "SetLobbyData": 17, + "GetLobbyDataCount": 18, + "GetLobbyDataByIndex": 19, + "DeleteLobbyData": 20, + "GetLobbyMemberData": 21, + "SetLobbyMemberData": 22, + "SendLobbyChatMsg": 23, + "GetLobbyChatEntry": 24, + "RequestLobbyData": 25, + "SetLobbyGameServer": 26, + "GetLobbyGameServer": 27, + "SetLobbyMemberLimit": 28, + "GetLobbyMemberLimit": 29, + "SetLobbyType": 30, + "SetLobbyJoinable": 31, + "GetLobbyOwner": 32, + "SetLobbyOwner": 33, + "ServerResponded": 0, + "ServerFailedToRespond": 1, + "RefreshComplete": 2, + "AddPlayerToList": 0, + "PlayersFailedToRespond": 1, + "PlayersRefreshComplete": 2, + "RulesResponded": 0, + "RulesFailedToRespond": 1, + "RulesRefreshComplete": 2, + "RequestInternetServerList": 0, + "RequestLANServerList": 1, + "RequestFriendsServerList": 2, + "RequestFavoritesServerList": 3, + "RequestHistoryServerList": 4, + "RequestSpectatorServerList": 5, + "GetServerDetails": 6, + "CancelQuery": 7, + "RefreshQuery": 8, + "IsRefreshing": 9, + "GetServerCount": 10, + "RefreshServer": 11, + "PingServer": 12, + "PlayerDetails": 13, + "ServerRules": 14, + "CancelServerQuery": 15 + }, "STEAMAPPS_INTERFACE_VERSION002": { - "BIsCybercafe": 2, - "BIsLowViolence": 1, "BIsSubscribed": 0, - "BIsSubscribedApp": 6, + "BIsLowViolence": 1, + "BIsCybercafe": 2, "BIsVACBanned": 3, + "GetCurrentGameLanguage": 4, "GetAvailableGameLanguages": 5, - "GetCurrentGameLanguage": 4 + "BIsSubscribedApp": 6 + }, + "SteamGameServer005": { + "LogOn": 0, + "LogOff": 1, + "BLoggedOn": 2, + "BSecure": 3, + "GetSteamID": 4, + "SendUserConnectAndAuthenticate": 5, + "CreateUnauthenticatedUserConnection": 6, + "SendUserDisconnect": 7, + "BUpdateUserData": 8, + "BSetServerType": 9, + "UpdateServerStatus": 10, + "UpdateSpectatorPort": 11, + "SetGameType": 12, + "BGetUserAchievementStatus": 13 + }, + "SteamUser010": { + "GetHSteamUser": 0, + "BLoggedOn": 1, + "GetSteamID": 2, + "InitiateGameConnection": 3, + "TerminateGameConnection": 4, + "TrackAppUsageEvent": 5 + }, + "SteamFriends004": { + "GetPersonaName": 0, + "SetPersonaName": 1, + "GetPersonaState": 2, + "GetFriendCount": 3, + "GetFriendByIndex": 4, + "GetFriendRelationship": 5, + "GetFriendPersonaState": 6, + "GetFriendPersonaName": 7, + "GetFriendAvatar": 8, + "GetFriendGamePlayed": 9, + "GetFriendPersonaNameHistory": 10, + "HasFriend": 11, + "GetClanCount": 12, + "GetClanByIndex": 13, + "GetClanName": 14, + "GetFriendCountFromSource": 15, + "GetFriendFromSourceByIndex": 16, + "IsUserInSource": 17, + "SetInGameVoiceSpeaking": 18, + "ActivateGameOverlay": 19 + }, + "SteamUser011": { + "GetHSteamUser": 0, + "BLoggedOn": 1, + "GetSteamID": 2, + "InitiateGameConnection": 3, + "TerminateGameConnection": 4, + "TrackAppUsageEvent": 5, + "GetUserDataFolder": 6, + "StartVoiceRecording": 7, + "StopVoiceRecording": 8, + "GetCompressedVoice": 9, + "DecompressVoice": 10 + }, + "SteamFriends005": { + "GetPersonaName": 0, + "SetPersonaName": 1, + "GetPersonaState": 2, + "GetFriendCount": 3, + "GetFriendByIndex": 4, + "GetFriendRelationship": 5, + "GetFriendPersonaState": 6, + "GetFriendPersonaName": 7, + "GetFriendAvatar": 8, + "GetFriendGamePlayed": 9, + "GetFriendPersonaNameHistory": 10, + "HasFriend": 11, + "GetClanCount": 12, + "GetClanByIndex": 13, + "GetClanName": 14, + "GetFriendCountFromSource": 15, + "GetFriendFromSourceByIndex": 16, + "IsUserInSource": 17, + "SetInGameVoiceSpeaking": 18, + "ActivateGameOverlay": 19, + "ActivateGameOverlayToUser": 20, + "ActivateGameOverlayToWebPage": 21, + "ActivateGameOverlayToStore": 22, + "SetPlayedWith": 23 + }, + "SteamGameServer008": { + "LogOn": 0, + "LogOff": 1, + "BLoggedOn": 2, + "BSecure": 3, + "GetSteamID": 4, + "SendUserConnectAndAuthenticate": 5, + "CreateUnauthenticatedUserConnection": 6, + "SendUserDisconnect": 7, + "BUpdateUserData": 8, + "BSetServerType": 9, + "UpdateServerStatus": 10, + "UpdateSpectatorPort": 11, + "SetGameType": 12, + "BGetUserAchievementStatus": 13, + "GetGameplayStats": 14, + "RequestUserGroupStatus": 15, + "GetPublicIP": 16 + }, + "STEAMREMOTESTORAGE_INTERFACE_VERSION002": { + "FileWrite": 0, + "GetFileSize": 1, + "FileRead": 2, + "FileExists": 3, + "GetFileCount": 4, + "GetFileNameAndSize": 5, + "GetQuota": 6 + }, + "SteamNetworking002": { + "CreateListenSocket": 0, + "CreateP2PConnectionSocket": 1, + "CreateConnectionSocket": 2, + "DestroySocket": 3, + "DestroyListenSocket": 4, + "SendDataOnSocket": 5, + "IsDataAvailableOnSocket": 6, + "RetrieveDataFromSocket": 7, + "IsDataAvailable": 8, + "RetrieveData": 9, + "GetSocketInfo": 10, + "GetListenSocketInfo": 11, + "GetSocketConnectionType": 12, + "GetMaxPacketSize": 13 + }, + "STEAMUSERSTATS_INTERFACE_VERSION004": { + "RequestCurrentStats": 0, + "GetStat": 2, + "SetStat": 4, + "UpdateAvgRateStat": 5, + "GetAchievement": 6, + "SetAchievement": 7, + "ClearAchievement": 8, + "StoreStats": 9, + "GetAchievementIcon": 10, + "GetAchievementDisplayAttribute": 11, + "IndicateAchievementProgress": 12, + "RequestUserStats": 13, + "GetUserStat": 15, + "GetUserAchievement": 16 }, "STEAMAPPS_INTERFACE_VERSION003": { - "BIsCybercafe": 2, - "BIsDlcInstalled": 7, - "BIsLowViolence": 1, "BIsSubscribed": 0, - "BIsSubscribedApp": 6, + "BIsLowViolence": 1, + "BIsCybercafe": 2, "BIsVACBanned": 3, + "GetCurrentGameLanguage": 4, "GetAvailableGameLanguages": 5, - "GetCurrentGameLanguage": 4 + "BIsSubscribedApp": 6, + "BIsDlcInstalled": 7 + }, + "SteamClient008": { + "CreateSteamPipe": 0, + "BReleaseSteamPipe": 1, + "ConnectToGlobalUser": 2, + "CreateLocalUser": 3, + "ReleaseUser": 4, + "GetISteamUser": 5, + "GetISteamGameServer": 6, + "SetLocalIPBinding": 7, + "GetISteamFriends": 8, + "GetISteamUtils": 9, + "GetISteamMatchmaking": 10, + "GetISteamMasterServerUpdater": 11, + "GetISteamMatchmakingServers": 12, + "GetISteamGenericInterface": 13, + "GetISteamUserStats": 14, + "GetISteamApps": 15, + "GetISteamNetworking": 16, + "GetISteamRemoteStorage": 17, + "RunFrame": 18, + "GetIPCCallCount": 19, + "SetWarningMessageHook": 20 + }, + "SteamUser012": { + "GetHSteamUser": 0, + "BLoggedOn": 1, + "GetSteamID": 2, + "InitiateGameConnection": 3, + "TerminateGameConnection": 4, + "TrackAppUsageEvent": 5, + "GetUserDataFolder": 6, + "StartVoiceRecording": 7, + "StopVoiceRecording": 8, + "GetCompressedVoice": 9, + "DecompressVoice": 10, + "GetAuthSessionTicket": 11, + "BeginAuthSession": 12, + "EndAuthSession": 13, + "CancelAuthTicket": 14, + "UserHasLicenseForApp": 15 + }, + "SteamUtils004": { + "GetSecondsSinceAppActive": 0, + "GetSecondsSinceComputerActive": 1, + "GetConnectedUniverse": 2, + "GetServerRealTime": 3, + "GetIPCountry": 4, + "GetImageSize": 5, + "GetImageRGBA": 6, + "GetCSERIPPort": 7, + "GetCurrentBatteryPower": 8, + "GetAppID": 9, + "SetOverlayNotificationPosition": 10, + "IsAPICallCompleted": 11, + "GetAPICallFailureReason": 12, + "GetAPICallResult": 13, + "RunFrame": 14, + "GetIPCCallCount": 15, + "SetWarningMessageHook": 16, + "IsOverlayEnabled": 17 + }, + "STEAMUSERSTATS_INTERFACE_VERSION005": { + "RequestCurrentStats": 0, + "GetStat": 2, + "SetStat": 4, + "UpdateAvgRateStat": 5, + "GetAchievement": 6, + "SetAchievement": 7, + "ClearAchievement": 8, + "StoreStats": 9, + "GetAchievementIcon": 10, + "GetAchievementDisplayAttribute": 11, + "IndicateAchievementProgress": 12, + "RequestUserStats": 13, + "GetUserStat": 15, + "GetUserAchievement": 16, + "ResetAllStats": 17, + "FindOrCreateLeaderboard": 18, + "FindLeaderboard": 19, + "GetLeaderboardName": 20, + "GetLeaderboardEntryCount": 21, + "GetLeaderboardSortMethod": 22, + "GetLeaderboardDisplayType": 23, + "DownloadLeaderboardEntries": 24, + "GetDownloadedLeaderboardEntry": 25, + "UploadLeaderboardScore": 26 + }, + "SteamGameServer009": { + "LogOn": 0, + "LogOff": 1, + "BLoggedOn": 2, + "BSecure": 3, + "GetSteamID": 4, + "SendUserConnectAndAuthenticate": 5, + "CreateUnauthenticatedUserConnection": 6, + "SendUserDisconnect": 7, + "BUpdateUserData": 8, + "BSetServerType": 9, + "UpdateServerStatus": 10, + "UpdateSpectatorPort": 11, + "SetGameType": 12, + "BGetUserAchievementStatus": 13, + "GetGameplayStats": 14, + "RequestUserGroupStatus": 15, + "GetPublicIP": 16, + "SetGameData": 17, + "UserHasLicenseForApp": 18 + }, + "SteamNetworking003": { + "SendP2PPacket": 0, + "IsP2PPacketAvailable": 1, + "ReadP2PPacket": 2, + "AcceptP2PSessionWithUser": 3, + "CloseP2PSessionWithUser": 4, + "GetP2PSessionState": 5, + "CreateListenSocket": 6, + "CreateP2PConnectionSocket": 7, + "CreateConnectionSocket": 8, + "DestroySocket": 9, + "DestroyListenSocket": 10, + "SendDataOnSocket": 11, + "IsDataAvailableOnSocket": 12, + "RetrieveDataFromSocket": 13, + "IsDataAvailable": 14, + "RetrieveData": 15, + "GetSocketInfo": 16, + "GetListenSocketInfo": 17, + "GetSocketConnectionType": 18, + "GetMaxPacketSize": 19 + }, + "STEAMUSERSTATS_INTERFACE_VERSION006": { + "RequestCurrentStats": 0, + "GetStat": 2, + "SetStat": 4, + "UpdateAvgRateStat": 5, + "GetAchievement": 6, + "SetAchievement": 7, + "ClearAchievement": 8, + "StoreStats": 9, + "GetAchievementIcon": 10, + "GetAchievementDisplayAttribute": 11, + "IndicateAchievementProgress": 12, + "RequestUserStats": 13, + "GetUserStat": 15, + "GetUserAchievement": 16, + "ResetAllStats": 17, + "FindOrCreateLeaderboard": 18, + "FindLeaderboard": 19, + "GetLeaderboardName": 20, + "GetLeaderboardEntryCount": 21, + "GetLeaderboardSortMethod": 22, + "GetLeaderboardDisplayType": 23, + "DownloadLeaderboardEntries": 24, + "GetDownloadedLeaderboardEntry": 25, + "UploadLeaderboardScore": 26, + "GetNumberOfCurrentPlayers": 27 + }, + "SteamUser013": { + "GetHSteamUser": 0, + "BLoggedOn": 1, + "GetSteamID": 2, + "InitiateGameConnection": 3, + "TerminateGameConnection": 4, + "TrackAppUsageEvent": 5, + "GetUserDataFolder": 6, + "StartVoiceRecording": 7, + "StopVoiceRecording": 8, + "GetAvailableVoice": 9, + "GetVoice": 10, + "DecompressVoice": 11, + "GetAuthSessionTicket": 12, + "BeginAuthSession": 13, + "EndAuthSession": 14, + "CancelAuthTicket": 15, + "UserHasLicenseForApp": 16 + }, + "SteamMatchMakingServers002": { + "GetFavoriteGameCount": 0, + "GetFavoriteGame": 1, + "AddFavoriteGame": 2, + "RemoveFavoriteGame": 3, + "RequestLobbyList": 4, + "AddRequestLobbyListStringFilter": 5, + "AddRequestLobbyListNumericalFilter": 6, + "AddRequestLobbyListNearValueFilter": 7, + "AddRequestLobbyListFilterSlotsAvailable": 8, + "AddRequestLobbyListDistanceFilter": 9, + "AddRequestLobbyListResultCountFilter": 10, + "AddRequestLobbyListCompatibleMembersFilter": 11, + "GetLobbyByIndex": 12, + "CreateLobby": 13, + "JoinLobby": 14, + "LeaveLobby": 15, + "InviteUserToLobby": 16, + "GetNumLobbyMembers": 17, + "GetLobbyMemberByIndex": 18, + "GetLobbyData": 19, + "SetLobbyData": 20, + "GetLobbyDataCount": 21, + "GetLobbyDataByIndex": 22, + "DeleteLobbyData": 23, + "GetLobbyMemberData": 24, + "SetLobbyMemberData": 25, + "SendLobbyChatMsg": 26, + "GetLobbyChatEntry": 27, + "RequestLobbyData": 28, + "SetLobbyGameServer": 29, + "GetLobbyGameServer": 30, + "SetLobbyMemberLimit": 31, + "GetLobbyMemberLimit": 32, + "SetLobbyType": 33, + "SetLobbyJoinable": 34, + "GetLobbyOwner": 35, + "SetLobbyOwner": 36, + "SetLinkedLobby": 37, + "CheckForPSNGameBootInvite": 38, + "ServerResponded": 0, + "ServerFailedToRespond": 1, + "RefreshComplete": 2, + "AddPlayerToList": 0, + "PlayersFailedToRespond": 1, + "PlayersRefreshComplete": 2, + "RulesResponded": 0, + "RulesFailedToRespond": 1, + "RulesRefreshComplete": 2, + "RequestInternetServerList": 0, + "RequestLANServerList": 1, + "RequestFriendsServerList": 2, + "RequestFavoritesServerList": 3, + "RequestHistoryServerList": 4, + "RequestSpectatorServerList": 5, + "ReleaseRequest": 6, + "GetServerDetails": 7, + "CancelQuery": 8, + "RefreshQuery": 9, + "IsRefreshing": 10, + "GetServerCount": 11, + "RefreshServer": 12, + "PingServer": 13, + "PlayerDetails": 14, + "ServerRules": 15, + "CancelServerQuery": 16 + }, + "SteamUtils005": { + "GetSecondsSinceAppActive": 0, + "GetSecondsSinceComputerActive": 1, + "GetConnectedUniverse": 2, + "GetServerRealTime": 3, + "GetIPCountry": 4, + "GetImageSize": 5, + "GetImageRGBA": 6, + "GetCSERIPPort": 7, + "GetCurrentBatteryPower": 8, + "GetAppID": 9, + "SetOverlayNotificationPosition": 10, + "IsAPICallCompleted": 11, + "GetAPICallFailureReason": 12, + "GetAPICallResult": 13, + "RunFrame": 14, + "GetIPCCallCount": 15, + "SetWarningMessageHook": 16, + "IsOverlayEnabled": 17, + "BOverlayNeedsPresent": 18, + "ShowGamepadTextInput": 19, + "GetEnteredGamepadTextLength": 20, + "GetEnteredGamepadTextInput": 21, + "CheckFileSignature": 22, + "PostPS3SysutilCallback": 23, + "BIsReadyToShutdown": 24, + "BIsPSNOnline": 25, + "SetPSNGameBootInviteStrings": 26 + }, + "SteamClient009": { + "CreateSteamPipe": 0, + "BReleaseSteamPipe": 1, + "ConnectToGlobalUser": 2, + "CreateLocalUser": 3, + "ReleaseUser": 4, + "GetISteamUser": 5, + "GetISteamGameServer": 6, + "SetLocalIPBinding": 7, + "GetISteamFriends": 8, + "GetISteamUtils": 9, + "GetISteamMatchmaking": 10, + "GetISteamMasterServerUpdater": 11, + "GetISteamMatchmakingServers": 12, + "GetISteamGenericInterface": 13, + "GetISteamUserStats": 14, + "GetISteamGameServerStats": 15, + "GetISteamApps": 16, + "GetISteamNetworking": 17, + "GetISteamRemoteStorage": 18, + "RunFrame": 19, + "GetIPCCallCount": 20, + "SetWarningMessageHook": 21 + }, + "SteamGameServer010": { + "LogOn": 0, + "LogOff": 1, + "BLoggedOn": 2, + "BSecure": 3, + "GetSteamID": 4, + "SendUserConnectAndAuthenticate": 5, + "CreateUnauthenticatedUserConnection": 6, + "SendUserDisconnect": 7, + "BUpdateUserData": 8, + "BSetServerType": 9, + "UpdateServerStatus": 10, + "UpdateSpectatorPort": 11, + "SetGameTags": 12, + "GetGameplayStats": 13, + "GetServerReputation": 14, + "RequestUserGroupStatus": 15, + "GetPublicIP": 16, + "SetGameData": 17, + "UserHasLicenseForApp": 18, + "GetAuthSessionTicket": 19, + "BeginAuthSession": 20, + "EndAuthSession": 21, + "CancelAuthTicket": 22 + }, + "SteamGameServerStats001": { + "RequestUserStats": 0, + "GetUserStat": 2, + "GetUserAchievement": 3, + "SetUserStat": 5, + "UpdateUserAvgRateStat": 6, + "SetUserAchievement": 7, + "ClearUserAchievement": 8, + "StoreUserStats": 9 + }, + "SteamGameStats001": { + "GetNewSession": 0, + "EndSession": 1, + "AddSessionAttributeInt": 2, + "AddSessionAttributeString": 3, + "AddSessionAttributeFloat": 4, + "AddNewRow": 5, + "CommitRow": 6, + "CommitOutstandingRows": 7, + "AddRowAttributeInt": 8, + "AddRowAtributeString": 9, + "AddRowAttributeFloat": 10, + "AddSessionAttributeInt64": 11, + "AddRowAttributeInt64": 12 + }, + "STEAMUSERSTATS_INTERFACE_VERSION007": { + "RequestCurrentStats": 0, + "GetStat": 2, + "SetStat": 4, + "UpdateAvgRateStat": 5, + "GetAchievement": 6, + "SetAchievement": 7, + "ClearAchievement": 8, + "GetAchievementAndUnlockTime": 9, + "StoreStats": 10, + "GetAchievementIcon": 11, + "GetAchievementDisplayAttribute": 12, + "IndicateAchievementProgress": 13, + "RequestUserStats": 14, + "GetUserStat": 16, + "GetUserAchievement": 17, + "GetUserAchievementAndUnlockTime": 18, + "ResetAllStats": 19, + "FindOrCreateLeaderboard": 20, + "FindLeaderboard": 21, + "GetLeaderboardName": 22, + "GetLeaderboardEntryCount": 23, + "GetLeaderboardSortMethod": 24, + "GetLeaderboardDisplayType": 25, + "DownloadLeaderboardEntries": 26, + "GetDownloadedLeaderboardEntry": 27, + "UploadLeaderboardScore": 28, + "GetNumberOfCurrentPlayers": 29 + }, + "SteamGameCoordinator001": { + "SendMessage": 0, + "IsMessageAvailable": 1, + "RetrieveMessage": 2 + }, + "SteamFriends006": { + "GetPersonaName": 0, + "SetPersonaName": 1, + "GetPersonaState": 2, + "GetFriendCount": 3, + "GetFriendByIndex": 4, + "GetFriendRelationship": 5, + "GetFriendPersonaState": 6, + "GetFriendPersonaName": 7, + "GetFriendAvatar": 8, + "GetFriendGamePlayed": 9, + "GetFriendPersonaNameHistory": 10, + "HasFriend": 11, + "GetClanCount": 12, + "GetClanByIndex": 13, + "GetClanName": 14, + "GetClanTag": 15, + "GetFriendCountFromSource": 16, + "GetFriendFromSourceByIndex": 17, + "IsUserInSource": 18, + "SetInGameVoiceSpeaking": 19, + "ActivateGameOverlay": 20, + "ActivateGameOverlayToUser": 21, + "ActivateGameOverlayToWebPage": 22, + "ActivateGameOverlayToStore": 23, + "SetPlayedWith": 24, + "ActivateGameOverlayInviteDialog": 25 + }, + "SteamFriends007": { + "GetPersonaName": 0, + "SetPersonaName": 1, + "GetPersonaState": 2, + "GetFriendCount": 3, + "GetFriendByIndex": 4, + "GetFriendRelationship": 5, + "GetFriendPersonaState": 6, + "GetFriendPersonaName": 7, + "GetFriendGamePlayed": 8, + "GetFriendPersonaNameHistory": 9, + "HasFriend": 10, + "GetClanCount": 11, + "GetClanByIndex": 12, + "GetClanName": 13, + "GetClanTag": 14, + "GetFriendCountFromSource": 15, + "GetFriendFromSourceByIndex": 16, + "IsUserInSource": 17, + "SetInGameVoiceSpeaking": 18, + "ActivateGameOverlay": 19, + "ActivateGameOverlayToUser": 20, + "ActivateGameOverlayToWebPage": 21, + "ActivateGameOverlayToStore": 22, + "SetPlayedWith": 23, + "ActivateGameOverlayInviteDialog": 24, + "GetSmallFriendAvatar": 25, + "GetMediumFriendAvatar": 26, + "GetLargeFriendAvatar": 27 + }, + "SteamNetworking004": { + "SendP2PPacket": 0, + "IsP2PPacketAvailable": 1, + "ReadP2PPacket": 2, + "AcceptP2PSessionWithUser": 3, + "CloseP2PSessionWithUser": 4, + "GetP2PSessionState": 5, + "CreateListenSocket": 6, + "CreateP2PConnectionSocket": 7, + "CreateConnectionSocket": 8, + "DestroySocket": 9, + "DestroyListenSocket": 10, + "SendDataOnSocket": 11, + "IsDataAvailableOnSocket": 12, + "RetrieveDataFromSocket": 13, + "IsDataAvailable": 14, + "RetrieveData": 15, + "GetSocketInfo": 16, + "GetListenSocketInfo": 17, + "GetSocketConnectionType": 18, + "GetMaxPacketSize": 19 + }, + "SteamUser014": { + "GetHSteamUser": 0, + "BLoggedOn": 1, + "GetSteamID": 2, + "InitiateGameConnection": 3, + "TerminateGameConnection": 4, + "TrackAppUsageEvent": 5, + "GetUserDataFolder": 6, + "StartVoiceRecording": 7, + "StopVoiceRecording": 8, + "GetAvailableVoice": 9, + "GetVoice": 10, + "DecompressVoice": 11, + "GetAuthSessionTicket": 12, + "BeginAuthSession": 13, + "EndAuthSession": 14, + "CancelAuthTicket": 15, + "UserHasLicenseForApp": 16, + "BIsBehindNAT": 17, + "AdvertiseGame": 18, + "RequestEncryptedAppTicket": 19, + "GetEncryptedAppTicket": 20, + "LogOn": 21, + "LogOnAndLinkSteamAccountToPSN": 22, + "LogOnAndCreateNewSteamAccountIfNeeded": 23 }, "STEAMAPPS_INTERFACE_VERSION004": { - "BGetDLCDataByIndex": 11, - "BIsCybercafe": 2, - "BIsDlcInstalled": 7, - "BIsLowViolence": 1, "BIsSubscribed": 0, - "BIsSubscribedApp": 6, - "BIsSubscribedFromFreeWeekend": 9, - "BIsVACBanned": 3, - "GetAvailableGameLanguages": 5, - "GetCurrentGameLanguage": 4, - "GetDLCCount": 10, - "GetEarliestPurchaseUnixTime": 8, - "InstallDLC": 12, - "RegisterActivationCode": 14, - "UninstallDLC": 13 - }, - "STEAMAPPS_INTERFACE_VERSION005": { - "BGetDLCDataByIndex": 11, - "BIsAppInstalled": 19, - "BIsCybercafe": 2, - "BIsDlcInstalled": 7, "BIsLowViolence": 1, - "BIsSubscribed": 0, - "BIsSubscribedApp": 6, - "BIsSubscribedFromFreeWeekend": 9, - "BIsVACBanned": 3, - "GetAppInstallDir": 18, - "GetAvailableGameLanguages": 5, - "GetCurrentBetaName": 15, - "GetCurrentGameLanguage": 4, - "GetDLCCount": 10, - "GetEarliestPurchaseUnixTime": 8, - "GetInstalledDepots": 17, - "InstallDLC": 12, - "MarkContentCorrupt": 16, - "RegisterActivationCode": 20, - "RequestAppProofOfPurchaseKey": 14, - "UninstallDLC": 13 - }, - "STEAMAPPS_INTERFACE_VERSION006": { - "BGetDLCDataByIndex": 11, - "BIsAppInstalled": 19, "BIsCybercafe": 2, - "BIsDlcInstalled": 7, - "BIsLowViolence": 1, - "BIsSubscribed": 0, - "BIsSubscribedApp": 6, - "BIsSubscribedFromFreeWeekend": 9, "BIsVACBanned": 3, - "GetAppInstallDir": 18, - "GetAppOwner": 20, - "GetAvailableGameLanguages": 5, - "GetCurrentBetaName": 15, "GetCurrentGameLanguage": 4, - "GetDLCCount": 10, + "GetAvailableGameLanguages": 5, + "BIsSubscribedApp": 6, + "BIsDlcInstalled": 7, "GetEarliestPurchaseUnixTime": 8, - "GetInstalledDepots": 17, - "GetLaunchQueryParam": 21, - "InstallDLC": 12, - "MarkContentCorrupt": 16, - "RegisterActivationCode": 22, - "RequestAppProofOfPurchaseKey": 14, - "UninstallDLC": 13 - }, - "STEAMAPPS_INTERFACE_VERSION007": { + "BIsSubscribedFromFreeWeekend": 9, + "GetDLCCount": 10, "BGetDLCDataByIndex": 11, - "BIsAppInstalled": 19, - "BIsCybercafe": 2, - "BIsDlcInstalled": 7, - "BIsLowViolence": 1, - "BIsSubscribed": 0, - "BIsSubscribedApp": 6, - "BIsSubscribedFromFreeWeekend": 9, - "BIsVACBanned": 3, - "GetAppBuildId": 23, - "GetAppInstallDir": 18, - "GetAppOwner": 20, - "GetAvailableGameLanguages": 5, - "GetCurrentBetaName": 15, - "GetCurrentGameLanguage": 4, - "GetDLCCount": 10, - "GetDlcDownloadProgress": 22, - "GetEarliestPurchaseUnixTime": 8, - "GetInstalledDepots": 17, - "GetLaunchQueryParam": 21, "InstallDLC": 12, - "MarkContentCorrupt": 16, - "RequestAppProofOfPurchaseKey": 14, - "UninstallDLC": 13 - }, - "STEAMAPPS_INTERFACE_VERSION008": { - "BGetDLCDataByIndex": 11, - "BIsAppInstalled": 19, - "BIsCybercafe": 2, - "BIsDlcInstalled": 7, - "BIsLowViolence": 1, - "BIsSubscribed": 0, - "BIsSubscribedApp": 6, - "BIsSubscribedFromFamilySharing": 27, - "BIsSubscribedFromFreeWeekend": 9, - "BIsTimedTrial": 28, - "BIsVACBanned": 3, - "GetAppBuildId": 23, - "GetAppInstallDir": 18, - "GetAppOwner": 20, - "GetAvailableGameLanguages": 5, - "GetBetaInfo": 31, - "GetCurrentBetaName": 15, - "GetCurrentGameLanguage": 4, - "GetDLCCount": 10, - "GetDlcDownloadProgress": 22, - "GetEarliestPurchaseUnixTime": 8, - "GetFileDetails": 25, - "GetInstalledDepots": 17, - "GetLaunchCommandLine": 26, - "GetLaunchQueryParam": 21, - "GetNumBetas": 30, - "InstallDLC": 12, - "MarkContentCorrupt": 16, - "RequestAllProofOfPurchaseKeys": 24, - "RequestAppProofOfPurchaseKey": 14, - "SetActiveBeta": 32, - "SetDlcContext": 29, - "UninstallDLC": 13 + "UninstallDLC": 13, + "RegisterActivationCode": 14 }, "STEAMAPPTICKET_INTERFACE_VERSION001": { "GetAppOwnershipTicketData": 0 }, - "STEAMCONTROLLER_INTERFACE_VERSION": { - "GetControllerState": 3, - "Init": 0, - "RunFrame": 2, - "SetOverrideMode": 5, - "Shutdown": 1, - "TriggerHapticPulse": 4 + "SteamClient010": { + "CreateSteamPipe": 0, + "BReleaseSteamPipe": 1, + "ConnectToGlobalUser": 2, + "CreateLocalUser": 3, + "ReleaseUser": 4, + "GetISteamUser": 5, + "GetISteamGameServer": 6, + "SetLocalIPBinding": 7, + "GetISteamFriends": 8, + "GetISteamUtils": 9, + "GetISteamMatchmaking": 10, + "GetISteamMasterServerUpdater": 11, + "GetISteamMatchmakingServers": 12, + "GetISteamGenericInterface": 13, + "GetISteamUserStats": 14, + "GetISteamGameServerStats": 15, + "GetISteamApps": 16, + "GetISteamNetworking": 17, + "GetISteamRemoteStorage": 18, + "RunFrame": 19, + "GetIPCCallCount": 20, + "SetWarningMessageHook": 21, + "BShutdownIfAllPipesClosed": 22, + "GetISteamHTTP": 23, + "GetISteamPS3OverlayRender": 24 }, - "STEAMHTMLSURFACE_INTERFACE_VERSION_002": { - "AddHeader": 10, - "AllowStartRequest": 31, - "CopyToClipboard": 24, - "CreateBrowser": 2, - "ExecuteJavascript": 11, - "FileLoadDialogResponse": 33, - "Find": 26, - "GetLinkAtPosition": 28, - "GoBack": 8, - "GoForward": 9, - "Init": 0, - "JSDialogResponse": 32, - "KeyChar": 19, - "KeyDown": 17, - "KeyUp": 18, - "LoadURL": 4, - "MouseDoubleClick": 14, - "MouseDown": 13, - "MouseMove": 15, - "MouseUp": 12, - "MouseWheel": 16, - "PasteFromClipboard": 25, - "Reload": 7, - "RemoveBrowser": 3, - "SetCookie": 29, - "SetHorizontalScroll": 20, - "SetKeyFocus": 22, - "SetPageScaleFactor": 30, - "SetSize": 5, - "SetVerticalScroll": 21, - "Shutdown": 1, - "StopFind": 27, - "StopLoad": 6, - "ViewSource": 23 + "SteamFriends008": { + "GetPersonaName": 0, + "SetPersonaName": 1, + "GetPersonaState": 2, + "GetFriendCount": 3, + "GetFriendByIndex": 4, + "GetFriendRelationship": 5, + "GetFriendPersonaState": 6, + "GetFriendPersonaName": 7, + "GetFriendGamePlayed": 8, + "GetFriendPersonaNameHistory": 9, + "HasFriend": 10, + "GetClanCount": 11, + "GetClanByIndex": 12, + "GetClanName": 13, + "GetClanTag": 14, + "GetFriendCountFromSource": 15, + "GetFriendFromSourceByIndex": 16, + "IsUserInSource": 17, + "SetInGameVoiceSpeaking": 18, + "ActivateGameOverlay": 19, + "ActivateGameOverlayToUser": 20, + "ActivateGameOverlayToWebPage": 21, + "ActivateGameOverlayToStore": 22, + "SetPlayedWith": 23, + "ActivateGameOverlayInviteDialog": 24, + "GetSmallFriendAvatar": 25, + "GetMediumFriendAvatar": 26, + "GetLargeFriendAvatar": 27, + "RequestUserInformation": 28, + "RequestClanOfficerList": 29, + "GetClanOwner": 30, + "GetClanOfficerCount": 31, + "GetClanOfficerByIndex": 32, + "GetUserRestrictions": 33 }, - "STEAMHTMLSURFACE_INTERFACE_VERSION_003": { - "AddHeader": 10, - "AllowStartRequest": 32, - "CopyToClipboard": 24, - "CreateBrowser": 2, - "ExecuteJavascript": 11, - "FileLoadDialogResponse": 34, - "Find": 26, - "GetLinkAtPosition": 28, - "GoBack": 8, - "GoForward": 9, - "Init": 0, - "JSDialogResponse": 33, - "KeyChar": 19, - "KeyDown": 17, - "KeyUp": 18, - "LoadURL": 4, - "MouseDoubleClick": 14, - "MouseDown": 13, - "MouseMove": 15, - "MouseUp": 12, - "MouseWheel": 16, - "PasteFromClipboard": 25, - "Reload": 7, - "RemoveBrowser": 3, - "SetBackgroundMode": 31, - "SetCookie": 29, - "SetHorizontalScroll": 20, - "SetKeyFocus": 22, - "SetPageScaleFactor": 30, - "SetSize": 5, - "SetVerticalScroll": 21, - "Shutdown": 1, - "StopFind": 27, - "StopLoad": 6, - "ViewSource": 23 + "STEAMREMOTESTORAGE_INTERFACE_VERSION004": { + "FileWrite": 0, + "FileRead": 1, + "FileForget": 2, + "FileDelete": 3, + "FileShare": 4, + "SetSyncPlatforms": 5, + "FileExists": 6, + "FilePersisted": 7, + "GetFileSize": 8, + "GetFileTimestamp": 9, + "GetSyncPlatforms": 10, + "GetFileCount": 11, + "GetFileNameAndSize": 12, + "GetQuota": 13, + "IsCloudEnabledForAccount": 14, + "IsCloudEnabledForApp": 15, + "SetCloudEnabledForApp": 16, + "UGCDownload": 17, + "GetUGCDetails": 18, + "UGCRead": 19, + "GetCachedUGCCount": 20, + "GetFileListFromServer": 21, + "FileFetch": 22, + "FilePersist": 23, + "SynchronizeToClient": 24, + "SynchronizeToServer": 25, + "ResetFileRequestState": 26 }, - "STEAMHTMLSURFACE_INTERFACE_VERSION_004": { - "AddHeader": 10, - "AllowStartRequest": 33, - "CopyToClipboard": 24, - "CreateBrowser": 2, - "ExecuteJavascript": 11, - "FileLoadDialogResponse": 35, - "Find": 26, - "GetLinkAtPosition": 28, - "GoBack": 8, - "GoForward": 9, - "Init": 0, - "JSDialogResponse": 34, - "KeyChar": 19, - "KeyDown": 17, - "KeyUp": 18, - "LoadURL": 4, - "MouseDoubleClick": 14, - "MouseDown": 13, - "MouseMove": 15, - "MouseUp": 12, - "MouseWheel": 16, - "PasteFromClipboard": 25, - "Reload": 7, - "RemoveBrowser": 3, - "SetBackgroundMode": 31, - "SetCookie": 29, - "SetDPIScalingFactor": 32, - "SetHorizontalScroll": 20, - "SetKeyFocus": 22, - "SetPageScaleFactor": 30, - "SetSize": 5, - "SetVerticalScroll": 21, - "Shutdown": 1, - "StopFind": 27, - "StopLoad": 6, - "ViewSource": 23 + "STEAMUSERSTATS_INTERFACE_VERSION009": { + "RequestCurrentStats": 0, + "GetStat": 2, + "SetStat": 4, + "UpdateAvgRateStat": 5, + "GetAchievement": 6, + "SetAchievement": 7, + "ClearAchievement": 8, + "GetAchievementAndUnlockTime": 9, + "StoreStats": 10, + "GetAchievementIcon": 11, + "GetAchievementDisplayAttribute": 12, + "IndicateAchievementProgress": 13, + "RequestUserStats": 14, + "GetUserStat": 16, + "GetUserAchievement": 17, + "GetUserAchievementAndUnlockTime": 18, + "ResetAllStats": 19, + "FindOrCreateLeaderboard": 20, + "FindLeaderboard": 21, + "GetLeaderboardName": 22, + "GetLeaderboardEntryCount": 23, + "GetLeaderboardSortMethod": 24, + "GetLeaderboardDisplayType": 25, + "DownloadLeaderboardEntries": 26, + "DownloadLeaderboardEntriesForUsers": 27, + "GetDownloadedLeaderboardEntry": 28, + "UploadLeaderboardScore": 29, + "AttachLeaderboardUGC": 30, + "GetNumberOfCurrentPlayers": 31, + "InstallPS3Trophies": 32, + "GetTrophySpaceRequiredBeforeInstall": 33, + "SetUserStatsData": 34, + "GetUserStatsData": 35 }, - "STEAMHTMLSURFACE_INTERFACE_VERSION_005": { - "AddHeader": 10, - "AllowStartRequest": 34, - "CopyToClipboard": 24, - "CreateBrowser": 2, - "ExecuteJavascript": 11, - "FileLoadDialogResponse": 36, - "Find": 26, - "GetLinkAtPosition": 28, - "GoBack": 8, - "GoForward": 9, - "Init": 0, - "JSDialogResponse": 35, - "KeyChar": 19, - "KeyDown": 17, - "KeyUp": 18, - "LoadURL": 4, - "MouseDoubleClick": 14, - "MouseDown": 13, - "MouseMove": 15, - "MouseUp": 12, - "MouseWheel": 16, - "OpenDeveloperTools": 33, - "PasteFromClipboard": 25, - "Reload": 7, - "RemoveBrowser": 3, - "SetBackgroundMode": 31, - "SetCookie": 29, - "SetDPIScalingFactor": 32, - "SetHorizontalScroll": 20, - "SetKeyFocus": 22, - "SetPageScaleFactor": 30, - "SetSize": 5, - "SetVerticalScroll": 21, - "Shutdown": 1, - "StopFind": 27, - "StopLoad": 6, - "ViewSource": 23 + "SteamFriends009": { + "GetPersonaName": 0, + "SetPersonaName": 1, + "GetPersonaState": 2, + "GetFriendCount": 3, + "GetFriendByIndex": 4, + "GetFriendRelationship": 5, + "GetFriendPersonaState": 6, + "GetFriendPersonaName": 7, + "GetFriendGamePlayed": 8, + "GetFriendPersonaNameHistory": 9, + "HasFriend": 10, + "GetClanCount": 11, + "GetClanByIndex": 12, + "GetClanName": 13, + "GetClanTag": 14, + "GetFriendCountFromSource": 15, + "GetFriendFromSourceByIndex": 16, + "IsUserInSource": 17, + "SetInGameVoiceSpeaking": 18, + "ActivateGameOverlay": 19, + "ActivateGameOverlayToUser": 20, + "ActivateGameOverlayToWebPage": 21, + "ActivateGameOverlayToStore": 22, + "SetPlayedWith": 23, + "ActivateGameOverlayInviteDialog": 24, + "GetSmallFriendAvatar": 25, + "GetMediumFriendAvatar": 26, + "GetLargeFriendAvatar": 27, + "RequestUserInformation": 28, + "RequestClanOfficerList": 29, + "GetClanOwner": 30, + "GetClanOfficerCount": 31, + "GetClanOfficerByIndex": 32, + "GetUserRestrictions": 33, + "SetRichPresence": 34, + "ClearRichPresence": 35, + "GetFriendRichPresence": 36, + "GetFriendRichPresenceKeyCount": 37, + "GetFriendRichPresenceKeyByIndex": 38, + "InviteUserToGame": 39, + "GetCoplayFriendCount": 40, + "GetCoplayFriend": 41, + "GetFriendCoplayTime": 42, + "GetFriendCoplayGame": 43 }, "STEAMHTTP_INTERFACE_VERSION001": { "CreateHTTPRequest": 0, + "SetHTTPRequestContextValue": 1, + "SetHTTPRequestNetworkActivityTimeout": 2, + "SetHTTPRequestHeaderValue": 3, + "SetHTTPRequestGetOrPostParameter": 4, + "SendHTTPRequest": 5, "DeferHTTPRequest": 6, - "GetHTTPDownloadProgressPct": 13, - "GetHTTPResponseBodyData": 11, - "GetHTTPResponseBodySize": 10, + "PrioritizeHTTPRequest": 7, "GetHTTPResponseHeaderSize": 8, "GetHTTPResponseHeaderValue": 9, - "PrioritizeHTTPRequest": 7, + "GetHTTPResponseBodySize": 10, + "GetHTTPResponseBodyData": 11, "ReleaseHTTPRequest": 12, - "SendHTTPRequest": 5, - "SetHTTPRequestContextValue": 1, - "SetHTTPRequestGetOrPostParameter": 4, - "SetHTTPRequestHeaderValue": 3, - "SetHTTPRequestNetworkActivityTimeout": 2, + "GetHTTPDownloadProgressPct": 13, "SetHTTPRequestRawPostBody": 14 }, + "SteamNetworking005": { + "SendP2PPacket": 0, + "IsP2PPacketAvailable": 1, + "ReadP2PPacket": 2, + "AcceptP2PSessionWithUser": 3, + "CloseP2PSessionWithUser": 4, + "CloseP2PChannelWithUser": 5, + "GetP2PSessionState": 6, + "AllowP2PPacketRelay": 7, + "CreateListenSocket": 8, + "CreateP2PConnectionSocket": 9, + "CreateConnectionSocket": 10, + "DestroySocket": 11, + "DestroyListenSocket": 12, + "SendDataOnSocket": 13, + "IsDataAvailableOnSocket": 14, + "RetrieveDataFromSocket": 15, + "IsDataAvailable": 16, + "RetrieveData": 17, + "GetSocketInfo": 18, + "GetListenSocketInfo": 19, + "GetSocketConnectionType": 20, + "GetMaxPacketSize": 21 + }, + "SteamUser016": { + "GetHSteamUser": 0, + "BLoggedOn": 1, + "GetSteamID": 2, + "InitiateGameConnection": 3, + "TerminateGameConnection": 4, + "TrackAppUsageEvent": 5, + "GetUserDataFolder": 6, + "StartVoiceRecording": 7, + "StopVoiceRecording": 8, + "GetAvailableVoice": 9, + "GetVoice": 10, + "DecompressVoice": 11, + "GetVoiceOptimalSampleRate": 12, + "GetAuthSessionTicket": 13, + "BeginAuthSession": 14, + "EndAuthSession": 15, + "CancelAuthTicket": 16, + "UserHasLicenseForApp": 17, + "BIsBehindNAT": 18, + "AdvertiseGame": 19, + "RequestEncryptedAppTicket": 20, + "GetEncryptedAppTicket": 21, + "LogOn": 22, + "LogOnAndLinkSteamAccountToPSN": 23, + "LogOnAndCreateNewSteamAccountIfNeeded": 24, + "GetConsoleSteamID": 25 + }, + "STEAMUSERSTATS_INTERFACE_VERSION010": { + "RequestCurrentStats": 0, + "GetStat": 2, + "SetStat": 4, + "UpdateAvgRateStat": 5, + "GetAchievement": 6, + "SetAchievement": 7, + "ClearAchievement": 8, + "GetAchievementAndUnlockTime": 9, + "StoreStats": 10, + "GetAchievementIcon": 11, + "GetAchievementDisplayAttribute": 12, + "IndicateAchievementProgress": 13, + "RequestUserStats": 14, + "GetUserStat": 16, + "GetUserAchievement": 17, + "GetUserAchievementAndUnlockTime": 18, + "ResetAllStats": 19, + "FindOrCreateLeaderboard": 20, + "FindLeaderboard": 21, + "GetLeaderboardName": 22, + "GetLeaderboardEntryCount": 23, + "GetLeaderboardSortMethod": 24, + "GetLeaderboardDisplayType": 25, + "DownloadLeaderboardEntries": 26, + "DownloadLeaderboardEntriesForUsers": 27, + "GetDownloadedLeaderboardEntry": 28, + "UploadLeaderboardScore": 29, + "AttachLeaderboardUGC": 30, + "GetNumberOfCurrentPlayers": 31, + "RequestGlobalAchievementPercentages": 32, + "GetMostAchievedAchievementInfo": 33, + "GetNextMostAchievedAchievementInfo": 34, + "GetAchievementAchievedPercent": 35, + "RequestGlobalStats": 36, + "GetGlobalStat": 38, + "GetGlobalStatHistory": 40, + "InstallPS3Trophies": 41, + "GetTrophySpaceRequiredBeforeInstall": 42, + "SetUserStatsData": 43, + "GetUserStatsData": 44 + }, + "SteamClient011": { + "CreateSteamPipe": 0, + "BReleaseSteamPipe": 1, + "ConnectToGlobalUser": 2, + "CreateLocalUser": 3, + "ReleaseUser": 4, + "GetISteamUser": 5, + "GetISteamGameServer": 6, + "SetLocalIPBinding": 7, + "GetISteamFriends": 8, + "GetISteamUtils": 9, + "GetISteamMatchmaking": 10, + "GetISteamMasterServerUpdater": 11, + "GetISteamMatchmakingServers": 12, + "GetISteamGenericInterface": 13, + "GetISteamUserStats": 14, + "GetISteamGameServerStats": 15, + "GetISteamApps": 16, + "GetISteamNetworking": 17, + "GetISteamRemoteStorage": 18, + "GetISteamScreenshots": 19, + "RunFrame": 20, + "GetIPCCallCount": 21, + "SetWarningMessageHook": 22, + "BShutdownIfAllPipesClosed": 23, + "GetISteamHTTP": 24, + "GetISteamPS3OverlayRender": 25 + }, + "STEAMSCREENSHOTS_INTERFACE_VERSION001": { + "WriteScreenshot": 0, + "AddScreenshotToLibrary": 1, + "TriggerScreenshot": 2, + "HookScreenshots": 3, + "SetLocation": 4, + "TagUser": 5 + }, + "SteamClient012": { + "CreateSteamPipe": 0, + "BReleaseSteamPipe": 1, + "ConnectToGlobalUser": 2, + "CreateLocalUser": 3, + "ReleaseUser": 4, + "GetISteamUser": 5, + "GetISteamGameServer": 6, + "SetLocalIPBinding": 7, + "GetISteamFriends": 8, + "GetISteamUtils": 9, + "GetISteamMatchmaking": 10, + "GetISteamMatchmakingServers": 11, + "GetISteamGenericInterface": 12, + "GetISteamUserStats": 13, + "GetISteamGameServerStats": 14, + "GetISteamApps": 15, + "GetISteamNetworking": 16, + "GetISteamRemoteStorage": 17, + "GetISteamScreenshots": 18, + "RunFrame": 19, + "GetIPCCallCount": 20, + "SetWarningMessageHook": 21, + "BShutdownIfAllPipesClosed": 22, + "GetISteamHTTP": 23, + "GetISteamUnifiedMessages": 24, + "GetISteamController": 25, + "GetISteamUGC": 26, + "GetISteamPS3OverlayRender": 27 + }, + "SteamFriends011": { + "GetPersonaName": 0, + "SetPersonaName": 1, + "GetPersonaState": 2, + "GetFriendCount": 3, + "GetFriendByIndex": 4, + "GetFriendRelationship": 5, + "GetFriendPersonaState": 6, + "GetFriendPersonaName": 7, + "GetFriendGamePlayed": 8, + "GetFriendPersonaNameHistory": 9, + "HasFriend": 10, + "GetClanCount": 11, + "GetClanByIndex": 12, + "GetClanName": 13, + "GetClanTag": 14, + "GetClanActivityCounts": 15, + "DownloadClanActivityCounts": 16, + "GetFriendCountFromSource": 17, + "GetFriendFromSourceByIndex": 18, + "IsUserInSource": 19, + "SetInGameVoiceSpeaking": 20, + "ActivateGameOverlay": 21, + "ActivateGameOverlayToUser": 22, + "ActivateGameOverlayToWebPage": 23, + "ActivateGameOverlayToStore": 24, + "SetPlayedWith": 25, + "ActivateGameOverlayInviteDialog": 26, + "GetSmallFriendAvatar": 27, + "GetMediumFriendAvatar": 28, + "GetLargeFriendAvatar": 29, + "RequestUserInformation": 30, + "RequestClanOfficerList": 31, + "GetClanOwner": 32, + "GetClanOfficerCount": 33, + "GetClanOfficerByIndex": 34, + "GetUserRestrictions": 35, + "SetRichPresence": 36, + "ClearRichPresence": 37, + "GetFriendRichPresence": 38, + "GetFriendRichPresenceKeyCount": 39, + "GetFriendRichPresenceKeyByIndex": 40, + "RequestFriendRichPresence": 41, + "InviteUserToGame": 42, + "GetCoplayFriendCount": 43, + "GetCoplayFriend": 44, + "GetFriendCoplayTime": 45, + "GetFriendCoplayGame": 46, + "JoinClanChatRoom": 47, + "LeaveClanChatRoom": 48, + "GetClanChatMemberCount": 49, + "GetChatMemberByIndex": 50, + "SendClanChatMessage": 51, + "GetClanChatMessage": 52, + "IsClanChatAdmin": 53, + "IsClanChatWindowOpenInSteam": 54, + "OpenClanChatWindowInSteam": 55, + "CloseClanChatWindowInSteam": 56, + "SetListenForFriendsMessages": 57, + "ReplyToFriendMessage": 58, + "GetFriendMessage": 59, + "GetFollowerCount": 60, + "IsFollowing": 61, + "EnumerateFollowingList": 62 + }, + "SteamGameServer011": { + "InitGameServer": 0, + "SetProduct": 1, + "SetGameDescription": 2, + "SetModDir": 3, + "SetDedicatedServer": 4, + "LogOn": 5, + "LogOnAnonymous": 6, + "LogOff": 7, + "BLoggedOn": 8, + "BSecure": 9, + "GetSteamID": 10, + "WasRestartRequested": 11, + "SetMaxPlayerCount": 12, + "SetBotPlayerCount": 13, + "SetServerName": 14, + "SetMapName": 15, + "SetPasswordProtected": 16, + "SetSpectatorPort": 17, + "SetSpectatorServerName": 18, + "ClearAllKeyValues": 19, + "SetKeyValue": 20, + "SetGameTags": 21, + "SetGameData": 22, + "SetRegion": 23, + "SendUserConnectAndAuthenticate": 24, + "CreateUnauthenticatedUserConnection": 25, + "SendUserDisconnect": 26, + "BUpdateUserData": 27, + "GetAuthSessionTicket": 28, + "BeginAuthSession": 29, + "EndAuthSession": 30, + "CancelAuthTicket": 31, + "UserHasLicenseForApp": 32, + "RequestUserGroupStatus": 33, + "GetGameplayStats": 34, + "GetServerReputation": 35, + "GetPublicIP": 36, + "HandleIncomingPacket": 37, + "GetNextOutgoingPacket": 38, + "EnableHeartbeats": 39, + "SetHeartbeatInterval": 40, + "ForceHeartbeat": 41, + "AssociateWithClan": 42, + "ComputeNewPlayerCompatibility": 43 + }, + "STEAMREMOTESTORAGE_INTERFACE_VERSION005": { + "FileWrite": 0, + "FileRead": 1, + "FileForget": 2, + "FileDelete": 3, + "FileShare": 4, + "SetSyncPlatforms": 5, + "FileExists": 6, + "FilePersisted": 7, + "GetFileSize": 8, + "GetFileTimestamp": 9, + "GetSyncPlatforms": 10, + "GetFileCount": 11, + "GetFileNameAndSize": 12, + "GetQuota": 13, + "IsCloudEnabledForAccount": 14, + "IsCloudEnabledForApp": 15, + "SetCloudEnabledForApp": 16, + "UGCDownload": 17, + "GetUGCDetails": 18, + "UGCRead": 19, + "GetCachedUGCCount": 20, + "PublishFile": 21, + "PublishWorkshopFile": 22, + "UpdatePublishedFile": 23, + "GetPublishedFileDetails": 24, + "DeletePublishedFile": 25, + "EnumerateUserPublishedFiles": 26, + "SubscribePublishedFile": 27, + "EnumerateUserSubscribedFiles": 28, + "UnsubscribePublishedFile": 29, + "GetFileListFromServer": 30, + "FileFetch": 31, + "FilePersist": 32, + "SynchronizeToClient": 33, + "SynchronizeToServer": 34, + "ResetFileRequestState": 35 + }, + "STEAMAPPS_INTERFACE_VERSION005": { + "BIsSubscribed": 0, + "BIsLowViolence": 1, + "BIsCybercafe": 2, + "BIsVACBanned": 3, + "GetCurrentGameLanguage": 4, + "GetAvailableGameLanguages": 5, + "BIsSubscribedApp": 6, + "BIsDlcInstalled": 7, + "GetEarliestPurchaseUnixTime": 8, + "BIsSubscribedFromFreeWeekend": 9, + "GetDLCCount": 10, + "BGetDLCDataByIndex": 11, + "InstallDLC": 12, + "UninstallDLC": 13, + "RequestAppProofOfPurchaseKey": 14, + "GetCurrentBetaName": 15, + "MarkContentCorrupt": 16, + "GetInstalledDepots": 17, + "GetAppInstallDir": 18, + "BIsAppInstalled": 19, + "RegisterActivationCode": 20 + }, + "STEAMREMOTESTORAGE_INTERFACE_VERSION006": { + "FileWrite": 0, + "FileRead": 1, + "FileForget": 2, + "FileDelete": 3, + "FileShare": 4, + "SetSyncPlatforms": 5, + "FileExists": 6, + "FilePersisted": 7, + "GetFileSize": 8, + "GetFileTimestamp": 9, + "GetSyncPlatforms": 10, + "GetFileCount": 11, + "GetFileNameAndSize": 12, + "GetQuota": 13, + "IsCloudEnabledForAccount": 14, + "IsCloudEnabledForApp": 15, + "SetCloudEnabledForApp": 16, + "UGCDownload": 17, + "GetUGCDownloadProgress": 18, + "GetUGCDetails": 19, + "UGCRead": 20, + "GetCachedUGCCount": 21, + "PublishWorkshopFile": 22, + "CreatePublishedFileUpdateRequest": 23, + "UpdatePublishedFileFile": 24, + "UpdatePublishedFilePreviewFile": 25, + "UpdatePublishedFileTitle": 26, + "UpdatePublishedFileDescription": 27, + "UpdatePublishedFileVisibility": 28, + "UpdatePublishedFileTags": 29, + "CommitPublishedFileUpdate": 30, + "GetPublishedFileDetails": 31, + "DeletePublishedFile": 32, + "EnumerateUserPublishedFiles": 33, + "SubscribePublishedFile": 34, + "EnumerateUserSubscribedFiles": 35, + "UnsubscribePublishedFile": 36, + "UpdatePublishedFileSetChangeDescription": 37, + "GetPublishedItemVoteDetails": 38, + "UpdateUserPublishedItemVote": 39, + "GetUserPublishedItemVoteDetails": 40, + "EnumerateUserSharedWorkshopFiles": 41, + "PublishVideo": 42, + "SetUserPublishedFileAction": 43, + "EnumeratePublishedFilesByUserAction": 44, + "EnumeratePublishedWorkshopFiles": 45, + "GetFileListFromServer": 46, + "FileFetch": 47, + "FilePersist": 48, + "SynchronizeToClient": 49, + "SynchronizeToServer": 50, + "ResetFileRequestState": 51 + }, + "SteamFriends013": { + "GetPersonaName": 0, + "SetPersonaName": 1, + "GetPersonaState": 2, + "GetFriendCount": 3, + "GetFriendByIndex": 4, + "GetFriendRelationship": 5, + "GetFriendPersonaState": 6, + "GetFriendPersonaName": 7, + "GetFriendGamePlayed": 8, + "GetFriendPersonaNameHistory": 9, + "HasFriend": 10, + "GetClanCount": 11, + "GetClanByIndex": 12, + "GetClanName": 13, + "GetClanTag": 14, + "GetClanActivityCounts": 15, + "DownloadClanActivityCounts": 16, + "GetFriendCountFromSource": 17, + "GetFriendFromSourceByIndex": 18, + "IsUserInSource": 19, + "SetInGameVoiceSpeaking": 20, + "ActivateGameOverlay": 21, + "ActivateGameOverlayToUser": 22, + "ActivateGameOverlayToWebPage": 23, + "ActivateGameOverlayToStore": 24, + "SetPlayedWith": 25, + "ActivateGameOverlayInviteDialog": 26, + "GetSmallFriendAvatar": 27, + "GetMediumFriendAvatar": 28, + "GetLargeFriendAvatar": 29, + "RequestUserInformation": 30, + "RequestClanOfficerList": 31, + "GetClanOwner": 32, + "GetClanOfficerCount": 33, + "GetClanOfficerByIndex": 34, + "GetUserRestrictions": 35, + "SetRichPresence": 36, + "ClearRichPresence": 37, + "GetFriendRichPresence": 38, + "GetFriendRichPresenceKeyCount": 39, + "GetFriendRichPresenceKeyByIndex": 40, + "RequestFriendRichPresence": 41, + "InviteUserToGame": 42, + "GetCoplayFriendCount": 43, + "GetCoplayFriend": 44, + "GetFriendCoplayTime": 45, + "GetFriendCoplayGame": 46, + "JoinClanChatRoom": 47, + "LeaveClanChatRoom": 48, + "GetClanChatMemberCount": 49, + "GetChatMemberByIndex": 50, + "SendClanChatMessage": 51, + "GetClanChatMessage": 52, + "IsClanChatAdmin": 53, + "IsClanChatWindowOpenInSteam": 54, + "OpenClanChatWindowInSteam": 55, + "CloseClanChatWindowInSteam": 56, + "SetListenForFriendsMessages": 57, + "ReplyToFriendMessage": 58, + "GetFriendMessage": 59, + "GetFollowerCount": 60, + "IsFollowing": 61, + "EnumerateFollowingList": 62 + }, + "STEAMREMOTESTORAGE_INTERFACE_VERSION008": { + "FileWrite": 0, + "FileRead": 1, + "FileForget": 2, + "FileDelete": 3, + "FileShare": 4, + "SetSyncPlatforms": 5, + "FileWriteStreamOpen": 6, + "FileWriteStreamWriteChunk": 7, + "FileWriteStreamClose": 8, + "FileWriteStreamCancel": 9, + "FileExists": 10, + "FilePersisted": 11, + "GetFileSize": 12, + "GetFileTimestamp": 13, + "GetSyncPlatforms": 14, + "GetFileCount": 15, + "GetFileNameAndSize": 16, + "GetQuota": 17, + "IsCloudEnabledForAccount": 18, + "IsCloudEnabledForApp": 19, + "SetCloudEnabledForApp": 20, + "UGCDownload": 21, + "GetUGCDownloadProgress": 22, + "GetUGCDetails": 23, + "UGCRead": 24, + "GetCachedUGCCount": 25, + "PublishWorkshopFile": 26, + "CreatePublishedFileUpdateRequest": 27, + "UpdatePublishedFileFile": 28, + "UpdatePublishedFilePreviewFile": 29, + "UpdatePublishedFileTitle": 30, + "UpdatePublishedFileDescription": 31, + "UpdatePublishedFileVisibility": 32, + "UpdatePublishedFileTags": 33, + "CommitPublishedFileUpdate": 34, + "GetPublishedFileDetails": 35, + "DeletePublishedFile": 36, + "EnumerateUserPublishedFiles": 37, + "SubscribePublishedFile": 38, + "EnumerateUserSubscribedFiles": 39, + "UnsubscribePublishedFile": 40, + "UpdatePublishedFileSetChangeDescription": 41, + "GetPublishedItemVoteDetails": 42, + "UpdateUserPublishedItemVote": 43, + "GetUserPublishedItemVoteDetails": 44, + "EnumerateUserSharedWorkshopFiles": 45, + "PublishVideo": 46, + "SetUserPublishedFileAction": 47, + "EnumeratePublishedFilesByUserAction": 48, + "EnumeratePublishedWorkshopFiles": 49, + "GetFileListFromServer": 50, + "FileFetch": 51, + "FilePersist": 52, + "SynchronizeToClient": 53, + "SynchronizeToServer": 54, + "ResetFileRequestState": 55 + }, + "STEAMUSERSTATS_INTERFACE_VERSION011": { + "RequestCurrentStats": 0, + "GetStat": 2, + "SetStat": 4, + "UpdateAvgRateStat": 5, + "GetAchievement": 6, + "SetAchievement": 7, + "ClearAchievement": 8, + "GetAchievementAndUnlockTime": 9, + "StoreStats": 10, + "GetAchievementIcon": 11, + "GetAchievementDisplayAttribute": 12, + "IndicateAchievementProgress": 13, + "GetNumAchievements": 14, + "GetAchievementName": 15, + "RequestUserStats": 16, + "GetUserStat": 18, + "GetUserAchievement": 19, + "GetUserAchievementAndUnlockTime": 20, + "ResetAllStats": 21, + "FindOrCreateLeaderboard": 22, + "FindLeaderboard": 23, + "GetLeaderboardName": 24, + "GetLeaderboardEntryCount": 25, + "GetLeaderboardSortMethod": 26, + "GetLeaderboardDisplayType": 27, + "DownloadLeaderboardEntries": 28, + "DownloadLeaderboardEntriesForUsers": 29, + "GetDownloadedLeaderboardEntry": 30, + "UploadLeaderboardScore": 31, + "AttachLeaderboardUGC": 32, + "GetNumberOfCurrentPlayers": 33, + "RequestGlobalAchievementPercentages": 34, + "GetMostAchievedAchievementInfo": 35, + "GetNextMostAchievedAchievementInfo": 36, + "GetAchievementAchievedPercent": 37, + "RequestGlobalStats": 38, + "GetGlobalStat": 40, + "GetGlobalStatHistory": 42, + "InstallPS3Trophies": 43, + "GetTrophySpaceRequiredBeforeInstall": 44, + "SetUserStatsData": 45, + "GetUserStatsData": 46 + }, "STEAMHTTP_INTERFACE_VERSION002": { - "CreateCookieContainer": 17, "CreateHTTPRequest": 0, - "DeferHTTPRequest": 7, - "GetHTTPDownloadProgressPct": 15, - "GetHTTPRequestWasTimedOut": 24, - "GetHTTPResponseBodyData": 12, - "GetHTTPResponseBodySize": 11, - "GetHTTPResponseHeaderSize": 9, - "GetHTTPResponseHeaderValue": 10, - "GetHTTPStreamingResponseBodyData": 13, - "PrioritizeHTTPRequest": 8, - "ReleaseCookieContainer": 18, - "ReleaseHTTPRequest": 14, + "SetHTTPRequestContextValue": 1, + "SetHTTPRequestNetworkActivityTimeout": 2, + "SetHTTPRequestHeaderValue": 3, + "SetHTTPRequestGetOrPostParameter": 4, "SendHTTPRequest": 5, "SendHTTPRequestAndStreamResponse": 6, - "SetCookie": 19, - "SetHTTPRequestAbsoluteTimeoutMS": 23, - "SetHTTPRequestContextValue": 1, - "SetHTTPRequestCookieContainer": 20, - "SetHTTPRequestGetOrPostParameter": 4, - "SetHTTPRequestHeaderValue": 3, - "SetHTTPRequestNetworkActivityTimeout": 2, - "SetHTTPRequestRawPostBody": 16, - "SetHTTPRequestRequiresVerifiedCertificate": 22, - "SetHTTPRequestUserAgentInfo": 21 - }, - "STEAMHTTP_INTERFACE_VERSION003": { - "CreateCookieContainer": 17, - "CreateHTTPRequest": 0, "DeferHTTPRequest": 7, - "GetHTTPDownloadProgressPct": 15, - "GetHTTPRequestWasTimedOut": 24, - "GetHTTPResponseBodyData": 12, - "GetHTTPResponseBodySize": 11, + "PrioritizeHTTPRequest": 8, "GetHTTPResponseHeaderSize": 9, "GetHTTPResponseHeaderValue": 10, + "GetHTTPResponseBodySize": 11, + "GetHTTPResponseBodyData": 12, "GetHTTPStreamingResponseBodyData": 13, - "PrioritizeHTTPRequest": 8, - "ReleaseCookieContainer": 18, "ReleaseHTTPRequest": 14, - "SendHTTPRequest": 5, - "SendHTTPRequestAndStreamResponse": 6, - "SetCookie": 19, - "SetHTTPRequestAbsoluteTimeoutMS": 23, - "SetHTTPRequestContextValue": 1, - "SetHTTPRequestCookieContainer": 20, - "SetHTTPRequestGetOrPostParameter": 4, - "SetHTTPRequestHeaderValue": 3, - "SetHTTPRequestNetworkActivityTimeout": 2, + "GetHTTPDownloadProgressPct": 15, "SetHTTPRequestRawPostBody": 16, + "CreateCookieContainer": 17, + "ReleaseCookieContainer": 18, + "SetCookie": 19, + "SetHTTPRequestCookieContainer": 20, + "SetHTTPRequestUserAgentInfo": 21, "SetHTTPRequestRequiresVerifiedCertificate": 22, - "SetHTTPRequestUserAgentInfo": 21 + "SetHTTPRequestAbsoluteTimeoutMS": 23, + "GetHTTPRequestWasTimedOut": 24 }, - "STEAMINVENTORY_INTERFACE_V001": { - "AddPromoItem": 11, - "AddPromoItems": 12, - "CheckResultSteamID": 3, - "ConsumeItem": 13, - "DeserializeResult": 8, - "DestroyResult": 4, - "ExchangeItems": 14, - "GenerateItems": 9, - "GetAllItems": 5, - "GetEligiblePromoItemDefinitionIDs": 23, - "GetItemDefinitionIDs": 20, - "GetItemDefinitionProperty": 21, - "GetItemsByID": 6, - "GetResultItems": 1, - "GetResultStatus": 0, - "GetResultTimestamp": 2, - "GrantPromoItems": 10, - "LoadItemDefinitions": 19, - "RequestEligiblePromoItemDefinitionsIDs": 22, - "SendItemDropHeartbeat": 16, - "SerializeResult": 7, - "TradeItems": 18, - "TransferItemQuantity": 15, - "TriggerItemDrop": 17 + "STEAMREMOTESTORAGE_INTERFACE_VERSION010": { + "FileWrite": 0, + "FileRead": 1, + "FileForget": 2, + "FileDelete": 3, + "FileShare": 4, + "SetSyncPlatforms": 5, + "FileWriteStreamOpen": 6, + "FileWriteStreamWriteChunk": 7, + "FileWriteStreamClose": 8, + "FileWriteStreamCancel": 9, + "FileExists": 10, + "FilePersisted": 11, + "GetFileSize": 12, + "GetFileTimestamp": 13, + "GetSyncPlatforms": 14, + "GetFileCount": 15, + "GetFileNameAndSize": 16, + "GetQuota": 17, + "IsCloudEnabledForAccount": 18, + "IsCloudEnabledForApp": 19, + "SetCloudEnabledForApp": 20, + "UGCDownload": 21, + "GetUGCDownloadProgress": 22, + "GetUGCDetails": 23, + "UGCRead": 24, + "GetCachedUGCCount": 25, + "PublishWorkshopFile": 26, + "CreatePublishedFileUpdateRequest": 27, + "UpdatePublishedFileFile": 28, + "UpdatePublishedFilePreviewFile": 29, + "UpdatePublishedFileTitle": 30, + "UpdatePublishedFileDescription": 31, + "UpdatePublishedFileVisibility": 32, + "UpdatePublishedFileTags": 33, + "CommitPublishedFileUpdate": 34, + "GetPublishedFileDetails": 35, + "DeletePublishedFile": 36, + "EnumerateUserPublishedFiles": 37, + "SubscribePublishedFile": 38, + "EnumerateUserSubscribedFiles": 39, + "UnsubscribePublishedFile": 40, + "UpdatePublishedFileSetChangeDescription": 41, + "GetPublishedItemVoteDetails": 42, + "UpdateUserPublishedItemVote": 43, + "GetUserPublishedItemVoteDetails": 44, + "EnumerateUserSharedWorkshopFiles": 45, + "PublishVideo": 46, + "SetUserPublishedFileAction": 47, + "EnumeratePublishedFilesByUserAction": 48, + "EnumeratePublishedWorkshopFiles": 49, + "UGCDownloadToLocation": 50, + "GetFileListFromServer": 51, + "FileFetch": 52, + "FilePersist": 53, + "SynchronizeToClient": 54, + "SynchronizeToServer": 55, + "ResetFileRequestState": 56 }, - "STEAMINVENTORY_INTERFACE_V002": { - "AddPromoItem": 12, - "AddPromoItems": 13, - "CheckResultSteamID": 4, - "ConsumeItem": 14, - "DeserializeResult": 9, - "DestroyResult": 5, - "ExchangeItems": 15, - "GenerateItems": 10, - "GetAllItems": 6, - "GetEligiblePromoItemDefinitionIDs": 24, - "GetItemDefinitionIDs": 21, - "GetItemDefinitionProperty": 22, - "GetItemPrice": 29, - "GetItemsByID": 7, - "GetItemsWithPrices": 28, - "GetNumItemsWithPrices": 27, - "GetResultItemProperty": 2, - "GetResultItems": 1, - "GetResultStatus": 0, - "GetResultTimestamp": 3, - "GrantPromoItems": 11, - "LoadItemDefinitions": 20, - "RemoveProperty": 31, - "RequestEligiblePromoItemDefinitionsIDs": 23, - "RequestPrices": 26, - "SendItemDropHeartbeat": 17, - "SerializeResult": 8, - "SetProperty": 35, - "StartPurchase": 25, - "StartUpdateProperties": 30, - "SubmitUpdateProperties": 36, - "TradeItems": 19, - "TransferItemQuantity": 16, - "TriggerItemDrop": 18 + "STEAMSCREENSHOTS_INTERFACE_VERSION002": { + "WriteScreenshot": 0, + "AddScreenshotToLibrary": 1, + "TriggerScreenshot": 2, + "HookScreenshots": 3, + "SetLocation": 4, + "TagUser": 5, + "TagPublishedFile": 6 }, - "STEAMINVENTORY_INTERFACE_V003": { - "AddPromoItem": 12, - "AddPromoItems": 13, - "CheckResultSteamID": 4, - "ConsumeItem": 14, - "DeserializeResult": 9, - "DestroyResult": 5, - "ExchangeItems": 15, - "GenerateItems": 10, - "GetAllItems": 6, - "GetEligiblePromoItemDefinitionIDs": 24, - "GetItemDefinitionIDs": 21, - "GetItemDefinitionProperty": 22, - "GetItemPrice": 29, - "GetItemsByID": 7, - "GetItemsWithPrices": 28, - "GetNumItemsWithPrices": 27, - "GetResultItemProperty": 2, - "GetResultItems": 1, - "GetResultStatus": 0, - "GetResultTimestamp": 3, - "GrantPromoItems": 11, - "InspectItem": 37, - "LoadItemDefinitions": 20, - "RemoveProperty": 31, - "RequestEligiblePromoItemDefinitionsIDs": 23, - "RequestPrices": 26, - "SendItemDropHeartbeat": 17, - "SerializeResult": 8, - "SetProperty": 35, - "StartPurchase": 25, - "StartUpdateProperties": 30, - "SubmitUpdateProperties": 36, - "TradeItems": 19, - "TransferItemQuantity": 16, - "TriggerItemDrop": 18 + "STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001": { + "SendMethod": 0, + "GetMethodResponseInfo": 1, + "GetMethodResponseData": 2, + "ReleaseMethod": 3, + "SendNotification": 4 }, - "STEAMMUSICREMOTE_INTERFACE_VERSION001": { - "BActivationSuccess": 3, - "BIsCurrentMusicRemote": 2, - "CurrentEntryDidChange": 21, - "CurrentEntryIsAvailable": 17, - "CurrentEntryWillChange": 16, - "DeregisterSteamMusicRemote": 1, - "EnableLooped": 9, - "EnablePlayNext": 7, - "EnablePlayPrevious": 6, - "EnablePlaylists": 11, - "EnableQueue": 10, - "EnableShuffled": 8, - "PlaylistDidChange": 31, - "PlaylistWillChange": 27, - "QueueDidChange": 26, - "QueueWillChange": 22, - "RegisterSteamMusicRemote": 0, - "ResetPlaylistEntries": 28, - "ResetQueueEntries": 23, - "SetCurrentPlaylistEntry": 30, - "SetCurrentQueueEntry": 25, - "SetDisplayName": 4, - "SetPNGIcon_64x64": 5, - "SetPlaylistEntry": 29, - "SetQueueEntry": 24, - "UpdateCurrentEntryCoverArt": 20, - "UpdateCurrentEntryElapsedSeconds": 19, - "UpdateCurrentEntryText": 18, - "UpdateLooped": 14, - "UpdatePlaybackStatus": 12, - "UpdateShuffled": 13, - "UpdateVolume": 15 + "STEAMCONTROLLER_INTERFACE_VERSION": { + "Init": 0, + "Shutdown": 1, + "RunFrame": 2, + "GetControllerState": 3, + "TriggerHapticPulse": 4, + "SetOverrideMode": 5 + }, + "SteamUser017": { + "GetHSteamUser": 0, + "BLoggedOn": 1, + "GetSteamID": 2, + "InitiateGameConnection": 3, + "TerminateGameConnection": 4, + "TrackAppUsageEvent": 5, + "GetUserDataFolder": 6, + "StartVoiceRecording": 7, + "StopVoiceRecording": 8, + "GetAvailableVoice": 9, + "GetVoice": 10, + "DecompressVoice": 11, + "GetVoiceOptimalSampleRate": 12, + "GetAuthSessionTicket": 13, + "BeginAuthSession": 14, + "EndAuthSession": 15, + "CancelAuthTicket": 16, + "UserHasLicenseForApp": 17, + "BIsBehindNAT": 18, + "AdvertiseGame": 19, + "RequestEncryptedAppTicket": 20, + "GetEncryptedAppTicket": 21, + "GetGameBadgeLevel": 22, + "GetPlayerSteamLevel": 23, + "LogOn": 24, + "LogOnAndLinkSteamAccountToPSN": 25, + "LogOnAndCreateNewSteamAccountIfNeeded": 26, + "GetConsoleSteamID": 27 + }, + "STEAMREMOTESTORAGE_INTERFACE_VERSION011": { + "FileWrite": 0, + "FileRead": 1, + "FileForget": 2, + "FileDelete": 3, + "FileShare": 4, + "SetSyncPlatforms": 5, + "FileWriteStreamOpen": 6, + "FileWriteStreamWriteChunk": 7, + "FileWriteStreamClose": 8, + "FileWriteStreamCancel": 9, + "FileExists": 10, + "FilePersisted": 11, + "GetFileSize": 12, + "GetFileTimestamp": 13, + "GetSyncPlatforms": 14, + "GetFileCount": 15, + "GetFileNameAndSize": 16, + "GetQuota": 17, + "IsCloudEnabledForAccount": 18, + "IsCloudEnabledForApp": 19, + "SetCloudEnabledForApp": 20, + "UGCDownload": 21, + "GetUGCDownloadProgress": 22, + "GetUGCDetails": 23, + "UGCRead": 24, + "GetCachedUGCCount": 25, + "PublishWorkshopFile": 26, + "CreatePublishedFileUpdateRequest": 27, + "UpdatePublishedFileFile": 28, + "UpdatePublishedFilePreviewFile": 29, + "UpdatePublishedFileTitle": 30, + "UpdatePublishedFileDescription": 31, + "UpdatePublishedFileVisibility": 32, + "UpdatePublishedFileTags": 33, + "CommitPublishedFileUpdate": 34, + "GetPublishedFileDetails": 35, + "DeletePublishedFile": 36, + "EnumerateUserPublishedFiles": 37, + "SubscribePublishedFile": 38, + "EnumerateUserSubscribedFiles": 39, + "UnsubscribePublishedFile": 40, + "UpdatePublishedFileSetChangeDescription": 41, + "GetPublishedItemVoteDetails": 42, + "UpdateUserPublishedItemVote": 43, + "GetUserPublishedItemVoteDetails": 44, + "EnumerateUserSharedWorkshopFiles": 45, + "PublishVideo": 46, + "SetUserPublishedFileAction": 47, + "EnumeratePublishedFilesByUserAction": 48, + "EnumeratePublishedWorkshopFiles": 49, + "UGCDownloadToLocation": 50, + "GetFileListFromServer": 51, + "FileFetch": 52, + "FilePersist": 53, + "SynchronizeToClient": 54, + "SynchronizeToServer": 55, + "ResetFileRequestState": 56 + }, + "SteamUtils006": { + "GetSecondsSinceAppActive": 0, + "GetSecondsSinceComputerActive": 1, + "GetConnectedUniverse": 2, + "GetServerRealTime": 3, + "GetIPCountry": 4, + "GetImageSize": 5, + "GetImageRGBA": 6, + "GetCSERIPPort": 7, + "GetCurrentBatteryPower": 8, + "GetAppID": 9, + "SetOverlayNotificationPosition": 10, + "IsAPICallCompleted": 11, + "GetAPICallFailureReason": 12, + "GetAPICallResult": 13, + "RunFrame": 14, + "GetIPCCallCount": 15, + "SetWarningMessageHook": 16, + "IsOverlayEnabled": 17, + "BOverlayNeedsPresent": 18, + "ShowGamepadTextInput": 19, + "GetEnteredGamepadTextLength": 20, + "GetEnteredGamepadTextInput": 21, + "GetSteamUILanguage": 22, + "IsSteamRunningInVR": 23, + "CheckFileSignature": 24, + "PostPS3SysutilCallback": 25, + "BIsReadyToShutdown": 26, + "BIsPSNOnline": 27, + "SetPSNGameBootInviteStrings": 28 + }, + "STEAMAPPS_INTERFACE_VERSION006": { + "BIsSubscribed": 0, + "BIsLowViolence": 1, + "BIsCybercafe": 2, + "BIsVACBanned": 3, + "GetCurrentGameLanguage": 4, + "GetAvailableGameLanguages": 5, + "BIsSubscribedApp": 6, + "BIsDlcInstalled": 7, + "GetEarliestPurchaseUnixTime": 8, + "BIsSubscribedFromFreeWeekend": 9, + "GetDLCCount": 10, + "BGetDLCDataByIndex": 11, + "InstallDLC": 12, + "UninstallDLC": 13, + "RequestAppProofOfPurchaseKey": 14, + "GetCurrentBetaName": 15, + "MarkContentCorrupt": 16, + "GetInstalledDepots": 17, + "GetAppInstallDir": 18, + "BIsAppInstalled": 19, + "GetAppOwner": 20, + "GetLaunchQueryParam": 21, + "RegisterActivationCode": 22 + }, + "SteamFriends014": { + "GetPersonaName": 0, + "SetPersonaName": 1, + "GetPersonaState": 2, + "GetFriendCount": 3, + "GetFriendByIndex": 4, + "GetFriendRelationship": 5, + "GetFriendPersonaState": 6, + "GetFriendPersonaName": 7, + "GetFriendGamePlayed": 8, + "GetFriendPersonaNameHistory": 9, + "GetPlayerNickname": 10, + "HasFriend": 11, + "GetClanCount": 12, + "GetClanByIndex": 13, + "GetClanName": 14, + "GetClanTag": 15, + "GetClanActivityCounts": 16, + "DownloadClanActivityCounts": 17, + "GetFriendCountFromSource": 18, + "GetFriendFromSourceByIndex": 19, + "IsUserInSource": 20, + "SetInGameVoiceSpeaking": 21, + "ActivateGameOverlay": 22, + "ActivateGameOverlayToUser": 23, + "ActivateGameOverlayToWebPage": 24, + "ActivateGameOverlayToStore": 25, + "SetPlayedWith": 26, + "ActivateGameOverlayInviteDialog": 27, + "GetSmallFriendAvatar": 28, + "GetMediumFriendAvatar": 29, + "GetLargeFriendAvatar": 30, + "RequestUserInformation": 31, + "RequestClanOfficerList": 32, + "GetClanOwner": 33, + "GetClanOfficerCount": 34, + "GetClanOfficerByIndex": 35, + "GetUserRestrictions": 36, + "SetRichPresence": 37, + "ClearRichPresence": 38, + "GetFriendRichPresence": 39, + "GetFriendRichPresenceKeyCount": 40, + "GetFriendRichPresenceKeyByIndex": 41, + "RequestFriendRichPresence": 42, + "InviteUserToGame": 43, + "GetCoplayFriendCount": 44, + "GetCoplayFriend": 45, + "GetFriendCoplayTime": 46, + "GetFriendCoplayGame": 47, + "JoinClanChatRoom": 48, + "LeaveClanChatRoom": 49, + "GetClanChatMemberCount": 50, + "GetChatMemberByIndex": 51, + "SendClanChatMessage": 52, + "GetClanChatMessage": 53, + "IsClanChatAdmin": 54, + "IsClanChatWindowOpenInSteam": 55, + "OpenClanChatWindowInSteam": 56, + "CloseClanChatWindowInSteam": 57, + "SetListenForFriendsMessages": 58, + "ReplyToFriendMessage": 59, + "GetFriendMessage": 60, + "GetFollowerCount": 61, + "IsFollowing": 62, + "EnumerateFollowingList": 63 + }, + "STEAMUGC_INTERFACE_VERSION001": { + "CreateQueryUserUGCRequest": 0, + "CreateQueryAllUGCRequest": 1, + "SendQueryUGCRequest": 2, + "GetQueryUGCResult": 3, + "ReleaseQueryUGCRequest": 4, + "AddRequiredTag": 5, + "AddExcludedTag": 6, + "SetReturnLongDescription": 7, + "SetReturnTotalOnly": 8, + "SetCloudFileNameFilter": 9, + "SetMatchAnyTag": 10, + "SetSearchText": 11, + "SetRankedByTrendDays": 12, + "RequestUGCDetails": 13 + }, + "STEAMREMOTESTORAGE_INTERFACE_VERSION012": { + "FileWrite": 0, + "FileRead": 1, + "FileForget": 2, + "FileDelete": 3, + "FileShare": 4, + "SetSyncPlatforms": 5, + "FileWriteStreamOpen": 6, + "FileWriteStreamWriteChunk": 7, + "FileWriteStreamClose": 8, + "FileWriteStreamCancel": 9, + "FileExists": 10, + "FilePersisted": 11, + "GetFileSize": 12, + "GetFileTimestamp": 13, + "GetSyncPlatforms": 14, + "GetFileCount": 15, + "GetFileNameAndSize": 16, + "GetQuota": 17, + "IsCloudEnabledForAccount": 18, + "IsCloudEnabledForApp": 19, + "SetCloudEnabledForApp": 20, + "UGCDownload": 21, + "GetUGCDownloadProgress": 22, + "GetUGCDetails": 23, + "UGCRead": 24, + "GetCachedUGCCount": 25, + "PublishWorkshopFile": 26, + "CreatePublishedFileUpdateRequest": 27, + "UpdatePublishedFileFile": 28, + "UpdatePublishedFilePreviewFile": 29, + "UpdatePublishedFileTitle": 30, + "UpdatePublishedFileDescription": 31, + "UpdatePublishedFileVisibility": 32, + "UpdatePublishedFileTags": 33, + "CommitPublishedFileUpdate": 34, + "GetPublishedFileDetails": 35, + "DeletePublishedFile": 36, + "EnumerateUserPublishedFiles": 37, + "SubscribePublishedFile": 38, + "EnumerateUserSubscribedFiles": 39, + "UnsubscribePublishedFile": 40, + "UpdatePublishedFileSetChangeDescription": 41, + "GetPublishedItemVoteDetails": 42, + "UpdateUserPublishedItemVote": 43, + "GetUserPublishedItemVoteDetails": 44, + "EnumerateUserSharedWorkshopFiles": 45, + "PublishVideo": 46, + "SetUserPublishedFileAction": 47, + "EnumeratePublishedFilesByUserAction": 48, + "EnumeratePublishedWorkshopFiles": 49, + "UGCDownloadToLocation": 50, + "GetFileListFromServer": 51, + "FileFetch": 52, + "FilePersist": 53, + "SynchronizeToClient": 54, + "SynchronizeToServer": 55, + "ResetFileRequestState": 56 + }, + "STEAMAPPLIST_INTERFACE_VERSION001": { + "GetNumInstalledApps": 0, + "GetInstalledApps": 1, + "GetAppName": 2, + "GetAppInstallDir": 3, + "GetAppBuildId": 4 + }, + "SteamClient014": { + "CreateSteamPipe": 0, + "BReleaseSteamPipe": 1, + "ConnectToGlobalUser": 2, + "CreateLocalUser": 3, + "ReleaseUser": 4, + "GetISteamUser": 5, + "GetISteamGameServer": 6, + "SetLocalIPBinding": 7, + "GetISteamFriends": 8, + "GetISteamUtils": 9, + "GetISteamMatchmaking": 10, + "GetISteamMatchmakingServers": 11, + "GetISteamGenericInterface": 12, + "GetISteamUserStats": 13, + "GetISteamGameServerStats": 14, + "GetISteamApps": 15, + "GetISteamNetworking": 16, + "GetISteamRemoteStorage": 17, + "GetISteamScreenshots": 18, + "RunFrame": 19, + "GetIPCCallCount": 20, + "SetWarningMessageHook": 21, + "BShutdownIfAllPipesClosed": 22, + "GetISteamHTTP": 23, + "GetISteamUnifiedMessages": 24, + "GetISteamController": 25, + "GetISteamUGC": 26, + "GetISteamAppList": 27, + "GetISteamMusic": 28, + "GetISteamPS3OverlayRender": 29 }, "STEAMMUSIC_INTERFACE_VERSION001": { "BIsEnabled": 0, "BIsPlaying": 1, "GetPlaybackStatus": 2, - "GetVolume": 8, - "Pause": 4, "Play": 3, - "PlayNext": 6, + "Pause": 4, "PlayPrevious": 5, - "SetVolume": 7 + "PlayNext": 6, + "SetVolume": 7, + "GetVolume": 8 }, - "STEAMPARENTALSETTINGS_INTERFACE_VERSION001": { - "BIsAppBlocked": 2, - "BIsAppInBlockList": 3, - "BIsFeatureBlocked": 4, - "BIsFeatureInBlockList": 5, - "BIsParentalLockEnabled": 0, - "BIsParentalLockLocked": 1 - }, - "STEAMREMOTEPLAY_INTERFACE_VERSION001": { - "BGetSessionClientResolution": 5, - "BSendRemotePlayTogetherInvite": 6, - "GetSessionClientFormFactor": 4, - "GetSessionClientName": 3, - "GetSessionCount": 0, - "GetSessionID": 1, - "GetSessionSteamID": 2 - }, - "STEAMREMOTEPLAY_INTERFACE_VERSION002": { - "BGetSessionClientResolution": 5, - "BSendRemotePlayTogetherInvite": 7, - "BStartRemotePlayTogether": 6, - "GetSessionClientFormFactor": 4, - "GetSessionClientName": 3, - "GetSessionCount": 0, - "GetSessionID": 1, - "GetSessionSteamID": 2 - }, - "STEAMREMOTEPLAY_INTERFACE_VERSION003": { - "BEnableRemotePlayTogetherDirectInput": 8, - "BGetSessionClientResolution": 5, - "BSendRemotePlayTogetherInvite": 7, - "CreateMouseCursor": 13, - "DisableRemotePlayTogetherDirectInput": 9, - "GetInput": 10, - "GetSessionClientFormFactor": 4, - "GetSessionClientName": 3, - "GetSessionCount": 0, - "GetSessionID": 1, - "GetSessionSteamID": 2, - "SetMouseCursor": 14, - "SetMousePosition": 12, - "SetMouseVisibility": 11, - "ShowRemotePlayTogetherUI": 6 - }, - "STEAMREMOTESTORAGE_INTERFACE_VERSION002": { - "FileExists": 3, - "FileRead": 2, - "FileWrite": 0, - "GetFileCount": 4, - "GetFileNameAndSize": 5, - "GetFileSize": 1, - "GetQuota": 6 - }, - "STEAMREMOTESTORAGE_INTERFACE_VERSION004": { - "FileDelete": 3, - "FileExists": 6, - "FileFetch": 22, - "FileForget": 2, - "FilePersist": 23, - "FilePersisted": 7, - "FileRead": 1, - "FileShare": 4, - "FileWrite": 0, - "GetCachedUGCCount": 20, - "GetFileCount": 11, - "GetFileListFromServer": 21, - "GetFileNameAndSize": 12, - "GetFileSize": 8, - "GetFileTimestamp": 9, - "GetQuota": 13, - "GetSyncPlatforms": 10, - "GetUGCDetails": 18, - "IsCloudEnabledForAccount": 14, - "IsCloudEnabledForApp": 15, - "ResetFileRequestState": 26, - "SetCloudEnabledForApp": 16, - "SetSyncPlatforms": 5, - "SynchronizeToClient": 24, - "SynchronizeToServer": 25, - "UGCDownload": 17, - "UGCRead": 19 - }, - "STEAMREMOTESTORAGE_INTERFACE_VERSION005": { - "DeletePublishedFile": 25, - "EnumerateUserPublishedFiles": 26, - "EnumerateUserSubscribedFiles": 28, - "FileDelete": 3, - "FileExists": 6, - "FileFetch": 31, - "FileForget": 2, - "FilePersist": 32, - "FilePersisted": 7, - "FileRead": 1, - "FileShare": 4, - "FileWrite": 0, - "GetCachedUGCCount": 20, - "GetFileCount": 11, - "GetFileListFromServer": 30, - "GetFileNameAndSize": 12, - "GetFileSize": 8, - "GetFileTimestamp": 9, - "GetPublishedFileDetails": 24, - "GetQuota": 13, - "GetSyncPlatforms": 10, - "GetUGCDetails": 18, - "IsCloudEnabledForAccount": 14, - "IsCloudEnabledForApp": 15, - "PublishFile": 21, - "PublishWorkshopFile": 22, - "ResetFileRequestState": 35, - "SetCloudEnabledForApp": 16, - "SetSyncPlatforms": 5, - "SubscribePublishedFile": 27, - "SynchronizeToClient": 33, - "SynchronizeToServer": 34, - "UGCDownload": 17, - "UGCRead": 19, - "UnsubscribePublishedFile": 29, - "UpdatePublishedFile": 23 - }, - "STEAMREMOTESTORAGE_INTERFACE_VERSION006": { - "CommitPublishedFileUpdate": 30, - "CreatePublishedFileUpdateRequest": 23, - "DeletePublishedFile": 32, - "EnumeratePublishedFilesByUserAction": 44, - "EnumeratePublishedWorkshopFiles": 45, - "EnumerateUserPublishedFiles": 33, - "EnumerateUserSharedWorkshopFiles": 41, - "EnumerateUserSubscribedFiles": 35, - "FileDelete": 3, - "FileExists": 6, - "FileFetch": 47, - "FileForget": 2, - "FilePersist": 48, - "FilePersisted": 7, - "FileRead": 1, - "FileShare": 4, - "FileWrite": 0, - "GetCachedUGCCount": 21, - "GetFileCount": 11, - "GetFileListFromServer": 46, - "GetFileNameAndSize": 12, - "GetFileSize": 8, - "GetFileTimestamp": 9, - "GetPublishedFileDetails": 31, - "GetPublishedItemVoteDetails": 38, - "GetQuota": 13, - "GetSyncPlatforms": 10, - "GetUGCDetails": 19, - "GetUGCDownloadProgress": 18, - "GetUserPublishedItemVoteDetails": 40, - "IsCloudEnabledForAccount": 14, - "IsCloudEnabledForApp": 15, - "PublishVideo": 42, - "PublishWorkshopFile": 22, - "ResetFileRequestState": 51, - "SetCloudEnabledForApp": 16, - "SetSyncPlatforms": 5, - "SetUserPublishedFileAction": 43, - "SubscribePublishedFile": 34, - "SynchronizeToClient": 49, - "SynchronizeToServer": 50, - "UGCDownload": 17, - "UGCRead": 20, - "UnsubscribePublishedFile": 36, - "UpdatePublishedFileDescription": 27, - "UpdatePublishedFileFile": 24, - "UpdatePublishedFilePreviewFile": 25, - "UpdatePublishedFileSetChangeDescription": 37, - "UpdatePublishedFileTags": 29, - "UpdatePublishedFileTitle": 26, - "UpdatePublishedFileVisibility": 28, - "UpdateUserPublishedItemVote": 39 - }, - "STEAMREMOTESTORAGE_INTERFACE_VERSION008": { - "CommitPublishedFileUpdate": 34, - "CreatePublishedFileUpdateRequest": 27, - "DeletePublishedFile": 36, - "EnumeratePublishedFilesByUserAction": 48, - "EnumeratePublishedWorkshopFiles": 49, - "EnumerateUserPublishedFiles": 37, - "EnumerateUserSharedWorkshopFiles": 45, - "EnumerateUserSubscribedFiles": 39, - "FileDelete": 3, - "FileExists": 10, - "FileFetch": 51, - "FileForget": 2, - "FilePersist": 52, - "FilePersisted": 11, - "FileRead": 1, - "FileShare": 4, - "FileWrite": 0, - "FileWriteStreamCancel": 9, - "FileWriteStreamClose": 8, - "FileWriteStreamOpen": 6, - "FileWriteStreamWriteChunk": 7, - "GetCachedUGCCount": 25, - "GetFileCount": 15, - "GetFileListFromServer": 50, - "GetFileNameAndSize": 16, - "GetFileSize": 12, - "GetFileTimestamp": 13, - "GetPublishedFileDetails": 35, - "GetPublishedItemVoteDetails": 42, - "GetQuota": 17, - "GetSyncPlatforms": 14, - "GetUGCDetails": 23, - "GetUGCDownloadProgress": 22, - "GetUserPublishedItemVoteDetails": 44, - "IsCloudEnabledForAccount": 18, - "IsCloudEnabledForApp": 19, - "PublishVideo": 46, - "PublishWorkshopFile": 26, - "ResetFileRequestState": 55, - "SetCloudEnabledForApp": 20, - "SetSyncPlatforms": 5, - "SetUserPublishedFileAction": 47, - "SubscribePublishedFile": 38, - "SynchronizeToClient": 53, - "SynchronizeToServer": 54, - "UGCDownload": 21, - "UGCRead": 24, - "UnsubscribePublishedFile": 40, - "UpdatePublishedFileDescription": 31, - "UpdatePublishedFileFile": 28, - "UpdatePublishedFilePreviewFile": 29, - "UpdatePublishedFileSetChangeDescription": 41, - "UpdatePublishedFileTags": 33, - "UpdatePublishedFileTitle": 30, - "UpdatePublishedFileVisibility": 32, - "UpdateUserPublishedItemVote": 43 - }, - "STEAMREMOTESTORAGE_INTERFACE_VERSION010": { - "CommitPublishedFileUpdate": 34, - "CreatePublishedFileUpdateRequest": 27, - "DeletePublishedFile": 36, - "EnumeratePublishedFilesByUserAction": 48, - "EnumeratePublishedWorkshopFiles": 49, - "EnumerateUserPublishedFiles": 37, - "EnumerateUserSharedWorkshopFiles": 45, - "EnumerateUserSubscribedFiles": 39, - "FileDelete": 3, - "FileExists": 10, - "FileFetch": 52, - "FileForget": 2, - "FilePersist": 53, - "FilePersisted": 11, - "FileRead": 1, - "FileShare": 4, - "FileWrite": 0, - "FileWriteStreamCancel": 9, - "FileWriteStreamClose": 8, - "FileWriteStreamOpen": 6, - "FileWriteStreamWriteChunk": 7, - "GetCachedUGCCount": 25, - "GetFileCount": 15, - "GetFileListFromServer": 51, - "GetFileNameAndSize": 16, - "GetFileSize": 12, - "GetFileTimestamp": 13, - "GetPublishedFileDetails": 35, - "GetPublishedItemVoteDetails": 42, - "GetQuota": 17, - "GetSyncPlatforms": 14, - "GetUGCDetails": 23, - "GetUGCDownloadProgress": 22, - "GetUserPublishedItemVoteDetails": 44, - "IsCloudEnabledForAccount": 18, - "IsCloudEnabledForApp": 19, - "PublishVideo": 46, - "PublishWorkshopFile": 26, - "ResetFileRequestState": 56, - "SetCloudEnabledForApp": 20, - "SetSyncPlatforms": 5, - "SetUserPublishedFileAction": 47, - "SubscribePublishedFile": 38, - "SynchronizeToClient": 54, - "SynchronizeToServer": 55, - "UGCDownload": 21, - "UGCDownloadToLocation": 50, - "UGCRead": 24, - "UnsubscribePublishedFile": 40, - "UpdatePublishedFileDescription": 31, - "UpdatePublishedFileFile": 28, - "UpdatePublishedFilePreviewFile": 29, - "UpdatePublishedFileSetChangeDescription": 41, - "UpdatePublishedFileTags": 33, - "UpdatePublishedFileTitle": 30, - "UpdatePublishedFileVisibility": 32, - "UpdateUserPublishedItemVote": 43 - }, - "STEAMREMOTESTORAGE_INTERFACE_VERSION011": { - "CommitPublishedFileUpdate": 34, - "CreatePublishedFileUpdateRequest": 27, - "DeletePublishedFile": 36, - "EnumeratePublishedFilesByUserAction": 48, - "EnumeratePublishedWorkshopFiles": 49, - "EnumerateUserPublishedFiles": 37, - "EnumerateUserSharedWorkshopFiles": 45, - "EnumerateUserSubscribedFiles": 39, - "FileDelete": 3, - "FileExists": 10, - "FileFetch": 52, - "FileForget": 2, - "FilePersist": 53, - "FilePersisted": 11, - "FileRead": 1, - "FileShare": 4, - "FileWrite": 0, - "FileWriteStreamCancel": 9, - "FileWriteStreamClose": 8, - "FileWriteStreamOpen": 6, - "FileWriteStreamWriteChunk": 7, - "GetCachedUGCCount": 25, - "GetFileCount": 15, - "GetFileListFromServer": 51, - "GetFileNameAndSize": 16, - "GetFileSize": 12, - "GetFileTimestamp": 13, - "GetPublishedFileDetails": 35, - "GetPublishedItemVoteDetails": 42, - "GetQuota": 17, - "GetSyncPlatforms": 14, - "GetUGCDetails": 23, - "GetUGCDownloadProgress": 22, - "GetUserPublishedItemVoteDetails": 44, - "IsCloudEnabledForAccount": 18, - "IsCloudEnabledForApp": 19, - "PublishVideo": 46, - "PublishWorkshopFile": 26, - "ResetFileRequestState": 56, - "SetCloudEnabledForApp": 20, - "SetSyncPlatforms": 5, - "SetUserPublishedFileAction": 47, - "SubscribePublishedFile": 38, - "SynchronizeToClient": 54, - "SynchronizeToServer": 55, - "UGCDownload": 21, - "UGCDownloadToLocation": 50, - "UGCRead": 24, - "UnsubscribePublishedFile": 40, - "UpdatePublishedFileDescription": 31, - "UpdatePublishedFileFile": 28, - "UpdatePublishedFilePreviewFile": 29, - "UpdatePublishedFileSetChangeDescription": 41, - "UpdatePublishedFileTags": 33, - "UpdatePublishedFileTitle": 30, - "UpdatePublishedFileVisibility": 32, - "UpdateUserPublishedItemVote": 43 - }, - "STEAMREMOTESTORAGE_INTERFACE_VERSION012": { - "CommitPublishedFileUpdate": 34, - "CreatePublishedFileUpdateRequest": 27, - "DeletePublishedFile": 36, - "EnumeratePublishedFilesByUserAction": 48, - "EnumeratePublishedWorkshopFiles": 49, - "EnumerateUserPublishedFiles": 37, - "EnumerateUserSharedWorkshopFiles": 45, - "EnumerateUserSubscribedFiles": 39, - "FileDelete": 3, - "FileExists": 10, - "FileFetch": 52, - "FileForget": 2, - "FilePersist": 53, - "FilePersisted": 11, - "FileRead": 1, - "FileShare": 4, - "FileWrite": 0, - "FileWriteStreamCancel": 9, - "FileWriteStreamClose": 8, - "FileWriteStreamOpen": 6, - "FileWriteStreamWriteChunk": 7, - "GetCachedUGCCount": 25, - "GetFileCount": 15, - "GetFileListFromServer": 51, - "GetFileNameAndSize": 16, - "GetFileSize": 12, - "GetFileTimestamp": 13, - "GetPublishedFileDetails": 35, - "GetPublishedItemVoteDetails": 42, - "GetQuota": 17, - "GetSyncPlatforms": 14, - "GetUGCDetails": 23, - "GetUGCDownloadProgress": 22, - "GetUserPublishedItemVoteDetails": 44, - "IsCloudEnabledForAccount": 18, - "IsCloudEnabledForApp": 19, - "PublishVideo": 46, - "PublishWorkshopFile": 26, - "ResetFileRequestState": 56, - "SetCloudEnabledForApp": 20, - "SetSyncPlatforms": 5, - "SetUserPublishedFileAction": 47, - "SubscribePublishedFile": 38, - "SynchronizeToClient": 54, - "SynchronizeToServer": 55, - "UGCDownload": 21, - "UGCDownloadToLocation": 50, - "UGCRead": 24, - "UnsubscribePublishedFile": 40, - "UpdatePublishedFileDescription": 31, - "UpdatePublishedFileFile": 28, - "UpdatePublishedFilePreviewFile": 29, - "UpdatePublishedFileSetChangeDescription": 41, - "UpdatePublishedFileTags": 33, - "UpdatePublishedFileTitle": 30, - "UpdatePublishedFileVisibility": 32, - "UpdateUserPublishedItemVote": 43 - }, - "STEAMREMOTESTORAGE_INTERFACE_VERSION013": { - "CommitPublishedFileUpdate": 37, - "CreatePublishedFileUpdateRequest": 30, - "DeletePublishedFile": 39, - "EnumeratePublishedFilesByUserAction": 51, - "EnumeratePublishedWorkshopFiles": 52, - "EnumerateUserPublishedFiles": 40, - "EnumerateUserSharedWorkshopFiles": 48, - "EnumerateUserSubscribedFiles": 42, - "FileDelete": 6, - "FileExists": 13, - "FileFetch": 55, - "FileForget": 5, - "FilePersist": 56, - "FilePersisted": 14, - "FileRead": 1, - "FileReadAsync": 3, - "FileReadAsyncComplete": 4, - "FileShare": 7, - "FileWrite": 0, - "FileWriteAsync": 2, - "FileWriteStreamCancel": 12, - "FileWriteStreamClose": 11, - "FileWriteStreamOpen": 9, - "FileWriteStreamWriteChunk": 10, - "GetCachedUGCCount": 28, - "GetFileCount": 18, - "GetFileListFromServer": 54, - "GetFileNameAndSize": 19, - "GetFileSize": 15, - "GetFileTimestamp": 16, - "GetPublishedFileDetails": 38, - "GetPublishedItemVoteDetails": 45, - "GetQuota": 20, - "GetSyncPlatforms": 17, - "GetUGCDetails": 26, - "GetUGCDownloadProgress": 25, - "GetUserPublishedItemVoteDetails": 47, - "IsCloudEnabledForAccount": 21, - "IsCloudEnabledForApp": 22, - "PublishVideo": 49, - "PublishWorkshopFile": 29, - "ResetFileRequestState": 59, - "SetCloudEnabledForApp": 23, - "SetSyncPlatforms": 8, - "SetUserPublishedFileAction": 50, - "SubscribePublishedFile": 41, - "SynchronizeToClient": 57, - "SynchronizeToServer": 58, - "UGCDownload": 24, - "UGCDownloadToLocation": 53, - "UGCRead": 27, - "UnsubscribePublishedFile": 43, - "UpdatePublishedFileDescription": 34, - "UpdatePublishedFileFile": 31, - "UpdatePublishedFilePreviewFile": 32, - "UpdatePublishedFileSetChangeDescription": 44, - "UpdatePublishedFileTags": 36, - "UpdatePublishedFileTitle": 33, - "UpdatePublishedFileVisibility": 35, - "UpdateUserPublishedItemVote": 46 - }, - "STEAMREMOTESTORAGE_INTERFACE_VERSION014": { - "CommitPublishedFileUpdate": 37, - "CreatePublishedFileUpdateRequest": 30, - "DeletePublishedFile": 39, - "EnumeratePublishedFilesByUserAction": 51, - "EnumeratePublishedWorkshopFiles": 52, - "EnumerateUserPublishedFiles": 40, - "EnumerateUserSharedWorkshopFiles": 48, - "EnumerateUserSubscribedFiles": 42, - "FileDelete": 6, - "FileExists": 13, - "FileFetch": 55, - "FileForget": 5, - "FilePersist": 56, - "FilePersisted": 14, - "FileRead": 1, - "FileReadAsync": 3, - "FileReadAsyncComplete": 4, - "FileShare": 7, - "FileWrite": 0, - "FileWriteAsync": 2, - "FileWriteStreamCancel": 12, - "FileWriteStreamClose": 11, - "FileWriteStreamOpen": 9, - "FileWriteStreamWriteChunk": 10, - "GetCachedUGCCount": 28, - "GetFileCount": 18, - "GetFileListFromServer": 54, - "GetFileNameAndSize": 19, - "GetFileSize": 15, - "GetFileTimestamp": 16, - "GetPublishedFileDetails": 38, - "GetPublishedItemVoteDetails": 45, - "GetQuota": 20, - "GetSyncPlatforms": 17, - "GetUGCDetails": 26, - "GetUGCDownloadProgress": 25, - "GetUserPublishedItemVoteDetails": 47, - "IsCloudEnabledForAccount": 21, - "IsCloudEnabledForApp": 22, - "PublishVideo": 49, - "PublishWorkshopFile": 29, - "ResetFileRequestState": 59, - "SetCloudEnabledForApp": 23, - "SetSyncPlatforms": 8, - "SetUserPublishedFileAction": 50, - "SubscribePublishedFile": 41, - "SynchronizeToClient": 57, - "SynchronizeToServer": 58, - "UGCDownload": 24, - "UGCDownloadToLocation": 53, - "UGCRead": 27, - "UnsubscribePublishedFile": 43, - "UpdatePublishedFileDescription": 34, - "UpdatePublishedFileFile": 31, - "UpdatePublishedFilePreviewFile": 32, - "UpdatePublishedFileSetChangeDescription": 44, - "UpdatePublishedFileTags": 36, - "UpdatePublishedFileTitle": 33, - "UpdatePublishedFileVisibility": 35, - "UpdateUserPublishedItemVote": 46 - }, - "STEAMREMOTESTORAGE_INTERFACE_VERSION016": { - "BeginFileWriteBatch": 56, - "CommitPublishedFileUpdate": 37, - "CreatePublishedFileUpdateRequest": 30, - "DeletePublishedFile": 39, - "EndFileWriteBatch": 57, - "EnumeratePublishedFilesByUserAction": 51, - "EnumeratePublishedWorkshopFiles": 52, - "EnumerateUserPublishedFiles": 40, - "EnumerateUserSharedWorkshopFiles": 48, - "EnumerateUserSubscribedFiles": 42, - "FileDelete": 6, - "FileExists": 13, - "FileForget": 5, - "FilePersisted": 14, - "FileRead": 1, - "FileReadAsync": 3, - "FileReadAsyncComplete": 4, - "FileShare": 7, - "FileWrite": 0, - "FileWriteAsync": 2, - "FileWriteStreamCancel": 12, - "FileWriteStreamClose": 11, - "FileWriteStreamOpen": 9, - "FileWriteStreamWriteChunk": 10, - "GetCachedUGCCount": 28, - "GetFileCount": 18, - "GetFileNameAndSize": 19, - "GetFileSize": 15, - "GetFileTimestamp": 16, - "GetLocalFileChange": 55, - "GetLocalFileChangeCount": 54, - "GetPublishedFileDetails": 38, - "GetPublishedItemVoteDetails": 45, - "GetQuota": 20, - "GetSyncPlatforms": 17, - "GetUGCDetails": 26, - "GetUGCDownloadProgress": 25, - "GetUserPublishedItemVoteDetails": 47, - "IsCloudEnabledForAccount": 21, - "IsCloudEnabledForApp": 22, - "PublishVideo": 49, - "PublishWorkshopFile": 29, - "SetCloudEnabledForApp": 23, - "SetSyncPlatforms": 8, - "SetUserPublishedFileAction": 50, - "SubscribePublishedFile": 41, - "UGCDownload": 24, - "UGCDownloadToLocation": 53, - "UGCRead": 27, - "UnsubscribePublishedFile": 43, - "UpdatePublishedFileDescription": 34, - "UpdatePublishedFileFile": 31, - "UpdatePublishedFilePreviewFile": 32, - "UpdatePublishedFileSetChangeDescription": 44, - "UpdatePublishedFileTags": 36, - "UpdatePublishedFileTitle": 33, - "UpdatePublishedFileVisibility": 35, - "UpdateUserPublishedItemVote": 46 - }, - "STEAMSCREENSHOTS_INTERFACE_VERSION001": { - "AddScreenshotToLibrary": 1, - "HookScreenshots": 3, - "SetLocation": 4, - "TagUser": 5, - "TriggerScreenshot": 2, - "WriteScreenshot": 0 - }, - "STEAMSCREENSHOTS_INTERFACE_VERSION002": { - "AddScreenshotToLibrary": 1, - "HookScreenshots": 3, - "SetLocation": 4, - "TagPublishedFile": 6, - "TagUser": 5, - "TriggerScreenshot": 2, - "WriteScreenshot": 0 - }, - "STEAMSCREENSHOTS_INTERFACE_VERSION003": { - "AddScreenshotToLibrary": 1, - "AddVRScreenshotToLibrary": 8, - "HookScreenshots": 3, - "IsScreenshotsHooked": 7, - "SetLocation": 4, - "TagPublishedFile": 6, - "TagUser": 5, - "TriggerScreenshot": 2, - "WriteScreenshot": 0 - }, - "STEAMTIMELINE_INTERFACE_V001": { - "AddTimelineEvent": 2, - "ClearTimelineStateDescription": 1, - "SetTimelineGameMode": 3, - "SetTimelineStateDescription": 0 - }, - "STEAMTIMELINE_INTERFACE_V004": { - "AddGamePhaseTag": 14, - "AddInstantaneousTimelineEvent": 3, - "AddRangeTimelineEvent": 4, - "ClearTimelineTooltip": 1, - "DoesEventRecordingExist": 9, - "DoesGamePhaseRecordingExist": 13, - "EndGamePhase": 11, - "EndRangeTimelineEvent": 7, - "OpenOverlayToGamePhase": 16, - "OpenOverlayToTimelineEvent": 17, - "RemoveTimelineEvent": 8, - "SetGamePhaseAttribute": 15, - "SetGamePhaseID": 12, - "SetTimelineGameMode": 2, - "SetTimelineTooltip": 0, - "StartGamePhase": 10, - "StartRangeTimelineEvent": 5, - "UpdateRangeTimelineEvent": 6 - }, - "STEAMUGC_INTERFACE_VERSION001": { - "AddExcludedTag": 6, - "AddRequiredTag": 5, - "CreateQueryAllUGCRequest": 1, - "CreateQueryUserUGCRequest": 0, - "GetQueryUGCResult": 3, - "ReleaseQueryUGCRequest": 4, - "RequestUGCDetails": 13, - "SendQueryUGCRequest": 2, - "SetCloudFileNameFilter": 9, - "SetMatchAnyTag": 10, - "SetRankedByTrendDays": 12, - "SetReturnLongDescription": 7, - "SetReturnTotalOnly": 8, - "SetSearchText": 11 + "SteamGameServer012": { + "InitGameServer": 0, + "SetProduct": 1, + "SetGameDescription": 2, + "SetModDir": 3, + "SetDedicatedServer": 4, + "LogOn": 5, + "LogOnAnonymous": 6, + "LogOff": 7, + "BLoggedOn": 8, + "BSecure": 9, + "GetSteamID": 10, + "WasRestartRequested": 11, + "SetMaxPlayerCount": 12, + "SetBotPlayerCount": 13, + "SetServerName": 14, + "SetMapName": 15, + "SetPasswordProtected": 16, + "SetSpectatorPort": 17, + "SetSpectatorServerName": 18, + "ClearAllKeyValues": 19, + "SetKeyValue": 20, + "SetGameTags": 21, + "SetGameData": 22, + "SetRegion": 23, + "SendUserConnectAndAuthenticate": 24, + "CreateUnauthenticatedUserConnection": 25, + "SendUserDisconnect": 26, + "BUpdateUserData": 27, + "GetAuthSessionTicket": 28, + "BeginAuthSession": 29, + "EndAuthSession": 30, + "CancelAuthTicket": 31, + "UserHasLicenseForApp": 32, + "RequestUserGroupStatus": 33, + "GetGameplayStats": 34, + "GetServerReputation": 35, + "GetPublicIP": 36, + "HandleIncomingPacket": 37, + "GetNextOutgoingPacket": 38, + "EnableHeartbeats": 39, + "SetHeartbeatInterval": 40, + "ForceHeartbeat": 41, + "AssociateWithClan": 42, + "ComputeNewPlayerCompatibility": 43 }, "STEAMUGC_INTERFACE_VERSION002": { - "AddExcludedTag": 6, - "AddRequiredTag": 5, - "CreateItem": 15, - "CreateQueryAllUGCRequest": 1, "CreateQueryUserUGCRequest": 0, - "GetItemInstallInfo": 29, - "GetItemUpdateInfo": 30, - "GetItemUpdateProgress": 24, - "GetNumSubscribedItems": 27, - "GetQueryUGCResult": 3, - "GetSubscribedItems": 28, - "ReleaseQueryUGCRequest": 4, - "RequestUGCDetails": 14, + "CreateQueryAllUGCRequest": 1, "SendQueryUGCRequest": 2, - "SetAllowCachedResponse": 9, - "SetCloudFileNameFilter": 10, - "SetItemContent": 21, - "SetItemDescription": 18, - "SetItemPreview": 22, - "SetItemTags": 20, - "SetItemTitle": 17, - "SetItemVisibility": 19, - "SetMatchAnyTag": 11, - "SetRankedByTrendDays": 13, + "GetQueryUGCResult": 3, + "ReleaseQueryUGCRequest": 4, + "AddRequiredTag": 5, + "AddExcludedTag": 6, "SetReturnLongDescription": 7, "SetReturnTotalOnly": 8, + "SetAllowCachedResponse": 9, + "SetCloudFileNameFilter": 10, + "SetMatchAnyTag": 11, "SetSearchText": 12, + "SetRankedByTrendDays": 13, + "RequestUGCDetails": 14, + "CreateItem": 15, "StartItemUpdate": 16, + "SetItemTitle": 17, + "SetItemDescription": 18, + "SetItemVisibility": 19, + "SetItemTags": 20, + "SetItemContent": 21, + "SetItemPreview": 22, "SubmitItemUpdate": 23, + "GetItemUpdateProgress": 24, "SubscribeItem": 25, - "UnsubscribeItem": 26 + "UnsubscribeItem": 26, + "GetNumSubscribedItems": 27, + "GetSubscribedItems": 28, + "GetItemInstallInfo": 29, + "GetItemUpdateInfo": 30 + }, + "SteamUtils007": { + "GetSecondsSinceAppActive": 0, + "GetSecondsSinceComputerActive": 1, + "GetConnectedUniverse": 2, + "GetServerRealTime": 3, + "GetIPCountry": 4, + "GetImageSize": 5, + "GetImageRGBA": 6, + "GetCSERIPPort": 7, + "GetCurrentBatteryPower": 8, + "GetAppID": 9, + "SetOverlayNotificationPosition": 10, + "IsAPICallCompleted": 11, + "GetAPICallFailureReason": 12, + "GetAPICallResult": 13, + "RunFrame": 14, + "GetIPCCallCount": 15, + "SetWarningMessageHook": 16, + "IsOverlayEnabled": 17, + "BOverlayNeedsPresent": 18, + "CheckFileSignature": 19, + "ShowGamepadTextInput": 20, + "GetEnteredGamepadTextLength": 21, + "GetEnteredGamepadTextInput": 22, + "GetSteamUILanguage": 23, + "IsSteamRunningInVR": 24, + "SetOverlayNotificationInset": 25 + }, + "SteamClient015": { + "CreateSteamPipe": 0, + "BReleaseSteamPipe": 1, + "ConnectToGlobalUser": 2, + "CreateLocalUser": 3, + "ReleaseUser": 4, + "GetISteamUser": 5, + "GetISteamGameServer": 6, + "SetLocalIPBinding": 7, + "GetISteamFriends": 8, + "GetISteamUtils": 9, + "GetISteamMatchmaking": 10, + "GetISteamMatchmakingServers": 11, + "GetISteamGenericInterface": 12, + "GetISteamUserStats": 13, + "GetISteamGameServerStats": 14, + "GetISteamApps": 15, + "GetISteamNetworking": 16, + "GetISteamRemoteStorage": 17, + "GetISteamScreenshots": 18, + "RunFrame": 19, + "GetIPCCallCount": 20, + "SetWarningMessageHook": 21, + "BShutdownIfAllPipesClosed": 22, + "GetISteamHTTP": 23, + "GetISteamUnifiedMessages": 24, + "GetISteamController": 25, + "GetISteamUGC": 26, + "GetISteamAppList": 27, + "GetISteamMusic": 28, + "GetISteamMusicRemote": 29, + "GetISteamPS3OverlayRender": 30 + }, + "STEAMMUSICREMOTE_INTERFACE_VERSION001": { + "RegisterSteamMusicRemote": 0, + "DeregisterSteamMusicRemote": 1, + "BIsCurrentMusicRemote": 2, + "BActivationSuccess": 3, + "SetDisplayName": 4, + "SetPNGIcon_64x64": 5, + "EnablePlayPrevious": 6, + "EnablePlayNext": 7, + "EnableShuffled": 8, + "EnableLooped": 9, + "EnableQueue": 10, + "EnablePlaylists": 11, + "UpdatePlaybackStatus": 12, + "UpdateShuffled": 13, + "UpdateLooped": 14, + "UpdateVolume": 15, + "CurrentEntryWillChange": 16, + "CurrentEntryIsAvailable": 17, + "UpdateCurrentEntryText": 18, + "UpdateCurrentEntryElapsedSeconds": 19, + "UpdateCurrentEntryCoverArt": 20, + "CurrentEntryDidChange": 21, + "QueueWillChange": 22, + "ResetQueueEntries": 23, + "SetQueueEntry": 24, + "SetCurrentQueueEntry": 25, + "QueueDidChange": 26, + "PlaylistWillChange": 27, + "ResetPlaylistEntries": 28, + "SetPlaylistEntry": 29, + "SetCurrentPlaylistEntry": 30, + "PlaylistDidChange": 31 + }, + "SteamClient016": { + "CreateSteamPipe": 0, + "BReleaseSteamPipe": 1, + "ConnectToGlobalUser": 2, + "CreateLocalUser": 3, + "ReleaseUser": 4, + "GetISteamUser": 5, + "GetISteamGameServer": 6, + "SetLocalIPBinding": 7, + "GetISteamFriends": 8, + "GetISteamUtils": 9, + "GetISteamMatchmaking": 10, + "GetISteamMatchmakingServers": 11, + "GetISteamGenericInterface": 12, + "GetISteamUserStats": 13, + "GetISteamGameServerStats": 14, + "GetISteamApps": 15, + "GetISteamNetworking": 16, + "GetISteamRemoteStorage": 17, + "GetISteamScreenshots": 18, + "RunFrame": 19, + "GetIPCCallCount": 20, + "SetWarningMessageHook": 21, + "BShutdownIfAllPipesClosed": 22, + "GetISteamHTTP": 23, + "GetISteamUnifiedMessages": 24, + "GetISteamController": 25, + "GetISteamUGC": 26, + "GetISteamAppList": 27, + "GetISteamMusic": 28, + "GetISteamMusicRemote": 29, + "GetISteamHTMLSurface": 30, + "Set_SteamAPI_CPostAPIResultInProcess": 31, + "Remove_SteamAPI_CPostAPIResultInProcess": 32, + "Set_SteamAPI_CCheckCallbackRegisteredInProcess": 33, + "GetISteamPS3OverlayRender": 34 }, "STEAMUGC_INTERFACE_VERSION003": { - "AddExcludedTag": 6, - "AddRequiredTag": 5, - "CreateItem": 15, - "CreateQueryAllUGCRequest": 1, "CreateQueryUserUGCRequest": 0, - "GetItemInstallInfo": 29, - "GetItemUpdateInfo": 30, - "GetItemUpdateProgress": 24, - "GetNumSubscribedItems": 27, - "GetQueryUGCResult": 3, - "GetSubscribedItems": 28, - "ReleaseQueryUGCRequest": 4, - "RequestUGCDetails": 14, + "CreateQueryAllUGCRequest": 1, "SendQueryUGCRequest": 2, - "SetAllowCachedResponse": 9, - "SetCloudFileNameFilter": 10, - "SetItemContent": 21, - "SetItemDescription": 18, - "SetItemPreview": 22, - "SetItemTags": 20, - "SetItemTitle": 17, - "SetItemVisibility": 19, - "SetMatchAnyTag": 11, - "SetRankedByTrendDays": 13, + "GetQueryUGCResult": 3, + "ReleaseQueryUGCRequest": 4, + "AddRequiredTag": 5, + "AddExcludedTag": 6, "SetReturnLongDescription": 7, "SetReturnTotalOnly": 8, + "SetAllowCachedResponse": 9, + "SetCloudFileNameFilter": 10, + "SetMatchAnyTag": 11, "SetSearchText": 12, + "SetRankedByTrendDays": 13, + "RequestUGCDetails": 14, + "CreateItem": 15, "StartItemUpdate": 16, + "SetItemTitle": 17, + "SetItemDescription": 18, + "SetItemVisibility": 19, + "SetItemTags": 20, + "SetItemContent": 21, + "SetItemPreview": 22, "SubmitItemUpdate": 23, + "GetItemUpdateProgress": 24, "SubscribeItem": 25, - "UnsubscribeItem": 26 + "UnsubscribeItem": 26, + "GetNumSubscribedItems": 27, + "GetSubscribedItems": 28, + "GetItemInstallInfo": 29, + "GetItemUpdateInfo": 30 }, - "STEAMUGC_INTERFACE_VERSION005": { - "AddExcludedTag": 13, - "AddItemToFavorites": 36, - "AddRequiredTag": 12, - "CreateItem": 25, - "CreateQueryAllUGCRequest": 1, - "CreateQueryUGCDetailsRequest": 2, - "CreateQueryUserUGCRequest": 0, - "DownloadItem": 45, - "GetItemDownloadInfo": 44, - "GetItemInstallInfo": 43, - "GetItemState": 42, - "GetItemUpdateProgress": 35, - "GetNumSubscribedItems": 40, - "GetQueryUGCAdditionalPreview": 10, - "GetQueryUGCChildren": 7, - "GetQueryUGCMetadata": 6, - "GetQueryUGCNumAdditionalPreviews": 9, - "GetQueryUGCPreviewURL": 5, - "GetQueryUGCResult": 4, - "GetQueryUGCStatistic": 8, - "GetSubscribedItems": 41, - "ReleaseQueryUGCRequest": 11, - "RemoveItemFromFavorites": 37, - "RequestUGCDetails": 24, - "SendQueryUGCRequest": 3, - "SetAllowCachedResponse": 19, - "SetCloudFileNameFilter": 20, - "SetItemContent": 32, - "SetItemDescription": 28, - "SetItemMetadata": 29, - "SetItemPreview": 33, - "SetItemTags": 31, - "SetItemTitle": 27, - "SetItemVisibility": 30, - "SetMatchAnyTag": 21, - "SetRankedByTrendDays": 23, - "SetReturnAdditionalPreviews": 17, - "SetReturnChildren": 16, - "SetReturnLongDescription": 14, - "SetReturnMetadata": 15, - "SetReturnTotalOnly": 18, - "SetSearchText": 22, - "StartItemUpdate": 26, - "SubmitItemUpdate": 34, - "SubscribeItem": 38, - "UnsubscribeItem": 39 + "STEAMHTMLSURFACE_INTERFACE_VERSION_002": { + "Init": 0, + "Shutdown": 1, + "CreateBrowser": 2, + "RemoveBrowser": 3, + "LoadURL": 4, + "SetSize": 5, + "StopLoad": 6, + "Reload": 7, + "GoBack": 8, + "GoForward": 9, + "AddHeader": 10, + "ExecuteJavascript": 11, + "MouseUp": 12, + "MouseDown": 13, + "MouseDoubleClick": 14, + "MouseMove": 15, + "MouseWheel": 16, + "KeyDown": 17, + "KeyUp": 18, + "KeyChar": 19, + "SetHorizontalScroll": 20, + "SetVerticalScroll": 21, + "SetKeyFocus": 22, + "ViewSource": 23, + "CopyToClipboard": 24, + "PasteFromClipboard": 25, + "Find": 26, + "StopFind": 27, + "GetLinkAtPosition": 28, + "SetCookie": 29, + "SetPageScaleFactor": 30, + "AllowStartRequest": 31, + "JSDialogResponse": 32, + "FileLoadDialogResponse": 33 }, - "STEAMUGC_INTERFACE_VERSION007": { - "AddExcludedTag": 15, - "AddItemKeyValueTag": 41, - "AddItemToFavorites": 46, - "AddRequiredKeyValueTag": 28, - "AddRequiredTag": 14, - "BInitWorkshopForGameServer": 56, - "CreateItem": 30, - "CreateQueryAllUGCRequest": 1, - "CreateQueryUGCDetailsRequest": 2, - "CreateQueryUserUGCRequest": 0, - "DownloadItem": 55, - "GetItemDownloadInfo": 54, - "GetItemInstallInfo": 53, - "GetItemState": 52, - "GetItemUpdateProgress": 43, - "GetNumSubscribedItems": 50, - "GetQueryUGCAdditionalPreview": 10, - "GetQueryUGCChildren": 7, - "GetQueryUGCKeyValueTag": 12, - "GetQueryUGCMetadata": 6, - "GetQueryUGCNumAdditionalPreviews": 9, - "GetQueryUGCNumKeyValueTags": 11, - "GetQueryUGCPreviewURL": 5, - "GetQueryUGCResult": 4, - "GetQueryUGCStatistic": 8, - "GetSubscribedItems": 51, - "GetUserItemVote": 45, - "ReleaseQueryUGCRequest": 13, - "RemoveItemFromFavorites": 47, - "RemoveItemKeyValueTags": 40, - "RequestUGCDetails": 29, - "SendQueryUGCRequest": 3, - "SetAllowCachedResponse": 23, - "SetCloudFileNameFilter": 24, - "SetItemContent": 38, - "SetItemDescription": 33, - "SetItemMetadata": 35, - "SetItemPreview": 39, - "SetItemTags": 37, - "SetItemTitle": 32, - "SetItemUpdateLanguage": 34, - "SetItemVisibility": 36, - "SetLanguage": 22, - "SetMatchAnyTag": 25, - "SetRankedByTrendDays": 27, - "SetReturnAdditionalPreviews": 20, - "SetReturnChildren": 19, - "SetReturnKeyValueTags": 16, - "SetReturnLongDescription": 17, - "SetReturnMetadata": 18, - "SetReturnTotalOnly": 21, - "SetSearchText": 26, - "SetUserItemVote": 44, - "StartItemUpdate": 31, - "SubmitItemUpdate": 42, - "SubscribeItem": 48, - "SuspendDownloads": 57, - "UnsubscribeItem": 49 + "STEAMAPPS_INTERFACE_VERSION007": { + "BIsSubscribed": 0, + "BIsLowViolence": 1, + "BIsCybercafe": 2, + "BIsVACBanned": 3, + "GetCurrentGameLanguage": 4, + "GetAvailableGameLanguages": 5, + "BIsSubscribedApp": 6, + "BIsDlcInstalled": 7, + "GetEarliestPurchaseUnixTime": 8, + "BIsSubscribedFromFreeWeekend": 9, + "GetDLCCount": 10, + "BGetDLCDataByIndex": 11, + "InstallDLC": 12, + "UninstallDLC": 13, + "RequestAppProofOfPurchaseKey": 14, + "GetCurrentBetaName": 15, + "MarkContentCorrupt": 16, + "GetInstalledDepots": 17, + "GetAppInstallDir": 18, + "BIsAppInstalled": 19, + "GetAppOwner": 20, + "GetLaunchQueryParam": 21, + "GetDlcDownloadProgress": 22, + "GetAppBuildId": 23 }, - "STEAMUGC_INTERFACE_VERSION008": { - "AddExcludedTag": 15, - "AddItemKeyValueTag": 41, - "AddItemPreviewFile": 42, - "AddItemPreviewVideo": 43, - "AddItemToFavorites": 51, - "AddRequiredKeyValueTag": 28, - "AddRequiredTag": 14, - "BInitWorkshopForGameServer": 61, - "CreateItem": 30, - "CreateQueryAllUGCRequest": 1, - "CreateQueryUGCDetailsRequest": 2, - "CreateQueryUserUGCRequest": 0, - "DownloadItem": 60, - "GetItemDownloadInfo": 59, - "GetItemInstallInfo": 58, - "GetItemState": 57, - "GetItemUpdateProgress": 48, - "GetNumSubscribedItems": 55, - "GetQueryUGCAdditionalPreview": 10, - "GetQueryUGCChildren": 7, - "GetQueryUGCKeyValueTag": 12, - "GetQueryUGCMetadata": 6, - "GetQueryUGCNumAdditionalPreviews": 9, - "GetQueryUGCNumKeyValueTags": 11, - "GetQueryUGCPreviewURL": 5, - "GetQueryUGCResult": 4, - "GetQueryUGCStatistic": 8, - "GetSubscribedItems": 56, - "GetUserItemVote": 50, - "ReleaseQueryUGCRequest": 13, - "RemoveItemFromFavorites": 52, - "RemoveItemKeyValueTags": 40, - "RemoveItemPreview": 46, - "RequestUGCDetails": 29, - "SendQueryUGCRequest": 3, - "SetAllowCachedResponse": 23, - "SetCloudFileNameFilter": 24, - "SetItemContent": 38, - "SetItemDescription": 33, - "SetItemMetadata": 35, - "SetItemPreview": 39, - "SetItemTags": 37, - "SetItemTitle": 32, - "SetItemUpdateLanguage": 34, - "SetItemVisibility": 36, - "SetLanguage": 22, - "SetMatchAnyTag": 25, - "SetRankedByTrendDays": 27, - "SetReturnAdditionalPreviews": 20, - "SetReturnChildren": 19, - "SetReturnKeyValueTags": 16, - "SetReturnLongDescription": 17, - "SetReturnMetadata": 18, - "SetReturnTotalOnly": 21, - "SetSearchText": 26, - "SetUserItemVote": 49, - "StartItemUpdate": 31, - "SubmitItemUpdate": 47, - "SubscribeItem": 53, - "SuspendDownloads": 62, - "UnsubscribeItem": 54, - "UpdateItemPreviewFile": 44, - "UpdateItemPreviewVideo": 45 + "SteamClient017": { + "CreateSteamPipe": 0, + "BReleaseSteamPipe": 1, + "ConnectToGlobalUser": 2, + "CreateLocalUser": 3, + "ReleaseUser": 4, + "GetISteamUser": 5, + "GetISteamGameServer": 6, + "SetLocalIPBinding": 7, + "GetISteamFriends": 8, + "GetISteamUtils": 9, + "GetISteamMatchmaking": 10, + "GetISteamMatchmakingServers": 11, + "GetISteamGenericInterface": 12, + "GetISteamUserStats": 13, + "GetISteamGameServerStats": 14, + "GetISteamApps": 15, + "GetISteamNetworking": 16, + "GetISteamRemoteStorage": 17, + "GetISteamScreenshots": 18, + "RunFrame": 19, + "GetIPCCallCount": 20, + "SetWarningMessageHook": 21, + "BShutdownIfAllPipesClosed": 22, + "GetISteamHTTP": 23, + "DEPRECATED_GetISteamUnifiedMessages": 24, + "GetISteamController": 25, + "GetISteamUGC": 26, + "GetISteamAppList": 27, + "GetISteamMusic": 28, + "GetISteamMusicRemote": 29, + "GetISteamHTMLSurface": 30, + "DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess": 31, + "DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess": 32, + "Set_SteamAPI_CCheckCallbackRegisteredInProcess": 33, + "GetISteamInventory": 34, + "GetISteamVideo": 35, + "GetISteamParentalSettings": 36 }, - "STEAMUGC_INTERFACE_VERSION009": { - "AddExcludedTag": 15, - "AddItemKeyValueTag": 42, - "AddItemPreviewFile": 43, - "AddItemPreviewVideo": 44, - "AddItemToFavorites": 52, - "AddRequiredKeyValueTag": 29, - "AddRequiredTag": 14, - "BInitWorkshopForGameServer": 62, - "CreateItem": 31, - "CreateQueryAllUGCRequest": 1, - "CreateQueryUGCDetailsRequest": 2, - "CreateQueryUserUGCRequest": 0, - "DownloadItem": 61, - "GetItemDownloadInfo": 60, - "GetItemInstallInfo": 59, - "GetItemState": 58, - "GetItemUpdateProgress": 49, - "GetNumSubscribedItems": 56, - "GetQueryUGCAdditionalPreview": 10, - "GetQueryUGCChildren": 7, - "GetQueryUGCKeyValueTag": 12, - "GetQueryUGCMetadata": 6, - "GetQueryUGCNumAdditionalPreviews": 9, - "GetQueryUGCNumKeyValueTags": 11, - "GetQueryUGCPreviewURL": 5, - "GetQueryUGCResult": 4, - "GetQueryUGCStatistic": 8, - "GetSubscribedItems": 57, - "GetUserItemVote": 51, - "ReleaseQueryUGCRequest": 13, - "RemoveItemFromFavorites": 53, - "RemoveItemKeyValueTags": 41, - "RemoveItemPreview": 47, - "RequestUGCDetails": 30, - "SendQueryUGCRequest": 3, - "SetAllowCachedResponse": 24, - "SetCloudFileNameFilter": 25, - "SetItemContent": 39, - "SetItemDescription": 34, - "SetItemMetadata": 36, - "SetItemPreview": 40, - "SetItemTags": 38, - "SetItemTitle": 33, - "SetItemUpdateLanguage": 35, - "SetItemVisibility": 37, - "SetLanguage": 23, - "SetMatchAnyTag": 26, - "SetRankedByTrendDays": 28, - "SetReturnAdditionalPreviews": 21, - "SetReturnChildren": 20, - "SetReturnKeyValueTags": 17, - "SetReturnLongDescription": 18, - "SetReturnMetadata": 19, - "SetReturnOnlyIDs": 16, - "SetReturnTotalOnly": 22, - "SetSearchText": 27, - "SetUserItemVote": 50, - "StartItemUpdate": 32, - "StartPlaytimeTracking": 64, - "StopPlaytimeTracking": 65, - "StopPlaytimeTrackingForAllItems": 66, - "SubmitItemUpdate": 48, - "SubscribeItem": 54, - "SuspendDownloads": 63, - "UnsubscribeItem": 55, - "UpdateItemPreviewFile": 45, - "UpdateItemPreviewVideo": 46 + "SteamFriends015": { + "GetPersonaName": 0, + "SetPersonaName": 1, + "GetPersonaState": 2, + "GetFriendCount": 3, + "GetFriendByIndex": 4, + "GetFriendRelationship": 5, + "GetFriendPersonaState": 6, + "GetFriendPersonaName": 7, + "GetFriendGamePlayed": 8, + "GetFriendPersonaNameHistory": 9, + "GetFriendSteamLevel": 10, + "GetPlayerNickname": 11, + "GetFriendsGroupCount": 12, + "GetFriendsGroupIDByIndex": 13, + "GetFriendsGroupName": 14, + "GetFriendsGroupMembersCount": 15, + "GetFriendsGroupMembersList": 16, + "HasFriend": 17, + "GetClanCount": 18, + "GetClanByIndex": 19, + "GetClanName": 20, + "GetClanTag": 21, + "GetClanActivityCounts": 22, + "DownloadClanActivityCounts": 23, + "GetFriendCountFromSource": 24, + "GetFriendFromSourceByIndex": 25, + "IsUserInSource": 26, + "SetInGameVoiceSpeaking": 27, + "ActivateGameOverlay": 28, + "ActivateGameOverlayToUser": 29, + "ActivateGameOverlayToWebPage": 30, + "ActivateGameOverlayToStore": 31, + "SetPlayedWith": 32, + "ActivateGameOverlayInviteDialog": 33, + "GetSmallFriendAvatar": 34, + "GetMediumFriendAvatar": 35, + "GetLargeFriendAvatar": 36, + "RequestUserInformation": 37, + "RequestClanOfficerList": 38, + "GetClanOwner": 39, + "GetClanOfficerCount": 40, + "GetClanOfficerByIndex": 41, + "GetUserRestrictions": 42, + "SetRichPresence": 43, + "ClearRichPresence": 44, + "GetFriendRichPresence": 45, + "GetFriendRichPresenceKeyCount": 46, + "GetFriendRichPresenceKeyByIndex": 47, + "RequestFriendRichPresence": 48, + "InviteUserToGame": 49, + "GetCoplayFriendCount": 50, + "GetCoplayFriend": 51, + "GetFriendCoplayTime": 52, + "GetFriendCoplayGame": 53, + "JoinClanChatRoom": 54, + "LeaveClanChatRoom": 55, + "GetClanChatMemberCount": 56, + "GetChatMemberByIndex": 57, + "SendClanChatMessage": 58, + "GetClanChatMessage": 59, + "IsClanChatAdmin": 60, + "IsClanChatWindowOpenInSteam": 61, + "OpenClanChatWindowInSteam": 62, + "CloseClanChatWindowInSteam": 63, + "SetListenForFriendsMessages": 64, + "ReplyToFriendMessage": 65, + "GetFriendMessage": 66, + "GetFollowerCount": 67, + "IsFollowing": 68, + "EnumerateFollowingList": 69, + "IsClanPublic": 70, + "IsClanOfficialGameGroup": 71 }, - "STEAMUGC_INTERFACE_VERSION010": { - "AddAppDependency": 70, - "AddDependency": 68, - "AddExcludedTag": 15, - "AddItemKeyValueTag": 43, - "AddItemPreviewFile": 44, - "AddItemPreviewVideo": 45, - "AddItemToFavorites": 53, - "AddRequiredKeyValueTag": 30, - "AddRequiredTag": 14, - "BInitWorkshopForGameServer": 63, - "CreateItem": 32, - "CreateQueryAllUGCRequest": 1, - "CreateQueryUGCDetailsRequest": 2, - "CreateQueryUserUGCRequest": 0, - "DeleteItem": 73, - "DownloadItem": 62, - "GetAppDependencies": 72, - "GetItemDownloadInfo": 61, - "GetItemInstallInfo": 60, - "GetItemState": 59, - "GetItemUpdateProgress": 50, - "GetNumSubscribedItems": 57, - "GetQueryUGCAdditionalPreview": 10, - "GetQueryUGCChildren": 7, - "GetQueryUGCKeyValueTag": 12, - "GetQueryUGCMetadata": 6, - "GetQueryUGCNumAdditionalPreviews": 9, - "GetQueryUGCNumKeyValueTags": 11, - "GetQueryUGCPreviewURL": 5, - "GetQueryUGCResult": 4, - "GetQueryUGCStatistic": 8, - "GetSubscribedItems": 58, - "GetUserItemVote": 52, - "ReleaseQueryUGCRequest": 13, - "RemoveAppDependency": 71, - "RemoveDependency": 69, - "RemoveItemFromFavorites": 54, - "RemoveItemKeyValueTags": 42, - "RemoveItemPreview": 48, - "RequestUGCDetails": 31, - "SendQueryUGCRequest": 3, - "SetAllowCachedResponse": 25, - "SetCloudFileNameFilter": 26, - "SetItemContent": 40, - "SetItemDescription": 35, - "SetItemMetadata": 37, - "SetItemPreview": 41, - "SetItemTags": 39, - "SetItemTitle": 34, - "SetItemUpdateLanguage": 36, - "SetItemVisibility": 38, - "SetLanguage": 24, - "SetMatchAnyTag": 27, - "SetRankedByTrendDays": 29, - "SetReturnAdditionalPreviews": 21, - "SetReturnChildren": 20, - "SetReturnKeyValueTags": 17, - "SetReturnLongDescription": 18, - "SetReturnMetadata": 19, - "SetReturnOnlyIDs": 16, - "SetReturnPlaytimeStats": 23, - "SetReturnTotalOnly": 22, - "SetSearchText": 28, - "SetUserItemVote": 51, - "StartItemUpdate": 33, - "StartPlaytimeTracking": 65, - "StopPlaytimeTracking": 66, - "StopPlaytimeTrackingForAllItems": 67, - "SubmitItemUpdate": 49, - "SubscribeItem": 55, - "SuspendDownloads": 64, - "UnsubscribeItem": 56, - "UpdateItemPreviewFile": 46, - "UpdateItemPreviewVideo": 47 + "STEAMINVENTORY_INTERFACE_V001": { + "GetResultStatus": 0, + "GetResultItems": 1, + "GetResultTimestamp": 2, + "CheckResultSteamID": 3, + "DestroyResult": 4, + "GetAllItems": 5, + "GetItemsByID": 6, + "SerializeResult": 7, + "DeserializeResult": 8, + "GenerateItems": 9, + "GrantPromoItems": 10, + "AddPromoItem": 11, + "AddPromoItems": 12, + "ConsumeItem": 13, + "ExchangeItems": 14, + "TransferItemQuantity": 15, + "SendItemDropHeartbeat": 16, + "TriggerItemDrop": 17, + "TradeItems": 18, + "LoadItemDefinitions": 19, + "GetItemDefinitionIDs": 20, + "GetItemDefinitionProperty": 21, + "RequestEligiblePromoItemDefinitionsIDs": 22, + "GetEligiblePromoItemDefinitionIDs": 23 }, - "STEAMUGC_INTERFACE_VERSION012": { - "AddAppDependency": 72, - "AddDependency": 70, - "AddExcludedTag": 16, - "AddItemKeyValueTag": 45, - "AddItemPreviewFile": 46, - "AddItemPreviewVideo": 47, - "AddItemToFavorites": 55, - "AddRequiredKeyValueTag": 31, - "AddRequiredTag": 15, - "BInitWorkshopForGameServer": 65, - "CreateItem": 33, - "CreateQueryAllUGCRequest": 2, - "CreateQueryUGCDetailsRequest": 3, - "CreateQueryUserUGCRequest": 0, - "DeleteItem": 75, - "DownloadItem": 64, - "GetAppDependencies": 74, - "GetItemDownloadInfo": 63, - "GetItemInstallInfo": 62, - "GetItemState": 61, - "GetItemUpdateProgress": 52, - "GetNumSubscribedItems": 59, - "GetQueryUGCAdditionalPreview": 11, - "GetQueryUGCChildren": 8, - "GetQueryUGCKeyValueTag": 13, - "GetQueryUGCMetadata": 7, - "GetQueryUGCNumAdditionalPreviews": 10, - "GetQueryUGCNumKeyValueTags": 12, - "GetQueryUGCPreviewURL": 6, - "GetQueryUGCResult": 5, - "GetQueryUGCStatistic": 9, - "GetSubscribedItems": 60, - "GetUserItemVote": 54, - "ReleaseQueryUGCRequest": 14, - "RemoveAppDependency": 73, - "RemoveDependency": 71, - "RemoveItemFromFavorites": 56, - "RemoveItemKeyValueTags": 44, - "RemoveItemPreview": 50, - "RequestUGCDetails": 32, - "SendQueryUGCRequest": 4, - "SetAllowCachedResponse": 26, - "SetAllowLegacyUpload": 43, - "SetCloudFileNameFilter": 27, - "SetItemContent": 41, - "SetItemDescription": 36, - "SetItemMetadata": 38, - "SetItemPreview": 42, - "SetItemTags": 40, - "SetItemTitle": 35, - "SetItemUpdateLanguage": 37, - "SetItemVisibility": 39, - "SetLanguage": 25, - "SetMatchAnyTag": 28, - "SetRankedByTrendDays": 30, - "SetReturnAdditionalPreviews": 22, - "SetReturnChildren": 21, - "SetReturnKeyValueTags": 18, - "SetReturnLongDescription": 19, - "SetReturnMetadata": 20, - "SetReturnOnlyIDs": 17, - "SetReturnPlaytimeStats": 24, - "SetReturnTotalOnly": 23, - "SetSearchText": 29, - "SetUserItemVote": 53, - "StartItemUpdate": 34, - "StartPlaytimeTracking": 67, - "StopPlaytimeTracking": 68, - "StopPlaytimeTrackingForAllItems": 69, - "SubmitItemUpdate": 51, - "SubscribeItem": 57, - "SuspendDownloads": 66, - "UnsubscribeItem": 58, - "UpdateItemPreviewFile": 48, - "UpdateItemPreviewVideo": 49 - }, - "STEAMUGC_INTERFACE_VERSION013": { - "AddAppDependency": 74, - "AddDependency": 72, - "AddExcludedTag": 17, - "AddItemKeyValueTag": 47, - "AddItemPreviewFile": 48, - "AddItemPreviewVideo": 49, - "AddItemToFavorites": 57, - "AddRequiredKeyValueTag": 32, - "AddRequiredTag": 16, - "BInitWorkshopForGameServer": 67, - "CreateItem": 34, - "CreateQueryAllUGCRequest": 2, - "CreateQueryUGCDetailsRequest": 3, - "CreateQueryUserUGCRequest": 0, - "DeleteItem": 77, - "DownloadItem": 66, - "GetAppDependencies": 76, - "GetItemDownloadInfo": 65, - "GetItemInstallInfo": 64, - "GetItemState": 63, - "GetItemUpdateProgress": 54, - "GetNumSubscribedItems": 61, - "GetQueryUGCAdditionalPreview": 11, - "GetQueryUGCChildren": 8, - "GetQueryUGCKeyValueTag": 14, - "GetQueryUGCMetadata": 7, - "GetQueryUGCNumAdditionalPreviews": 10, - "GetQueryUGCNumKeyValueTags": 12, - "GetQueryUGCPreviewURL": 6, - "GetQueryUGCResult": 5, - "GetQueryUGCStatistic": 9, - "GetSubscribedItems": 62, - "GetUserItemVote": 56, - "ReleaseQueryUGCRequest": 15, - "RemoveAllItemKeyValueTags": 45, - "RemoveAppDependency": 75, - "RemoveDependency": 73, - "RemoveItemFromFavorites": 58, - "RemoveItemKeyValueTags": 46, - "RemoveItemPreview": 52, - "RequestUGCDetails": 33, - "SendQueryUGCRequest": 4, - "SetAllowCachedResponse": 27, - "SetAllowLegacyUpload": 44, - "SetCloudFileNameFilter": 28, - "SetItemContent": 42, - "SetItemDescription": 37, - "SetItemMetadata": 39, - "SetItemPreview": 43, - "SetItemTags": 41, - "SetItemTitle": 36, - "SetItemUpdateLanguage": 38, - "SetItemVisibility": 40, - "SetLanguage": 26, - "SetMatchAnyTag": 29, - "SetRankedByTrendDays": 31, - "SetReturnAdditionalPreviews": 23, - "SetReturnChildren": 22, - "SetReturnKeyValueTags": 19, - "SetReturnLongDescription": 20, - "SetReturnMetadata": 21, - "SetReturnOnlyIDs": 18, - "SetReturnPlaytimeStats": 25, - "SetReturnTotalOnly": 24, - "SetSearchText": 30, - "SetUserItemVote": 55, - "StartItemUpdate": 35, - "StartPlaytimeTracking": 69, - "StopPlaytimeTracking": 70, - "StopPlaytimeTrackingForAllItems": 71, - "SubmitItemUpdate": 53, - "SubscribeItem": 59, - "SuspendDownloads": 68, - "UnsubscribeItem": 60, - "UpdateItemPreviewFile": 50, - "UpdateItemPreviewVideo": 51 - }, - "STEAMUGC_INTERFACE_VERSION014": { - "AddAppDependency": 75, - "AddDependency": 73, - "AddExcludedTag": 18, - "AddItemKeyValueTag": 48, - "AddItemPreviewFile": 49, - "AddItemPreviewVideo": 50, - "AddItemToFavorites": 58, - "AddRequiredKeyValueTag": 33, - "AddRequiredTag": 16, - "AddRequiredTagGroup": 17, - "BInitWorkshopForGameServer": 68, - "CreateItem": 35, - "CreateQueryAllUGCRequest": 2, - "CreateQueryUGCDetailsRequest": 3, - "CreateQueryUserUGCRequest": 0, - "DeleteItem": 78, - "DownloadItem": 67, - "GetAppDependencies": 77, - "GetItemDownloadInfo": 66, - "GetItemInstallInfo": 65, - "GetItemState": 64, - "GetItemUpdateProgress": 55, - "GetNumSubscribedItems": 62, - "GetQueryUGCAdditionalPreview": 11, - "GetQueryUGCChildren": 8, - "GetQueryUGCKeyValueTag": 14, - "GetQueryUGCMetadata": 7, - "GetQueryUGCNumAdditionalPreviews": 10, - "GetQueryUGCNumKeyValueTags": 12, - "GetQueryUGCPreviewURL": 6, - "GetQueryUGCResult": 5, - "GetQueryUGCStatistic": 9, - "GetSubscribedItems": 63, - "GetUserItemVote": 57, - "ReleaseQueryUGCRequest": 15, - "RemoveAllItemKeyValueTags": 46, - "RemoveAppDependency": 76, - "RemoveDependency": 74, - "RemoveItemFromFavorites": 59, - "RemoveItemKeyValueTags": 47, - "RemoveItemPreview": 53, - "RequestUGCDetails": 34, - "SendQueryUGCRequest": 4, - "SetAllowCachedResponse": 28, - "SetAllowLegacyUpload": 45, - "SetCloudFileNameFilter": 29, - "SetItemContent": 43, - "SetItemDescription": 38, - "SetItemMetadata": 40, - "SetItemPreview": 44, - "SetItemTags": 42, - "SetItemTitle": 37, - "SetItemUpdateLanguage": 39, - "SetItemVisibility": 41, - "SetLanguage": 27, - "SetMatchAnyTag": 30, - "SetRankedByTrendDays": 32, - "SetReturnAdditionalPreviews": 24, - "SetReturnChildren": 23, - "SetReturnKeyValueTags": 20, - "SetReturnLongDescription": 21, - "SetReturnMetadata": 22, - "SetReturnOnlyIDs": 19, - "SetReturnPlaytimeStats": 26, - "SetReturnTotalOnly": 25, - "SetSearchText": 31, - "SetUserItemVote": 56, - "StartItemUpdate": 36, - "StartPlaytimeTracking": 70, - "StopPlaytimeTracking": 71, - "StopPlaytimeTrackingForAllItems": 72, - "SubmitItemUpdate": 54, - "SubscribeItem": 60, - "SuspendDownloads": 69, - "UnsubscribeItem": 61, - "UpdateItemPreviewFile": 51, - "UpdateItemPreviewVideo": 52 - }, - "STEAMUGC_INTERFACE_VERSION015": { - "AddAppDependency": 78, - "AddDependency": 76, - "AddExcludedTag": 21, - "AddItemKeyValueTag": 51, - "AddItemPreviewFile": 52, - "AddItemPreviewVideo": 53, - "AddItemToFavorites": 61, - "AddRequiredKeyValueTag": 36, - "AddRequiredTag": 19, - "AddRequiredTagGroup": 20, - "BInitWorkshopForGameServer": 71, - "CreateItem": 38, - "CreateQueryAllUGCRequest": 2, - "CreateQueryUGCDetailsRequest": 3, - "CreateQueryUserUGCRequest": 0, - "DeleteItem": 81, - "DownloadItem": 70, - "GetAppDependencies": 80, - "GetItemDownloadInfo": 69, - "GetItemInstallInfo": 68, - "GetItemState": 67, - "GetItemUpdateProgress": 58, - "GetNumSubscribedItems": 65, - "GetQueryUGCAdditionalPreview": 14, - "GetQueryUGCChildren": 11, - "GetQueryUGCKeyValueTag": 17, - "GetQueryUGCMetadata": 10, - "GetQueryUGCNumAdditionalPreviews": 13, - "GetQueryUGCNumKeyValueTags": 15, - "GetQueryUGCNumTags": 6, - "GetQueryUGCPreviewURL": 9, - "GetQueryUGCResult": 5, - "GetQueryUGCStatistic": 12, - "GetQueryUGCTag": 7, - "GetQueryUGCTagDisplayName": 8, - "GetSubscribedItems": 66, - "GetUserItemVote": 60, - "GetWorkshopEULAStatus": 83, - "ReleaseQueryUGCRequest": 18, - "RemoveAllItemKeyValueTags": 49, - "RemoveAppDependency": 79, - "RemoveDependency": 77, - "RemoveItemFromFavorites": 62, - "RemoveItemKeyValueTags": 50, - "RemoveItemPreview": 56, - "RequestUGCDetails": 37, - "SendQueryUGCRequest": 4, - "SetAllowCachedResponse": 31, - "SetAllowLegacyUpload": 48, - "SetCloudFileNameFilter": 32, - "SetItemContent": 46, - "SetItemDescription": 41, - "SetItemMetadata": 43, - "SetItemPreview": 47, - "SetItemTags": 45, - "SetItemTitle": 40, - "SetItemUpdateLanguage": 42, - "SetItemVisibility": 44, - "SetLanguage": 30, - "SetMatchAnyTag": 33, - "SetRankedByTrendDays": 35, - "SetReturnAdditionalPreviews": 27, - "SetReturnChildren": 26, - "SetReturnKeyValueTags": 23, - "SetReturnLongDescription": 24, - "SetReturnMetadata": 25, - "SetReturnOnlyIDs": 22, - "SetReturnPlaytimeStats": 29, - "SetReturnTotalOnly": 28, - "SetSearchText": 34, - "SetUserItemVote": 59, - "ShowWorkshopEULA": 82, - "StartItemUpdate": 39, - "StartPlaytimeTracking": 73, - "StopPlaytimeTracking": 74, - "StopPlaytimeTrackingForAllItems": 75, - "SubmitItemUpdate": 57, - "SubscribeItem": 63, - "SuspendDownloads": 72, - "UnsubscribeItem": 64, - "UpdateItemPreviewFile": 54, - "UpdateItemPreviewVideo": 55 - }, - "STEAMUGC_INTERFACE_VERSION016": { - "AddAppDependency": 80, - "AddDependency": 78, - "AddExcludedTag": 21, - "AddItemKeyValueTag": 53, - "AddItemPreviewFile": 54, - "AddItemPreviewVideo": 55, - "AddItemToFavorites": 63, - "AddRequiredKeyValueTag": 38, - "AddRequiredTag": 19, - "AddRequiredTagGroup": 20, - "BInitWorkshopForGameServer": 73, - "CreateItem": 40, - "CreateQueryAllUGCRequest": 2, - "CreateQueryUGCDetailsRequest": 3, - "CreateQueryUserUGCRequest": 0, - "DeleteItem": 83, - "DownloadItem": 72, - "GetAppDependencies": 82, - "GetItemDownloadInfo": 71, - "GetItemInstallInfo": 70, - "GetItemState": 69, - "GetItemUpdateProgress": 60, - "GetNumSubscribedItems": 67, - "GetQueryUGCAdditionalPreview": 14, - "GetQueryUGCChildren": 11, - "GetQueryUGCKeyValueTag": 17, - "GetQueryUGCMetadata": 10, - "GetQueryUGCNumAdditionalPreviews": 13, - "GetQueryUGCNumKeyValueTags": 15, - "GetQueryUGCNumTags": 6, - "GetQueryUGCPreviewURL": 9, - "GetQueryUGCResult": 5, - "GetQueryUGCStatistic": 12, - "GetQueryUGCTag": 7, - "GetQueryUGCTagDisplayName": 8, - "GetSubscribedItems": 68, - "GetUserItemVote": 62, - "GetWorkshopEULAStatus": 85, - "ReleaseQueryUGCRequest": 18, - "RemoveAllItemKeyValueTags": 51, - "RemoveAppDependency": 81, - "RemoveDependency": 79, - "RemoveItemFromFavorites": 64, - "RemoveItemKeyValueTags": 52, - "RemoveItemPreview": 58, - "RequestUGCDetails": 39, - "SendQueryUGCRequest": 4, - "SetAllowCachedResponse": 31, - "SetAllowLegacyUpload": 50, - "SetCloudFileNameFilter": 32, - "SetItemContent": 48, - "SetItemDescription": 43, - "SetItemMetadata": 45, - "SetItemPreview": 49, - "SetItemTags": 47, - "SetItemTitle": 42, - "SetItemUpdateLanguage": 44, - "SetItemVisibility": 46, - "SetLanguage": 30, - "SetMatchAnyTag": 33, - "SetRankedByTrendDays": 35, - "SetReturnAdditionalPreviews": 27, - "SetReturnChildren": 26, - "SetReturnKeyValueTags": 23, - "SetReturnLongDescription": 24, - "SetReturnMetadata": 25, - "SetReturnOnlyIDs": 22, - "SetReturnPlaytimeStats": 29, - "SetReturnTotalOnly": 28, - "SetSearchText": 34, - "SetTimeCreatedDateRange": 36, - "SetTimeUpdatedDateRange": 37, - "SetUserItemVote": 61, - "ShowWorkshopEULA": 84, - "StartItemUpdate": 41, - "StartPlaytimeTracking": 75, - "StopPlaytimeTracking": 76, - "StopPlaytimeTrackingForAllItems": 77, - "SubmitItemUpdate": 59, - "SubscribeItem": 65, - "SuspendDownloads": 74, - "UnsubscribeItem": 66, - "UpdateItemPreviewFile": 56, - "UpdateItemPreviewVideo": 57 - }, - "STEAMUGC_INTERFACE_VERSION017": { - "AddAppDependency": 83, - "AddContentDescriptor": 60, - "AddDependency": 81, - "AddExcludedTag": 22, - "AddItemKeyValueTag": 54, - "AddItemPreviewFile": 55, - "AddItemPreviewVideo": 56, - "AddItemToFavorites": 66, - "AddRequiredKeyValueTag": 39, - "AddRequiredTag": 20, - "AddRequiredTagGroup": 21, - "BInitWorkshopForGameServer": 76, - "CreateItem": 41, - "CreateQueryAllUGCRequest": 2, - "CreateQueryUGCDetailsRequest": 3, - "CreateQueryUserUGCRequest": 0, - "DeleteItem": 86, - "DownloadItem": 75, - "GetAppDependencies": 85, - "GetItemDownloadInfo": 74, - "GetItemInstallInfo": 73, - "GetItemState": 72, - "GetItemUpdateProgress": 63, - "GetNumSubscribedItems": 70, - "GetQueryUGCAdditionalPreview": 14, - "GetQueryUGCChildren": 11, - "GetQueryUGCContentDescriptors": 18, - "GetQueryUGCKeyValueTag": 17, - "GetQueryUGCMetadata": 10, - "GetQueryUGCNumAdditionalPreviews": 13, - "GetQueryUGCNumKeyValueTags": 15, - "GetQueryUGCNumTags": 6, - "GetQueryUGCPreviewURL": 9, - "GetQueryUGCResult": 5, - "GetQueryUGCStatistic": 12, - "GetQueryUGCTag": 7, - "GetQueryUGCTagDisplayName": 8, - "GetSubscribedItems": 71, - "GetUserItemVote": 65, - "GetWorkshopEULAStatus": 88, - "ReleaseQueryUGCRequest": 19, - "RemoveAllItemKeyValueTags": 52, - "RemoveAppDependency": 84, - "RemoveContentDescriptor": 61, - "RemoveDependency": 82, - "RemoveItemFromFavorites": 67, - "RemoveItemKeyValueTags": 53, - "RemoveItemPreview": 59, - "RequestUGCDetails": 40, - "SendQueryUGCRequest": 4, - "SetAllowCachedResponse": 32, - "SetAllowLegacyUpload": 51, - "SetCloudFileNameFilter": 33, - "SetItemContent": 49, - "SetItemDescription": 44, - "SetItemMetadata": 46, - "SetItemPreview": 50, - "SetItemTags": 48, - "SetItemTitle": 43, - "SetItemUpdateLanguage": 45, - "SetItemVisibility": 47, - "SetLanguage": 31, - "SetMatchAnyTag": 34, - "SetRankedByTrendDays": 36, - "SetReturnAdditionalPreviews": 28, - "SetReturnChildren": 27, - "SetReturnKeyValueTags": 24, - "SetReturnLongDescription": 25, - "SetReturnMetadata": 26, - "SetReturnOnlyIDs": 23, - "SetReturnPlaytimeStats": 30, - "SetReturnTotalOnly": 29, - "SetSearchText": 35, - "SetTimeCreatedDateRange": 37, - "SetTimeUpdatedDateRange": 38, - "SetUserItemVote": 64, - "ShowWorkshopEULA": 87, - "StartItemUpdate": 42, - "StartPlaytimeTracking": 78, - "StopPlaytimeTracking": 79, - "StopPlaytimeTrackingForAllItems": 80, - "SubmitItemUpdate": 62, - "SubscribeItem": 68, - "SuspendDownloads": 77, - "UnsubscribeItem": 69, - "UpdateItemPreviewFile": 57, - "UpdateItemPreviewVideo": 58 - }, - "STEAMUGC_INTERFACE_VERSION018": { - "AddAppDependency": 83, - "AddContentDescriptor": 60, - "AddDependency": 81, - "AddExcludedTag": 22, - "AddItemKeyValueTag": 54, - "AddItemPreviewFile": 55, - "AddItemPreviewVideo": 56, - "AddItemToFavorites": 66, - "AddRequiredKeyValueTag": 39, - "AddRequiredTag": 20, - "AddRequiredTagGroup": 21, - "BInitWorkshopForGameServer": 76, - "CreateItem": 41, - "CreateQueryAllUGCRequest": 2, - "CreateQueryUGCDetailsRequest": 3, - "CreateQueryUserUGCRequest": 0, - "DeleteItem": 86, - "DownloadItem": 75, - "GetAppDependencies": 85, - "GetItemDownloadInfo": 74, - "GetItemInstallInfo": 73, - "GetItemState": 72, - "GetItemUpdateProgress": 63, - "GetNumSubscribedItems": 70, - "GetQueryUGCAdditionalPreview": 14, - "GetQueryUGCChildren": 11, - "GetQueryUGCContentDescriptors": 18, - "GetQueryUGCKeyValueTag": 17, - "GetQueryUGCMetadata": 10, - "GetQueryUGCNumAdditionalPreviews": 13, - "GetQueryUGCNumKeyValueTags": 15, - "GetQueryUGCNumTags": 6, - "GetQueryUGCPreviewURL": 9, - "GetQueryUGCResult": 5, - "GetQueryUGCStatistic": 12, - "GetQueryUGCTag": 7, - "GetQueryUGCTagDisplayName": 8, - "GetSubscribedItems": 71, - "GetUserContentDescriptorPreferences": 89, - "GetUserItemVote": 65, - "GetWorkshopEULAStatus": 88, - "ReleaseQueryUGCRequest": 19, - "RemoveAllItemKeyValueTags": 52, - "RemoveAppDependency": 84, - "RemoveContentDescriptor": 61, - "RemoveDependency": 82, - "RemoveItemFromFavorites": 67, - "RemoveItemKeyValueTags": 53, - "RemoveItemPreview": 59, - "RequestUGCDetails": 40, - "SendQueryUGCRequest": 4, - "SetAllowCachedResponse": 32, - "SetAllowLegacyUpload": 51, - "SetCloudFileNameFilter": 33, - "SetItemContent": 49, - "SetItemDescription": 44, - "SetItemMetadata": 46, - "SetItemPreview": 50, - "SetItemTags": 48, - "SetItemTitle": 43, - "SetItemUpdateLanguage": 45, - "SetItemVisibility": 47, - "SetLanguage": 31, - "SetMatchAnyTag": 34, - "SetRankedByTrendDays": 36, - "SetReturnAdditionalPreviews": 28, - "SetReturnChildren": 27, - "SetReturnKeyValueTags": 24, - "SetReturnLongDescription": 25, - "SetReturnMetadata": 26, - "SetReturnOnlyIDs": 23, - "SetReturnPlaytimeStats": 30, - "SetReturnTotalOnly": 29, - "SetSearchText": 35, - "SetTimeCreatedDateRange": 37, - "SetTimeUpdatedDateRange": 38, - "SetUserItemVote": 64, - "ShowWorkshopEULA": 87, - "StartItemUpdate": 42, - "StartPlaytimeTracking": 78, - "StopPlaytimeTracking": 79, - "StopPlaytimeTrackingForAllItems": 80, - "SubmitItemUpdate": 62, - "SubscribeItem": 68, - "SuspendDownloads": 77, - "UnsubscribeItem": 69, - "UpdateItemPreviewFile": 57, - "UpdateItemPreviewVideo": 58 - }, - "STEAMUGC_INTERFACE_VERSION020": { - "AddAppDependency": 87, - "AddContentDescriptor": 63, - "AddDependency": 85, - "AddExcludedTag": 24, - "AddItemKeyValueTag": 57, - "AddItemPreviewFile": 58, - "AddItemPreviewVideo": 59, - "AddItemToFavorites": 70, - "AddRequiredKeyValueTag": 42, - "AddRequiredTag": 22, - "AddRequiredTagGroup": 23, - "BInitWorkshopForGameServer": 80, - "CreateItem": 44, - "CreateQueryAllUGCRequest": 2, - "CreateQueryUGCDetailsRequest": 3, - "CreateQueryUserUGCRequest": 0, - "DeleteItem": 90, - "DownloadItem": 79, - "GetAppDependencies": 89, - "GetItemDownloadInfo": 78, - "GetItemInstallInfo": 77, - "GetItemState": 76, - "GetItemUpdateProgress": 67, - "GetNumSubscribedItems": 74, - "GetNumSupportedGameVersions": 18, - "GetQueryUGCAdditionalPreview": 14, - "GetQueryUGCChildren": 11, - "GetQueryUGCContentDescriptors": 20, - "GetQueryUGCKeyValueTag": 17, - "GetQueryUGCMetadata": 10, - "GetQueryUGCNumAdditionalPreviews": 13, - "GetQueryUGCNumKeyValueTags": 15, - "GetQueryUGCNumTags": 6, - "GetQueryUGCPreviewURL": 9, - "GetQueryUGCResult": 5, - "GetQueryUGCStatistic": 12, - "GetQueryUGCTag": 7, - "GetQueryUGCTagDisplayName": 8, - "GetSubscribedItems": 75, - "GetSupportedGameVersionData": 19, - "GetUserContentDescriptorPreferences": 93, - "GetUserItemVote": 69, - "GetWorkshopEULAStatus": 92, - "ReleaseQueryUGCRequest": 21, - "RemoveAllItemKeyValueTags": 55, - "RemoveAppDependency": 88, - "RemoveContentDescriptor": 64, - "RemoveDependency": 86, - "RemoveItemFromFavorites": 71, - "RemoveItemKeyValueTags": 56, - "RemoveItemPreview": 62, - "RequestUGCDetails": 43, - "SendQueryUGCRequest": 4, - "SetAdminQuery": 35, - "SetAllowCachedResponse": 34, - "SetAllowLegacyUpload": 54, - "SetCloudFileNameFilter": 36, - "SetItemContent": 52, - "SetItemDescription": 47, - "SetItemMetadata": 49, - "SetItemPreview": 53, - "SetItemTags": 51, - "SetItemTitle": 46, - "SetItemUpdateLanguage": 48, - "SetItemVisibility": 50, - "SetLanguage": 33, - "SetMatchAnyTag": 37, - "SetRankedByTrendDays": 39, - "SetRequiredGameVersions": 65, - "SetReturnAdditionalPreviews": 30, - "SetReturnChildren": 29, - "SetReturnKeyValueTags": 26, - "SetReturnLongDescription": 27, - "SetReturnMetadata": 28, - "SetReturnOnlyIDs": 25, - "SetReturnPlaytimeStats": 32, - "SetReturnTotalOnly": 31, - "SetSearchText": 38, - "SetTimeCreatedDateRange": 40, - "SetTimeUpdatedDateRange": 41, - "SetUserItemVote": 68, - "ShowWorkshopEULA": 91, - "StartItemUpdate": 45, - "StartPlaytimeTracking": 82, - "StopPlaytimeTracking": 83, - "StopPlaytimeTrackingForAllItems": 84, - "SubmitItemUpdate": 66, - "SubscribeItem": 72, - "SuspendDownloads": 81, - "UnsubscribeItem": 73, - "UpdateItemPreviewFile": 60, - "UpdateItemPreviewVideo": 61 - }, - "STEAMUGC_INTERFACE_VERSION021": { - "AddAppDependency": 87, - "AddContentDescriptor": 63, - "AddDependency": 85, - "AddExcludedTag": 24, - "AddItemKeyValueTag": 57, - "AddItemPreviewFile": 58, - "AddItemPreviewVideo": 59, - "AddItemToFavorites": 70, - "AddRequiredKeyValueTag": 42, - "AddRequiredTag": 22, - "AddRequiredTagGroup": 23, - "BInitWorkshopForGameServer": 80, - "CreateItem": 44, - "CreateQueryAllUGCRequest": 2, - "CreateQueryUGCDetailsRequest": 3, - "CreateQueryUserUGCRequest": 0, - "DeleteItem": 90, - "DownloadItem": 79, - "GetAppDependencies": 89, - "GetItemDownloadInfo": 78, - "GetItemInstallInfo": 77, - "GetItemState": 76, - "GetItemUpdateProgress": 67, - "GetNumSubscribedItems": 74, - "GetNumSupportedGameVersions": 18, - "GetQueryUGCAdditionalPreview": 14, - "GetQueryUGCChildren": 11, - "GetQueryUGCContentDescriptors": 20, - "GetQueryUGCKeyValueTag": 17, - "GetQueryUGCMetadata": 10, - "GetQueryUGCNumAdditionalPreviews": 13, - "GetQueryUGCNumKeyValueTags": 15, - "GetQueryUGCNumTags": 6, - "GetQueryUGCPreviewURL": 9, - "GetQueryUGCResult": 5, - "GetQueryUGCStatistic": 12, - "GetQueryUGCTag": 7, - "GetQueryUGCTagDisplayName": 8, - "GetSubscribedItems": 75, - "GetSupportedGameVersionData": 19, - "GetUserContentDescriptorPreferences": 93, - "GetUserItemVote": 69, - "GetWorkshopEULAStatus": 92, - "ReleaseQueryUGCRequest": 21, - "RemoveAllItemKeyValueTags": 55, - "RemoveAppDependency": 88, - "RemoveContentDescriptor": 64, - "RemoveDependency": 86, - "RemoveItemFromFavorites": 71, - "RemoveItemKeyValueTags": 56, - "RemoveItemPreview": 62, - "RequestUGCDetails": 43, - "SendQueryUGCRequest": 4, - "SetAdminQuery": 35, - "SetAllowCachedResponse": 34, - "SetAllowLegacyUpload": 54, - "SetCloudFileNameFilter": 36, - "SetItemContent": 52, - "SetItemDescription": 47, - "SetItemMetadata": 49, - "SetItemPreview": 53, - "SetItemTags": 51, - "SetItemTitle": 46, - "SetItemUpdateLanguage": 48, - "SetItemVisibility": 50, - "SetItemsDisabledLocally": 94, - "SetLanguage": 33, - "SetMatchAnyTag": 37, - "SetRankedByTrendDays": 39, - "SetRequiredGameVersions": 65, - "SetReturnAdditionalPreviews": 30, - "SetReturnChildren": 29, - "SetReturnKeyValueTags": 26, - "SetReturnLongDescription": 27, - "SetReturnMetadata": 28, - "SetReturnOnlyIDs": 25, - "SetReturnPlaytimeStats": 32, - "SetReturnTotalOnly": 31, - "SetSearchText": 38, - "SetSubscriptionsLoadOrder": 95, - "SetTimeCreatedDateRange": 40, - "SetTimeUpdatedDateRange": 41, - "SetUserItemVote": 68, - "ShowWorkshopEULA": 91, - "StartItemUpdate": 45, - "StartPlaytimeTracking": 82, - "StopPlaytimeTracking": 83, - "StopPlaytimeTrackingForAllItems": 84, - "SubmitItemUpdate": 66, - "SubscribeItem": 72, - "SuspendDownloads": 81, - "UnsubscribeItem": 73, - "UpdateItemPreviewFile": 60, - "UpdateItemPreviewVideo": 61 - }, - "STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001": { - "GetMethodResponseData": 2, - "GetMethodResponseInfo": 1, - "ReleaseMethod": 3, - "SendMethod": 0, - "SendNotification": 4 - }, - "STEAMUSERSTATS_INTERFACE_VERSION003": { - "ClearAchievement": 8, - "GetAchievement": 6, - "GetAchievementDisplayAttribute": 11, - "GetAchievementIcon": 10, - "GetStat": 2, - "IndicateAchievementProgress": 12, - "RequestCurrentStats": 0, - "SetAchievement": 7, - "SetStat": 4, - "StoreStats": 9, - "UpdateAvgRateStat": 5 - }, - "STEAMUSERSTATS_INTERFACE_VERSION004": { - "ClearAchievement": 8, - "GetAchievement": 6, - "GetAchievementDisplayAttribute": 11, - "GetAchievementIcon": 10, - "GetStat": 2, - "GetUserAchievement": 16, - "GetUserStat": 15, - "IndicateAchievementProgress": 12, - "RequestCurrentStats": 0, - "RequestUserStats": 13, - "SetAchievement": 7, - "SetStat": 4, - "StoreStats": 9, - "UpdateAvgRateStat": 5 - }, - "STEAMUSERSTATS_INTERFACE_VERSION005": { - "ClearAchievement": 8, - "DownloadLeaderboardEntries": 24, - "FindLeaderboard": 19, - "FindOrCreateLeaderboard": 18, - "GetAchievement": 6, - "GetAchievementDisplayAttribute": 11, - "GetAchievementIcon": 10, - "GetDownloadedLeaderboardEntry": 25, - "GetLeaderboardDisplayType": 23, - "GetLeaderboardEntryCount": 21, - "GetLeaderboardName": 20, - "GetLeaderboardSortMethod": 22, - "GetStat": 2, - "GetUserAchievement": 16, - "GetUserStat": 15, - "IndicateAchievementProgress": 12, - "RequestCurrentStats": 0, - "RequestUserStats": 13, - "ResetAllStats": 17, - "SetAchievement": 7, - "SetStat": 4, - "StoreStats": 9, - "UpdateAvgRateStat": 5, - "UploadLeaderboardScore": 26 - }, - "STEAMUSERSTATS_INTERFACE_VERSION006": { - "ClearAchievement": 8, - "DownloadLeaderboardEntries": 24, - "FindLeaderboard": 19, - "FindOrCreateLeaderboard": 18, - "GetAchievement": 6, - "GetAchievementDisplayAttribute": 11, - "GetAchievementIcon": 10, - "GetDownloadedLeaderboardEntry": 25, - "GetLeaderboardDisplayType": 23, - "GetLeaderboardEntryCount": 21, - "GetLeaderboardName": 20, - "GetLeaderboardSortMethod": 22, - "GetNumberOfCurrentPlayers": 27, - "GetStat": 2, - "GetUserAchievement": 16, - "GetUserStat": 15, - "IndicateAchievementProgress": 12, - "RequestCurrentStats": 0, - "RequestUserStats": 13, - "ResetAllStats": 17, - "SetAchievement": 7, - "SetStat": 4, - "StoreStats": 9, - "UpdateAvgRateStat": 5, - "UploadLeaderboardScore": 26 - }, - "STEAMUSERSTATS_INTERFACE_VERSION007": { - "ClearAchievement": 8, - "DownloadLeaderboardEntries": 26, - "FindLeaderboard": 21, - "FindOrCreateLeaderboard": 20, - "GetAchievement": 6, - "GetAchievementAndUnlockTime": 9, - "GetAchievementDisplayAttribute": 12, - "GetAchievementIcon": 11, - "GetDownloadedLeaderboardEntry": 27, - "GetLeaderboardDisplayType": 25, - "GetLeaderboardEntryCount": 23, - "GetLeaderboardName": 22, - "GetLeaderboardSortMethod": 24, - "GetNumberOfCurrentPlayers": 29, - "GetStat": 2, - "GetUserAchievement": 17, - "GetUserAchievementAndUnlockTime": 18, - "GetUserStat": 16, - "IndicateAchievementProgress": 13, - "RequestCurrentStats": 0, - "RequestUserStats": 14, - "ResetAllStats": 19, - "SetAchievement": 7, - "SetStat": 4, - "StoreStats": 10, - "UpdateAvgRateStat": 5, - "UploadLeaderboardScore": 28 - }, - "STEAMUSERSTATS_INTERFACE_VERSION009": { - "AttachLeaderboardUGC": 30, - "ClearAchievement": 8, - "DownloadLeaderboardEntries": 26, - "DownloadLeaderboardEntriesForUsers": 27, - "FindLeaderboard": 21, - "FindOrCreateLeaderboard": 20, - "GetAchievement": 6, - "GetAchievementAndUnlockTime": 9, - "GetAchievementDisplayAttribute": 12, - "GetAchievementIcon": 11, - "GetDownloadedLeaderboardEntry": 28, - "GetLeaderboardDisplayType": 25, - "GetLeaderboardEntryCount": 23, - "GetLeaderboardName": 22, - "GetLeaderboardSortMethod": 24, - "GetNumberOfCurrentPlayers": 31, - "GetStat": 2, - "GetTrophySpaceRequiredBeforeInstall": 33, - "GetUserAchievement": 17, - "GetUserAchievementAndUnlockTime": 18, - "GetUserStat": 16, - "GetUserStatsData": 35, - "IndicateAchievementProgress": 13, - "InstallPS3Trophies": 32, - "RequestCurrentStats": 0, - "RequestUserStats": 14, - "ResetAllStats": 19, - "SetAchievement": 7, - "SetStat": 4, - "SetUserStatsData": 34, - "StoreStats": 10, - "UpdateAvgRateStat": 5, - "UploadLeaderboardScore": 29 - }, - "STEAMUSERSTATS_INTERFACE_VERSION010": { - "AttachLeaderboardUGC": 30, - "ClearAchievement": 8, - "DownloadLeaderboardEntries": 26, - "DownloadLeaderboardEntriesForUsers": 27, - "FindLeaderboard": 21, - "FindOrCreateLeaderboard": 20, - "GetAchievement": 6, - "GetAchievementAchievedPercent": 35, - "GetAchievementAndUnlockTime": 9, - "GetAchievementDisplayAttribute": 12, - "GetAchievementIcon": 11, - "GetDownloadedLeaderboardEntry": 28, - "GetGlobalStat": 38, - "GetGlobalStatHistory": 40, - "GetLeaderboardDisplayType": 25, - "GetLeaderboardEntryCount": 23, - "GetLeaderboardName": 22, - "GetLeaderboardSortMethod": 24, - "GetMostAchievedAchievementInfo": 33, - "GetNextMostAchievedAchievementInfo": 34, - "GetNumberOfCurrentPlayers": 31, - "GetStat": 2, - "GetTrophySpaceRequiredBeforeInstall": 42, - "GetUserAchievement": 17, - "GetUserAchievementAndUnlockTime": 18, - "GetUserStat": 16, - "GetUserStatsData": 44, - "IndicateAchievementProgress": 13, - "InstallPS3Trophies": 41, - "RequestCurrentStats": 0, - "RequestGlobalAchievementPercentages": 32, - "RequestGlobalStats": 36, - "RequestUserStats": 14, - "ResetAllStats": 19, - "SetAchievement": 7, - "SetStat": 4, - "SetUserStatsData": 43, - "StoreStats": 10, - "UpdateAvgRateStat": 5, - "UploadLeaderboardScore": 29 - }, - "STEAMUSERSTATS_INTERFACE_VERSION011": { - "AttachLeaderboardUGC": 32, - "ClearAchievement": 8, - "DownloadLeaderboardEntries": 28, - "DownloadLeaderboardEntriesForUsers": 29, - "FindLeaderboard": 23, - "FindOrCreateLeaderboard": 22, - "GetAchievement": 6, - "GetAchievementAchievedPercent": 37, - "GetAchievementAndUnlockTime": 9, - "GetAchievementDisplayAttribute": 12, - "GetAchievementIcon": 11, - "GetAchievementName": 15, - "GetDownloadedLeaderboardEntry": 30, - "GetGlobalStat": 40, - "GetGlobalStatHistory": 42, - "GetLeaderboardDisplayType": 27, - "GetLeaderboardEntryCount": 25, - "GetLeaderboardName": 24, - "GetLeaderboardSortMethod": 26, - "GetMostAchievedAchievementInfo": 35, - "GetNextMostAchievedAchievementInfo": 36, - "GetNumAchievements": 14, - "GetNumberOfCurrentPlayers": 33, - "GetStat": 2, - "GetTrophySpaceRequiredBeforeInstall": 44, - "GetUserAchievement": 19, - "GetUserAchievementAndUnlockTime": 20, - "GetUserStat": 18, - "GetUserStatsData": 46, - "IndicateAchievementProgress": 13, - "InstallPS3Trophies": 43, - "RequestCurrentStats": 0, - "RequestGlobalAchievementPercentages": 34, - "RequestGlobalStats": 38, - "RequestUserStats": 16, - "ResetAllStats": 21, - "SetAchievement": 7, - "SetStat": 4, - "SetUserStatsData": 45, - "StoreStats": 10, - "UpdateAvgRateStat": 5, - "UploadLeaderboardScore": 31 - }, - "STEAMUSERSTATS_INTERFACE_VERSION012": { - "AttachLeaderboardUGC": 32, - "ClearAchievement": 8, - "DownloadLeaderboardEntries": 28, - "DownloadLeaderboardEntriesForUsers": 29, - "FindLeaderboard": 23, - "FindOrCreateLeaderboard": 22, - "GetAchievement": 6, - "GetAchievementAchievedPercent": 37, - "GetAchievementAndUnlockTime": 9, - "GetAchievementDisplayAttribute": 12, - "GetAchievementIcon": 11, - "GetAchievementName": 15, - "GetAchievementProgressLimits": 44, - "GetDownloadedLeaderboardEntry": 30, - "GetGlobalStat": 40, - "GetGlobalStatHistory": 42, - "GetLeaderboardDisplayType": 27, - "GetLeaderboardEntryCount": 25, - "GetLeaderboardName": 24, - "GetLeaderboardSortMethod": 26, - "GetMostAchievedAchievementInfo": 35, - "GetNextMostAchievedAchievementInfo": 36, - "GetNumAchievements": 14, - "GetNumberOfCurrentPlayers": 33, - "GetStat": 2, - "GetUserAchievement": 19, - "GetUserAchievementAndUnlockTime": 20, - "GetUserStat": 18, - "IndicateAchievementProgress": 13, - "RequestCurrentStats": 0, - "RequestGlobalAchievementPercentages": 34, - "RequestGlobalStats": 38, - "RequestUserStats": 16, - "ResetAllStats": 21, - "SetAchievement": 7, - "SetStat": 4, - "StoreStats": 10, - "UpdateAvgRateStat": 5, - "UploadLeaderboardScore": 31 - }, - "STEAMUSERSTATS_INTERFACE_VERSION013": { - "AttachLeaderboardUGC": 31, - "ClearAchievement": 7, - "DownloadLeaderboardEntries": 27, - "DownloadLeaderboardEntriesForUsers": 28, - "FindLeaderboard": 22, - "FindOrCreateLeaderboard": 21, - "GetAchievement": 5, - "GetAchievementAchievedPercent": 36, - "GetAchievementAndUnlockTime": 8, - "GetAchievementDisplayAttribute": 11, - "GetAchievementIcon": 10, - "GetAchievementName": 14, - "GetAchievementProgressLimits": 43, - "GetDownloadedLeaderboardEntry": 29, - "GetGlobalStat": 39, - "GetGlobalStatHistory": 41, - "GetLeaderboardDisplayType": 26, - "GetLeaderboardEntryCount": 24, - "GetLeaderboardName": 23, - "GetLeaderboardSortMethod": 25, - "GetMostAchievedAchievementInfo": 34, - "GetNextMostAchievedAchievementInfo": 35, - "GetNumAchievements": 13, - "GetNumberOfCurrentPlayers": 32, - "GetStat": 1, - "GetUserAchievement": 18, - "GetUserAchievementAndUnlockTime": 19, - "GetUserStat": 17, - "IndicateAchievementProgress": 12, - "RequestGlobalAchievementPercentages": 33, - "RequestGlobalStats": 37, - "RequestUserStats": 15, - "ResetAllStats": 20, - "SetAchievement": 6, - "SetStat": 3, - "StoreStats": 9, - "UpdateAvgRateStat": 4, - "UploadLeaderboardScore": 30 + "SteamUser018": { + "GetHSteamUser": 0, + "BLoggedOn": 1, + "GetSteamID": 2, + "InitiateGameConnection": 3, + "TerminateGameConnection": 4, + "TrackAppUsageEvent": 5, + "GetUserDataFolder": 6, + "StartVoiceRecording": 7, + "StopVoiceRecording": 8, + "GetAvailableVoice": 9, + "GetVoice": 10, + "DecompressVoice": 11, + "GetVoiceOptimalSampleRate": 12, + "GetAuthSessionTicket": 13, + "BeginAuthSession": 14, + "EndAuthSession": 15, + "CancelAuthTicket": 16, + "UserHasLicenseForApp": 17, + "BIsBehindNAT": 18, + "AdvertiseGame": 19, + "RequestEncryptedAppTicket": 20, + "GetEncryptedAppTicket": 21, + "GetGameBadgeLevel": 22, + "GetPlayerSteamLevel": 23, + "RequestStoreAuthURL": 24, + "LogOn": 25, + "LogOnAndLinkSteamAccountToPSN": 26, + "LogOnAndCreateNewSteamAccountIfNeeded": 27, + "GetConsoleSteamID": 28 }, "STEAMVIDEO_INTERFACE_V001": { "GetVideoURL": 0, "IsBroadcasting": 1 }, - "STEAMVIDEO_INTERFACE_V002": { - "GetOPFSettings": 2, - "GetOPFStringForApp": 3, - "GetVideoURL": 0, - "IsBroadcasting": 1 + "STEAMHTMLSURFACE_INTERFACE_VERSION_003": { + "Init": 0, + "Shutdown": 1, + "CreateBrowser": 2, + "RemoveBrowser": 3, + "LoadURL": 4, + "SetSize": 5, + "StopLoad": 6, + "Reload": 7, + "GoBack": 8, + "GoForward": 9, + "AddHeader": 10, + "ExecuteJavascript": 11, + "MouseUp": 12, + "MouseDown": 13, + "MouseDoubleClick": 14, + "MouseMove": 15, + "MouseWheel": 16, + "KeyDown": 17, + "KeyUp": 18, + "KeyChar": 19, + "SetHorizontalScroll": 20, + "SetVerticalScroll": 21, + "SetKeyFocus": 22, + "ViewSource": 23, + "CopyToClipboard": 24, + "PasteFromClipboard": 25, + "Find": 26, + "StopFind": 27, + "GetLinkAtPosition": 28, + "SetCookie": 29, + "SetPageScaleFactor": 30, + "SetBackgroundMode": 31, + "AllowStartRequest": 32, + "JSDialogResponse": 33, + "FileLoadDialogResponse": 34 }, - "STEAMVIDEO_INTERFACE_V007": { - "GetOPFSettings": 2, - "GetOPFStringForApp": 3, - "GetVideoURL": 0, - "IsBroadcasting": 1 + "STEAMUGC_INTERFACE_VERSION005": { + "CreateQueryUserUGCRequest": 0, + "CreateQueryAllUGCRequest": 1, + "CreateQueryUGCDetailsRequest": 2, + "SendQueryUGCRequest": 3, + "GetQueryUGCResult": 4, + "GetQueryUGCPreviewURL": 5, + "GetQueryUGCMetadata": 6, + "GetQueryUGCChildren": 7, + "GetQueryUGCStatistic": 8, + "GetQueryUGCNumAdditionalPreviews": 9, + "GetQueryUGCAdditionalPreview": 10, + "ReleaseQueryUGCRequest": 11, + "AddRequiredTag": 12, + "AddExcludedTag": 13, + "SetReturnLongDescription": 14, + "SetReturnMetadata": 15, + "SetReturnChildren": 16, + "SetReturnAdditionalPreviews": 17, + "SetReturnTotalOnly": 18, + "SetAllowCachedResponse": 19, + "SetCloudFileNameFilter": 20, + "SetMatchAnyTag": 21, + "SetSearchText": 22, + "SetRankedByTrendDays": 23, + "RequestUGCDetails": 24, + "CreateItem": 25, + "StartItemUpdate": 26, + "SetItemTitle": 27, + "SetItemDescription": 28, + "SetItemMetadata": 29, + "SetItemVisibility": 30, + "SetItemTags": 31, + "SetItemContent": 32, + "SetItemPreview": 33, + "SubmitItemUpdate": 34, + "GetItemUpdateProgress": 35, + "AddItemToFavorites": 36, + "RemoveItemFromFavorites": 37, + "SubscribeItem": 38, + "UnsubscribeItem": 39, + "GetNumSubscribedItems": 40, + "GetSubscribedItems": 41, + "GetItemState": 42, + "GetItemInstallInfo": 43, + "GetItemDownloadInfo": 44, + "DownloadItem": 45 }, - "SteamClient007": { - "BReleaseSteamPipe": 1, - "ConnectToGlobalUser": 2, - "CreateLocalUser": 3, - "CreateSteamPipe": 0, - "GetIPCCallCount": 16, - "GetISteamApps": 18, - "GetISteamContentServer": 11, - "GetISteamFriends": 8, - "GetISteamGameServer": 6, - "GetISteamGenericInterface": 14, - "GetISteamMasterServerUpdater": 12, - "GetISteamMatchmaking": 10, - "GetISteamMatchmakingServers": 13, - "GetISteamNetworking": 19, - "GetISteamRemoteStorage": 21, - "GetISteamUser": 5, - "GetISteamUserStats": 17, - "GetISteamUtils": 9, - "ReleaseUser": 4, - "RunFrame": 15, - "SetLocalIPBinding": 7, - "SetWarningMessageHook": 20 - }, - "SteamClient008": { - "BReleaseSteamPipe": 1, - "ConnectToGlobalUser": 2, - "CreateLocalUser": 3, - "CreateSteamPipe": 0, - "GetIPCCallCount": 19, - "GetISteamApps": 15, - "GetISteamFriends": 8, - "GetISteamGameServer": 6, - "GetISteamGenericInterface": 13, - "GetISteamMasterServerUpdater": 11, - "GetISteamMatchmaking": 10, - "GetISteamMatchmakingServers": 12, - "GetISteamNetworking": 16, - "GetISteamRemoteStorage": 17, - "GetISteamUser": 5, - "GetISteamUserStats": 14, - "GetISteamUtils": 9, - "ReleaseUser": 4, - "RunFrame": 18, - "SetLocalIPBinding": 7, - "SetWarningMessageHook": 20 - }, - "SteamClient009": { - "BReleaseSteamPipe": 1, - "ConnectToGlobalUser": 2, - "CreateLocalUser": 3, - "CreateSteamPipe": 0, - "GetIPCCallCount": 20, - "GetISteamApps": 16, - "GetISteamFriends": 8, - "GetISteamGameServer": 6, - "GetISteamGameServerStats": 15, - "GetISteamGenericInterface": 13, - "GetISteamMasterServerUpdater": 11, - "GetISteamMatchmaking": 10, - "GetISteamMatchmakingServers": 12, - "GetISteamNetworking": 17, - "GetISteamRemoteStorage": 18, - "GetISteamUser": 5, - "GetISteamUserStats": 14, - "GetISteamUtils": 9, - "ReleaseUser": 4, - "RunFrame": 19, - "SetLocalIPBinding": 7, - "SetWarningMessageHook": 21 - }, - "SteamClient010": { - "BReleaseSteamPipe": 1, - "BShutdownIfAllPipesClosed": 22, - "ConnectToGlobalUser": 2, - "CreateLocalUser": 3, - "CreateSteamPipe": 0, - "GetIPCCallCount": 20, - "GetISteamApps": 16, - "GetISteamFriends": 8, - "GetISteamGameServer": 6, - "GetISteamGameServerStats": 15, - "GetISteamGenericInterface": 13, - "GetISteamHTTP": 23, - "GetISteamMasterServerUpdater": 11, - "GetISteamMatchmaking": 10, - "GetISteamMatchmakingServers": 12, - "GetISteamNetworking": 17, - "GetISteamPS3OverlayRender": 24, - "GetISteamRemoteStorage": 18, - "GetISteamUser": 5, - "GetISteamUserStats": 14, - "GetISteamUtils": 9, - "ReleaseUser": 4, - "RunFrame": 19, - "SetLocalIPBinding": 7, - "SetWarningMessageHook": 21 - }, - "SteamClient011": { - "BReleaseSteamPipe": 1, - "BShutdownIfAllPipesClosed": 23, - "ConnectToGlobalUser": 2, - "CreateLocalUser": 3, - "CreateSteamPipe": 0, - "GetIPCCallCount": 21, - "GetISteamApps": 16, - "GetISteamFriends": 8, - "GetISteamGameServer": 6, - "GetISteamGameServerStats": 15, - "GetISteamGenericInterface": 13, - "GetISteamHTTP": 24, - "GetISteamMasterServerUpdater": 11, - "GetISteamMatchmaking": 10, - "GetISteamMatchmakingServers": 12, - "GetISteamNetworking": 17, - "GetISteamPS3OverlayRender": 25, - "GetISteamRemoteStorage": 18, - "GetISteamScreenshots": 19, - "GetISteamUser": 5, - "GetISteamUserStats": 14, - "GetISteamUtils": 9, - "ReleaseUser": 4, - "RunFrame": 20, - "SetLocalIPBinding": 7, - "SetWarningMessageHook": 22 - }, - "SteamClient012": { - "BReleaseSteamPipe": 1, - "BShutdownIfAllPipesClosed": 22, - "ConnectToGlobalUser": 2, - "CreateLocalUser": 3, - "CreateSteamPipe": 0, - "GetIPCCallCount": 20, - "GetISteamApps": 15, - "GetISteamController": 25, - "GetISteamFriends": 8, - "GetISteamGameServer": 6, - "GetISteamGameServerStats": 14, - "GetISteamGenericInterface": 12, - "GetISteamHTTP": 23, - "GetISteamMatchmaking": 10, - "GetISteamMatchmakingServers": 11, - "GetISteamNetworking": 16, - "GetISteamPS3OverlayRender": 27, - "GetISteamRemoteStorage": 17, - "GetISteamScreenshots": 18, - "GetISteamUGC": 26, - "GetISteamUnifiedMessages": 24, - "GetISteamUser": 5, - "GetISteamUserStats": 13, - "GetISteamUtils": 9, - "ReleaseUser": 4, - "RunFrame": 19, - "SetLocalIPBinding": 7, - "SetWarningMessageHook": 21 - }, - "SteamClient014": { - "BReleaseSteamPipe": 1, - "BShutdownIfAllPipesClosed": 22, - "ConnectToGlobalUser": 2, - "CreateLocalUser": 3, - "CreateSteamPipe": 0, - "GetIPCCallCount": 20, - "GetISteamAppList": 27, - "GetISteamApps": 15, - "GetISteamController": 25, - "GetISteamFriends": 8, - "GetISteamGameServer": 6, - "GetISteamGameServerStats": 14, - "GetISteamGenericInterface": 12, - "GetISteamHTTP": 23, - "GetISteamMatchmaking": 10, - "GetISteamMatchmakingServers": 11, - "GetISteamMusic": 28, - "GetISteamNetworking": 16, - "GetISteamPS3OverlayRender": 29, - "GetISteamRemoteStorage": 17, - "GetISteamScreenshots": 18, - "GetISteamUGC": 26, - "GetISteamUnifiedMessages": 24, - "GetISteamUser": 5, - "GetISteamUserStats": 13, - "GetISteamUtils": 9, - "ReleaseUser": 4, - "RunFrame": 19, - "SetLocalIPBinding": 7, - "SetWarningMessageHook": 21 - }, - "SteamClient015": { - "BReleaseSteamPipe": 1, - "BShutdownIfAllPipesClosed": 22, - "ConnectToGlobalUser": 2, - "CreateLocalUser": 3, - "CreateSteamPipe": 0, - "GetIPCCallCount": 20, - "GetISteamAppList": 27, - "GetISteamApps": 15, - "GetISteamController": 25, - "GetISteamFriends": 8, - "GetISteamGameServer": 6, - "GetISteamGameServerStats": 14, - "GetISteamGenericInterface": 12, - "GetISteamHTTP": 23, - "GetISteamMatchmaking": 10, - "GetISteamMatchmakingServers": 11, - "GetISteamMusic": 28, - "GetISteamMusicRemote": 29, - "GetISteamNetworking": 16, - "GetISteamPS3OverlayRender": 30, - "GetISteamRemoteStorage": 17, - "GetISteamScreenshots": 18, - "GetISteamUGC": 26, - "GetISteamUnifiedMessages": 24, - "GetISteamUser": 5, - "GetISteamUserStats": 13, - "GetISteamUtils": 9, - "ReleaseUser": 4, - "RunFrame": 19, - "SetLocalIPBinding": 7, - "SetWarningMessageHook": 21 - }, - "SteamClient016": { - "BReleaseSteamPipe": 1, - "BShutdownIfAllPipesClosed": 22, - "ConnectToGlobalUser": 2, - "CreateLocalUser": 3, - "CreateSteamPipe": 0, - "GetIPCCallCount": 20, - "GetISteamAppList": 27, - "GetISteamApps": 15, - "GetISteamController": 25, - "GetISteamFriends": 8, - "GetISteamGameServer": 6, - "GetISteamGameServerStats": 14, - "GetISteamGenericInterface": 12, - "GetISteamHTMLSurface": 30, - "GetISteamHTTP": 23, - "GetISteamMatchmaking": 10, - "GetISteamMatchmakingServers": 11, - "GetISteamMusic": 28, - "GetISteamMusicRemote": 29, - "GetISteamNetworking": 16, - "GetISteamPS3OverlayRender": 34, - "GetISteamRemoteStorage": 17, - "GetISteamScreenshots": 18, - "GetISteamUGC": 26, - "GetISteamUnifiedMessages": 24, - "GetISteamUser": 5, - "GetISteamUserStats": 13, - "GetISteamUtils": 9, - "ReleaseUser": 4, - "Remove_SteamAPI_CPostAPIResultInProcess": 32, - "RunFrame": 19, - "SetLocalIPBinding": 7, - "SetWarningMessageHook": 21, - "Set_SteamAPI_CCheckCallbackRegisteredInProcess": 33, - "Set_SteamAPI_CPostAPIResultInProcess": 31 - }, - "SteamClient017": { - "BReleaseSteamPipe": 1, - "BShutdownIfAllPipesClosed": 21, - "ConnectToGlobalUser": 2, - "CreateLocalUser": 3, - "CreateSteamPipe": 0, - "GetIPCCallCount": 19, - "GetISteamAppList": 25, - "GetISteamApps": 15, - "GetISteamController": 23, - "GetISteamFriends": 8, - "GetISteamGameServer": 6, - "GetISteamGameServerStats": 14, - "GetISteamGenericInterface": 12, - "GetISteamHTMLSurface": 28, - "GetISteamHTTP": 22, - "GetISteamInventory": 29, - "GetISteamMatchmaking": 10, - "GetISteamMatchmakingServers": 11, - "GetISteamMusic": 26, - "GetISteamMusicRemote": 27, - "GetISteamNetworking": 16, - "GetISteamParentalSettings": 31, - "GetISteamRemoteStorage": 17, - "GetISteamScreenshots": 18, - "GetISteamUGC": 24, - "GetISteamUser": 5, - "GetISteamUserStats": 13, - "GetISteamUtils": 9, - "GetISteamVideo": 30, - "ReleaseUser": 4, - "SetLocalIPBinding": 7, - "SetWarningMessageHook": 20 - }, - "SteamClient018": { - "BReleaseSteamPipe": 1, - "BShutdownIfAllPipesClosed": 22, - "ConnectToGlobalUser": 2, - "CreateLocalUser": 3, - "CreateSteamPipe": 0, - "GetIPCCallCount": 20, - "GetISteamAppList": 26, - "GetISteamApps": 15, - "GetISteamController": 24, - "GetISteamFriends": 8, - "GetISteamGameSearch": 19, - "GetISteamGameServer": 6, - "GetISteamGameServerStats": 14, - "GetISteamGenericInterface": 12, - "GetISteamHTMLSurface": 29, - "GetISteamHTTP": 23, - "GetISteamInput": 33, - "GetISteamInventory": 30, - "GetISteamMatchmaking": 10, - "GetISteamMatchmakingServers": 11, - "GetISteamMusic": 27, - "GetISteamMusicRemote": 28, - "GetISteamNetworking": 16, - "GetISteamParentalSettings": 32, - "GetISteamParties": 34, - "GetISteamRemoteStorage": 17, - "GetISteamScreenshots": 18, - "GetISteamUGC": 25, - "GetISteamUser": 5, - "GetISteamUserStats": 13, - "GetISteamUtils": 9, - "GetISteamVideo": 31, - "ReleaseUser": 4, - "SetLocalIPBinding": 7, - "SetWarningMessageHook": 21 - }, - "SteamClient019": { - "BReleaseSteamPipe": 1, - "BShutdownIfAllPipesClosed": 22, - "ConnectToGlobalUser": 2, - "CreateLocalUser": 3, - "CreateSteamPipe": 0, - "GetIPCCallCount": 20, - "GetISteamAppList": 26, - "GetISteamApps": 15, - "GetISteamController": 24, - "GetISteamFriends": 8, - "GetISteamGameSearch": 19, - "GetISteamGameServer": 6, - "GetISteamGameServerStats": 14, - "GetISteamGenericInterface": 12, - "GetISteamHTMLSurface": 29, - "GetISteamHTTP": 23, - "GetISteamInput": 33, - "GetISteamInventory": 30, - "GetISteamMatchmaking": 10, - "GetISteamMatchmakingServers": 11, - "GetISteamMusic": 27, - "GetISteamMusicRemote": 28, - "GetISteamNetworking": 16, - "GetISteamParentalSettings": 32, - "GetISteamParties": 34, - "GetISteamRemotePlay": 35, - "GetISteamRemoteStorage": 17, - "GetISteamScreenshots": 18, - "GetISteamUGC": 25, - "GetISteamUser": 5, - "GetISteamUserStats": 13, - "GetISteamUtils": 9, - "GetISteamVideo": 31, - "ReleaseUser": 4, - "SetLocalIPBinding": 7, - "SetWarningMessageHook": 21 + "STEAMUGC_INTERFACE_VERSION007": { + "CreateQueryUserUGCRequest": 0, + "CreateQueryAllUGCRequest": 1, + "CreateQueryUGCDetailsRequest": 2, + "SendQueryUGCRequest": 3, + "GetQueryUGCResult": 4, + "GetQueryUGCPreviewURL": 5, + "GetQueryUGCMetadata": 6, + "GetQueryUGCChildren": 7, + "GetQueryUGCStatistic": 8, + "GetQueryUGCNumAdditionalPreviews": 9, + "GetQueryUGCAdditionalPreview": 10, + "GetQueryUGCNumKeyValueTags": 11, + "GetQueryUGCKeyValueTag": 12, + "ReleaseQueryUGCRequest": 13, + "AddRequiredTag": 14, + "AddExcludedTag": 15, + "SetReturnKeyValueTags": 16, + "SetReturnLongDescription": 17, + "SetReturnMetadata": 18, + "SetReturnChildren": 19, + "SetReturnAdditionalPreviews": 20, + "SetReturnTotalOnly": 21, + "SetLanguage": 22, + "SetAllowCachedResponse": 23, + "SetCloudFileNameFilter": 24, + "SetMatchAnyTag": 25, + "SetSearchText": 26, + "SetRankedByTrendDays": 27, + "AddRequiredKeyValueTag": 28, + "RequestUGCDetails": 29, + "CreateItem": 30, + "StartItemUpdate": 31, + "SetItemTitle": 32, + "SetItemDescription": 33, + "SetItemUpdateLanguage": 34, + "SetItemMetadata": 35, + "SetItemVisibility": 36, + "SetItemTags": 37, + "SetItemContent": 38, + "SetItemPreview": 39, + "RemoveItemKeyValueTags": 40, + "AddItemKeyValueTag": 41, + "SubmitItemUpdate": 42, + "GetItemUpdateProgress": 43, + "SetUserItemVote": 44, + "GetUserItemVote": 45, + "AddItemToFavorites": 46, + "RemoveItemFromFavorites": 47, + "SubscribeItem": 48, + "UnsubscribeItem": 49, + "GetNumSubscribedItems": 50, + "GetSubscribedItems": 51, + "GetItemState": 52, + "GetItemInstallInfo": 53, + "GetItemDownloadInfo": 54, + "DownloadItem": 55, + "BInitWorkshopForGameServer": 56, + "SuspendDownloads": 57 }, "SteamController003": { - "ActivateActionSet": 6, - "GetActionSetHandle": 5, - "GetAnalogActionData": 12, - "GetAnalogActionHandle": 11, - "GetAnalogActionOrigins": 13, - "GetConnectedControllers": 3, - "GetCurrentActionSet": 7, - "GetDigitalActionData": 9, - "GetDigitalActionHandle": 8, - "GetDigitalActionOrigins": 10, "Init": 0, - "RunFrame": 2, - "ShowBindingPanel": 4, "Shutdown": 1, + "RunFrame": 2, + "GetConnectedControllers": 3, + "ShowBindingPanel": 4, + "GetActionSetHandle": 5, + "ActivateActionSet": 6, + "GetCurrentActionSet": 7, + "GetDigitalActionHandle": 8, + "GetDigitalActionData": 9, + "GetDigitalActionOrigins": 10, + "GetAnalogActionHandle": 11, + "GetAnalogActionData": 12, + "GetAnalogActionOrigins": 13, "StopAnalogActionMomentum": 14, "TriggerHapticPulse": 15, "TriggerRepeatedHapticPulse": 16 }, + "STEAMREMOTESTORAGE_INTERFACE_VERSION013": { + "FileWrite": 0, + "FileRead": 1, + "FileWriteAsync": 2, + "FileReadAsync": 3, + "FileReadAsyncComplete": 4, + "FileForget": 5, + "FileDelete": 6, + "FileShare": 7, + "SetSyncPlatforms": 8, + "FileWriteStreamOpen": 9, + "FileWriteStreamWriteChunk": 10, + "FileWriteStreamClose": 11, + "FileWriteStreamCancel": 12, + "FileExists": 13, + "FilePersisted": 14, + "GetFileSize": 15, + "GetFileTimestamp": 16, + "GetSyncPlatforms": 17, + "GetFileCount": 18, + "GetFileNameAndSize": 19, + "GetQuota": 20, + "IsCloudEnabledForAccount": 21, + "IsCloudEnabledForApp": 22, + "SetCloudEnabledForApp": 23, + "UGCDownload": 24, + "GetUGCDownloadProgress": 25, + "GetUGCDetails": 26, + "UGCRead": 27, + "GetCachedUGCCount": 28, + "PublishWorkshopFile": 29, + "CreatePublishedFileUpdateRequest": 30, + "UpdatePublishedFileFile": 31, + "UpdatePublishedFilePreviewFile": 32, + "UpdatePublishedFileTitle": 33, + "UpdatePublishedFileDescription": 34, + "UpdatePublishedFileVisibility": 35, + "UpdatePublishedFileTags": 36, + "CommitPublishedFileUpdate": 37, + "GetPublishedFileDetails": 38, + "DeletePublishedFile": 39, + "EnumerateUserPublishedFiles": 40, + "SubscribePublishedFile": 41, + "EnumerateUserSubscribedFiles": 42, + "UnsubscribePublishedFile": 43, + "UpdatePublishedFileSetChangeDescription": 44, + "GetPublishedItemVoteDetails": 45, + "UpdateUserPublishedItemVote": 46, + "GetUserPublishedItemVoteDetails": 47, + "EnumerateUserSharedWorkshopFiles": 48, + "PublishVideo": 49, + "SetUserPublishedFileAction": 50, + "EnumeratePublishedFilesByUserAction": 51, + "EnumeratePublishedWorkshopFiles": 52, + "UGCDownloadToLocation": 53, + "GetFileListFromServer": 54, + "FileFetch": 55, + "FilePersist": 56, + "SynchronizeToClient": 57, + "SynchronizeToServer": 58, + "ResetFileRequestState": 59 + }, + "STEAMAPPS_INTERFACE_VERSION008": { + "BIsSubscribed": 0, + "BIsLowViolence": 1, + "BIsCybercafe": 2, + "BIsVACBanned": 3, + "GetCurrentGameLanguage": 4, + "GetAvailableGameLanguages": 5, + "BIsSubscribedApp": 6, + "BIsDlcInstalled": 7, + "GetEarliestPurchaseUnixTime": 8, + "BIsSubscribedFromFreeWeekend": 9, + "GetDLCCount": 10, + "BGetDLCDataByIndex": 11, + "InstallDLC": 12, + "UninstallDLC": 13, + "RequestAppProofOfPurchaseKey": 14, + "GetCurrentBetaName": 15, + "MarkContentCorrupt": 16, + "GetInstalledDepots": 17, + "GetAppInstallDir": 18, + "BIsAppInstalled": 19, + "GetAppOwner": 20, + "GetLaunchQueryParam": 21, + "GetDlcDownloadProgress": 22, + "GetAppBuildId": 23, + "RequestAllProofOfPurchaseKeys": 24, + "GetFileDetails": 25, + "GetLaunchCommandLine": 26, + "BIsSubscribedFromFamilySharing": 27, + "BIsTimedTrial": 28, + "SetDlcContext": 29, + "GetNumBetas": 30, + "GetBetaInfo": 31, + "SetActiveBeta": 32 + }, + "SteamUser019": { + "GetHSteamUser": 0, + "BLoggedOn": 1, + "GetSteamID": 2, + "InitiateGameConnection": 3, + "TerminateGameConnection": 4, + "TrackAppUsageEvent": 5, + "GetUserDataFolder": 6, + "StartVoiceRecording": 7, + "StopVoiceRecording": 8, + "GetAvailableVoice": 9, + "GetVoice": 10, + "DecompressVoice": 11, + "GetVoiceOptimalSampleRate": 12, + "GetAuthSessionTicket": 13, + "BeginAuthSession": 14, + "EndAuthSession": 15, + "CancelAuthTicket": 16, + "UserHasLicenseForApp": 17, + "BIsBehindNAT": 18, + "AdvertiseGame": 19, + "RequestEncryptedAppTicket": 20, + "GetEncryptedAppTicket": 21, + "GetGameBadgeLevel": 22, + "GetPlayerSteamLevel": 23, + "RequestStoreAuthURL": 24, + "BIsPhoneVerified": 25, + "BIsTwoFactorEnabled": 26, + "BIsPhoneIdentifying": 27, + "BIsPhoneRequiringVerification": 28 + }, + "STEAMUGC_INTERFACE_VERSION008": { + "CreateQueryUserUGCRequest": 0, + "CreateQueryAllUGCRequest": 1, + "CreateQueryUGCDetailsRequest": 2, + "SendQueryUGCRequest": 3, + "GetQueryUGCResult": 4, + "GetQueryUGCPreviewURL": 5, + "GetQueryUGCMetadata": 6, + "GetQueryUGCChildren": 7, + "GetQueryUGCStatistic": 8, + "GetQueryUGCNumAdditionalPreviews": 9, + "GetQueryUGCAdditionalPreview": 10, + "GetQueryUGCNumKeyValueTags": 11, + "GetQueryUGCKeyValueTag": 12, + "ReleaseQueryUGCRequest": 13, + "AddRequiredTag": 14, + "AddExcludedTag": 15, + "SetReturnKeyValueTags": 16, + "SetReturnLongDescription": 17, + "SetReturnMetadata": 18, + "SetReturnChildren": 19, + "SetReturnAdditionalPreviews": 20, + "SetReturnTotalOnly": 21, + "SetLanguage": 22, + "SetAllowCachedResponse": 23, + "SetCloudFileNameFilter": 24, + "SetMatchAnyTag": 25, + "SetSearchText": 26, + "SetRankedByTrendDays": 27, + "AddRequiredKeyValueTag": 28, + "RequestUGCDetails": 29, + "CreateItem": 30, + "StartItemUpdate": 31, + "SetItemTitle": 32, + "SetItemDescription": 33, + "SetItemUpdateLanguage": 34, + "SetItemMetadata": 35, + "SetItemVisibility": 36, + "SetItemTags": 37, + "SetItemContent": 38, + "SetItemPreview": 39, + "RemoveItemKeyValueTags": 40, + "AddItemKeyValueTag": 41, + "AddItemPreviewFile": 42, + "AddItemPreviewVideo": 43, + "UpdateItemPreviewFile": 44, + "UpdateItemPreviewVideo": 45, + "RemoveItemPreview": 46, + "SubmitItemUpdate": 47, + "GetItemUpdateProgress": 48, + "SetUserItemVote": 49, + "GetUserItemVote": 50, + "AddItemToFavorites": 51, + "RemoveItemFromFavorites": 52, + "SubscribeItem": 53, + "UnsubscribeItem": 54, + "GetNumSubscribedItems": 55, + "GetSubscribedItems": 56, + "GetItemState": 57, + "GetItemInstallInfo": 58, + "GetItemDownloadInfo": 59, + "DownloadItem": 60, + "BInitWorkshopForGameServer": 61, + "SuspendDownloads": 62 + }, + "SteamUtils008": { + "GetSecondsSinceAppActive": 0, + "GetSecondsSinceComputerActive": 1, + "GetConnectedUniverse": 2, + "GetServerRealTime": 3, + "GetIPCountry": 4, + "GetImageSize": 5, + "GetImageRGBA": 6, + "GetCSERIPPort": 7, + "GetCurrentBatteryPower": 8, + "GetAppID": 9, + "SetOverlayNotificationPosition": 10, + "IsAPICallCompleted": 11, + "GetAPICallFailureReason": 12, + "GetAPICallResult": 13, + "RunFrame": 14, + "GetIPCCallCount": 15, + "SetWarningMessageHook": 16, + "IsOverlayEnabled": 17, + "BOverlayNeedsPresent": 18, + "CheckFileSignature": 19, + "ShowGamepadTextInput": 20, + "GetEnteredGamepadTextLength": 21, + "GetEnteredGamepadTextInput": 22, + "GetSteamUILanguage": 23, + "IsSteamRunningInVR": 24, + "SetOverlayNotificationInset": 25, + "IsSteamInBigPictureMode": 26, + "StartVRDashboard": 27 + }, "SteamController004": { - "ActivateActionSet": 6, - "GetActionSetHandle": 5, - "GetAnalogActionData": 12, - "GetAnalogActionHandle": 11, - "GetAnalogActionOrigins": 13, - "GetConnectedControllers": 3, - "GetControllerForGamepadIndex": 18, - "GetCurrentActionSet": 7, - "GetDigitalActionData": 9, - "GetDigitalActionHandle": 8, - "GetDigitalActionOrigins": 10, - "GetGamepadIndexForController": 17, - "GetMotionData": 19, "Init": 0, - "RunFrame": 2, - "ShowAnalogActionOrigins": 21, - "ShowBindingPanel": 4, - "ShowDigitalActionOrigins": 20, "Shutdown": 1, - "StopAnalogActionMomentum": 14, - "TriggerHapticPulse": 15, - "TriggerRepeatedHapticPulse": 16 - }, - "SteamController005": { - "ActivateActionSet": 6, - "GetActionSetHandle": 5, - "GetAnalogActionData": 12, - "GetAnalogActionHandle": 11, - "GetAnalogActionOrigins": 13, + "RunFrame": 2, "GetConnectedControllers": 3, - "GetControllerForGamepadIndex": 20, - "GetCurrentActionSet": 7, - "GetDigitalActionData": 9, - "GetDigitalActionHandle": 8, - "GetDigitalActionOrigins": 10, - "GetGamepadIndexForController": 19, - "GetGlyphForActionOrigin": 25, - "GetMotionData": 21, - "GetStringForActionOrigin": 24, - "Init": 0, - "RunFrame": 2, - "SetLEDColor": 18, - "ShowAnalogActionOrigins": 23, "ShowBindingPanel": 4, - "ShowDigitalActionOrigins": 22, - "Shutdown": 1, + "GetActionSetHandle": 5, + "ActivateActionSet": 6, + "GetCurrentActionSet": 7, + "GetDigitalActionHandle": 8, + "GetDigitalActionData": 9, + "GetDigitalActionOrigins": 10, + "GetAnalogActionHandle": 11, + "GetAnalogActionData": 12, + "GetAnalogActionOrigins": 13, "StopAnalogActionMomentum": 14, "TriggerHapticPulse": 15, "TriggerRepeatedHapticPulse": 16, - "TriggerVibration": 17 + "GetGamepadIndexForController": 17, + "GetControllerForGamepadIndex": 18, + "GetMotionData": 19, + "ShowDigitalActionOrigins": 20, + "ShowAnalogActionOrigins": 21 + }, + "STEAMSCREENSHOTS_INTERFACE_VERSION003": { + "WriteScreenshot": 0, + "AddScreenshotToLibrary": 1, + "TriggerScreenshot": 2, + "HookScreenshots": 3, + "SetLocation": 4, + "TagUser": 5, + "TagPublishedFile": 6, + "IsScreenshotsHooked": 7, + "AddVRScreenshotToLibrary": 8 + }, + "STEAMREMOTESTORAGE_INTERFACE_VERSION014": { + "FileWrite": 0, + "FileRead": 1, + "FileWriteAsync": 2, + "FileReadAsync": 3, + "FileReadAsyncComplete": 4, + "FileForget": 5, + "FileDelete": 6, + "FileShare": 7, + "SetSyncPlatforms": 8, + "FileWriteStreamOpen": 9, + "FileWriteStreamWriteChunk": 10, + "FileWriteStreamClose": 11, + "FileWriteStreamCancel": 12, + "FileExists": 13, + "FilePersisted": 14, + "GetFileSize": 15, + "GetFileTimestamp": 16, + "GetSyncPlatforms": 17, + "GetFileCount": 18, + "GetFileNameAndSize": 19, + "GetQuota": 20, + "IsCloudEnabledForAccount": 21, + "IsCloudEnabledForApp": 22, + "SetCloudEnabledForApp": 23, + "UGCDownload": 24, + "GetUGCDownloadProgress": 25, + "GetUGCDetails": 26, + "UGCRead": 27, + "GetCachedUGCCount": 28, + "PublishWorkshopFile": 29, + "CreatePublishedFileUpdateRequest": 30, + "UpdatePublishedFileFile": 31, + "UpdatePublishedFilePreviewFile": 32, + "UpdatePublishedFileTitle": 33, + "UpdatePublishedFileDescription": 34, + "UpdatePublishedFileVisibility": 35, + "UpdatePublishedFileTags": 36, + "CommitPublishedFileUpdate": 37, + "GetPublishedFileDetails": 38, + "DeletePublishedFile": 39, + "EnumerateUserPublishedFiles": 40, + "SubscribePublishedFile": 41, + "EnumerateUserSubscribedFiles": 42, + "UnsubscribePublishedFile": 43, + "UpdatePublishedFileSetChangeDescription": 44, + "GetPublishedItemVoteDetails": 45, + "UpdateUserPublishedItemVote": 46, + "GetUserPublishedItemVoteDetails": 47, + "EnumerateUserSharedWorkshopFiles": 48, + "PublishVideo": 49, + "SetUserPublishedFileAction": 50, + "EnumeratePublishedFilesByUserAction": 51, + "EnumeratePublishedWorkshopFiles": 52, + "UGCDownloadToLocation": 53, + "GetFileListFromServer": 54, + "FileFetch": 55, + "FilePersist": 56, + "SynchronizeToClient": 57, + "SynchronizeToServer": 58, + "ResetFileRequestState": 59 + }, + "STEAMUGC_INTERFACE_VERSION009": { + "CreateQueryUserUGCRequest": 0, + "CreateQueryAllUGCRequest": 1, + "CreateQueryUGCDetailsRequest": 2, + "SendQueryUGCRequest": 3, + "GetQueryUGCResult": 4, + "GetQueryUGCPreviewURL": 5, + "GetQueryUGCMetadata": 6, + "GetQueryUGCChildren": 7, + "GetQueryUGCStatistic": 8, + "GetQueryUGCNumAdditionalPreviews": 9, + "GetQueryUGCAdditionalPreview": 10, + "GetQueryUGCNumKeyValueTags": 11, + "GetQueryUGCKeyValueTag": 12, + "ReleaseQueryUGCRequest": 13, + "AddRequiredTag": 14, + "AddExcludedTag": 15, + "SetReturnOnlyIDs": 16, + "SetReturnKeyValueTags": 17, + "SetReturnLongDescription": 18, + "SetReturnMetadata": 19, + "SetReturnChildren": 20, + "SetReturnAdditionalPreviews": 21, + "SetReturnTotalOnly": 22, + "SetLanguage": 23, + "SetAllowCachedResponse": 24, + "SetCloudFileNameFilter": 25, + "SetMatchAnyTag": 26, + "SetSearchText": 27, + "SetRankedByTrendDays": 28, + "AddRequiredKeyValueTag": 29, + "RequestUGCDetails": 30, + "CreateItem": 31, + "StartItemUpdate": 32, + "SetItemTitle": 33, + "SetItemDescription": 34, + "SetItemUpdateLanguage": 35, + "SetItemMetadata": 36, + "SetItemVisibility": 37, + "SetItemTags": 38, + "SetItemContent": 39, + "SetItemPreview": 40, + "RemoveItemKeyValueTags": 41, + "AddItemKeyValueTag": 42, + "AddItemPreviewFile": 43, + "AddItemPreviewVideo": 44, + "UpdateItemPreviewFile": 45, + "UpdateItemPreviewVideo": 46, + "RemoveItemPreview": 47, + "SubmitItemUpdate": 48, + "GetItemUpdateProgress": 49, + "SetUserItemVote": 50, + "GetUserItemVote": 51, + "AddItemToFavorites": 52, + "RemoveItemFromFavorites": 53, + "SubscribeItem": 54, + "UnsubscribeItem": 55, + "GetNumSubscribedItems": 56, + "GetSubscribedItems": 57, + "GetItemState": 58, + "GetItemInstallInfo": 59, + "GetItemDownloadInfo": 60, + "DownloadItem": 61, + "BInitWorkshopForGameServer": 62, + "SuspendDownloads": 63, + "StartPlaytimeTracking": 64, + "StopPlaytimeTracking": 65, + "StopPlaytimeTrackingForAllItems": 66 + }, + "SteamController005": { + "Init": 0, + "Shutdown": 1, + "RunFrame": 2, + "GetConnectedControllers": 3, + "ShowBindingPanel": 4, + "GetActionSetHandle": 5, + "ActivateActionSet": 6, + "GetCurrentActionSet": 7, + "GetDigitalActionHandle": 8, + "GetDigitalActionData": 9, + "GetDigitalActionOrigins": 10, + "GetAnalogActionHandle": 11, + "GetAnalogActionData": 12, + "GetAnalogActionOrigins": 13, + "StopAnalogActionMomentum": 14, + "TriggerHapticPulse": 15, + "TriggerRepeatedHapticPulse": 16, + "TriggerVibration": 17, + "SetLEDColor": 18, + "GetGamepadIndexForController": 19, + "GetControllerForGamepadIndex": 20, + "GetMotionData": 21, + "ShowDigitalActionOrigins": 22, + "ShowAnalogActionOrigins": 23, + "GetStringForActionOrigin": 24, + "GetGlyphForActionOrigin": 25 + }, + "STEAMINVENTORY_INTERFACE_V002": { + "GetResultStatus": 0, + "GetResultItems": 1, + "GetResultItemProperty": 2, + "GetResultTimestamp": 3, + "CheckResultSteamID": 4, + "DestroyResult": 5, + "GetAllItems": 6, + "GetItemsByID": 7, + "SerializeResult": 8, + "DeserializeResult": 9, + "GenerateItems": 10, + "GrantPromoItems": 11, + "AddPromoItem": 12, + "AddPromoItems": 13, + "ConsumeItem": 14, + "ExchangeItems": 15, + "TransferItemQuantity": 16, + "SendItemDropHeartbeat": 17, + "TriggerItemDrop": 18, + "TradeItems": 19, + "LoadItemDefinitions": 20, + "GetItemDefinitionIDs": 21, + "GetItemDefinitionProperty": 22, + "RequestEligiblePromoItemDefinitionsIDs": 23, + "GetEligiblePromoItemDefinitionIDs": 24, + "StartPurchase": 25, + "RequestPrices": 26, + "GetNumItemsWithPrices": 27, + "GetItemsWithPrices": 28, + "GetItemPrice": 29, + "StartUpdateProperties": 30, + "RemoveProperty": 31, + "SetProperty": 35, + "SubmitUpdateProperties": 36 + }, + "SteamUtils009": { + "GetSecondsSinceAppActive": 0, + "GetSecondsSinceComputerActive": 1, + "GetConnectedUniverse": 2, + "GetServerRealTime": 3, + "GetIPCountry": 4, + "GetImageSize": 5, + "GetImageRGBA": 6, + "GetCSERIPPort": 7, + "GetCurrentBatteryPower": 8, + "GetAppID": 9, + "SetOverlayNotificationPosition": 10, + "IsAPICallCompleted": 11, + "GetAPICallFailureReason": 12, + "GetAPICallResult": 13, + "RunFrame": 14, + "GetIPCCallCount": 15, + "SetWarningMessageHook": 16, + "IsOverlayEnabled": 17, + "BOverlayNeedsPresent": 18, + "CheckFileSignature": 19, + "ShowGamepadTextInput": 20, + "GetEnteredGamepadTextLength": 21, + "GetEnteredGamepadTextInput": 22, + "GetSteamUILanguage": 23, + "IsSteamRunningInVR": 24, + "SetOverlayNotificationInset": 25, + "IsSteamInBigPictureMode": 26, + "StartVRDashboard": 27, + "IsVRHeadsetStreamingEnabled": 28, + "SetVRHeadsetStreamingEnabled": 29, + "IsSteamChinaLauncher": 30, + "InitFilterText": 31, + "FilterText": 32, + "GetIPv6ConnectivityState": 33 + }, + "STEAMUGC_INTERFACE_VERSION010": { + "CreateQueryUserUGCRequest": 0, + "CreateQueryAllUGCRequest": 1, + "CreateQueryUGCDetailsRequest": 2, + "SendQueryUGCRequest": 3, + "GetQueryUGCResult": 4, + "GetQueryUGCPreviewURL": 5, + "GetQueryUGCMetadata": 6, + "GetQueryUGCChildren": 7, + "GetQueryUGCStatistic": 8, + "GetQueryUGCNumAdditionalPreviews": 9, + "GetQueryUGCAdditionalPreview": 10, + "GetQueryUGCNumKeyValueTags": 11, + "GetQueryUGCKeyValueTag": 12, + "ReleaseQueryUGCRequest": 13, + "AddRequiredTag": 14, + "AddExcludedTag": 15, + "SetReturnOnlyIDs": 16, + "SetReturnKeyValueTags": 17, + "SetReturnLongDescription": 18, + "SetReturnMetadata": 19, + "SetReturnChildren": 20, + "SetReturnAdditionalPreviews": 21, + "SetReturnTotalOnly": 22, + "SetReturnPlaytimeStats": 23, + "SetLanguage": 24, + "SetAllowCachedResponse": 25, + "SetCloudFileNameFilter": 26, + "SetMatchAnyTag": 27, + "SetSearchText": 28, + "SetRankedByTrendDays": 29, + "AddRequiredKeyValueTag": 30, + "RequestUGCDetails": 31, + "CreateItem": 32, + "StartItemUpdate": 33, + "SetItemTitle": 34, + "SetItemDescription": 35, + "SetItemUpdateLanguage": 36, + "SetItemMetadata": 37, + "SetItemVisibility": 38, + "SetItemTags": 39, + "SetItemContent": 40, + "SetItemPreview": 41, + "RemoveItemKeyValueTags": 42, + "AddItemKeyValueTag": 43, + "AddItemPreviewFile": 44, + "AddItemPreviewVideo": 45, + "UpdateItemPreviewFile": 46, + "UpdateItemPreviewVideo": 47, + "RemoveItemPreview": 48, + "SubmitItemUpdate": 49, + "GetItemUpdateProgress": 50, + "SetUserItemVote": 51, + "GetUserItemVote": 52, + "AddItemToFavorites": 53, + "RemoveItemFromFavorites": 54, + "SubscribeItem": 55, + "UnsubscribeItem": 56, + "GetNumSubscribedItems": 57, + "GetSubscribedItems": 58, + "GetItemState": 59, + "GetItemInstallInfo": 60, + "GetItemDownloadInfo": 61, + "DownloadItem": 62, + "BInitWorkshopForGameServer": 63, + "SuspendDownloads": 64, + "StartPlaytimeTracking": 65, + "StopPlaytimeTracking": 66, + "StopPlaytimeTrackingForAllItems": 67, + "AddDependency": 68, + "RemoveDependency": 69, + "AddAppDependency": 70, + "RemoveAppDependency": 71, + "GetAppDependencies": 72, + "DeleteItem": 73 + }, + "STEAMVIDEO_INTERFACE_V002": { + "GetVideoURL": 0, + "IsBroadcasting": 1, + "GetOPFSettings": 2, + "GetOPFStringForApp": 3 + }, + "STEAMHTMLSURFACE_INTERFACE_VERSION_004": { + "Init": 0, + "Shutdown": 1, + "CreateBrowser": 2, + "RemoveBrowser": 3, + "LoadURL": 4, + "SetSize": 5, + "StopLoad": 6, + "Reload": 7, + "GoBack": 8, + "GoForward": 9, + "AddHeader": 10, + "ExecuteJavascript": 11, + "MouseUp": 12, + "MouseDown": 13, + "MouseDoubleClick": 14, + "MouseMove": 15, + "MouseWheel": 16, + "KeyDown": 17, + "KeyUp": 18, + "KeyChar": 19, + "SetHorizontalScroll": 20, + "SetVerticalScroll": 21, + "SetKeyFocus": 22, + "ViewSource": 23, + "CopyToClipboard": 24, + "PasteFromClipboard": 25, + "Find": 26, + "StopFind": 27, + "GetLinkAtPosition": 28, + "SetCookie": 29, + "SetPageScaleFactor": 30, + "SetBackgroundMode": 31, + "SetDPIScalingFactor": 32, + "AllowStartRequest": 33, + "JSDialogResponse": 34, + "FileLoadDialogResponse": 35 + }, + "STEAMPARENTALSETTINGS_INTERFACE_VERSION001": { + "BIsParentalLockEnabled": 0, + "BIsParentalLockLocked": 1, + "BIsAppBlocked": 2, + "BIsAppInBlockList": 3, + "BIsFeatureBlocked": 4, + "BIsFeatureInBlockList": 5 }, "SteamController006": { + "Init": 0, + "Shutdown": 1, + "RunFrame": 2, + "GetConnectedControllers": 3, + "ShowBindingPanel": 4, + "GetActionSetHandle": 5, "ActivateActionSet": 6, + "GetCurrentActionSet": 7, "ActivateActionSetLayer": 8, "DeactivateActionSetLayer": 9, "DeactivateAllActionSetLayers": 10, - "GetActionSetHandle": 5, "GetActiveActionSetLayers": 11, - "GetAnalogActionData": 16, - "GetAnalogActionHandle": 15, - "GetAnalogActionOrigins": 17, - "GetConnectedControllers": 3, - "GetControllerForGamepadIndex": 24, - "GetCurrentActionSet": 7, - "GetDigitalActionData": 13, "GetDigitalActionHandle": 12, + "GetDigitalActionData": 13, "GetDigitalActionOrigins": 14, - "GetGamepadIndexForController": 23, - "GetGlyphForActionOrigin": 29, - "GetInputTypeForHandle": 30, - "GetMotionData": 25, - "GetStringForActionOrigin": 28, - "Init": 0, - "RunFrame": 2, - "SetLEDColor": 22, - "ShowAnalogActionOrigins": 27, - "ShowBindingPanel": 4, - "ShowDigitalActionOrigins": 26, - "Shutdown": 1, + "GetAnalogActionHandle": 15, + "GetAnalogActionData": 16, + "GetAnalogActionOrigins": 17, "StopAnalogActionMomentum": 18, "TriggerHapticPulse": 19, "TriggerRepeatedHapticPulse": 20, - "TriggerVibration": 21 + "TriggerVibration": 21, + "SetLEDColor": 22, + "GetGamepadIndexForController": 23, + "GetControllerForGamepadIndex": 24, + "GetMotionData": 25, + "ShowDigitalActionOrigins": 26, + "ShowAnalogActionOrigins": 27, + "GetStringForActionOrigin": 28, + "GetGlyphForActionOrigin": 29, + "GetInputTypeForHandle": 30 + }, + "SteamClient018": { + "CreateSteamPipe": 0, + "BReleaseSteamPipe": 1, + "ConnectToGlobalUser": 2, + "CreateLocalUser": 3, + "ReleaseUser": 4, + "GetISteamUser": 5, + "GetISteamGameServer": 6, + "SetLocalIPBinding": 7, + "GetISteamFriends": 8, + "GetISteamUtils": 9, + "GetISteamMatchmaking": 10, + "GetISteamMatchmakingServers": 11, + "GetISteamGenericInterface": 12, + "GetISteamUserStats": 13, + "GetISteamGameServerStats": 14, + "GetISteamApps": 15, + "GetISteamNetworking": 16, + "GetISteamRemoteStorage": 17, + "GetISteamScreenshots": 18, + "GetISteamGameSearch": 19, + "RunFrame": 20, + "GetIPCCallCount": 21, + "SetWarningMessageHook": 22, + "BShutdownIfAllPipesClosed": 23, + "GetISteamHTTP": 24, + "DEPRECATED_GetISteamUnifiedMessages": 25, + "GetISteamController": 26, + "GetISteamUGC": 27, + "GetISteamAppList": 28, + "GetISteamMusic": 29, + "GetISteamMusicRemote": 30, + "GetISteamHTMLSurface": 31, + "DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess": 32, + "DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess": 33, + "Set_SteamAPI_CCheckCallbackRegisteredInProcess": 34, + "GetISteamInventory": 35, + "GetISteamVideo": 36, + "GetISteamParentalSettings": 37, + "GetISteamInput": 38, + "GetISteamParties": 39 }, "SteamController007": { + "Init": 0, + "Shutdown": 1, + "RunFrame": 2, + "GetConnectedControllers": 3, + "GetActionSetHandle": 4, "ActivateActionSet": 5, + "GetCurrentActionSet": 6, "ActivateActionSetLayer": 7, "DeactivateActionSetLayer": 8, "DeactivateAllActionSetLayers": 9, - "GetActionOriginFromXboxOrigin": 31, - "GetActionSetHandle": 4, "GetActiveActionSetLayers": 10, - "GetAnalogActionData": 15, - "GetAnalogActionHandle": 14, - "GetAnalogActionOrigins": 16, - "GetConnectedControllers": 3, - "GetControllerBindingRevision": 33, - "GetControllerForGamepadIndex": 27, - "GetCurrentActionSet": 6, - "GetDigitalActionData": 12, "GetDigitalActionHandle": 11, + "GetDigitalActionData": 12, "GetDigitalActionOrigins": 13, - "GetGamepadIndexForController": 28, + "GetAnalogActionHandle": 14, + "GetAnalogActionData": 15, + "GetAnalogActionOrigins": 16, "GetGlyphForActionOrigin": 17, - "GetGlyphForXboxOrigin": 30, - "GetInputTypeForHandle": 26, - "GetMotionData": 20, "GetStringForActionOrigin": 18, - "GetStringForXboxOrigin": 29, - "Init": 0, - "RunFrame": 2, - "SetLEDColor": 24, - "ShowBindingPanel": 25, - "Shutdown": 1, "StopAnalogActionMomentum": 19, - "TranslateActionOrigin": 32, + "GetMotionData": 20, "TriggerHapticPulse": 21, "TriggerRepeatedHapticPulse": 22, - "TriggerVibration": 23 - }, - "SteamController008": { - "ActivateActionSet": 5, - "ActivateActionSetLayer": 7, - "DeactivateActionSetLayer": 8, - "DeactivateAllActionSetLayers": 9, - "GetActionOriginFromXboxOrigin": 31, - "GetActionSetHandle": 4, - "GetActiveActionSetLayers": 10, - "GetAnalogActionData": 15, - "GetAnalogActionHandle": 14, - "GetAnalogActionOrigins": 16, - "GetConnectedControllers": 3, - "GetControllerBindingRevision": 33, - "GetControllerForGamepadIndex": 27, - "GetCurrentActionSet": 6, - "GetDigitalActionData": 12, - "GetDigitalActionHandle": 11, - "GetDigitalActionOrigins": 13, - "GetGamepadIndexForController": 28, - "GetGlyphForActionOrigin": 17, - "GetGlyphForXboxOrigin": 30, - "GetInputTypeForHandle": 26, - "GetMotionData": 20, - "GetStringForActionOrigin": 18, - "GetStringForXboxOrigin": 29, - "Init": 0, - "RunFrame": 2, + "TriggerVibration": 23, "SetLEDColor": 24, "ShowBindingPanel": 25, - "Shutdown": 1, - "StopAnalogActionMomentum": 19, + "GetInputTypeForHandle": 26, + "GetControllerForGamepadIndex": 27, + "GetGamepadIndexForController": 28, + "GetStringForXboxOrigin": 29, + "GetGlyphForXboxOrigin": 30, + "GetActionOriginFromXboxOrigin": 31, "TranslateActionOrigin": 32, - "TriggerHapticPulse": 21, - "TriggerRepeatedHapticPulse": 22, - "TriggerVibration": 23 - }, - "SteamFriends003": { - "ActivateGameOverlay": 19, - "GetClanByIndex": 13, - "GetClanCount": 12, - "GetClanName": 14, - "GetFriendAvatar": 8, - "GetFriendByIndex": 4, - "GetFriendCount": 3, - "GetFriendCountFromSource": 15, - "GetFriendFromSourceByIndex": 16, - "GetFriendGamePlayed": 9, - "GetFriendPersonaName": 7, - "GetFriendPersonaNameHistory": 10, - "GetFriendPersonaState": 6, - "GetFriendRelationship": 5, - "GetPersonaName": 0, - "GetPersonaState": 2, - "HasFriend": 11, - "IsUserInSource": 17, - "SetInGameVoiceSpeaking": 18, - "SetPersonaName": 1 - }, - "SteamFriends004": { - "ActivateGameOverlay": 19, - "GetClanByIndex": 13, - "GetClanCount": 12, - "GetClanName": 14, - "GetFriendAvatar": 8, - "GetFriendByIndex": 4, - "GetFriendCount": 3, - "GetFriendCountFromSource": 15, - "GetFriendFromSourceByIndex": 16, - "GetFriendGamePlayed": 9, - "GetFriendPersonaName": 7, - "GetFriendPersonaNameHistory": 10, - "GetFriendPersonaState": 6, - "GetFriendRelationship": 5, - "GetPersonaName": 0, - "GetPersonaState": 2, - "HasFriend": 11, - "IsUserInSource": 17, - "SetInGameVoiceSpeaking": 18, - "SetPersonaName": 1 - }, - "SteamFriends005": { - "ActivateGameOverlay": 19, - "ActivateGameOverlayToStore": 22, - "ActivateGameOverlayToUser": 20, - "ActivateGameOverlayToWebPage": 21, - "GetClanByIndex": 13, - "GetClanCount": 12, - "GetClanName": 14, - "GetFriendAvatar": 8, - "GetFriendByIndex": 4, - "GetFriendCount": 3, - "GetFriendCountFromSource": 15, - "GetFriendFromSourceByIndex": 16, - "GetFriendGamePlayed": 9, - "GetFriendPersonaName": 7, - "GetFriendPersonaNameHistory": 10, - "GetFriendPersonaState": 6, - "GetFriendRelationship": 5, - "GetPersonaName": 0, - "GetPersonaState": 2, - "HasFriend": 11, - "IsUserInSource": 17, - "SetInGameVoiceSpeaking": 18, - "SetPersonaName": 1, - "SetPlayedWith": 23 - }, - "SteamFriends006": { - "ActivateGameOverlay": 20, - "ActivateGameOverlayInviteDialog": 25, - "ActivateGameOverlayToStore": 23, - "ActivateGameOverlayToUser": 21, - "ActivateGameOverlayToWebPage": 22, - "GetClanByIndex": 13, - "GetClanCount": 12, - "GetClanName": 14, - "GetClanTag": 15, - "GetFriendAvatar": 8, - "GetFriendByIndex": 4, - "GetFriendCount": 3, - "GetFriendCountFromSource": 16, - "GetFriendFromSourceByIndex": 17, - "GetFriendGamePlayed": 9, - "GetFriendPersonaName": 7, - "GetFriendPersonaNameHistory": 10, - "GetFriendPersonaState": 6, - "GetFriendRelationship": 5, - "GetPersonaName": 0, - "GetPersonaState": 2, - "HasFriend": 11, - "IsUserInSource": 18, - "SetInGameVoiceSpeaking": 19, - "SetPersonaName": 1, - "SetPlayedWith": 24 - }, - "SteamFriends007": { - "ActivateGameOverlay": 19, - "ActivateGameOverlayInviteDialog": 24, - "ActivateGameOverlayToStore": 22, - "ActivateGameOverlayToUser": 20, - "ActivateGameOverlayToWebPage": 21, - "GetClanByIndex": 12, - "GetClanCount": 11, - "GetClanName": 13, - "GetClanTag": 14, - "GetFriendByIndex": 4, - "GetFriendCount": 3, - "GetFriendCountFromSource": 15, - "GetFriendFromSourceByIndex": 16, - "GetFriendGamePlayed": 8, - "GetFriendPersonaName": 7, - "GetFriendPersonaNameHistory": 9, - "GetFriendPersonaState": 6, - "GetFriendRelationship": 5, - "GetLargeFriendAvatar": 27, - "GetMediumFriendAvatar": 26, - "GetPersonaName": 0, - "GetPersonaState": 2, - "GetSmallFriendAvatar": 25, - "HasFriend": 10, - "IsUserInSource": 17, - "SetInGameVoiceSpeaking": 18, - "SetPersonaName": 1, - "SetPlayedWith": 23 - }, - "SteamFriends008": { - "ActivateGameOverlay": 19, - "ActivateGameOverlayInviteDialog": 24, - "ActivateGameOverlayToStore": 22, - "ActivateGameOverlayToUser": 20, - "ActivateGameOverlayToWebPage": 21, - "GetClanByIndex": 12, - "GetClanCount": 11, - "GetClanName": 13, - "GetClanOfficerByIndex": 32, - "GetClanOfficerCount": 31, - "GetClanOwner": 30, - "GetClanTag": 14, - "GetFriendByIndex": 4, - "GetFriendCount": 3, - "GetFriendCountFromSource": 15, - "GetFriendFromSourceByIndex": 16, - "GetFriendGamePlayed": 8, - "GetFriendPersonaName": 7, - "GetFriendPersonaNameHistory": 9, - "GetFriendPersonaState": 6, - "GetFriendRelationship": 5, - "GetLargeFriendAvatar": 27, - "GetMediumFriendAvatar": 26, - "GetPersonaName": 0, - "GetPersonaState": 2, - "GetSmallFriendAvatar": 25, - "GetUserRestrictions": 33, - "HasFriend": 10, - "IsUserInSource": 17, - "RequestClanOfficerList": 29, - "RequestUserInformation": 28, - "SetInGameVoiceSpeaking": 18, - "SetPersonaName": 1, - "SetPlayedWith": 23 - }, - "SteamFriends009": { - "ActivateGameOverlay": 19, - "ActivateGameOverlayInviteDialog": 24, - "ActivateGameOverlayToStore": 22, - "ActivateGameOverlayToUser": 20, - "ActivateGameOverlayToWebPage": 21, - "ClearRichPresence": 35, - "GetClanByIndex": 12, - "GetClanCount": 11, - "GetClanName": 13, - "GetClanOfficerByIndex": 32, - "GetClanOfficerCount": 31, - "GetClanOwner": 30, - "GetClanTag": 14, - "GetCoplayFriend": 41, - "GetCoplayFriendCount": 40, - "GetFriendByIndex": 4, - "GetFriendCoplayGame": 43, - "GetFriendCoplayTime": 42, - "GetFriendCount": 3, - "GetFriendCountFromSource": 15, - "GetFriendFromSourceByIndex": 16, - "GetFriendGamePlayed": 8, - "GetFriendPersonaName": 7, - "GetFriendPersonaNameHistory": 9, - "GetFriendPersonaState": 6, - "GetFriendRelationship": 5, - "GetFriendRichPresence": 36, - "GetFriendRichPresenceKeyByIndex": 38, - "GetFriendRichPresenceKeyCount": 37, - "GetLargeFriendAvatar": 27, - "GetMediumFriendAvatar": 26, - "GetPersonaName": 0, - "GetPersonaState": 2, - "GetSmallFriendAvatar": 25, - "GetUserRestrictions": 33, - "HasFriend": 10, - "InviteUserToGame": 39, - "IsUserInSource": 17, - "RequestClanOfficerList": 29, - "RequestUserInformation": 28, - "SetInGameVoiceSpeaking": 18, - "SetPersonaName": 1, - "SetPlayedWith": 23, - "SetRichPresence": 34 - }, - "SteamFriends011": { - "ActivateGameOverlay": 21, - "ActivateGameOverlayInviteDialog": 26, - "ActivateGameOverlayToStore": 24, - "ActivateGameOverlayToUser": 22, - "ActivateGameOverlayToWebPage": 23, - "ClearRichPresence": 37, - "CloseClanChatWindowInSteam": 56, - "DownloadClanActivityCounts": 16, - "EnumerateFollowingList": 62, - "GetChatMemberByIndex": 50, - "GetClanActivityCounts": 15, - "GetClanByIndex": 12, - "GetClanChatMemberCount": 49, - "GetClanChatMessage": 52, - "GetClanCount": 11, - "GetClanName": 13, - "GetClanOfficerByIndex": 34, - "GetClanOfficerCount": 33, - "GetClanOwner": 32, - "GetClanTag": 14, - "GetCoplayFriend": 44, - "GetCoplayFriendCount": 43, - "GetFollowerCount": 60, - "GetFriendByIndex": 4, - "GetFriendCoplayGame": 46, - "GetFriendCoplayTime": 45, - "GetFriendCount": 3, - "GetFriendCountFromSource": 17, - "GetFriendFromSourceByIndex": 18, - "GetFriendGamePlayed": 8, - "GetFriendMessage": 59, - "GetFriendPersonaName": 7, - "GetFriendPersonaNameHistory": 9, - "GetFriendPersonaState": 6, - "GetFriendRelationship": 5, - "GetFriendRichPresence": 38, - "GetFriendRichPresenceKeyByIndex": 40, - "GetFriendRichPresenceKeyCount": 39, - "GetLargeFriendAvatar": 29, - "GetMediumFriendAvatar": 28, - "GetPersonaName": 0, - "GetPersonaState": 2, - "GetSmallFriendAvatar": 27, - "GetUserRestrictions": 35, - "HasFriend": 10, - "InviteUserToGame": 42, - "IsClanChatAdmin": 53, - "IsClanChatWindowOpenInSteam": 54, - "IsFollowing": 61, - "IsUserInSource": 19, - "JoinClanChatRoom": 47, - "LeaveClanChatRoom": 48, - "OpenClanChatWindowInSteam": 55, - "ReplyToFriendMessage": 58, - "RequestClanOfficerList": 31, - "RequestFriendRichPresence": 41, - "RequestUserInformation": 30, - "SendClanChatMessage": 51, - "SetInGameVoiceSpeaking": 20, - "SetListenForFriendsMessages": 57, - "SetPersonaName": 1, - "SetPlayedWith": 25, - "SetRichPresence": 36 - }, - "SteamFriends013": { - "ActivateGameOverlay": 21, - "ActivateGameOverlayInviteDialog": 26, - "ActivateGameOverlayToStore": 24, - "ActivateGameOverlayToUser": 22, - "ActivateGameOverlayToWebPage": 23, - "ClearRichPresence": 37, - "CloseClanChatWindowInSteam": 56, - "DownloadClanActivityCounts": 16, - "EnumerateFollowingList": 62, - "GetChatMemberByIndex": 50, - "GetClanActivityCounts": 15, - "GetClanByIndex": 12, - "GetClanChatMemberCount": 49, - "GetClanChatMessage": 52, - "GetClanCount": 11, - "GetClanName": 13, - "GetClanOfficerByIndex": 34, - "GetClanOfficerCount": 33, - "GetClanOwner": 32, - "GetClanTag": 14, - "GetCoplayFriend": 44, - "GetCoplayFriendCount": 43, - "GetFollowerCount": 60, - "GetFriendByIndex": 4, - "GetFriendCoplayGame": 46, - "GetFriendCoplayTime": 45, - "GetFriendCount": 3, - "GetFriendCountFromSource": 17, - "GetFriendFromSourceByIndex": 18, - "GetFriendGamePlayed": 8, - "GetFriendMessage": 59, - "GetFriendPersonaName": 7, - "GetFriendPersonaNameHistory": 9, - "GetFriendPersonaState": 6, - "GetFriendRelationship": 5, - "GetFriendRichPresence": 38, - "GetFriendRichPresenceKeyByIndex": 40, - "GetFriendRichPresenceKeyCount": 39, - "GetLargeFriendAvatar": 29, - "GetMediumFriendAvatar": 28, - "GetPersonaName": 0, - "GetPersonaState": 2, - "GetSmallFriendAvatar": 27, - "GetUserRestrictions": 35, - "HasFriend": 10, - "InviteUserToGame": 42, - "IsClanChatAdmin": 53, - "IsClanChatWindowOpenInSteam": 54, - "IsFollowing": 61, - "IsUserInSource": 19, - "JoinClanChatRoom": 47, - "LeaveClanChatRoom": 48, - "OpenClanChatWindowInSteam": 55, - "ReplyToFriendMessage": 58, - "RequestClanOfficerList": 31, - "RequestFriendRichPresence": 41, - "RequestUserInformation": 30, - "SendClanChatMessage": 51, - "SetInGameVoiceSpeaking": 20, - "SetListenForFriendsMessages": 57, - "SetPersonaName": 1, - "SetPlayedWith": 25, - "SetRichPresence": 36 - }, - "SteamFriends014": { - "ActivateGameOverlay": 22, - "ActivateGameOverlayInviteDialog": 27, - "ActivateGameOverlayToStore": 25, - "ActivateGameOverlayToUser": 23, - "ActivateGameOverlayToWebPage": 24, - "ClearRichPresence": 38, - "CloseClanChatWindowInSteam": 57, - "DownloadClanActivityCounts": 17, - "EnumerateFollowingList": 63, - "GetChatMemberByIndex": 51, - "GetClanActivityCounts": 16, - "GetClanByIndex": 13, - "GetClanChatMemberCount": 50, - "GetClanChatMessage": 53, - "GetClanCount": 12, - "GetClanName": 14, - "GetClanOfficerByIndex": 35, - "GetClanOfficerCount": 34, - "GetClanOwner": 33, - "GetClanTag": 15, - "GetCoplayFriend": 45, - "GetCoplayFriendCount": 44, - "GetFollowerCount": 61, - "GetFriendByIndex": 4, - "GetFriendCoplayGame": 47, - "GetFriendCoplayTime": 46, - "GetFriendCount": 3, - "GetFriendCountFromSource": 18, - "GetFriendFromSourceByIndex": 19, - "GetFriendGamePlayed": 8, - "GetFriendMessage": 60, - "GetFriendPersonaName": 7, - "GetFriendPersonaNameHistory": 9, - "GetFriendPersonaState": 6, - "GetFriendRelationship": 5, - "GetFriendRichPresence": 39, - "GetFriendRichPresenceKeyByIndex": 41, - "GetFriendRichPresenceKeyCount": 40, - "GetLargeFriendAvatar": 30, - "GetMediumFriendAvatar": 29, - "GetPersonaName": 0, - "GetPersonaState": 2, - "GetPlayerNickname": 10, - "GetSmallFriendAvatar": 28, - "GetUserRestrictions": 36, - "HasFriend": 11, - "InviteUserToGame": 43, - "IsClanChatAdmin": 54, - "IsClanChatWindowOpenInSteam": 55, - "IsFollowing": 62, - "IsUserInSource": 20, - "JoinClanChatRoom": 48, - "LeaveClanChatRoom": 49, - "OpenClanChatWindowInSteam": 56, - "ReplyToFriendMessage": 59, - "RequestClanOfficerList": 32, - "RequestFriendRichPresence": 42, - "RequestUserInformation": 31, - "SendClanChatMessage": 52, - "SetInGameVoiceSpeaking": 21, - "SetListenForFriendsMessages": 58, - "SetPersonaName": 1, - "SetPlayedWith": 26, - "SetRichPresence": 37 - }, - "SteamFriends015": { - "ActivateGameOverlay": 28, - "ActivateGameOverlayInviteDialog": 33, - "ActivateGameOverlayToStore": 31, - "ActivateGameOverlayToUser": 29, - "ActivateGameOverlayToWebPage": 30, - "ClearRichPresence": 44, - "CloseClanChatWindowInSteam": 63, - "DownloadClanActivityCounts": 23, - "EnumerateFollowingList": 69, - "GetChatMemberByIndex": 57, - "GetClanActivityCounts": 22, - "GetClanByIndex": 19, - "GetClanChatMemberCount": 56, - "GetClanChatMessage": 59, - "GetClanCount": 18, - "GetClanName": 20, - "GetClanOfficerByIndex": 41, - "GetClanOfficerCount": 40, - "GetClanOwner": 39, - "GetClanTag": 21, - "GetCoplayFriend": 51, - "GetCoplayFriendCount": 50, - "GetFollowerCount": 67, - "GetFriendByIndex": 4, - "GetFriendCoplayGame": 53, - "GetFriendCoplayTime": 52, - "GetFriendCount": 3, - "GetFriendCountFromSource": 24, - "GetFriendFromSourceByIndex": 25, - "GetFriendGamePlayed": 8, - "GetFriendMessage": 66, - "GetFriendPersonaName": 7, - "GetFriendPersonaNameHistory": 9, - "GetFriendPersonaState": 6, - "GetFriendRelationship": 5, - "GetFriendRichPresence": 45, - "GetFriendRichPresenceKeyByIndex": 47, - "GetFriendRichPresenceKeyCount": 46, - "GetFriendSteamLevel": 10, - "GetFriendsGroupCount": 12, - "GetFriendsGroupIDByIndex": 13, - "GetFriendsGroupMembersCount": 15, - "GetFriendsGroupMembersList": 16, - "GetFriendsGroupName": 14, - "GetLargeFriendAvatar": 36, - "GetMediumFriendAvatar": 35, - "GetPersonaName": 0, - "GetPersonaState": 2, - "GetPlayerNickname": 11, - "GetSmallFriendAvatar": 34, - "GetUserRestrictions": 42, - "HasFriend": 17, - "InviteUserToGame": 49, - "IsClanChatAdmin": 60, - "IsClanChatWindowOpenInSteam": 61, - "IsClanOfficialGameGroup": 71, - "IsClanPublic": 70, - "IsFollowing": 68, - "IsUserInSource": 26, - "JoinClanChatRoom": 54, - "LeaveClanChatRoom": 55, - "OpenClanChatWindowInSteam": 62, - "ReplyToFriendMessage": 65, - "RequestClanOfficerList": 38, - "RequestFriendRichPresence": 48, - "RequestUserInformation": 37, - "SendClanChatMessage": 58, - "SetInGameVoiceSpeaking": 27, - "SetListenForFriendsMessages": 64, - "SetPersonaName": 1, - "SetPlayedWith": 32, - "SetRichPresence": 43 + "GetControllerBindingRevision": 33 }, "SteamFriends017": { - "ActivateGameOverlay": 28, - "ActivateGameOverlayInviteDialog": 33, - "ActivateGameOverlayInviteDialogConnectString": 75, - "ActivateGameOverlayRemotePlayTogetherInviteDialog": 73, - "ActivateGameOverlayToStore": 31, - "ActivateGameOverlayToUser": 29, - "ActivateGameOverlayToWebPage": 30, - "BHasEquippedProfileItem": 77, - "ClearRichPresence": 44, - "CloseClanChatWindowInSteam": 63, - "DownloadClanActivityCounts": 23, - "EnumerateFollowingList": 69, - "GetChatMemberByIndex": 57, - "GetClanActivityCounts": 22, - "GetClanByIndex": 19, - "GetClanChatMemberCount": 56, - "GetClanChatMessage": 59, - "GetClanCount": 18, - "GetClanName": 20, - "GetClanOfficerByIndex": 41, - "GetClanOfficerCount": 40, - "GetClanOwner": 39, - "GetClanTag": 21, - "GetCoplayFriend": 51, - "GetCoplayFriendCount": 50, - "GetFollowerCount": 67, - "GetFriendByIndex": 4, - "GetFriendCoplayGame": 53, - "GetFriendCoplayTime": 52, + "GetPersonaName": 0, + "SetPersonaName": 1, + "GetPersonaState": 2, "GetFriendCount": 3, - "GetFriendCountFromSource": 24, - "GetFriendFromSourceByIndex": 25, - "GetFriendGamePlayed": 8, - "GetFriendMessage": 66, - "GetFriendPersonaName": 7, - "GetFriendPersonaNameHistory": 9, - "GetFriendPersonaState": 6, + "GetFriendByIndex": 4, "GetFriendRelationship": 5, - "GetFriendRichPresence": 45, - "GetFriendRichPresenceKeyByIndex": 47, - "GetFriendRichPresenceKeyCount": 46, + "GetFriendPersonaState": 6, + "GetFriendPersonaName": 7, + "GetFriendGamePlayed": 8, + "GetFriendPersonaNameHistory": 9, "GetFriendSteamLevel": 10, + "GetPlayerNickname": 11, "GetFriendsGroupCount": 12, "GetFriendsGroupIDByIndex": 13, + "GetFriendsGroupName": 14, "GetFriendsGroupMembersCount": 15, "GetFriendsGroupMembersList": 16, - "GetFriendsGroupName": 14, - "GetLargeFriendAvatar": 36, - "GetMediumFriendAvatar": 35, - "GetNumChatsWithUnreadPriorityMessages": 72, - "GetPersonaName": 0, - "GetPersonaState": 2, - "GetPlayerNickname": 11, - "GetProfileItemPropertyString": 78, - "GetProfileItemPropertyUint": 79, - "GetSmallFriendAvatar": 34, - "GetUserRestrictions": 42, "HasFriend": 17, - "InviteUserToGame": 49, - "IsClanChatAdmin": 60, - "IsClanChatWindowOpenInSteam": 61, - "IsClanOfficialGameGroup": 71, - "IsClanPublic": 70, - "IsFollowing": 68, + "GetClanCount": 18, + "GetClanByIndex": 19, + "GetClanName": 20, + "GetClanTag": 21, + "GetClanActivityCounts": 22, + "DownloadClanActivityCounts": 23, + "GetFriendCountFromSource": 24, + "GetFriendFromSourceByIndex": 25, "IsUserInSource": 26, + "SetInGameVoiceSpeaking": 27, + "ActivateGameOverlay": 28, + "ActivateGameOverlayToUser": 29, + "ActivateGameOverlayToWebPage": 30, + "ActivateGameOverlayToStore": 31, + "SetPlayedWith": 32, + "ActivateGameOverlayInviteDialog": 33, + "GetSmallFriendAvatar": 34, + "GetMediumFriendAvatar": 35, + "GetLargeFriendAvatar": 36, + "RequestUserInformation": 37, + "RequestClanOfficerList": 38, + "GetClanOwner": 39, + "GetClanOfficerCount": 40, + "GetClanOfficerByIndex": 41, + "GetUserRestrictions": 42, + "SetRichPresence": 43, + "ClearRichPresence": 44, + "GetFriendRichPresence": 45, + "GetFriendRichPresenceKeyCount": 46, + "GetFriendRichPresenceKeyByIndex": 47, + "RequestFriendRichPresence": 48, + "InviteUserToGame": 49, + "GetCoplayFriendCount": 50, + "GetCoplayFriend": 51, + "GetFriendCoplayTime": 52, + "GetFriendCoplayGame": 53, "JoinClanChatRoom": 54, "LeaveClanChatRoom": 55, - "OpenClanChatWindowInSteam": 62, - "RegisterProtocolInOverlayBrowser": 74, - "ReplyToFriendMessage": 65, - "RequestClanOfficerList": 38, - "RequestEquippedProfileItems": 76, - "RequestFriendRichPresence": 48, - "RequestUserInformation": 37, + "GetClanChatMemberCount": 56, + "GetChatMemberByIndex": 57, "SendClanChatMessage": 58, - "SetInGameVoiceSpeaking": 27, + "GetClanChatMessage": 59, + "IsClanChatAdmin": 60, + "IsClanChatWindowOpenInSteam": 61, + "OpenClanChatWindowInSteam": 62, + "CloseClanChatWindowInSteam": 63, "SetListenForFriendsMessages": 64, - "SetPersonaName": 1, - "SetPlayedWith": 32, - "SetRichPresence": 43 + "ReplyToFriendMessage": 65, + "GetFriendMessage": 66, + "GetFollowerCount": 67, + "IsFollowing": 68, + "EnumerateFollowingList": 69, + "IsClanPublic": 70, + "IsClanOfficialGameGroup": 71, + "GetNumChatsWithUnreadPriorityMessages": 72, + "ActivateGameOverlayRemotePlayTogetherInviteDialog": 73, + "RegisterProtocolInOverlayBrowser": 74, + "ActivateGameOverlayInviteDialogConnectString": 75, + "RequestEquippedProfileItems": 76, + "BHasEquippedProfileItem": 77, + "GetProfileItemPropertyString": 78, + "GetProfileItemPropertyUint": 79 }, - "SteamFriends018": { - "ActivateGameOverlay": 27, - "ActivateGameOverlayInviteDialog": 32, - "ActivateGameOverlayInviteDialogConnectString": 73, - "ActivateGameOverlayRemotePlayTogetherInviteDialog": 71, - "ActivateGameOverlayToStore": 30, - "ActivateGameOverlayToUser": 28, - "ActivateGameOverlayToWebPage": 29, - "BHasEquippedProfileItem": 75, - "ClearRichPresence": 42, - "CloseClanChatWindowInSteam": 61, - "DownloadClanActivityCounts": 22, - "EnumerateFollowingList": 67, - "GetChatMemberByIndex": 55, - "GetClanActivityCounts": 21, - "GetClanByIndex": 18, - "GetClanChatMemberCount": 54, - "GetClanChatMessage": 57, - "GetClanCount": 17, - "GetClanName": 19, - "GetClanOfficerByIndex": 40, - "GetClanOfficerCount": 39, - "GetClanOwner": 38, - "GetClanTag": 20, - "GetCoplayFriend": 49, - "GetCoplayFriendCount": 48, - "GetFollowerCount": 65, - "GetFriendByIndex": 3, - "GetFriendCoplayGame": 51, - "GetFriendCoplayTime": 50, - "GetFriendCount": 2, - "GetFriendCountFromSource": 23, - "GetFriendFromSourceByIndex": 24, - "GetFriendGamePlayed": 7, - "GetFriendMessage": 64, - "GetFriendPersonaName": 6, - "GetFriendPersonaNameHistory": 8, - "GetFriendPersonaState": 5, - "GetFriendRelationship": 4, - "GetFriendRichPresence": 43, - "GetFriendRichPresenceKeyByIndex": 45, - "GetFriendRichPresenceKeyCount": 44, - "GetFriendSteamLevel": 9, - "GetFriendsGroupCount": 11, - "GetFriendsGroupIDByIndex": 12, - "GetFriendsGroupMembersCount": 14, - "GetFriendsGroupMembersList": 15, - "GetFriendsGroupName": 13, - "GetLargeFriendAvatar": 35, - "GetMediumFriendAvatar": 34, - "GetNumChatsWithUnreadPriorityMessages": 70, - "GetPersonaName": 0, - "GetPersonaState": 1, - "GetPlayerNickname": 10, - "GetProfileItemPropertyString": 76, - "GetProfileItemPropertyUint": 77, - "GetSmallFriendAvatar": 33, - "HasFriend": 16, - "InviteUserToGame": 47, - "IsClanChatAdmin": 58, - "IsClanChatWindowOpenInSteam": 59, - "IsClanOfficialGameGroup": 69, - "IsClanPublic": 68, - "IsFollowing": 66, - "IsUserInSource": 25, - "JoinClanChatRoom": 52, - "LeaveClanChatRoom": 53, - "OpenClanChatWindowInSteam": 60, - "RegisterProtocolInOverlayBrowser": 72, - "ReplyToFriendMessage": 63, - "RequestClanOfficerList": 37, - "RequestEquippedProfileItems": 74, - "RequestFriendRichPresence": 46, - "RequestUserInformation": 36, - "SendClanChatMessage": 56, - "SetInGameVoiceSpeaking": 26, - "SetListenForFriendsMessages": 62, - "SetPlayedWith": 31, - "SetRichPresence": 41 - }, - "SteamGameCoordinator001": { - "IsMessageAvailable": 1, - "RetrieveMessage": 2, - "SendMessage": 0 - }, - "SteamGameServer004": { - "BGetUserAchievementStatus": 13, - "BLoggedOn": 2, - "BSecure": 3, - "BSetServerType": 9, - "BUpdateUserData": 8, - "CreateUnauthenticatedUserConnection": 6, - "GetSteamID": 4, - "LogOff": 1, - "LogOn": 0, - "SendUserConnectAndAuthenticate": 5, - "SendUserDisconnect": 7, - "SetGameType": 12, - "UpdateServerStatus": 10, - "UpdateSpectatorPort": 11 - }, - "SteamGameServer005": { - "BGetUserAchievementStatus": 13, - "BLoggedOn": 2, - "BSecure": 3, - "BSetServerType": 9, - "BUpdateUserData": 8, - "CreateUnauthenticatedUserConnection": 6, - "GetSteamID": 4, - "LogOff": 1, - "LogOn": 0, - "SendUserConnectAndAuthenticate": 5, - "SendUserDisconnect": 7, - "SetGameType": 12, - "UpdateServerStatus": 10, - "UpdateSpectatorPort": 11 - }, - "SteamGameServer008": { - "BGetUserAchievementStatus": 13, - "BLoggedOn": 2, - "BSecure": 3, - "BSetServerType": 9, - "BUpdateUserData": 8, - "CreateUnauthenticatedUserConnection": 6, - "GetGameplayStats": 14, - "GetPublicIP": 16, - "GetSteamID": 4, - "LogOff": 1, - "LogOn": 0, - "RequestUserGroupStatus": 15, - "SendUserConnectAndAuthenticate": 5, - "SendUserDisconnect": 7, - "SetGameType": 12, - "UpdateServerStatus": 10, - "UpdateSpectatorPort": 11 - }, - "SteamGameServer009": { - "BGetUserAchievementStatus": 13, - "BLoggedOn": 2, - "BSecure": 3, - "BSetServerType": 9, - "BUpdateUserData": 8, - "CreateUnauthenticatedUserConnection": 6, - "GetGameplayStats": 14, - "GetPublicIP": 16, - "GetSteamID": 4, - "LogOff": 1, - "LogOn": 0, - "RequestUserGroupStatus": 15, - "SendUserConnectAndAuthenticate": 5, - "SendUserDisconnect": 7, - "SetGameData": 17, - "SetGameType": 12, - "UpdateServerStatus": 10, - "UpdateSpectatorPort": 11, - "UserHasLicenseForApp": 18 - }, - "SteamGameServer010": { - "BLoggedOn": 2, - "BSecure": 3, - "BSetServerType": 9, - "BUpdateUserData": 8, - "BeginAuthSession": 20, - "CancelAuthTicket": 22, - "CreateUnauthenticatedUserConnection": 6, - "EndAuthSession": 21, - "GetAuthSessionTicket": 19, - "GetGameplayStats": 13, - "GetPublicIP": 16, - "GetServerReputation": 14, - "GetSteamID": 4, - "LogOff": 1, - "LogOn": 0, - "RequestUserGroupStatus": 15, - "SendUserConnectAndAuthenticate": 5, - "SendUserDisconnect": 7, - "SetGameData": 17, - "SetGameTags": 12, - "UpdateServerStatus": 10, - "UpdateSpectatorPort": 11, - "UserHasLicenseForApp": 18 - }, - "SteamGameServer011": { - "AssociateWithClan": 42, - "BLoggedOn": 8, - "BSecure": 9, - "BUpdateUserData": 27, - "BeginAuthSession": 29, - "CancelAuthTicket": 31, - "ClearAllKeyValues": 19, - "ComputeNewPlayerCompatibility": 43, - "CreateUnauthenticatedUserConnection": 25, - "EnableHeartbeats": 39, - "EndAuthSession": 30, - "ForceHeartbeat": 41, - "GetAuthSessionTicket": 28, - "GetGameplayStats": 34, - "GetNextOutgoingPacket": 38, - "GetPublicIP": 36, - "GetServerReputation": 35, - "GetSteamID": 10, - "HandleIncomingPacket": 37, - "InitGameServer": 0, - "LogOff": 7, - "LogOn": 5, - "LogOnAnonymous": 6, - "RequestUserGroupStatus": 33, - "SendUserConnectAndAuthenticate": 24, - "SendUserDisconnect": 26, - "SetBotPlayerCount": 13, - "SetDedicatedServer": 4, - "SetGameData": 22, - "SetGameDescription": 2, - "SetGameTags": 21, - "SetHeartbeatInterval": 40, - "SetKeyValue": 20, - "SetMapName": 15, - "SetMaxPlayerCount": 12, - "SetModDir": 3, - "SetPasswordProtected": 16, - "SetProduct": 1, - "SetRegion": 23, - "SetServerName": 14, - "SetSpectatorPort": 17, - "SetSpectatorServerName": 18, - "UserHasLicenseForApp": 32, - "WasRestartRequested": 11 - }, - "SteamGameServer012": { - "AssociateWithClan": 42, - "BLoggedOn": 8, - "BSecure": 9, - "BUpdateUserData": 27, - "BeginAuthSession": 29, - "CancelAuthTicket": 31, - "ClearAllKeyValues": 19, - "ComputeNewPlayerCompatibility": 43, - "CreateUnauthenticatedUserConnection": 25, - "EnableHeartbeats": 39, - "EndAuthSession": 30, - "ForceHeartbeat": 41, - "GetAuthSessionTicket": 28, - "GetGameplayStats": 34, - "GetNextOutgoingPacket": 38, - "GetPublicIP": 36, - "GetServerReputation": 35, - "GetSteamID": 10, - "HandleIncomingPacket": 37, - "InitGameServer": 0, - "LogOff": 7, - "LogOn": 5, - "LogOnAnonymous": 6, - "RequestUserGroupStatus": 33, - "SendUserConnectAndAuthenticate": 24, - "SendUserDisconnect": 26, - "SetBotPlayerCount": 13, - "SetDedicatedServer": 4, - "SetGameData": 22, - "SetGameDescription": 2, - "SetGameTags": 21, - "SetHeartbeatInterval": 40, - "SetKeyValue": 20, - "SetMapName": 15, - "SetMaxPlayerCount": 12, - "SetModDir": 3, - "SetPasswordProtected": 16, - "SetProduct": 1, - "SetRegion": 23, - "SetServerName": 14, - "SetSpectatorPort": 17, - "SetSpectatorServerName": 18, - "UserHasLicenseForApp": 32, - "WasRestartRequested": 11 - }, - "SteamGameServer013": { - "AssociateWithClan": 41, - "BLoggedOn": 7, - "BSecure": 8, - "BUpdateUserData": 26, - "BeginAuthSession": 28, - "CancelAuthTicket": 30, - "ClearAllKeyValues": 18, - "ComputeNewPlayerCompatibility": 42, - "CreateUnauthenticatedUserConnection": 24, - "EnableHeartbeats": 38, - "EndAuthSession": 29, - "ForceHeartbeat": 40, - "GetAuthSessionTicket": 27, - "GetGameplayStats": 33, - "GetNextOutgoingPacket": 37, - "GetPublicIP": 35, - "GetServerReputation": 34, - "GetSteamID": 9, - "HandleIncomingPacket": 36, - "LogOff": 6, - "LogOn": 4, - "LogOnAnonymous": 5, - "RequestUserGroupStatus": 32, - "SendUserConnectAndAuthenticate": 23, - "SendUserDisconnect": 25, - "SetBotPlayerCount": 12, - "SetDedicatedServer": 3, - "SetGameData": 21, - "SetGameDescription": 1, - "SetGameTags": 20, - "SetHeartbeatInterval": 39, - "SetKeyValue": 19, - "SetMapName": 14, - "SetMaxPlayerCount": 11, - "SetModDir": 2, - "SetPasswordProtected": 15, - "SetProduct": 0, - "SetRegion": 22, - "SetServerName": 13, - "SetSpectatorPort": 16, - "SetSpectatorServerName": 17, - "UserHasLicenseForApp": 31, - "WasRestartRequested": 10 - }, - "SteamGameServer014": { - "AssociateWithClan": 35, - "BLoggedOn": 7, - "BSecure": 8, - "BUpdateUserData": 40, - "BeginAuthSession": 25, - "CancelAuthTicket": 27, - "ClearAllKeyValues": 18, - "ComputeNewPlayerCompatibility": 36, - "CreateUnauthenticatedUserConnection": 38, - "EndAuthSession": 26, - "ForceMasterServerHeartbeat_DEPRECATED": 41, - "GetAuthSessionTicket": 24, - "GetGameplayStats": 30, - "GetNextOutgoingPacket": 34, - "GetPublicIP": 32, - "GetServerReputation": 31, - "GetSteamID": 9, - "HandleIncomingPacket": 33, - "LogOff": 6, - "LogOn": 4, - "LogOnAnonymous": 5, - "RequestUserGroupStatus": 29, - "SendUserConnectAndAuthenticate_DEPRECATED": 37, - "SendUserDisconnect_DEPRECATED": 39, - "SetAdvertiseServerActive": 23, - "SetBotPlayerCount": 12, - "SetDedicatedServer": 3, - "SetGameData": 21, - "SetGameDescription": 1, - "SetGameTags": 20, - "SetKeyValue": 19, - "SetMapName": 14, - "SetMaxPlayerCount": 11, - "SetModDir": 2, - "SetPasswordProtected": 15, - "SetProduct": 0, - "SetRegion": 22, - "SetServerName": 13, - "SetSpectatorPort": 16, - "SetSpectatorServerName": 17, - "UserHasLicenseForApp": 28, - "WasRestartRequested": 10 - }, - "SteamGameServer015": { - "AssociateWithClan": 35, - "BLoggedOn": 7, - "BSecure": 8, - "BUpdateUserData": 40, - "BeginAuthSession": 25, - "CancelAuthTicket": 27, - "ClearAllKeyValues": 18, - "ComputeNewPlayerCompatibility": 36, - "CreateUnauthenticatedUserConnection": 38, - "EndAuthSession": 26, - "ForceMasterServerHeartbeat_DEPRECATED": 41, - "GetAuthSessionTicket": 24, - "GetGameplayStats": 30, - "GetNextOutgoingPacket": 34, - "GetPublicIP": 32, - "GetServerReputation": 31, - "GetSteamID": 9, - "HandleIncomingPacket": 33, - "LogOff": 6, - "LogOn": 4, - "LogOnAnonymous": 5, - "RequestUserGroupStatus": 29, - "SendUserConnectAndAuthenticate_DEPRECATED": 37, - "SendUserDisconnect_DEPRECATED": 39, - "SetAdvertiseServerActive": 23, - "SetBotPlayerCount": 12, - "SetDedicatedServer": 3, - "SetGameData": 21, - "SetGameDescription": 1, - "SetGameTags": 20, - "SetKeyValue": 19, - "SetMapName": 14, - "SetMaxPlayerCount": 11, - "SetModDir": 2, - "SetPasswordProtected": 15, - "SetProduct": 0, - "SetRegion": 22, - "SetServerName": 13, - "SetSpectatorPort": 16, - "SetSpectatorServerName": 17, - "UserHasLicenseForApp": 28, - "WasRestartRequested": 10 - }, - "SteamGameServerStats001": { - "ClearUserAchievement": 8, - "GetUserAchievement": 3, - "GetUserStat": 2, - "RequestUserStats": 0, - "SetUserAchievement": 7, - "SetUserStat": 5, - "StoreUserStats": 9, - "UpdateUserAvgRateStat": 6 - }, - "SteamGameStats001": { - "AddNewRow": 5, - "AddRowAtributeString": 9, - "AddRowAttributeFloat": 10, - "AddRowAttributeInt": 8, - "AddRowAttributeInt64": 12, - "AddSessionAttributeFloat": 4, - "AddSessionAttributeInt": 2, - "AddSessionAttributeInt64": 11, - "AddSessionAttributeString": 3, - "CommitOutstandingRows": 7, - "CommitRow": 6, - "EndSession": 1, - "GetNewSession": 0 + "STEAMHTTP_INTERFACE_VERSION003": { + "CreateHTTPRequest": 0, + "SetHTTPRequestContextValue": 1, + "SetHTTPRequestNetworkActivityTimeout": 2, + "SetHTTPRequestHeaderValue": 3, + "SetHTTPRequestGetOrPostParameter": 4, + "SendHTTPRequest": 5, + "SendHTTPRequestAndStreamResponse": 6, + "DeferHTTPRequest": 7, + "PrioritizeHTTPRequest": 8, + "GetHTTPResponseHeaderSize": 9, + "GetHTTPResponseHeaderValue": 10, + "GetHTTPResponseBodySize": 11, + "GetHTTPResponseBodyData": 12, + "GetHTTPStreamingResponseBodyData": 13, + "ReleaseHTTPRequest": 14, + "GetHTTPDownloadProgressPct": 15, + "SetHTTPRequestRawPostBody": 16, + "CreateCookieContainer": 17, + "ReleaseCookieContainer": 18, + "SetCookie": 19, + "SetHTTPRequestCookieContainer": 20, + "SetHTTPRequestUserAgentInfo": 21, + "SetHTTPRequestRequiresVerifiedCertificate": 22, + "SetHTTPRequestAbsoluteTimeoutMS": 23, + "GetHTTPRequestWasTimedOut": 24 }, "SteamInput001": { + "Init": 0, + "Shutdown": 1, + "RunFrame": 2, + "GetConnectedControllers": 3, + "GetActionSetHandle": 4, "ActivateActionSet": 5, + "GetCurrentActionSet": 6, "ActivateActionSetLayer": 7, "DeactivateActionSetLayer": 8, "DeactivateAllActionSetLayers": 9, - "GetActionOriginFromXboxOrigin": 31, - "GetActionSetHandle": 4, "GetActiveActionSetLayers": 10, - "GetAnalogActionData": 15, - "GetAnalogActionHandle": 14, - "GetAnalogActionOrigins": 16, - "GetConnectedControllers": 3, - "GetControllerForGamepadIndex": 27, - "GetCurrentActionSet": 6, - "GetDeviceBindingRevision": 33, - "GetDigitalActionData": 12, "GetDigitalActionHandle": 11, + "GetDigitalActionData": 12, "GetDigitalActionOrigins": 13, - "GetGamepadIndexForController": 28, + "GetAnalogActionHandle": 14, + "GetAnalogActionData": 15, + "GetAnalogActionOrigins": 16, "GetGlyphForActionOrigin": 17, - "GetGlyphForXboxOrigin": 30, - "GetInputTypeForHandle": 26, - "GetMotionData": 20, - "GetRemotePlaySessionID": 34, "GetStringForActionOrigin": 18, - "GetStringForXboxOrigin": 29, - "Init": 0, - "RunFrame": 2, - "SetLEDColor": 22, - "ShowBindingPanel": 25, - "Shutdown": 1, "StopAnalogActionMomentum": 19, - "TranslateActionOrigin": 32, + "GetMotionData": 20, + "TriggerVibration": 21, + "SetLEDColor": 22, "TriggerHapticPulse": 23, "TriggerRepeatedHapticPulse": 24, - "TriggerVibration": 21 - }, - "SteamInput002": { - "ActivateActionSet": 5, - "ActivateActionSetLayer": 7, - "DeactivateActionSetLayer": 8, - "DeactivateAllActionSetLayers": 9, - "GetActionOriginFromXboxOrigin": 31, - "GetActionSetHandle": 4, - "GetActiveActionSetLayers": 10, - "GetAnalogActionData": 15, - "GetAnalogActionHandle": 14, - "GetAnalogActionOrigins": 16, - "GetConnectedControllers": 3, - "GetControllerForGamepadIndex": 27, - "GetCurrentActionSet": 6, - "GetDeviceBindingRevision": 33, - "GetDigitalActionData": 12, - "GetDigitalActionHandle": 11, - "GetDigitalActionOrigins": 13, - "GetGamepadIndexForController": 28, - "GetGlyphForActionOrigin": 17, - "GetGlyphForXboxOrigin": 30, - "GetInputTypeForHandle": 26, - "GetMotionData": 20, - "GetRemotePlaySessionID": 34, - "GetStringForActionOrigin": 18, - "GetStringForXboxOrigin": 29, - "Init": 0, - "RunFrame": 2, - "SetLEDColor": 22, "ShowBindingPanel": 25, - "Shutdown": 1, - "StopAnalogActionMomentum": 19, + "GetInputTypeForHandle": 26, + "GetControllerForGamepadIndex": 27, + "GetGamepadIndexForController": 28, + "GetStringForXboxOrigin": 29, + "GetGlyphForXboxOrigin": 30, + "GetActionOriginFromXboxOrigin": 31, "TranslateActionOrigin": 32, - "TriggerHapticPulse": 23, - "TriggerRepeatedHapticPulse": 24, - "TriggerVibration": 21 + "GetDeviceBindingRevision": 33, + "GetRemotePlaySessionID": 34 }, - "SteamInput005": { - "ActivateActionSet": 10, - "ActivateActionSetLayer": 12, - "BNewDataAvailable": 5, - "BWaitForData": 4, - "DeactivateActionSetLayer": 13, - "DeactivateAllActionSetLayers": 14, - "EnableActionEventCallbacks": 8, - "EnableDeviceCallbacks": 7, - "GetActionOriginFromXboxOrigin": 42, - "GetActionSetHandle": 9, - "GetActiveActionSetLayers": 15, - "GetAnalogActionData": 21, - "GetAnalogActionHandle": 20, - "GetAnalogActionOrigins": 22, - "GetConnectedControllers": 6, - "GetControllerForGamepadIndex": 38, - "GetCurrentActionSet": 11, - "GetDeviceBindingRevision": 44, - "GetDigitalActionData": 17, - "GetDigitalActionHandle": 16, - "GetDigitalActionOrigins": 18, - "GetGamepadIndexForController": 39, - "GetGlyphForActionOrigin_Legacy": 25, - "GetGlyphForXboxOrigin": 41, - "GetGlyphPNGForActionOrigin": 23, - "GetGlyphSVGForActionOrigin": 24, - "GetInputTypeForHandle": 37, - "GetMotionData": 29, - "GetRemotePlaySessionID": 45, - "GetSessionInputConfigurationSettings": 46, - "GetStringForActionOrigin": 26, - "GetStringForAnalogActionName": 27, - "GetStringForDigitalActionName": 19, - "GetStringForXboxOrigin": 40, + "STEAMHTMLSURFACE_INTERFACE_VERSION_005": { "Init": 0, - "Legacy_TriggerHapticPulse": 34, - "Legacy_TriggerRepeatedHapticPulse": 35, - "RunFrame": 3, - "SetInputActionManifestFilePath": 2, - "SetLEDColor": 33, - "ShowBindingPanel": 36, "Shutdown": 1, - "StopAnalogActionMomentum": 28, - "TranslateActionOrigin": 43, - "TriggerSimpleHapticEvent": 32, - "TriggerVibration": 30, - "TriggerVibrationExtended": 31 + "CreateBrowser": 2, + "RemoveBrowser": 3, + "LoadURL": 4, + "SetSize": 5, + "StopLoad": 6, + "Reload": 7, + "GoBack": 8, + "GoForward": 9, + "AddHeader": 10, + "ExecuteJavascript": 11, + "MouseUp": 12, + "MouseDown": 13, + "MouseDoubleClick": 14, + "MouseMove": 15, + "MouseWheel": 16, + "KeyDown": 17, + "KeyUp": 18, + "KeyChar": 19, + "SetHorizontalScroll": 20, + "SetVerticalScroll": 21, + "SetKeyFocus": 22, + "ViewSource": 23, + "CopyToClipboard": 24, + "PasteFromClipboard": 25, + "Find": 26, + "StopFind": 27, + "GetLinkAtPosition": 28, + "SetCookie": 29, + "SetPageScaleFactor": 30, + "SetBackgroundMode": 31, + "SetDPIScalingFactor": 32, + "OpenDeveloperTools": 33, + "AllowStartRequest": 34, + "JSDialogResponse": 35, + "FileLoadDialogResponse": 36 }, - "SteamInput006": { - "ActivateActionSet": 10, - "ActivateActionSetLayer": 12, - "BNewDataAvailable": 5, - "BWaitForData": 4, - "DeactivateActionSetLayer": 13, - "DeactivateAllActionSetLayers": 14, - "EnableActionEventCallbacks": 8, - "EnableDeviceCallbacks": 7, - "GetActionOriginFromXboxOrigin": 42, - "GetActionSetHandle": 9, - "GetActiveActionSetLayers": 15, - "GetAnalogActionData": 21, - "GetAnalogActionHandle": 20, - "GetAnalogActionOrigins": 22, - "GetConnectedControllers": 6, - "GetControllerForGamepadIndex": 38, - "GetCurrentActionSet": 11, - "GetDeviceBindingRevision": 44, - "GetDigitalActionData": 17, - "GetDigitalActionHandle": 16, - "GetDigitalActionOrigins": 18, - "GetGamepadIndexForController": 39, - "GetGlyphForActionOrigin_Legacy": 25, - "GetGlyphForXboxOrigin": 41, - "GetGlyphPNGForActionOrigin": 23, - "GetGlyphSVGForActionOrigin": 24, - "GetInputTypeForHandle": 37, - "GetMotionData": 29, - "GetRemotePlaySessionID": 45, - "GetSessionInputConfigurationSettings": 46, - "GetStringForActionOrigin": 26, - "GetStringForAnalogActionName": 27, - "GetStringForDigitalActionName": 19, - "GetStringForXboxOrigin": 40, - "Init": 0, - "Legacy_TriggerHapticPulse": 34, - "Legacy_TriggerRepeatedHapticPulse": 35, - "RunFrame": 3, - "SetDualSenseTriggerEffect": 47, - "SetInputActionManifestFilePath": 2, - "SetLEDColor": 33, - "ShowBindingPanel": 36, - "Shutdown": 1, - "StopAnalogActionMomentum": 28, - "TranslateActionOrigin": 43, - "TriggerSimpleHapticEvent": 32, - "TriggerVibration": 30, - "TriggerVibrationExtended": 31 + "STEAMINVENTORY_INTERFACE_V003": { + "GetResultStatus": 0, + "GetResultItems": 1, + "GetResultItemProperty": 2, + "GetResultTimestamp": 3, + "CheckResultSteamID": 4, + "DestroyResult": 5, + "GetAllItems": 6, + "GetItemsByID": 7, + "SerializeResult": 8, + "DeserializeResult": 9, + "GenerateItems": 10, + "GrantPromoItems": 11, + "AddPromoItem": 12, + "AddPromoItems": 13, + "ConsumeItem": 14, + "ExchangeItems": 15, + "TransferItemQuantity": 16, + "SendItemDropHeartbeat": 17, + "TriggerItemDrop": 18, + "TradeItems": 19, + "LoadItemDefinitions": 20, + "GetItemDefinitionIDs": 21, + "GetItemDefinitionProperty": 22, + "RequestEligiblePromoItemDefinitionsIDs": 23, + "GetEligiblePromoItemDefinitionIDs": 24, + "StartPurchase": 25, + "RequestPrices": 26, + "GetNumItemsWithPrices": 27, + "GetItemsWithPrices": 28, + "GetItemPrice": 29, + "StartUpdateProperties": 30, + "RemoveProperty": 31, + "SetProperty": 35, + "SubmitUpdateProperties": 36, + "InspectItem": 37 }, - "SteamMasterServerUpdater001": { - "AddMasterServer": 10, - "ClearAllKeyValues": 5, - "ForceHeartbeat": 9, - "GetMasterServerAddress": 13, - "GetNextOutgoingPacket": 3, - "GetNumMasterServers": 12, - "HandleIncomingPacket": 2, - "NotifyShutdown": 7, - "RemoveMasterServer": 11, - "SetActive": 0, - "SetBasicServerData": 4, - "SetHeartbeatInterval": 1, - "SetKeyValue": 6, - "WasRestartRequested": 8 + "SteamUser020": { + "GetHSteamUser": 0, + "BLoggedOn": 1, + "GetSteamID": 2, + "InitiateGameConnection": 3, + "TerminateGameConnection": 4, + "TrackAppUsageEvent": 5, + "GetUserDataFolder": 6, + "StartVoiceRecording": 7, + "StopVoiceRecording": 8, + "GetAvailableVoice": 9, + "GetVoice": 10, + "DecompressVoice": 11, + "GetVoiceOptimalSampleRate": 12, + "GetAuthSessionTicket": 13, + "BeginAuthSession": 14, + "EndAuthSession": 15, + "CancelAuthTicket": 16, + "UserHasLicenseForApp": 17, + "BIsBehindNAT": 18, + "AdvertiseGame": 19, + "RequestEncryptedAppTicket": 20, + "GetEncryptedAppTicket": 21, + "GetGameBadgeLevel": 22, + "GetPlayerSteamLevel": 23, + "RequestStoreAuthURL": 24, + "BIsPhoneVerified": 25, + "BIsTwoFactorEnabled": 26, + "BIsPhoneIdentifying": 27, + "BIsPhoneRequiringVerification": 28, + "GetMarketEligibility": 29, + "GetDurationControl": 30 }, - "SteamMatchMakingServers001": { - "AddFavoriteGame": 2, - "AddPlayerToList": 0, - "AddRequestLobbyListFilterSlotsAvailable": 8, - "AddRequestLobbyListNearValueFilter": 7, - "AddRequestLobbyListNumericalFilter": 6, - "AddRequestLobbyListStringFilter": 5, - "CancelQuery": 7, - "CancelServerQuery": 15, - "CreateLobby": 10, - "DeleteLobbyData": 20, - "GetFavoriteGame": 1, - "GetFavoriteGameCount": 0, - "GetLobbyByIndex": 9, - "GetLobbyChatEntry": 24, - "GetLobbyData": 16, - "GetLobbyDataByIndex": 19, - "GetLobbyDataCount": 18, - "GetLobbyGameServer": 27, - "GetLobbyMemberByIndex": 15, - "GetLobbyMemberData": 21, - "GetLobbyMemberLimit": 29, - "GetLobbyOwner": 32, - "GetNumLobbyMembers": 14, - "GetServerCount": 10, - "GetServerDetails": 6, - "InviteUserToLobby": 13, - "IsRefreshing": 9, - "JoinLobby": 11, - "LeaveLobby": 12, - "PingServer": 12, - "PlayerDetails": 13, - "PlayersFailedToRespond": 1, - "PlayersRefreshComplete": 2, - "RefreshComplete": 2, - "RefreshQuery": 8, - "RefreshServer": 11, - "RemoveFavoriteGame": 3, - "RequestFavoritesServerList": 3, - "RequestFriendsServerList": 2, - "RequestHistoryServerList": 4, - "RequestInternetServerList": 0, - "RequestLANServerList": 1, - "RequestLobbyData": 25, - "RequestLobbyList": 4, - "RequestSpectatorServerList": 5, - "RulesFailedToRespond": 1, - "RulesRefreshComplete": 2, - "RulesResponded": 0, - "SendLobbyChatMsg": 23, - "ServerFailedToRespond": 1, - "ServerResponded": 0, - "ServerRules": 14, - "SetLobbyData": 17, - "SetLobbyGameServer": 26, - "SetLobbyJoinable": 31, - "SetLobbyMemberData": 22, - "SetLobbyMemberLimit": 28, - "SetLobbyOwner": 33, - "SetLobbyType": 30 - }, - "SteamMatchMakingServers002": { - "AddFavoriteGame": 2, - "AddPlayerToList": 0, - "AddRequestLobbyListCompatibleMembersFilter": 11, - "AddRequestLobbyListDistanceFilter": 9, - "AddRequestLobbyListFilterSlotsAvailable": 8, - "AddRequestLobbyListNearValueFilter": 7, - "AddRequestLobbyListNumericalFilter": 6, - "AddRequestLobbyListResultCountFilter": 10, - "AddRequestLobbyListStringFilter": 5, - "CancelQuery": 8, - "CancelServerQuery": 16, - "CheckForPSNGameBootInvite": 38, - "CreateLobby": 13, - "DeleteLobbyData": 23, - "GetFavoriteGame": 1, - "GetFavoriteGameCount": 0, - "GetLobbyByIndex": 12, - "GetLobbyChatEntry": 27, - "GetLobbyData": 19, - "GetLobbyDataByIndex": 22, - "GetLobbyDataCount": 21, - "GetLobbyGameServer": 30, - "GetLobbyMemberByIndex": 18, - "GetLobbyMemberData": 24, - "GetLobbyMemberLimit": 32, - "GetLobbyOwner": 35, - "GetNumLobbyMembers": 17, - "GetServerCount": 11, - "GetServerDetails": 7, - "InviteUserToLobby": 16, - "IsRefreshing": 10, - "JoinLobby": 14, - "LeaveLobby": 15, - "PingServer": 13, - "PlayerDetails": 14, - "PlayersFailedToRespond": 1, - "PlayersRefreshComplete": 2, - "RefreshComplete": 2, - "RefreshQuery": 9, - "RefreshServer": 12, - "ReleaseRequest": 6, - "RemoveFavoriteGame": 3, - "RequestFavoritesServerList": 3, - "RequestFriendsServerList": 2, - "RequestHistoryServerList": 4, - "RequestInternetServerList": 0, - "RequestLANServerList": 1, - "RequestLobbyData": 28, - "RequestLobbyList": 4, - "RequestSpectatorServerList": 5, - "RulesFailedToRespond": 1, - "RulesRefreshComplete": 2, - "RulesResponded": 0, - "SendLobbyChatMsg": 26, - "ServerFailedToRespond": 1, - "ServerResponded": 0, - "ServerRules": 15, - "SetLinkedLobby": 37, - "SetLobbyData": 20, - "SetLobbyGameServer": 29, - "SetLobbyJoinable": 34, - "SetLobbyMemberData": 25, - "SetLobbyMemberLimit": 31, - "SetLobbyOwner": 36, - "SetLobbyType": 33 - }, - "SteamNetworking001": { - "CreateConnectionSocket": 2, - "CreateListenSocket": 0, - "CreateP2PConnectionSocket": 1, - "DestroyListenSocket": 4, - "DestroySocket": 3, - "GetListenSocketInfo": 11, - "GetSocketInfo": 10, - "IsDataAvailable": 8, - "IsDataAvailableOnSocket": 6, - "RetrieveData": 9, - "RetrieveDataFromSocket": 7, - "SendDataOnSocket": 5 - }, - "SteamNetworking002": { - "CreateConnectionSocket": 2, - "CreateListenSocket": 0, - "CreateP2PConnectionSocket": 1, - "DestroyListenSocket": 4, - "DestroySocket": 3, - "GetListenSocketInfo": 11, - "GetMaxPacketSize": 13, - "GetSocketConnectionType": 12, - "GetSocketInfo": 10, - "IsDataAvailable": 8, - "IsDataAvailableOnSocket": 6, - "RetrieveData": 9, - "RetrieveDataFromSocket": 7, - "SendDataOnSocket": 5 - }, - "SteamNetworking003": { - "AcceptP2PSessionWithUser": 3, - "CloseP2PSessionWithUser": 4, - "CreateConnectionSocket": 8, - "CreateListenSocket": 6, - "CreateP2PConnectionSocket": 7, - "DestroyListenSocket": 10, - "DestroySocket": 9, - "GetListenSocketInfo": 17, - "GetMaxPacketSize": 19, - "GetP2PSessionState": 5, - "GetSocketConnectionType": 18, - "GetSocketInfo": 16, - "IsDataAvailable": 14, - "IsDataAvailableOnSocket": 12, - "IsP2PPacketAvailable": 1, - "ReadP2PPacket": 2, - "RetrieveData": 15, - "RetrieveDataFromSocket": 13, - "SendDataOnSocket": 11, - "SendP2PPacket": 0 - }, - "SteamNetworking004": { - "AcceptP2PSessionWithUser": 3, - "CloseP2PSessionWithUser": 4, - "CreateConnectionSocket": 8, - "CreateListenSocket": 6, - "CreateP2PConnectionSocket": 7, - "DestroyListenSocket": 10, - "DestroySocket": 9, - "GetListenSocketInfo": 17, - "GetMaxPacketSize": 19, - "GetP2PSessionState": 5, - "GetSocketConnectionType": 18, - "GetSocketInfo": 16, - "IsDataAvailable": 14, - "IsDataAvailableOnSocket": 12, - "IsP2PPacketAvailable": 1, - "ReadP2PPacket": 2, - "RetrieveData": 15, - "RetrieveDataFromSocket": 13, - "SendDataOnSocket": 11, - "SendP2PPacket": 0 - }, - "SteamNetworking005": { - "AcceptP2PSessionWithUser": 3, - "AllowP2PPacketRelay": 7, - "CloseP2PChannelWithUser": 5, - "CloseP2PSessionWithUser": 4, - "CreateConnectionSocket": 10, - "CreateListenSocket": 8, - "CreateP2PConnectionSocket": 9, - "DestroyListenSocket": 12, - "DestroySocket": 11, - "GetListenSocketInfo": 19, - "GetMaxPacketSize": 21, - "GetP2PSessionState": 6, - "GetSocketConnectionType": 20, - "GetSocketInfo": 18, - "IsDataAvailable": 16, - "IsDataAvailableOnSocket": 14, - "IsP2PPacketAvailable": 1, - "ReadP2PPacket": 2, - "RetrieveData": 17, - "RetrieveDataFromSocket": 15, - "SendDataOnSocket": 13, - "SendP2PPacket": 0 - }, - "SteamNetworking006": { - "AcceptP2PSessionWithUser": 3, - "AllowP2PPacketRelay": 7, - "CloseP2PChannelWithUser": 5, - "CloseP2PSessionWithUser": 4, - "CreateConnectionSocket": 10, - "CreateListenSocket": 8, - "CreateP2PConnectionSocket": 9, - "DestroyListenSocket": 12, - "DestroySocket": 11, - "GetListenSocketInfo": 19, - "GetMaxPacketSize": 21, - "GetP2PSessionState": 6, - "GetSocketConnectionType": 20, - "GetSocketInfo": 18, - "IsDataAvailable": 16, - "IsDataAvailableOnSocket": 14, - "IsP2PPacketAvailable": 1, - "ReadP2PPacket": 2, - "RetrieveData": 17, - "RetrieveDataFromSocket": 15, - "SendDataOnSocket": 13, - "SendP2PPacket": 0 - }, - "SteamNetworkingMessages002": { - "AcceptSessionWithUser": 2, - "CloseChannelWithUser": 4, - "CloseSessionWithUser": 3, - "GetSessionConnectionInfo": 5, - "ReceiveMessagesOnChannel": 1, - "SendMessageToUser": 0 - }, - "SteamNetworkingSockets002": { - "AcceptConnection": 2, - "CloseConnection": 3, - "CloseListenSocket": 4, - "ConnectByIPAddress": 1, - "ConnectP2P": 20, - "ConnectToHostedDedicatedServer": 23, - "CreateHostedDedicatedServerListenSocket": 27, - "CreateListenSocketIP": 0, - "CreateListenSocketP2P": 19, - "CreateSocketPair": 17, - "FindRelayAuthTicketForServer": 22, - "FlushMessagesOnConnection": 10, - "GetConnectionInfo": 13, - "GetConnectionName": 8, - "GetConnectionUserData": 6, - "GetDetailedConnectionStatus": 15, - "GetHostedDedicatedServerAddress": 26, - "GetHostedDedicatedServerPOPID": 25, - "GetHostedDedicatedServerPort": 24, - "GetIdentity": 18, - "GetListenSocketAddress": 16, - "GetQuickConnectionStatus": 14, - "ReceiveMessagesOnConnection": 11, - "ReceiveMessagesOnListenSocket": 12, - "ReceivedRelayAuthTicket": 21, - "RunCallbacks": 28, - "SendMessageToConnection": 9, - "SetConnectionName": 7, - "SetConnectionUserData": 5 - }, - "SteamNetworkingSockets003": { - "AcceptConnection": 2, - "CloseConnection": 3, - "CloseListenSocket": 4, - "ConnectByIPAddress": 1, - "ConnectP2P": 22, - "ConnectToHostedDedicatedServer": 27, - "CreateHostedDedicatedServerListenSocket": 31, - "CreateListenSocketIP": 0, - "CreateListenSocketP2P": 21, - "CreateSocketPair": 17, - "FindRelayAuthTicketForServer": 26, - "FlushMessagesOnConnection": 10, - "GetAuthenticationStatus": 20, - "GetCertificateRequest": 23, - "GetConnectionInfo": 13, - "GetConnectionName": 8, - "GetConnectionUserData": 6, - "GetDetailedConnectionStatus": 15, - "GetGameCoordinatorServerLogin": 32, - "GetHostedDedicatedServerAddress": 30, - "GetHostedDedicatedServerPOPID": 29, - "GetHostedDedicatedServerPort": 28, - "GetIdentity": 18, - "GetListenSocketAddress": 16, - "GetQuickConnectionStatus": 14, - "InitAuthentication": 19, - "ReceiveMessagesOnConnection": 11, - "ReceiveMessagesOnListenSocket": 12, - "ReceivedRelayAuthTicket": 25, - "RunCallbacks": 33, - "SendMessageToConnection": 9, - "SetCertificate": 24, - "SetConnectionName": 7, - "SetConnectionUserData": 5 - }, - "SteamNetworkingSockets004": { - "AcceptConnection": 2, - "CloseConnection": 3, - "CloseListenSocket": 4, - "ConnectByIPAddress": 1, - "ConnectP2P": 22, - "ConnectToHostedDedicatedServer": 27, - "CreateHostedDedicatedServerListenSocket": 31, - "CreateListenSocketIP": 0, - "CreateListenSocketP2P": 21, - "CreateSocketPair": 17, - "FindRelayAuthTicketForServer": 26, - "FlushMessagesOnConnection": 10, - "GetAuthenticationStatus": 20, - "GetCertificateRequest": 23, - "GetConnectionInfo": 13, - "GetConnectionName": 8, - "GetConnectionUserData": 6, - "GetDetailedConnectionStatus": 15, - "GetGameCoordinatorServerLogin": 32, - "GetHostedDedicatedServerAddress": 30, - "GetHostedDedicatedServerPOPID": 29, - "GetHostedDedicatedServerPort": 28, - "GetIdentity": 18, - "GetListenSocketAddress": 16, - "GetQuickConnectionStatus": 14, - "InitAuthentication": 19, - "ReceiveMessagesOnConnection": 11, - "ReceiveMessagesOnListenSocket": 12, - "ReceivedRelayAuthTicket": 25, - "RunCallbacks": 33, - "SendMessageToConnection": 9, - "SetCertificate": 24, - "SetConnectionName": 7, - "SetConnectionUserData": 5 - }, - "SteamNetworkingSockets006": { - "AcceptConnection": 2, - "CloseConnection": 3, - "CloseListenSocket": 4, - "ConnectByIPAddress": 1, - "ConnectP2P": 23, - "ConnectP2PCustomSignaling": 32, - "ConnectToHostedDedicatedServer": 26, - "CreateHostedDedicatedServerListenSocket": 30, - "CreateListenSocketIP": 0, - "CreateListenSocketP2P": 22, - "CreateSocketPair": 18, - "FindRelayAuthTicketForServer": 25, - "FlushMessagesOnConnection": 11, - "GetAuthenticationStatus": 21, - "GetCertificateRequest": 34, - "GetConnectionInfo": 14, - "GetConnectionName": 8, - "GetConnectionUserData": 6, - "GetDetailedConnectionStatus": 16, - "GetGameCoordinatorServerLogin": 31, - "GetHostedDedicatedServerAddress": 29, - "GetHostedDedicatedServerPOPID": 28, - "GetHostedDedicatedServerPort": 27, - "GetIdentity": 19, - "GetListenSocketAddress": 17, - "GetQuickConnectionStatus": 15, - "InitAuthentication": 20, - "OnConnectRequest": 0, - "ReceiveMessagesOnConnection": 12, - "ReceiveMessagesOnListenSocket": 13, - "ReceivedP2PCustomSignal": 33, - "ReceivedRelayAuthTicket": 24, - "Release": 1, - "RunCallbacks": 36, - "SendMessageToConnection": 9, - "SendMessages": 10, - "SendRejectionSignal": 1, - "SendSignal": 0, - "SetCertificate": 35, - "SetConnectionName": 7, - "SetConnectionUserData": 5 - }, - "SteamNetworkingSockets008": { - "AcceptConnection": 2, - "CloseConnection": 3, - "CloseListenSocket": 4, - "ConnectByIPAddress": 1, - "ConnectP2P": 28, - "ConnectP2PCustomSignaling": 37, - "ConnectToHostedDedicatedServer": 31, - "CreateHostedDedicatedServerListenSocket": 35, - "CreateListenSocketIP": 0, - "CreateListenSocketP2P": 27, - "CreatePollGroup": 21, - "CreateSocketPair": 17, - "DestroyPollGroup": 22, - "FindRelayAuthTicketForServer": 30, - "FlushMessagesOnConnection": 11, - "GetAuthenticationStatus": 20, - "GetCertificateRequest": 25, - "GetConnectionInfo": 13, - "GetConnectionName": 8, - "GetConnectionUserData": 6, - "GetDetailedConnectionStatus": 15, - "GetGameCoordinatorServerLogin": 36, - "GetHostedDedicatedServerAddress": 34, - "GetHostedDedicatedServerPOPID": 33, - "GetHostedDedicatedServerPort": 32, - "GetIdentity": 18, - "GetListenSocketAddress": 16, - "GetQuickConnectionStatus": 14, - "InitAuthentication": 19, - "OnConnectRequest": 0, - "ReceiveMessagesOnConnection": 12, - "ReceiveMessagesOnPollGroup": 24, - "ReceivedP2PCustomSignal": 38, - "ReceivedRelayAuthTicket": 29, - "Release": 1, - "RunCallbacks": 39, - "SendMessageToConnection": 9, - "SendMessages": 10, - "SendRejectionSignal": 1, - "SendSignal": 0, - "SetCertificate": 26, - "SetConnectionName": 7, - "SetConnectionPollGroup": 23, - "SetConnectionUserData": 5 - }, - "SteamNetworkingSockets009": { - "AcceptConnection": 4, - "CloseConnection": 5, - "CloseListenSocket": 6, - "ConnectByIPAddress": 1, - "ConnectP2P": 3, - "ConnectP2PCustomSignaling": 35, - "ConnectToHostedDedicatedServer": 29, - "CreateHostedDedicatedServerListenSocket": 33, - "CreateListenSocketIP": 0, - "CreateListenSocketP2P": 2, - "CreatePollGroup": 23, - "CreateSocketPair": 19, - "DestroyPollGroup": 24, - "FindRelayAuthTicketForServer": 28, - "FlushMessagesOnConnection": 13, - "GetAuthenticationStatus": 22, - "GetCertificateRequest": 37, - "GetConnectionInfo": 15, - "GetConnectionName": 10, - "GetConnectionUserData": 8, - "GetDetailedConnectionStatus": 17, - "GetGameCoordinatorServerLogin": 34, - "GetHostedDedicatedServerAddress": 32, - "GetHostedDedicatedServerPOPID": 31, - "GetHostedDedicatedServerPort": 30, - "GetIdentity": 20, - "GetListenSocketAddress": 18, - "GetQuickConnectionStatus": 16, - "InitAuthentication": 21, - "ReceiveMessagesOnConnection": 14, - "ReceiveMessagesOnPollGroup": 26, - "ReceivedP2PCustomSignal": 36, - "ReceivedRelayAuthTicket": 27, - "RunCallbacks": 39, - "SendMessageToConnection": 11, - "SendMessages": 12, - "SetCertificate": 38, - "SetConnectionName": 9, - "SetConnectionPollGroup": 25, - "SetConnectionUserData": 7 - }, - "SteamNetworkingSockets012": { - "AcceptConnection": 4, - "BeginAsyncRequestFakeIP": 42, - "CloseConnection": 5, - "CloseListenSocket": 6, - "ConfigureConnectionLanes": 20, - "ConnectByIPAddress": 1, - "ConnectP2P": 3, - "ConnectP2PCustomSignaling": 36, - "ConnectToHostedDedicatedServer": 30, - "CreateFakeUDPPort": 46, - "CreateHostedDedicatedServerListenSocket": 34, - "CreateListenSocketIP": 0, - "CreateListenSocketP2P": 2, - "CreateListenSocketP2PFakeIP": 44, - "CreatePollGroup": 24, - "CreateSocketPair": 19, - "DestroyPollGroup": 25, - "FindRelayAuthTicketForServer": 29, - "FlushMessagesOnConnection": 13, - "GetAuthenticationStatus": 23, - "GetCertificateRequest": 38, - "GetConnectionInfo": 15, - "GetConnectionName": 10, - "GetConnectionRealTimeStatus": 16, - "GetConnectionUserData": 8, - "GetDetailedConnectionStatus": 17, - "GetFakeIP": 43, - "GetGameCoordinatorServerLogin": 35, - "GetHostedDedicatedServerAddress": 33, - "GetHostedDedicatedServerPOPID": 32, - "GetHostedDedicatedServerPort": 31, - "GetIdentity": 21, - "GetListenSocketAddress": 18, - "GetRemoteFakeIPForConnection": 45, - "InitAuthentication": 22, - "ReceiveMessagesOnConnection": 14, - "ReceiveMessagesOnPollGroup": 27, - "ReceivedP2PCustomSignal": 37, - "ReceivedRelayAuthTicket": 28, - "ResetIdentity": 40, - "RunCallbacks": 41, - "SendMessageToConnection": 11, - "SendMessages": 12, - "SetCertificate": 39, - "SetConnectionName": 9, - "SetConnectionPollGroup": 26, - "SetConnectionUserData": 7 + "STEAMUGC_INTERFACE_VERSION012": { + "CreateQueryUserUGCRequest": 0, + "CreateQueryAllUGCRequest": 2, + "CreateQueryUGCDetailsRequest": 3, + "SendQueryUGCRequest": 4, + "GetQueryUGCResult": 5, + "GetQueryUGCPreviewURL": 6, + "GetQueryUGCMetadata": 7, + "GetQueryUGCChildren": 8, + "GetQueryUGCStatistic": 9, + "GetQueryUGCNumAdditionalPreviews": 10, + "GetQueryUGCAdditionalPreview": 11, + "GetQueryUGCNumKeyValueTags": 12, + "GetQueryUGCKeyValueTag": 13, + "ReleaseQueryUGCRequest": 14, + "AddRequiredTag": 15, + "AddExcludedTag": 16, + "SetReturnOnlyIDs": 17, + "SetReturnKeyValueTags": 18, + "SetReturnLongDescription": 19, + "SetReturnMetadata": 20, + "SetReturnChildren": 21, + "SetReturnAdditionalPreviews": 22, + "SetReturnTotalOnly": 23, + "SetReturnPlaytimeStats": 24, + "SetLanguage": 25, + "SetAllowCachedResponse": 26, + "SetCloudFileNameFilter": 27, + "SetMatchAnyTag": 28, + "SetSearchText": 29, + "SetRankedByTrendDays": 30, + "AddRequiredKeyValueTag": 31, + "RequestUGCDetails": 32, + "CreateItem": 33, + "StartItemUpdate": 34, + "SetItemTitle": 35, + "SetItemDescription": 36, + "SetItemUpdateLanguage": 37, + "SetItemMetadata": 38, + "SetItemVisibility": 39, + "SetItemTags": 40, + "SetItemContent": 41, + "SetItemPreview": 42, + "SetAllowLegacyUpload": 43, + "RemoveItemKeyValueTags": 44, + "AddItemKeyValueTag": 45, + "AddItemPreviewFile": 46, + "AddItemPreviewVideo": 47, + "UpdateItemPreviewFile": 48, + "UpdateItemPreviewVideo": 49, + "RemoveItemPreview": 50, + "SubmitItemUpdate": 51, + "GetItemUpdateProgress": 52, + "SetUserItemVote": 53, + "GetUserItemVote": 54, + "AddItemToFavorites": 55, + "RemoveItemFromFavorites": 56, + "SubscribeItem": 57, + "UnsubscribeItem": 58, + "GetNumSubscribedItems": 59, + "GetSubscribedItems": 60, + "GetItemState": 61, + "GetItemInstallInfo": 62, + "GetItemDownloadInfo": 63, + "DownloadItem": 64, + "BInitWorkshopForGameServer": 65, + "SuspendDownloads": 66, + "StartPlaytimeTracking": 67, + "StopPlaytimeTracking": 68, + "StopPlaytimeTrackingForAllItems": 69, + "AddDependency": 70, + "RemoveDependency": 71, + "AddAppDependency": 72, + "RemoveAppDependency": 73, + "GetAppDependencies": 74, + "DeleteItem": 75 }, "SteamNetworkingUtils001": { - "CheckPingDataUpToDate": 15, - "ConvertPingLocationToString": 13, + "GetLocalTimestamp": 0, + "SetDebugOutputFunction": 1, + "SetConfigValue": 2, + "GetConfigValue": 3, + "GetConfigValueInfo": 4, + "GetFirstConfigValue": 5, + "SteamNetworkingIPAddr_ToString": 6, + "SteamNetworkingIPAddr_ParseString": 7, + "SteamNetworkingIdentity_ToString": 8, + "SteamNetworkingIdentity_ParseString": 9, + "GetLocalPingLocation": 10, "EstimatePingTimeBetweenTwoLocations": 11, "EstimatePingTimeFromLocalHost": 12, - "GetConfigValue": 3, - "GetConfigValueInfo": 4, - "GetDirectPingToPOP": 18, - "GetFirstConfigValue": 5, - "GetLocalPingLocation": 10, - "GetLocalTimestamp": 0, - "GetPOPCount": 19, - "GetPOPList": 20, - "GetPingToDataCenter": 17, - "IsPingMeasurementInProgress": 16, + "ConvertPingLocationToString": 13, "ParsePingLocationString": 14, - "SetConfigValue": 2, - "SetDebugOutputFunction": 1, - "SteamNetworkingIPAddr_ParseString": 7, - "SteamNetworkingIPAddr_ToString": 6, - "SteamNetworkingIdentity_ParseString": 9, - "SteamNetworkingIdentity_ToString": 8 + "CheckPingDataUpToDate": 15, + "IsPingMeasurementInProgress": 16, + "GetPingToDataCenter": 17, + "GetDirectPingToPOP": 18, + "GetPOPCount": 19, + "GetPOPList": 20 + }, + "SteamNetworkingSockets002": { + "CreateListenSocketIP": 0, + "ConnectByIPAddress": 1, + "AcceptConnection": 2, + "CloseConnection": 3, + "CloseListenSocket": 4, + "SetConnectionUserData": 5, + "GetConnectionUserData": 6, + "SetConnectionName": 7, + "GetConnectionName": 8, + "SendMessageToConnection": 9, + "FlushMessagesOnConnection": 10, + "ReceiveMessagesOnConnection": 11, + "ReceiveMessagesOnListenSocket": 12, + "GetConnectionInfo": 13, + "GetQuickConnectionStatus": 14, + "GetDetailedConnectionStatus": 15, + "GetListenSocketAddress": 16, + "CreateSocketPair": 17, + "GetIdentity": 18, + "CreateListenSocketP2P": 19, + "ConnectP2P": 20, + "ReceivedRelayAuthTicket": 21, + "FindRelayAuthTicketForServer": 22, + "ConnectToHostedDedicatedServer": 23, + "GetHostedDedicatedServerPort": 24, + "GetHostedDedicatedServerPOPID": 25, + "GetHostedDedicatedServerAddress": 26, + "CreateHostedDedicatedServerListenSocket": 27, + "RunCallbacks": 28 + }, + "SteamNetworkingSockets003": { + "CreateListenSocketIP": 0, + "ConnectByIPAddress": 1, + "AcceptConnection": 2, + "CloseConnection": 3, + "CloseListenSocket": 4, + "SetConnectionUserData": 5, + "GetConnectionUserData": 6, + "SetConnectionName": 7, + "GetConnectionName": 8, + "SendMessageToConnection": 9, + "FlushMessagesOnConnection": 10, + "ReceiveMessagesOnConnection": 11, + "ReceiveMessagesOnListenSocket": 12, + "GetConnectionInfo": 13, + "GetQuickConnectionStatus": 14, + "GetDetailedConnectionStatus": 15, + "GetListenSocketAddress": 16, + "CreateSocketPair": 17, + "GetIdentity": 18, + "InitAuthentication": 19, + "GetAuthenticationStatus": 20, + "CreateListenSocketP2P": 21, + "ConnectP2P": 22, + "GetCertificateRequest": 23, + "SetCertificate": 24, + "ReceivedRelayAuthTicket": 25, + "FindRelayAuthTicketForServer": 26, + "ConnectToHostedDedicatedServer": 27, + "GetHostedDedicatedServerPort": 28, + "GetHostedDedicatedServerPOPID": 29, + "GetHostedDedicatedServerAddress": 30, + "CreateHostedDedicatedServerListenSocket": 31, + "GetGameCoordinatorServerLogin": 32, + "RunCallbacks": 33 }, "SteamNetworkingUtils002": { - "CheckPingDataUpToDate": 16, - "ConvertPingLocationToString": 14, - "EstimatePingTimeBetweenTwoLocations": 12, - "EstimatePingTimeFromLocalHost": 13, + "GetLocalTimestamp": 0, + "SetDebugOutputFunction": 1, + "SetConfigValue": 2, "GetConfigValue": 3, "GetConfigValueInfo": 4, - "GetDirectPingToPOP": 18, "GetFirstConfigValue": 5, - "GetLocalPingLocation": 11, - "GetLocalTimestamp": 0, - "GetPOPCount": 19, - "GetPOPList": 20, - "GetPingToDataCenter": 17, - "GetRelayNetworkStatus": 10, - "ParsePingLocationString": 15, - "SetConfigValue": 2, - "SetDebugOutputFunction": 1, - "SteamNetworkingIPAddr_ParseString": 7, "SteamNetworkingIPAddr_ToString": 6, + "SteamNetworkingIPAddr_ParseString": 7, + "SteamNetworkingIdentity_ToString": 8, "SteamNetworkingIdentity_ParseString": 9, - "SteamNetworkingIdentity_ToString": 8 + "GetRelayNetworkStatus": 10, + "GetLocalPingLocation": 11, + "EstimatePingTimeBetweenTwoLocations": 12, + "EstimatePingTimeFromLocalHost": 13, + "ConvertPingLocationToString": 14, + "ParsePingLocationString": 15, + "CheckPingDataUpToDate": 16, + "GetPingToDataCenter": 17, + "GetDirectPingToPOP": 18, + "GetPOPCount": 19, + "GetPOPList": 20 + }, + "STEAMUGC_INTERFACE_VERSION013": { + "CreateQueryUserUGCRequest": 0, + "CreateQueryAllUGCRequest": 2, + "CreateQueryUGCDetailsRequest": 3, + "SendQueryUGCRequest": 4, + "GetQueryUGCResult": 5, + "GetQueryUGCPreviewURL": 6, + "GetQueryUGCMetadata": 7, + "GetQueryUGCChildren": 8, + "GetQueryUGCStatistic": 9, + "GetQueryUGCNumAdditionalPreviews": 10, + "GetQueryUGCAdditionalPreview": 11, + "GetQueryUGCNumKeyValueTags": 12, + "GetQueryUGCKeyValueTag": 14, + "ReleaseQueryUGCRequest": 15, + "AddRequiredTag": 16, + "AddExcludedTag": 17, + "SetReturnOnlyIDs": 18, + "SetReturnKeyValueTags": 19, + "SetReturnLongDescription": 20, + "SetReturnMetadata": 21, + "SetReturnChildren": 22, + "SetReturnAdditionalPreviews": 23, + "SetReturnTotalOnly": 24, + "SetReturnPlaytimeStats": 25, + "SetLanguage": 26, + "SetAllowCachedResponse": 27, + "SetCloudFileNameFilter": 28, + "SetMatchAnyTag": 29, + "SetSearchText": 30, + "SetRankedByTrendDays": 31, + "AddRequiredKeyValueTag": 32, + "RequestUGCDetails": 33, + "CreateItem": 34, + "StartItemUpdate": 35, + "SetItemTitle": 36, + "SetItemDescription": 37, + "SetItemUpdateLanguage": 38, + "SetItemMetadata": 39, + "SetItemVisibility": 40, + "SetItemTags": 41, + "SetItemContent": 42, + "SetItemPreview": 43, + "SetAllowLegacyUpload": 44, + "RemoveAllItemKeyValueTags": 45, + "RemoveItemKeyValueTags": 46, + "AddItemKeyValueTag": 47, + "AddItemPreviewFile": 48, + "AddItemPreviewVideo": 49, + "UpdateItemPreviewFile": 50, + "UpdateItemPreviewVideo": 51, + "RemoveItemPreview": 52, + "SubmitItemUpdate": 53, + "GetItemUpdateProgress": 54, + "SetUserItemVote": 55, + "GetUserItemVote": 56, + "AddItemToFavorites": 57, + "RemoveItemFromFavorites": 58, + "SubscribeItem": 59, + "UnsubscribeItem": 60, + "GetNumSubscribedItems": 61, + "GetSubscribedItems": 62, + "GetItemState": 63, + "GetItemInstallInfo": 64, + "GetItemDownloadInfo": 65, + "DownloadItem": 66, + "BInitWorkshopForGameServer": 67, + "SuspendDownloads": 68, + "StartPlaytimeTracking": 69, + "StopPlaytimeTracking": 70, + "StopPlaytimeTrackingForAllItems": 71, + "AddDependency": 72, + "RemoveDependency": 73, + "AddAppDependency": 74, + "RemoveAppDependency": 75, + "GetAppDependencies": 76, + "DeleteItem": 77 + }, + "SteamClient019": { + "CreateSteamPipe": 0, + "BReleaseSteamPipe": 1, + "ConnectToGlobalUser": 2, + "CreateLocalUser": 3, + "ReleaseUser": 4, + "GetISteamUser": 5, + "GetISteamGameServer": 6, + "SetLocalIPBinding": 7, + "GetISteamFriends": 8, + "GetISteamUtils": 9, + "GetISteamMatchmaking": 10, + "GetISteamMatchmakingServers": 11, + "GetISteamGenericInterface": 12, + "GetISteamUserStats": 13, + "GetISteamGameServerStats": 14, + "GetISteamApps": 15, + "GetISteamNetworking": 16, + "GetISteamRemoteStorage": 17, + "GetISteamScreenshots": 18, + "GetISteamGameSearch": 19, + "RunFrame": 20, + "GetIPCCallCount": 21, + "SetWarningMessageHook": 22, + "BShutdownIfAllPipesClosed": 23, + "GetISteamHTTP": 24, + "DEPRECATED_GetISteamUnifiedMessages": 25, + "GetISteamController": 26, + "GetISteamUGC": 27, + "GetISteamAppList": 28, + "GetISteamMusic": 29, + "GetISteamMusicRemote": 30, + "GetISteamHTMLSurface": 31, + "DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess": 32, + "DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess": 33, + "Set_SteamAPI_CCheckCallbackRegisteredInProcess": 34, + "GetISteamInventory": 35, + "GetISteamVideo": 36, + "GetISteamParentalSettings": 37, + "GetISteamInput": 38, + "GetISteamParties": 39, + "GetISteamRemotePlay": 40 + }, + "STEAMREMOTEPLAY_INTERFACE_VERSION001": { + "GetSessionCount": 0, + "GetSessionID": 1, + "GetSessionSteamID": 2, + "GetSessionClientName": 3, + "GetSessionClientFormFactor": 4, + "BGetSessionClientResolution": 5, + "BSendRemotePlayTogetherInvite": 6 + }, + "SteamNetworkingSockets004": { + "CreateListenSocketIP": 0, + "ConnectByIPAddress": 1, + "AcceptConnection": 2, + "CloseConnection": 3, + "CloseListenSocket": 4, + "SetConnectionUserData": 5, + "GetConnectionUserData": 6, + "SetConnectionName": 7, + "GetConnectionName": 8, + "SendMessageToConnection": 9, + "FlushMessagesOnConnection": 10, + "ReceiveMessagesOnConnection": 11, + "ReceiveMessagesOnListenSocket": 12, + "GetConnectionInfo": 13, + "GetQuickConnectionStatus": 14, + "GetDetailedConnectionStatus": 15, + "GetListenSocketAddress": 16, + "CreateSocketPair": 17, + "GetIdentity": 18, + "InitAuthentication": 19, + "GetAuthenticationStatus": 20, + "CreateListenSocketP2P": 21, + "ConnectP2P": 22, + "GetCertificateRequest": 23, + "SetCertificate": 24, + "ReceivedRelayAuthTicket": 25, + "FindRelayAuthTicketForServer": 26, + "ConnectToHostedDedicatedServer": 27, + "GetHostedDedicatedServerPort": 28, + "GetHostedDedicatedServerPOPID": 29, + "GetHostedDedicatedServerAddress": 30, + "CreateHostedDedicatedServerListenSocket": 31, + "GetGameCoordinatorServerLogin": 32, + "RunCallbacks": 33 + }, + "SteamClient020": { + "CreateSteamPipe": 0, + "BReleaseSteamPipe": 1, + "ConnectToGlobalUser": 2, + "CreateLocalUser": 3, + "ReleaseUser": 4, + "GetISteamUser": 5, + "GetISteamGameServer": 6, + "SetLocalIPBinding": 7, + "GetISteamFriends": 8, + "GetISteamUtils": 9, + "GetISteamMatchmaking": 10, + "GetISteamMatchmakingServers": 11, + "GetISteamGenericInterface": 12, + "GetISteamUserStats": 13, + "GetISteamGameServerStats": 14, + "GetISteamApps": 15, + "GetISteamNetworking": 16, + "GetISteamRemoteStorage": 17, + "GetISteamScreenshots": 18, + "GetISteamGameSearch": 19, + "RunFrame": 20, + "GetIPCCallCount": 21, + "SetWarningMessageHook": 22, + "BShutdownIfAllPipesClosed": 23, + "GetISteamHTTP": 24, + "DEPRECATED_GetISteamUnifiedMessages": 25, + "GetISteamController": 26, + "GetISteamUGC": 27, + "GetISteamAppList": 28, + "GetISteamMusic": 29, + "GetISteamMusicRemote": 30, + "GetISteamHTMLSurface": 31, + "DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess": 32, + "DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess": 33, + "Set_SteamAPI_CCheckCallbackRegisteredInProcess": 34, + "GetISteamInventory": 35, + "GetISteamVideo": 36, + "GetISteamParentalSettings": 37, + "GetISteamInput": 38, + "GetISteamParties": 39, + "GetISteamRemotePlay": 40, + "DestroyAllInterfaces": 41 + }, + "SteamGameServer013": { + "InitGameServer": 0, + "SetProduct": 1, + "SetGameDescription": 2, + "SetModDir": 3, + "SetDedicatedServer": 4, + "LogOn": 5, + "LogOnAnonymous": 6, + "LogOff": 7, + "BLoggedOn": 8, + "BSecure": 9, + "GetSteamID": 10, + "WasRestartRequested": 11, + "SetMaxPlayerCount": 12, + "SetBotPlayerCount": 13, + "SetServerName": 14, + "SetMapName": 15, + "SetPasswordProtected": 16, + "SetSpectatorPort": 17, + "SetSpectatorServerName": 18, + "ClearAllKeyValues": 19, + "SetKeyValue": 20, + "SetGameTags": 21, + "SetGameData": 22, + "SetRegion": 23, + "SendUserConnectAndAuthenticate": 24, + "CreateUnauthenticatedUserConnection": 25, + "SendUserDisconnect": 26, + "BUpdateUserData": 27, + "GetAuthSessionTicket": 28, + "BeginAuthSession": 29, + "EndAuthSession": 30, + "CancelAuthTicket": 31, + "UserHasLicenseForApp": 32, + "RequestUserGroupStatus": 33, + "GetGameplayStats": 34, + "GetServerReputation": 35, + "GetPublicIP": 36, + "HandleIncomingPacket": 37, + "GetNextOutgoingPacket": 38, + "EnableHeartbeats": 39, + "SetHeartbeatInterval": 40, + "ForceHeartbeat": 41, + "AssociateWithClan": 42, + "ComputeNewPlayerCompatibility": 43 + }, + "SteamNetworking006": { + "SendP2PPacket": 0, + "IsP2PPacketAvailable": 1, + "ReadP2PPacket": 2, + "AcceptP2PSessionWithUser": 3, + "CloseP2PSessionWithUser": 4, + "CloseP2PChannelWithUser": 5, + "GetP2PSessionState": 6, + "AllowP2PPacketRelay": 7, + "CreateListenSocket": 8, + "CreateP2PConnectionSocket": 9, + "CreateConnectionSocket": 10, + "DestroySocket": 11, + "DestroyListenSocket": 12, + "SendDataOnSocket": 13, + "IsDataAvailableOnSocket": 14, + "RetrieveDataFromSocket": 15, + "IsDataAvailable": 16, + "RetrieveData": 17, + "GetSocketInfo": 18, + "GetListenSocketInfo": 19, + "GetSocketConnectionType": 20, + "GetMaxPacketSize": 21 }, "SteamNetworkingUtils003": { "AllocateMessage": 0, - "CheckPingDataUpToDate": 7, - "ConvertPingLocationToString": 5, + "GetRelayNetworkStatus": 1, + "GetLocalPingLocation": 2, "EstimatePingTimeBetweenTwoLocations": 3, "EstimatePingTimeFromLocalHost": 4, - "GetConfigValue": 15, - "GetConfigValueInfo": 16, + "ConvertPingLocationToString": 5, + "ParsePingLocationString": 6, + "CheckPingDataUpToDate": 7, + "GetPingToDataCenter": 8, "GetDirectPingToPOP": 9, - "GetFirstConfigValue": 17, - "GetLocalPingLocation": 2, - "GetLocalTimestamp": 12, "GetPOPCount": 10, "GetPOPList": 11, - "GetPingToDataCenter": 8, - "GetRelayNetworkStatus": 1, - "ParsePingLocationString": 6, - "SetConfigValue": 14, + "GetLocalTimestamp": 12, "SetDebugOutputFunction": 13, - "SteamNetworkingIPAddr_ParseString": 19, + "SetConfigValue": 14, + "GetConfigValue": 15, + "GetConfigValueInfo": 16, + "GetFirstConfigValue": 17, "SteamNetworkingIPAddr_ToString": 18, - "SteamNetworkingIdentity_ParseString": 21, - "SteamNetworkingIdentity_ToString": 20 + "SteamNetworkingIPAddr_ParseString": 19, + "SteamNetworkingIdentity_ToString": 20, + "SteamNetworkingIdentity_ParseString": 21 + }, + "SteamNetworkingSockets006": { + "CreateListenSocketIP": 0, + "ConnectByIPAddress": 1, + "AcceptConnection": 2, + "CloseConnection": 3, + "CloseListenSocket": 4, + "SetConnectionUserData": 5, + "GetConnectionUserData": 6, + "SetConnectionName": 7, + "GetConnectionName": 8, + "SendMessageToConnection": 9, + "SendMessages": 10, + "FlushMessagesOnConnection": 11, + "ReceiveMessagesOnConnection": 12, + "ReceiveMessagesOnListenSocket": 13, + "GetConnectionInfo": 14, + "GetQuickConnectionStatus": 15, + "GetDetailedConnectionStatus": 16, + "GetListenSocketAddress": 17, + "CreateSocketPair": 18, + "GetIdentity": 19, + "InitAuthentication": 20, + "GetAuthenticationStatus": 21, + "CreateListenSocketP2P": 22, + "ConnectP2P": 23, + "ReceivedRelayAuthTicket": 24, + "FindRelayAuthTicketForServer": 25, + "ConnectToHostedDedicatedServer": 26, + "GetHostedDedicatedServerPort": 27, + "GetHostedDedicatedServerPOPID": 28, + "GetHostedDedicatedServerAddress": 29, + "CreateHostedDedicatedServerListenSocket": 30, + "GetGameCoordinatorServerLogin": 31, + "ConnectP2PCustomSignaling": 32, + "ReceivedP2PCustomSignal": 33, + "GetCertificateRequest": 34, + "SetCertificate": 35, + "RunCallbacks": 36, + "SendSignal": 0, + "Release": 1, + "OnConnectRequest": 0, + "SendRejectionSignal": 1 + }, + "STEAMUGC_INTERFACE_VERSION014": { + "CreateQueryUserUGCRequest": 0, + "CreateQueryAllUGCRequest": 2, + "CreateQueryUGCDetailsRequest": 3, + "SendQueryUGCRequest": 4, + "GetQueryUGCResult": 5, + "GetQueryUGCPreviewURL": 6, + "GetQueryUGCMetadata": 7, + "GetQueryUGCChildren": 8, + "GetQueryUGCStatistic": 9, + "GetQueryUGCNumAdditionalPreviews": 10, + "GetQueryUGCAdditionalPreview": 11, + "GetQueryUGCNumKeyValueTags": 12, + "GetQueryUGCKeyValueTag": 14, + "ReleaseQueryUGCRequest": 15, + "AddRequiredTag": 16, + "AddRequiredTagGroup": 17, + "AddExcludedTag": 18, + "SetReturnOnlyIDs": 19, + "SetReturnKeyValueTags": 20, + "SetReturnLongDescription": 21, + "SetReturnMetadata": 22, + "SetReturnChildren": 23, + "SetReturnAdditionalPreviews": 24, + "SetReturnTotalOnly": 25, + "SetReturnPlaytimeStats": 26, + "SetLanguage": 27, + "SetAllowCachedResponse": 28, + "SetCloudFileNameFilter": 29, + "SetMatchAnyTag": 30, + "SetSearchText": 31, + "SetRankedByTrendDays": 32, + "AddRequiredKeyValueTag": 33, + "RequestUGCDetails": 34, + "CreateItem": 35, + "StartItemUpdate": 36, + "SetItemTitle": 37, + "SetItemDescription": 38, + "SetItemUpdateLanguage": 39, + "SetItemMetadata": 40, + "SetItemVisibility": 41, + "SetItemTags": 42, + "SetItemContent": 43, + "SetItemPreview": 44, + "SetAllowLegacyUpload": 45, + "RemoveAllItemKeyValueTags": 46, + "RemoveItemKeyValueTags": 47, + "AddItemKeyValueTag": 48, + "AddItemPreviewFile": 49, + "AddItemPreviewVideo": 50, + "UpdateItemPreviewFile": 51, + "UpdateItemPreviewVideo": 52, + "RemoveItemPreview": 53, + "SubmitItemUpdate": 54, + "GetItemUpdateProgress": 55, + "SetUserItemVote": 56, + "GetUserItemVote": 57, + "AddItemToFavorites": 58, + "RemoveItemFromFavorites": 59, + "SubscribeItem": 60, + "UnsubscribeItem": 61, + "GetNumSubscribedItems": 62, + "GetSubscribedItems": 63, + "GetItemState": 64, + "GetItemInstallInfo": 65, + "GetItemDownloadInfo": 66, + "DownloadItem": 67, + "BInitWorkshopForGameServer": 68, + "SuspendDownloads": 69, + "StartPlaytimeTracking": 70, + "StopPlaytimeTracking": 71, + "StopPlaytimeTrackingForAllItems": 72, + "AddDependency": 73, + "RemoveDependency": 74, + "AddAppDependency": 75, + "RemoveAppDependency": 76, + "GetAppDependencies": 77, + "DeleteItem": 78 + }, + "SteamParties002": { + "GetFavoriteGameCount": 0, + "GetFavoriteGame": 1, + "AddFavoriteGame": 2, + "RemoveFavoriteGame": 3, + "RequestLobbyList": 4, + "AddRequestLobbyListStringFilter": 5, + "AddRequestLobbyListNumericalFilter": 6, + "AddRequestLobbyListNearValueFilter": 7, + "AddRequestLobbyListFilterSlotsAvailable": 8, + "AddRequestLobbyListDistanceFilter": 9, + "AddRequestLobbyListResultCountFilter": 10, + "AddRequestLobbyListCompatibleMembersFilter": 11, + "GetLobbyByIndex": 12, + "CreateLobby": 13, + "JoinLobby": 14, + "LeaveLobby": 15, + "InviteUserToLobby": 16, + "GetNumLobbyMembers": 17, + "GetLobbyMemberByIndex": 18, + "GetLobbyData": 19, + "SetLobbyData": 20, + "GetLobbyDataCount": 21, + "GetLobbyDataByIndex": 22, + "DeleteLobbyData": 23, + "GetLobbyMemberData": 24, + "SetLobbyMemberData": 25, + "SendLobbyChatMsg": 26, + "GetLobbyChatEntry": 27, + "RequestLobbyData": 28, + "SetLobbyGameServer": 29, + "GetLobbyGameServer": 30, + "SetLobbyMemberLimit": 31, + "GetLobbyMemberLimit": 32, + "SetLobbyType": 33, + "SetLobbyJoinable": 34, + "GetLobbyOwner": 35, + "SetLobbyOwner": 36, + "SetLinkedLobby": 37, + "ServerResponded": 0, + "ServerFailedToRespond": 1, + "RefreshComplete": 2, + "AddPlayerToList": 0, + "PlayersFailedToRespond": 1, + "PlayersRefreshComplete": 2, + "RulesResponded": 0, + "RulesFailedToRespond": 1, + "RulesRefreshComplete": 2, + "RequestInternetServerList": 0, + "RequestLANServerList": 1, + "RequestFriendsServerList": 2, + "RequestFavoritesServerList": 3, + "RequestHistoryServerList": 4, + "RequestSpectatorServerList": 5, + "ReleaseRequest": 6, + "GetServerDetails": 7, + "CancelQuery": 8, + "RefreshQuery": 9, + "IsRefreshing": 10, + "GetServerCount": 11, + "RefreshServer": 12, + "PingServer": 13, + "PlayerDetails": 14, + "ServerRules": 15, + "CancelServerQuery": 16, + "AddGameSearchParams": 0, + "SearchForGameWithLobby": 1, + "SearchForGameSolo": 2, + "AcceptGame": 3, + "DeclineGame": 4, + "RetrieveConnectionDetails": 5, + "EndGameSearch": 6, + "SetGameHostParams": 7, + "SetConnectionDetails": 8, + "RequestPlayersForGame": 9, + "HostConfirmGameStart": 10, + "CancelRequestPlayersForGame": 11, + "SubmitPlayerResult": 12, + "EndGame": 13, + "GetNumActiveBeacons": 0, + "GetBeaconByIndex": 1, + "GetBeaconDetails": 2, + "JoinParty": 3, + "GetNumAvailableBeaconLocations": 4, + "GetAvailableBeaconLocations": 5, + "CreateBeacon": 6, + "OnReservationCompleted": 7, + "CancelReservation": 8, + "ChangeNumOpenSlots": 9, + "DestroyBeacon": 10, + "GetBeaconLocationData": 11 + }, + "SteamNetworkingSockets008": { + "CreateListenSocketIP": 0, + "ConnectByIPAddress": 1, + "AcceptConnection": 2, + "CloseConnection": 3, + "CloseListenSocket": 4, + "SetConnectionUserData": 5, + "GetConnectionUserData": 6, + "SetConnectionName": 7, + "GetConnectionName": 8, + "SendMessageToConnection": 9, + "SendMessages": 10, + "FlushMessagesOnConnection": 11, + "ReceiveMessagesOnConnection": 12, + "GetConnectionInfo": 13, + "GetQuickConnectionStatus": 14, + "GetDetailedConnectionStatus": 15, + "GetListenSocketAddress": 16, + "CreateSocketPair": 17, + "GetIdentity": 18, + "InitAuthentication": 19, + "GetAuthenticationStatus": 20, + "CreatePollGroup": 21, + "DestroyPollGroup": 22, + "SetConnectionPollGroup": 23, + "ReceiveMessagesOnPollGroup": 24, + "GetCertificateRequest": 25, + "SetCertificate": 26, + "CreateListenSocketP2P": 27, + "ConnectP2P": 28, + "ReceivedRelayAuthTicket": 29, + "FindRelayAuthTicketForServer": 30, + "ConnectToHostedDedicatedServer": 31, + "GetHostedDedicatedServerPort": 32, + "GetHostedDedicatedServerPOPID": 33, + "GetHostedDedicatedServerAddress": 34, + "CreateHostedDedicatedServerListenSocket": 35, + "GetGameCoordinatorServerLogin": 36, + "ConnectP2PCustomSignaling": 37, + "ReceivedP2PCustomSignal": 38, + "RunCallbacks": 39, + "SendSignal": 0, + "Release": 1, + "OnConnectRequest": 0, + "SendRejectionSignal": 1 + }, + "SteamUser021": { + "GetHSteamUser": 0, + "BLoggedOn": 1, + "GetSteamID": 2, + "InitiateGameConnection_DEPRECATED": 3, + "TerminateGameConnection_DEPRECATED": 4, + "TrackAppUsageEvent": 5, + "GetUserDataFolder": 6, + "StartVoiceRecording": 7, + "StopVoiceRecording": 8, + "GetAvailableVoice": 9, + "GetVoice": 10, + "DecompressVoice": 11, + "GetVoiceOptimalSampleRate": 12, + "GetAuthSessionTicket": 13, + "BeginAuthSession": 14, + "EndAuthSession": 15, + "CancelAuthTicket": 16, + "UserHasLicenseForApp": 17, + "BIsBehindNAT": 18, + "AdvertiseGame": 19, + "RequestEncryptedAppTicket": 20, + "GetEncryptedAppTicket": 21, + "GetGameBadgeLevel": 22, + "GetPlayerSteamLevel": 23, + "RequestStoreAuthURL": 24, + "BIsPhoneVerified": 25, + "BIsTwoFactorEnabled": 26, + "BIsPhoneIdentifying": 27, + "BIsPhoneRequiringVerification": 28, + "GetMarketEligibility": 29, + "GetDurationControl": 30, + "BSetDurationControlOnlineState": 31 + }, + "STEAMUSERSTATS_INTERFACE_VERSION012": { + "RequestCurrentStats": 0, + "GetStat": 2, + "SetStat": 4, + "UpdateAvgRateStat": 5, + "GetAchievement": 6, + "SetAchievement": 7, + "ClearAchievement": 8, + "GetAchievementAndUnlockTime": 9, + "StoreStats": 10, + "GetAchievementIcon": 11, + "GetAchievementDisplayAttribute": 12, + "IndicateAchievementProgress": 13, + "GetNumAchievements": 14, + "GetAchievementName": 15, + "RequestUserStats": 16, + "GetUserStat": 18, + "GetUserAchievement": 19, + "GetUserAchievementAndUnlockTime": 20, + "ResetAllStats": 21, + "FindOrCreateLeaderboard": 22, + "FindLeaderboard": 23, + "GetLeaderboardName": 24, + "GetLeaderboardEntryCount": 25, + "GetLeaderboardSortMethod": 26, + "GetLeaderboardDisplayType": 27, + "DownloadLeaderboardEntries": 28, + "DownloadLeaderboardEntriesForUsers": 29, + "GetDownloadedLeaderboardEntry": 30, + "UploadLeaderboardScore": 31, + "AttachLeaderboardUGC": 32, + "GetNumberOfCurrentPlayers": 33, + "RequestGlobalAchievementPercentages": 34, + "GetMostAchievedAchievementInfo": 35, + "GetNextMostAchievedAchievementInfo": 36, + "GetAchievementAchievedPercent": 37, + "RequestGlobalStats": 38, + "GetGlobalStat": 40, + "GetGlobalStatHistory": 42, + "GetAchievementProgressLimits": 44 + }, + "SteamNetworkingMessages002": { + "SendMessageToUser": 0, + "ReceiveMessagesOnChannel": 1, + "AcceptSessionWithUser": 2, + "CloseSessionWithUser": 3, + "CloseChannelWithUser": 4, + "GetSessionConnectionInfo": 5 + }, + "SteamNetworkingSockets009": { + "CreateListenSocketIP": 0, + "ConnectByIPAddress": 1, + "CreateListenSocketP2P": 2, + "ConnectP2P": 3, + "AcceptConnection": 4, + "CloseConnection": 5, + "CloseListenSocket": 6, + "SetConnectionUserData": 7, + "GetConnectionUserData": 8, + "SetConnectionName": 9, + "GetConnectionName": 10, + "SendMessageToConnection": 11, + "SendMessages": 12, + "FlushMessagesOnConnection": 13, + "ReceiveMessagesOnConnection": 14, + "GetConnectionInfo": 15, + "GetQuickConnectionStatus": 16, + "GetDetailedConnectionStatus": 17, + "GetListenSocketAddress": 18, + "CreateSocketPair": 19, + "GetIdentity": 20, + "InitAuthentication": 21, + "GetAuthenticationStatus": 22, + "CreatePollGroup": 23, + "DestroyPollGroup": 24, + "SetConnectionPollGroup": 25, + "ReceiveMessagesOnPollGroup": 26, + "ReceivedRelayAuthTicket": 27, + "FindRelayAuthTicketForServer": 28, + "ConnectToHostedDedicatedServer": 29, + "GetHostedDedicatedServerPort": 30, + "GetHostedDedicatedServerPOPID": 31, + "GetHostedDedicatedServerAddress": 32, + "CreateHostedDedicatedServerListenSocket": 33, + "GetGameCoordinatorServerLogin": 34, + "ConnectP2PCustomSignaling": 35, + "ReceivedP2PCustomSignal": 36, + "GetCertificateRequest": 37, + "SetCertificate": 38, + "RunCallbacks": 39 + }, + "SteamUtils010": { + "GetSecondsSinceAppActive": 0, + "GetSecondsSinceComputerActive": 1, + "GetConnectedUniverse": 2, + "GetServerRealTime": 3, + "GetIPCountry": 4, + "GetImageSize": 5, + "GetImageRGBA": 6, + "GetCSERIPPort": 7, + "GetCurrentBatteryPower": 8, + "GetAppID": 9, + "SetOverlayNotificationPosition": 10, + "IsAPICallCompleted": 11, + "GetAPICallFailureReason": 12, + "GetAPICallResult": 13, + "RunFrame": 14, + "GetIPCCallCount": 15, + "SetWarningMessageHook": 16, + "IsOverlayEnabled": 17, + "BOverlayNeedsPresent": 18, + "CheckFileSignature": 19, + "ShowGamepadTextInput": 20, + "GetEnteredGamepadTextLength": 21, + "GetEnteredGamepadTextInput": 22, + "GetSteamUILanguage": 23, + "IsSteamRunningInVR": 24, + "SetOverlayNotificationInset": 25, + "IsSteamInBigPictureMode": 26, + "StartVRDashboard": 27, + "IsVRHeadsetStreamingEnabled": 28, + "SetVRHeadsetStreamingEnabled": 29, + "IsSteamChinaLauncher": 30, + "InitFilterText": 31, + "FilterText": 32, + "GetIPv6ConnectivityState": 33, + "IsSteamRunningOnSteamDeck": 34, + "ShowFloatingGamepadTextInput": 35, + "SetGameLauncherMode": 36, + "DismissFloatingGamepadTextInput": 37, + "DismissGamepadTextInput": 38 + }, + "SteamController008": { + "Init": 0, + "Shutdown": 1, + "RunFrame": 2, + "GetConnectedControllers": 3, + "GetActionSetHandle": 4, + "ActivateActionSet": 5, + "GetCurrentActionSet": 6, + "ActivateActionSetLayer": 7, + "DeactivateActionSetLayer": 8, + "DeactivateAllActionSetLayers": 9, + "GetActiveActionSetLayers": 10, + "GetDigitalActionHandle": 11, + "GetDigitalActionData": 12, + "GetDigitalActionOrigins": 13, + "GetAnalogActionHandle": 14, + "GetAnalogActionData": 15, + "GetAnalogActionOrigins": 16, + "GetGlyphForActionOrigin": 17, + "GetStringForActionOrigin": 18, + "StopAnalogActionMomentum": 19, + "GetMotionData": 20, + "TriggerHapticPulse": 21, + "TriggerRepeatedHapticPulse": 22, + "TriggerVibration": 23, + "SetLEDColor": 24, + "ShowBindingPanel": 25, + "GetInputTypeForHandle": 26, + "GetControllerForGamepadIndex": 27, + "GetGamepadIndexForController": 28, + "GetStringForXboxOrigin": 29, + "GetGlyphForXboxOrigin": 30, + "GetActionOriginFromXboxOrigin": 31, + "TranslateActionOrigin": 32, + "GetControllerBindingRevision": 33 + }, + "SteamInput002": { + "Init": 0, + "Shutdown": 1, + "RunFrame": 2, + "GetConnectedControllers": 3, + "GetActionSetHandle": 4, + "ActivateActionSet": 5, + "GetCurrentActionSet": 6, + "ActivateActionSetLayer": 7, + "DeactivateActionSetLayer": 8, + "DeactivateAllActionSetLayers": 9, + "GetActiveActionSetLayers": 10, + "GetDigitalActionHandle": 11, + "GetDigitalActionData": 12, + "GetDigitalActionOrigins": 13, + "GetAnalogActionHandle": 14, + "GetAnalogActionData": 15, + "GetAnalogActionOrigins": 16, + "GetGlyphForActionOrigin": 17, + "GetStringForActionOrigin": 18, + "StopAnalogActionMomentum": 19, + "GetMotionData": 20, + "TriggerVibration": 21, + "SetLEDColor": 22, + "TriggerHapticPulse": 23, + "TriggerRepeatedHapticPulse": 24, + "ShowBindingPanel": 25, + "GetInputTypeForHandle": 26, + "GetControllerForGamepadIndex": 27, + "GetGamepadIndexForController": 28, + "GetStringForXboxOrigin": 29, + "GetGlyphForXboxOrigin": 30, + "GetActionOriginFromXboxOrigin": 31, + "TranslateActionOrigin": 32, + "GetDeviceBindingRevision": 33, + "GetRemotePlaySessionID": 34 + }, + "STEAMUGC_INTERFACE_VERSION015": { + "CreateQueryUserUGCRequest": 0, + "CreateQueryAllUGCRequest": 2, + "CreateQueryUGCDetailsRequest": 3, + "SendQueryUGCRequest": 4, + "GetQueryUGCResult": 5, + "GetQueryUGCNumTags": 6, + "GetQueryUGCTag": 7, + "GetQueryUGCTagDisplayName": 8, + "GetQueryUGCPreviewURL": 9, + "GetQueryUGCMetadata": 10, + "GetQueryUGCChildren": 11, + "GetQueryUGCStatistic": 12, + "GetQueryUGCNumAdditionalPreviews": 13, + "GetQueryUGCAdditionalPreview": 14, + "GetQueryUGCNumKeyValueTags": 15, + "GetQueryUGCKeyValueTag": 17, + "ReleaseQueryUGCRequest": 18, + "AddRequiredTag": 19, + "AddRequiredTagGroup": 20, + "AddExcludedTag": 21, + "SetReturnOnlyIDs": 22, + "SetReturnKeyValueTags": 23, + "SetReturnLongDescription": 24, + "SetReturnMetadata": 25, + "SetReturnChildren": 26, + "SetReturnAdditionalPreviews": 27, + "SetReturnTotalOnly": 28, + "SetReturnPlaytimeStats": 29, + "SetLanguage": 30, + "SetAllowCachedResponse": 31, + "SetCloudFileNameFilter": 32, + "SetMatchAnyTag": 33, + "SetSearchText": 34, + "SetRankedByTrendDays": 35, + "AddRequiredKeyValueTag": 36, + "RequestUGCDetails": 37, + "CreateItem": 38, + "StartItemUpdate": 39, + "SetItemTitle": 40, + "SetItemDescription": 41, + "SetItemUpdateLanguage": 42, + "SetItemMetadata": 43, + "SetItemVisibility": 44, + "SetItemTags": 45, + "SetItemContent": 46, + "SetItemPreview": 47, + "SetAllowLegacyUpload": 48, + "RemoveAllItemKeyValueTags": 49, + "RemoveItemKeyValueTags": 50, + "AddItemKeyValueTag": 51, + "AddItemPreviewFile": 52, + "AddItemPreviewVideo": 53, + "UpdateItemPreviewFile": 54, + "UpdateItemPreviewVideo": 55, + "RemoveItemPreview": 56, + "SubmitItemUpdate": 57, + "GetItemUpdateProgress": 58, + "SetUserItemVote": 59, + "GetUserItemVote": 60, + "AddItemToFavorites": 61, + "RemoveItemFromFavorites": 62, + "SubscribeItem": 63, + "UnsubscribeItem": 64, + "GetNumSubscribedItems": 65, + "GetSubscribedItems": 66, + "GetItemState": 67, + "GetItemInstallInfo": 68, + "GetItemDownloadInfo": 69, + "DownloadItem": 70, + "BInitWorkshopForGameServer": 71, + "SuspendDownloads": 72, + "StartPlaytimeTracking": 73, + "StopPlaytimeTracking": 74, + "StopPlaytimeTrackingForAllItems": 75, + "AddDependency": 76, + "RemoveDependency": 77, + "AddAppDependency": 78, + "RemoveAppDependency": 79, + "GetAppDependencies": 80, + "DeleteItem": 81, + "ShowWorkshopEULA": 82, + "GetWorkshopEULAStatus": 83 + }, + "SteamGameServer014": { + "InitGameServer": 0, + "SetProduct": 1, + "SetGameDescription": 2, + "SetModDir": 3, + "SetDedicatedServer": 4, + "LogOn": 5, + "LogOnAnonymous": 6, + "LogOff": 7, + "BLoggedOn": 8, + "BSecure": 9, + "GetSteamID": 10, + "WasRestartRequested": 11, + "SetMaxPlayerCount": 12, + "SetBotPlayerCount": 13, + "SetServerName": 14, + "SetMapName": 15, + "SetPasswordProtected": 16, + "SetSpectatorPort": 17, + "SetSpectatorServerName": 18, + "ClearAllKeyValues": 19, + "SetKeyValue": 20, + "SetGameTags": 21, + "SetGameData": 22, + "SetRegion": 23, + "SetAdvertiseServerActive": 24, + "GetAuthSessionTicket": 25, + "BeginAuthSession": 26, + "EndAuthSession": 27, + "CancelAuthTicket": 28, + "UserHasLicenseForApp": 29, + "RequestUserGroupStatus": 30, + "GetGameplayStats": 31, + "GetServerReputation": 32, + "GetPublicIP": 33, + "HandleIncomingPacket": 34, + "GetNextOutgoingPacket": 35, + "AssociateWithClan": 36, + "ComputeNewPlayerCompatibility": 37, + "SendUserConnectAndAuthenticate_DEPRECATED": 38, + "CreateUnauthenticatedUserConnection": 39, + "SendUserDisconnect_DEPRECATED": 40, + "BUpdateUserData": 41, + "SetMasterServerHeartbeatInterval_DEPRECATED": 42, + "ForceMasterServerHeartbeat_DEPRECATED": 43 + }, + "SteamInput005": { + "Init": 0, + "Shutdown": 1, + "SetInputActionManifestFilePath": 2, + "RunFrame": 3, + "BWaitForData": 4, + "BNewDataAvailable": 5, + "GetConnectedControllers": 6, + "EnableDeviceCallbacks": 7, + "EnableActionEventCallbacks": 8, + "GetActionSetHandle": 9, + "ActivateActionSet": 10, + "GetCurrentActionSet": 11, + "ActivateActionSetLayer": 12, + "DeactivateActionSetLayer": 13, + "DeactivateAllActionSetLayers": 14, + "GetActiveActionSetLayers": 15, + "GetDigitalActionHandle": 16, + "GetDigitalActionData": 17, + "GetDigitalActionOrigins": 18, + "GetStringForDigitalActionName": 19, + "GetAnalogActionHandle": 20, + "GetAnalogActionData": 21, + "GetAnalogActionOrigins": 22, + "GetGlyphPNGForActionOrigin": 23, + "GetGlyphSVGForActionOrigin": 24, + "GetGlyphForActionOrigin_Legacy": 25, + "GetStringForActionOrigin": 26, + "GetStringForAnalogActionName": 27, + "StopAnalogActionMomentum": 28, + "GetMotionData": 29, + "TriggerVibration": 30, + "TriggerVibrationExtended": 31, + "TriggerSimpleHapticEvent": 32, + "SetLEDColor": 33, + "Legacy_TriggerHapticPulse": 34, + "Legacy_TriggerRepeatedHapticPulse": 35, + "ShowBindingPanel": 36, + "GetInputTypeForHandle": 37, + "GetControllerForGamepadIndex": 38, + "GetGamepadIndexForController": 39, + "GetStringForXboxOrigin": 40, + "GetGlyphForXboxOrigin": 41, + "GetActionOriginFromXboxOrigin": 42, + "TranslateActionOrigin": 43, + "GetDeviceBindingRevision": 44, + "GetRemotePlaySessionID": 45, + "GetSessionInputConfigurationSettings": 46 + }, + "STEAMREMOTESTORAGE_INTERFACE_VERSION016": { + "FileWrite": 0, + "FileRead": 1, + "FileWriteAsync": 2, + "FileReadAsync": 3, + "FileReadAsyncComplete": 4, + "FileForget": 5, + "FileDelete": 6, + "FileShare": 7, + "SetSyncPlatforms": 8, + "FileWriteStreamOpen": 9, + "FileWriteStreamWriteChunk": 10, + "FileWriteStreamClose": 11, + "FileWriteStreamCancel": 12, + "FileExists": 13, + "FilePersisted": 14, + "GetFileSize": 15, + "GetFileTimestamp": 16, + "GetSyncPlatforms": 17, + "GetFileCount": 18, + "GetFileNameAndSize": 19, + "GetQuota": 20, + "IsCloudEnabledForAccount": 21, + "IsCloudEnabledForApp": 22, + "SetCloudEnabledForApp": 23, + "UGCDownload": 24, + "GetUGCDownloadProgress": 25, + "GetUGCDetails": 26, + "UGCRead": 27, + "GetCachedUGCCount": 28, + "PublishWorkshopFile": 29, + "CreatePublishedFileUpdateRequest": 30, + "UpdatePublishedFileFile": 31, + "UpdatePublishedFilePreviewFile": 32, + "UpdatePublishedFileTitle": 33, + "UpdatePublishedFileDescription": 34, + "UpdatePublishedFileVisibility": 35, + "UpdatePublishedFileTags": 36, + "CommitPublishedFileUpdate": 37, + "GetPublishedFileDetails": 38, + "DeletePublishedFile": 39, + "EnumerateUserPublishedFiles": 40, + "SubscribePublishedFile": 41, + "EnumerateUserSubscribedFiles": 42, + "UnsubscribePublishedFile": 43, + "UpdatePublishedFileSetChangeDescription": 44, + "GetPublishedItemVoteDetails": 45, + "UpdateUserPublishedItemVote": 46, + "GetUserPublishedItemVoteDetails": 47, + "EnumerateUserSharedWorkshopFiles": 48, + "PublishVideo": 49, + "SetUserPublishedFileAction": 50, + "EnumeratePublishedFilesByUserAction": 51, + "EnumeratePublishedWorkshopFiles": 52, + "UGCDownloadToLocation": 53, + "GetLocalFileChangeCount": 54, + "GetLocalFileChange": 55, + "BeginFileWriteBatch": 56, + "EndFileWriteBatch": 57 + }, + "SteamInput006": { + "Init": 0, + "Shutdown": 1, + "SetInputActionManifestFilePath": 2, + "RunFrame": 3, + "BWaitForData": 4, + "BNewDataAvailable": 5, + "GetConnectedControllers": 6, + "EnableDeviceCallbacks": 7, + "EnableActionEventCallbacks": 8, + "GetActionSetHandle": 9, + "ActivateActionSet": 10, + "GetCurrentActionSet": 11, + "ActivateActionSetLayer": 12, + "DeactivateActionSetLayer": 13, + "DeactivateAllActionSetLayers": 14, + "GetActiveActionSetLayers": 15, + "GetDigitalActionHandle": 16, + "GetDigitalActionData": 17, + "GetDigitalActionOrigins": 18, + "GetStringForDigitalActionName": 19, + "GetAnalogActionHandle": 20, + "GetAnalogActionData": 21, + "GetAnalogActionOrigins": 22, + "GetGlyphPNGForActionOrigin": 23, + "GetGlyphSVGForActionOrigin": 24, + "GetGlyphForActionOrigin_Legacy": 25, + "GetStringForActionOrigin": 26, + "GetStringForAnalogActionName": 27, + "StopAnalogActionMomentum": 28, + "GetMotionData": 29, + "TriggerVibration": 30, + "TriggerVibrationExtended": 31, + "TriggerSimpleHapticEvent": 32, + "SetLEDColor": 33, + "Legacy_TriggerHapticPulse": 34, + "Legacy_TriggerRepeatedHapticPulse": 35, + "ShowBindingPanel": 36, + "GetInputTypeForHandle": 37, + "GetControllerForGamepadIndex": 38, + "GetGamepadIndexForController": 39, + "GetStringForXboxOrigin": 40, + "GetGlyphForXboxOrigin": 41, + "GetActionOriginFromXboxOrigin": 42, + "TranslateActionOrigin": 43, + "GetDeviceBindingRevision": 44, + "GetRemotePlaySessionID": 45, + "GetSessionInputConfigurationSettings": 46, + "SetDualSenseTriggerEffect": 47 }, "SteamNetworkingUtils004": { "AllocateMessage": 0, - "CheckPingDataUpToDate": 7, - "ConvertPingLocationToString": 5, + "GetRelayNetworkStatus": 1, + "GetLocalPingLocation": 2, "EstimatePingTimeBetweenTwoLocations": 3, "EstimatePingTimeFromLocalHost": 4, - "GetConfigValue": 17, - "GetConfigValueInfo": 18, + "ConvertPingLocationToString": 5, + "ParsePingLocationString": 6, + "CheckPingDataUpToDate": 7, + "GetPingToDataCenter": 8, "GetDirectPingToPOP": 9, - "GetIPv4FakeIPType": 14, - "GetLocalPingLocation": 2, - "GetLocalTimestamp": 12, "GetPOPCount": 10, "GetPOPList": 11, - "GetPingToDataCenter": 8, - "GetRealIdentityForFakeIP": 15, - "GetRelayNetworkStatus": 1, - "IterateGenericEditableConfigValues": 19, - "ParsePingLocationString": 6, - "SetConfigValue": 16, + "GetLocalTimestamp": 12, "SetDebugOutputFunction": 13, - "SteamNetworkingIPAddr_GetFakeIPType": 22, - "SteamNetworkingIPAddr_ParseString": 21, + "GetIPv4FakeIPType": 14, + "GetRealIdentityForFakeIP": 15, + "SetConfigValue": 16, + "GetConfigValue": 17, + "GetConfigValueInfo": 18, + "IterateGenericEditableConfigValues": 19, "SteamNetworkingIPAddr_ToString": 20, - "SteamNetworkingIdentity_ParseString": 24, - "SteamNetworkingIdentity_ToString": 23 + "SteamNetworkingIPAddr_ParseString": 21, + "SteamNetworkingIPAddr_GetFakeIPType": 22, + "SteamNetworkingIdentity_ToString": 23, + "SteamNetworkingIdentity_ParseString": 24 }, - "SteamParties002": { - "AcceptGame": 3, - "AddFavoriteGame": 2, - "AddGameSearchParams": 0, - "AddPlayerToList": 0, - "AddRequestLobbyListCompatibleMembersFilter": 11, - "AddRequestLobbyListDistanceFilter": 9, - "AddRequestLobbyListFilterSlotsAvailable": 8, - "AddRequestLobbyListNearValueFilter": 7, - "AddRequestLobbyListNumericalFilter": 6, - "AddRequestLobbyListResultCountFilter": 10, - "AddRequestLobbyListStringFilter": 5, - "CancelQuery": 8, - "CancelRequestPlayersForGame": 11, - "CancelReservation": 8, - "CancelServerQuery": 16, - "ChangeNumOpenSlots": 9, - "CreateBeacon": 6, - "CreateLobby": 13, - "DeclineGame": 4, - "DeleteLobbyData": 23, - "DestroyBeacon": 10, - "EndGame": 13, - "EndGameSearch": 6, - "GetAvailableBeaconLocations": 5, - "GetBeaconByIndex": 1, - "GetBeaconDetails": 2, - "GetBeaconLocationData": 11, - "GetFavoriteGame": 1, - "GetFavoriteGameCount": 0, - "GetLobbyByIndex": 12, - "GetLobbyChatEntry": 27, - "GetLobbyData": 19, - "GetLobbyDataByIndex": 22, - "GetLobbyDataCount": 21, - "GetLobbyGameServer": 30, - "GetLobbyMemberByIndex": 18, - "GetLobbyMemberData": 24, - "GetLobbyMemberLimit": 32, - "GetLobbyOwner": 35, - "GetNumActiveBeacons": 0, - "GetNumAvailableBeaconLocations": 4, - "GetNumLobbyMembers": 17, - "GetServerCount": 11, - "GetServerDetails": 7, - "HostConfirmGameStart": 10, - "InviteUserToLobby": 16, - "IsRefreshing": 10, - "JoinLobby": 14, - "JoinParty": 3, - "LeaveLobby": 15, - "OnReservationCompleted": 7, - "PingServer": 13, - "PlayerDetails": 14, - "PlayersFailedToRespond": 1, - "PlayersRefreshComplete": 2, - "RefreshComplete": 2, - "RefreshQuery": 9, - "RefreshServer": 12, - "ReleaseRequest": 6, - "RemoveFavoriteGame": 3, - "RequestFavoritesServerList": 3, - "RequestFriendsServerList": 2, - "RequestHistoryServerList": 4, - "RequestInternetServerList": 0, - "RequestLANServerList": 1, - "RequestLobbyData": 28, - "RequestLobbyList": 4, - "RequestPlayersForGame": 9, - "RequestSpectatorServerList": 5, - "RetrieveConnectionDetails": 5, - "RulesFailedToRespond": 1, - "RulesRefreshComplete": 2, - "RulesResponded": 0, - "SearchForGameSolo": 2, - "SearchForGameWithLobby": 1, - "SendLobbyChatMsg": 26, - "ServerFailedToRespond": 1, - "ServerResponded": 0, - "ServerRules": 15, - "SetConnectionDetails": 8, - "SetGameHostParams": 7, - "SetLinkedLobby": 37, - "SetLobbyData": 20, - "SetLobbyGameServer": 29, - "SetLobbyJoinable": 34, - "SetLobbyMemberData": 25, - "SetLobbyMemberLimit": 31, - "SetLobbyOwner": 36, - "SetLobbyType": 33, - "SubmitPlayerResult": 12 + "SteamNetworkingSockets012": { + "CreateListenSocketIP": 0, + "ConnectByIPAddress": 1, + "CreateListenSocketP2P": 2, + "ConnectP2P": 3, + "AcceptConnection": 4, + "CloseConnection": 5, + "CloseListenSocket": 6, + "SetConnectionUserData": 7, + "GetConnectionUserData": 8, + "SetConnectionName": 9, + "GetConnectionName": 10, + "SendMessageToConnection": 11, + "SendMessages": 12, + "FlushMessagesOnConnection": 13, + "ReceiveMessagesOnConnection": 14, + "GetConnectionInfo": 15, + "GetConnectionRealTimeStatus": 16, + "GetDetailedConnectionStatus": 17, + "GetListenSocketAddress": 18, + "CreateSocketPair": 19, + "ConfigureConnectionLanes": 20, + "GetIdentity": 21, + "InitAuthentication": 22, + "GetAuthenticationStatus": 23, + "CreatePollGroup": 24, + "DestroyPollGroup": 25, + "SetConnectionPollGroup": 26, + "ReceiveMessagesOnPollGroup": 27, + "ReceivedRelayAuthTicket": 28, + "FindRelayAuthTicketForServer": 29, + "ConnectToHostedDedicatedServer": 30, + "GetHostedDedicatedServerPort": 31, + "GetHostedDedicatedServerPOPID": 32, + "GetHostedDedicatedServerAddress": 33, + "CreateHostedDedicatedServerListenSocket": 34, + "GetGameCoordinatorServerLogin": 35, + "ConnectP2PCustomSignaling": 36, + "ReceivedP2PCustomSignal": 37, + "GetCertificateRequest": 38, + "SetCertificate": 39, + "ResetIdentity": 40, + "RunCallbacks": 41, + "BeginAsyncRequestFakeIP": 42, + "GetFakeIP": 43, + "CreateListenSocketP2PFakeIP": 44, + "GetRemoteFakeIPForConnection": 45, + "CreateFakeUDPPort": 46 }, - "SteamUser009": { - "BLoggedOn": 1, - "GetHSteamUser": 0, - "GetSteamID": 2, - "InitiateGameConnection": 3, - "RefreshSteam2Login": 6, - "TerminateGameConnection": 4, - "TrackAppUsageEvent": 5 + "STEAMUGC_INTERFACE_VERSION016": { + "CreateQueryUserUGCRequest": 0, + "CreateQueryAllUGCRequest": 2, + "CreateQueryUGCDetailsRequest": 3, + "SendQueryUGCRequest": 4, + "GetQueryUGCResult": 5, + "GetQueryUGCNumTags": 6, + "GetQueryUGCTag": 7, + "GetQueryUGCTagDisplayName": 8, + "GetQueryUGCPreviewURL": 9, + "GetQueryUGCMetadata": 10, + "GetQueryUGCChildren": 11, + "GetQueryUGCStatistic": 12, + "GetQueryUGCNumAdditionalPreviews": 13, + "GetQueryUGCAdditionalPreview": 14, + "GetQueryUGCNumKeyValueTags": 15, + "GetQueryUGCKeyValueTag": 17, + "ReleaseQueryUGCRequest": 18, + "AddRequiredTag": 19, + "AddRequiredTagGroup": 20, + "AddExcludedTag": 21, + "SetReturnOnlyIDs": 22, + "SetReturnKeyValueTags": 23, + "SetReturnLongDescription": 24, + "SetReturnMetadata": 25, + "SetReturnChildren": 26, + "SetReturnAdditionalPreviews": 27, + "SetReturnTotalOnly": 28, + "SetReturnPlaytimeStats": 29, + "SetLanguage": 30, + "SetAllowCachedResponse": 31, + "SetCloudFileNameFilter": 32, + "SetMatchAnyTag": 33, + "SetSearchText": 34, + "SetRankedByTrendDays": 35, + "SetTimeCreatedDateRange": 36, + "SetTimeUpdatedDateRange": 37, + "AddRequiredKeyValueTag": 38, + "RequestUGCDetails": 39, + "CreateItem": 40, + "StartItemUpdate": 41, + "SetItemTitle": 42, + "SetItemDescription": 43, + "SetItemUpdateLanguage": 44, + "SetItemMetadata": 45, + "SetItemVisibility": 46, + "SetItemTags": 47, + "SetItemContent": 48, + "SetItemPreview": 49, + "SetAllowLegacyUpload": 50, + "RemoveAllItemKeyValueTags": 51, + "RemoveItemKeyValueTags": 52, + "AddItemKeyValueTag": 53, + "AddItemPreviewFile": 54, + "AddItemPreviewVideo": 55, + "UpdateItemPreviewFile": 56, + "UpdateItemPreviewVideo": 57, + "RemoveItemPreview": 58, + "SubmitItemUpdate": 59, + "GetItemUpdateProgress": 60, + "SetUserItemVote": 61, + "GetUserItemVote": 62, + "AddItemToFavorites": 63, + "RemoveItemFromFavorites": 64, + "SubscribeItem": 65, + "UnsubscribeItem": 66, + "GetNumSubscribedItems": 67, + "GetSubscribedItems": 68, + "GetItemState": 69, + "GetItemInstallInfo": 70, + "GetItemDownloadInfo": 71, + "DownloadItem": 72, + "BInitWorkshopForGameServer": 73, + "SuspendDownloads": 74, + "StartPlaytimeTracking": 75, + "StopPlaytimeTracking": 76, + "StopPlaytimeTrackingForAllItems": 77, + "AddDependency": 78, + "RemoveDependency": 79, + "AddAppDependency": 80, + "RemoveAppDependency": 81, + "GetAppDependencies": 82, + "DeleteItem": 83, + "ShowWorkshopEULA": 84, + "GetWorkshopEULAStatus": 85 }, - "SteamUser010": { - "BLoggedOn": 1, - "GetHSteamUser": 0, - "GetSteamID": 2, - "InitiateGameConnection": 3, - "TerminateGameConnection": 4, - "TrackAppUsageEvent": 5 - }, - "SteamUser011": { - "BLoggedOn": 1, - "DecompressVoice": 10, - "GetCompressedVoice": 9, - "GetHSteamUser": 0, - "GetSteamID": 2, - "GetUserDataFolder": 6, - "InitiateGameConnection": 3, - "StartVoiceRecording": 7, - "StopVoiceRecording": 8, - "TerminateGameConnection": 4, - "TrackAppUsageEvent": 5 - }, - "SteamUser012": { - "BLoggedOn": 1, - "BeginAuthSession": 12, - "CancelAuthTicket": 14, - "DecompressVoice": 10, - "EndAuthSession": 13, - "GetAuthSessionTicket": 11, - "GetCompressedVoice": 9, - "GetHSteamUser": 0, - "GetSteamID": 2, - "GetUserDataFolder": 6, - "InitiateGameConnection": 3, - "StartVoiceRecording": 7, - "StopVoiceRecording": 8, - "TerminateGameConnection": 4, - "TrackAppUsageEvent": 5, - "UserHasLicenseForApp": 15 - }, - "SteamUser013": { - "BLoggedOn": 1, - "BeginAuthSession": 13, - "CancelAuthTicket": 15, - "DecompressVoice": 11, - "EndAuthSession": 14, - "GetAuthSessionTicket": 12, - "GetAvailableVoice": 9, - "GetHSteamUser": 0, - "GetSteamID": 2, - "GetUserDataFolder": 6, - "GetVoice": 10, - "InitiateGameConnection": 3, - "StartVoiceRecording": 7, - "StopVoiceRecording": 8, - "TerminateGameConnection": 4, - "TrackAppUsageEvent": 5, - "UserHasLicenseForApp": 16 - }, - "SteamUser014": { - "AdvertiseGame": 18, - "BIsBehindNAT": 17, - "BLoggedOn": 1, - "BeginAuthSession": 13, - "CancelAuthTicket": 15, - "DecompressVoice": 11, - "EndAuthSession": 14, - "GetAuthSessionTicket": 12, - "GetAvailableVoice": 9, - "GetEncryptedAppTicket": 20, - "GetHSteamUser": 0, - "GetSteamID": 2, - "GetUserDataFolder": 6, - "GetVoice": 10, - "InitiateGameConnection": 3, - "LogOn": 21, - "LogOnAndCreateNewSteamAccountIfNeeded": 23, - "LogOnAndLinkSteamAccountToPSN": 22, - "RequestEncryptedAppTicket": 19, - "StartVoiceRecording": 7, - "StopVoiceRecording": 8, - "TerminateGameConnection": 4, - "TrackAppUsageEvent": 5, - "UserHasLicenseForApp": 16 - }, - "SteamUser016": { - "AdvertiseGame": 19, - "BIsBehindNAT": 18, - "BLoggedOn": 1, - "BeginAuthSession": 14, - "CancelAuthTicket": 16, - "DecompressVoice": 11, - "EndAuthSession": 15, - "GetAuthSessionTicket": 13, - "GetAvailableVoice": 9, - "GetConsoleSteamID": 25, - "GetEncryptedAppTicket": 21, - "GetHSteamUser": 0, - "GetSteamID": 2, - "GetUserDataFolder": 6, - "GetVoice": 10, - "GetVoiceOptimalSampleRate": 12, - "InitiateGameConnection": 3, - "LogOn": 22, - "LogOnAndCreateNewSteamAccountIfNeeded": 24, - "LogOnAndLinkSteamAccountToPSN": 23, - "RequestEncryptedAppTicket": 20, - "StartVoiceRecording": 7, - "StopVoiceRecording": 8, - "TerminateGameConnection": 4, - "TrackAppUsageEvent": 5, - "UserHasLicenseForApp": 17 - }, - "SteamUser017": { - "AdvertiseGame": 19, - "BIsBehindNAT": 18, - "BLoggedOn": 1, - "BeginAuthSession": 14, - "CancelAuthTicket": 16, - "DecompressVoice": 11, - "EndAuthSession": 15, - "GetAuthSessionTicket": 13, - "GetAvailableVoice": 9, - "GetConsoleSteamID": 27, - "GetEncryptedAppTicket": 21, - "GetGameBadgeLevel": 22, - "GetHSteamUser": 0, - "GetPlayerSteamLevel": 23, - "GetSteamID": 2, - "GetUserDataFolder": 6, - "GetVoice": 10, - "GetVoiceOptimalSampleRate": 12, - "InitiateGameConnection": 3, - "LogOn": 24, - "LogOnAndCreateNewSteamAccountIfNeeded": 26, - "LogOnAndLinkSteamAccountToPSN": 25, - "RequestEncryptedAppTicket": 20, - "StartVoiceRecording": 7, - "StopVoiceRecording": 8, - "TerminateGameConnection": 4, - "TrackAppUsageEvent": 5, - "UserHasLicenseForApp": 17 - }, - "SteamUser018": { - "AdvertiseGame": 19, - "BIsBehindNAT": 18, - "BLoggedOn": 1, - "BeginAuthSession": 14, - "CancelAuthTicket": 16, - "DecompressVoice": 11, - "EndAuthSession": 15, - "GetAuthSessionTicket": 13, - "GetAvailableVoice": 9, - "GetConsoleSteamID": 28, - "GetEncryptedAppTicket": 21, - "GetGameBadgeLevel": 22, - "GetHSteamUser": 0, - "GetPlayerSteamLevel": 23, - "GetSteamID": 2, - "GetUserDataFolder": 6, - "GetVoice": 10, - "GetVoiceOptimalSampleRate": 12, - "InitiateGameConnection": 3, - "LogOn": 25, - "LogOnAndCreateNewSteamAccountIfNeeded": 27, - "LogOnAndLinkSteamAccountToPSN": 26, - "RequestEncryptedAppTicket": 20, - "RequestStoreAuthURL": 24, - "StartVoiceRecording": 7, - "StopVoiceRecording": 8, - "TerminateGameConnection": 4, - "TrackAppUsageEvent": 5, - "UserHasLicenseForApp": 17 - }, - "SteamUser019": { - "AdvertiseGame": 19, - "BIsBehindNAT": 18, - "BIsPhoneIdentifying": 27, - "BIsPhoneRequiringVerification": 28, - "BIsPhoneVerified": 25, - "BIsTwoFactorEnabled": 26, - "BLoggedOn": 1, - "BeginAuthSession": 14, - "CancelAuthTicket": 16, - "DecompressVoice": 11, - "EndAuthSession": 15, - "GetAuthSessionTicket": 13, - "GetAvailableVoice": 9, - "GetEncryptedAppTicket": 21, - "GetGameBadgeLevel": 22, - "GetHSteamUser": 0, - "GetPlayerSteamLevel": 23, - "GetSteamID": 2, - "GetUserDataFolder": 6, - "GetVoice": 10, - "GetVoiceOptimalSampleRate": 12, - "InitiateGameConnection": 3, - "RequestEncryptedAppTicket": 20, - "RequestStoreAuthURL": 24, - "StartVoiceRecording": 7, - "StopVoiceRecording": 8, - "TerminateGameConnection": 4, - "TrackAppUsageEvent": 5, - "UserHasLicenseForApp": 17 - }, - "SteamUser020": { - "AdvertiseGame": 19, - "BIsBehindNAT": 18, - "BIsPhoneIdentifying": 27, - "BIsPhoneRequiringVerification": 28, - "BIsPhoneVerified": 25, - "BIsTwoFactorEnabled": 26, - "BLoggedOn": 1, - "BeginAuthSession": 14, - "CancelAuthTicket": 16, - "DecompressVoice": 11, - "EndAuthSession": 15, - "GetAuthSessionTicket": 13, - "GetAvailableVoice": 9, - "GetDurationControl": 30, - "GetEncryptedAppTicket": 21, - "GetGameBadgeLevel": 22, - "GetHSteamUser": 0, - "GetMarketEligibility": 29, - "GetPlayerSteamLevel": 23, - "GetSteamID": 2, - "GetUserDataFolder": 6, - "GetVoice": 10, - "GetVoiceOptimalSampleRate": 12, - "InitiateGameConnection": 3, - "RequestEncryptedAppTicket": 20, - "RequestStoreAuthURL": 24, - "StartVoiceRecording": 7, - "StopVoiceRecording": 8, - "TerminateGameConnection": 4, - "TrackAppUsageEvent": 5, - "UserHasLicenseForApp": 17 - }, - "SteamUser021": { - "AdvertiseGame": 19, - "BIsBehindNAT": 18, - "BIsPhoneIdentifying": 27, - "BIsPhoneRequiringVerification": 28, - "BIsPhoneVerified": 25, - "BIsTwoFactorEnabled": 26, - "BLoggedOn": 1, - "BSetDurationControlOnlineState": 31, - "BeginAuthSession": 14, - "CancelAuthTicket": 16, - "DecompressVoice": 11, - "EndAuthSession": 15, - "GetAuthSessionTicket": 13, - "GetAvailableVoice": 9, - "GetDurationControl": 30, - "GetEncryptedAppTicket": 21, - "GetGameBadgeLevel": 22, - "GetHSteamUser": 0, - "GetMarketEligibility": 29, - "GetPlayerSteamLevel": 23, - "GetSteamID": 2, - "GetUserDataFolder": 6, - "GetVoice": 10, - "GetVoiceOptimalSampleRate": 12, - "InitiateGameConnection_DEPRECATED": 3, - "RequestEncryptedAppTicket": 20, - "RequestStoreAuthURL": 24, - "StartVoiceRecording": 7, - "StopVoiceRecording": 8, - "TerminateGameConnection_DEPRECATED": 4, - "TrackAppUsageEvent": 5, - "UserHasLicenseForApp": 17 + "SteamGameServer015": { + "InitGameServer": 0, + "SetProduct": 1, + "SetGameDescription": 2, + "SetModDir": 3, + "SetDedicatedServer": 4, + "LogOn": 5, + "LogOnAnonymous": 6, + "LogOff": 7, + "BLoggedOn": 8, + "BSecure": 9, + "GetSteamID": 10, + "WasRestartRequested": 11, + "SetMaxPlayerCount": 12, + "SetBotPlayerCount": 13, + "SetServerName": 14, + "SetMapName": 15, + "SetPasswordProtected": 16, + "SetSpectatorPort": 17, + "SetSpectatorServerName": 18, + "ClearAllKeyValues": 19, + "SetKeyValue": 20, + "SetGameTags": 21, + "SetGameData": 22, + "SetRegion": 23, + "SetAdvertiseServerActive": 24, + "GetAuthSessionTicket": 25, + "BeginAuthSession": 26, + "EndAuthSession": 27, + "CancelAuthTicket": 28, + "UserHasLicenseForApp": 29, + "RequestUserGroupStatus": 30, + "GetGameplayStats": 31, + "GetServerReputation": 32, + "GetPublicIP": 33, + "HandleIncomingPacket": 34, + "GetNextOutgoingPacket": 35, + "AssociateWithClan": 36, + "ComputeNewPlayerCompatibility": 37, + "SendUserConnectAndAuthenticate_DEPRECATED": 38, + "CreateUnauthenticatedUserConnection": 39, + "SendUserDisconnect_DEPRECATED": 40, + "BUpdateUserData": 41, + "SetMasterServerHeartbeatInterval_DEPRECATED": 42, + "ForceMasterServerHeartbeat_DEPRECATED": 43 }, "SteamUser022": { - "AdvertiseGame": 19, - "BIsBehindNAT": 18, - "BIsPhoneIdentifying": 27, - "BIsPhoneRequiringVerification": 28, - "BIsPhoneVerified": 25, - "BIsTwoFactorEnabled": 26, + "GetHSteamUser": 0, "BLoggedOn": 1, - "BSetDurationControlOnlineState": 31, - "BeginAuthSession": 14, - "CancelAuthTicket": 16, - "DecompressVoice": 11, - "EndAuthSession": 15, - "GetAuthSessionTicket": 13, + "GetSteamID": 2, + "InitiateGameConnection_DEPRECATED": 3, + "TerminateGameConnection_DEPRECATED": 4, + "TrackAppUsageEvent": 5, + "GetUserDataFolder": 6, + "StartVoiceRecording": 7, + "StopVoiceRecording": 8, "GetAvailableVoice": 9, - "GetDurationControl": 30, + "GetVoice": 10, + "DecompressVoice": 11, + "GetVoiceOptimalSampleRate": 12, + "GetAuthSessionTicket": 13, + "BeginAuthSession": 14, + "EndAuthSession": 15, + "CancelAuthTicket": 16, + "UserHasLicenseForApp": 17, + "BIsBehindNAT": 18, + "AdvertiseGame": 19, + "RequestEncryptedAppTicket": 20, "GetEncryptedAppTicket": 21, "GetGameBadgeLevel": 22, - "GetHSteamUser": 0, - "GetMarketEligibility": 29, "GetPlayerSteamLevel": 23, - "GetSteamID": 2, - "GetUserDataFolder": 6, - "GetVoice": 10, - "GetVoiceOptimalSampleRate": 12, - "InitiateGameConnection_DEPRECATED": 3, - "RequestEncryptedAppTicket": 20, "RequestStoreAuthURL": 24, - "StartVoiceRecording": 7, - "StopVoiceRecording": 8, - "TerminateGameConnection_DEPRECATED": 4, - "TrackAppUsageEvent": 5, - "UserHasLicenseForApp": 17 + "BIsPhoneVerified": 25, + "BIsTwoFactorEnabled": 26, + "BIsPhoneIdentifying": 27, + "BIsPhoneRequiringVerification": 28, + "GetMarketEligibility": 29, + "GetDurationControl": 30, + "BSetDurationControlOnlineState": 31 + }, + "STEAMUGC_INTERFACE_VERSION017": { + "CreateQueryUserUGCRequest": 0, + "CreateQueryAllUGCRequest": 2, + "CreateQueryUGCDetailsRequest": 3, + "SendQueryUGCRequest": 4, + "GetQueryUGCResult": 5, + "GetQueryUGCNumTags": 6, + "GetQueryUGCTag": 7, + "GetQueryUGCTagDisplayName": 8, + "GetQueryUGCPreviewURL": 9, + "GetQueryUGCMetadata": 10, + "GetQueryUGCChildren": 11, + "GetQueryUGCStatistic": 12, + "GetQueryUGCNumAdditionalPreviews": 13, + "GetQueryUGCAdditionalPreview": 14, + "GetQueryUGCNumKeyValueTags": 15, + "GetQueryUGCKeyValueTag": 17, + "GetQueryUGCContentDescriptors": 18, + "ReleaseQueryUGCRequest": 19, + "AddRequiredTag": 20, + "AddRequiredTagGroup": 21, + "AddExcludedTag": 22, + "SetReturnOnlyIDs": 23, + "SetReturnKeyValueTags": 24, + "SetReturnLongDescription": 25, + "SetReturnMetadata": 26, + "SetReturnChildren": 27, + "SetReturnAdditionalPreviews": 28, + "SetReturnTotalOnly": 29, + "SetReturnPlaytimeStats": 30, + "SetLanguage": 31, + "SetAllowCachedResponse": 32, + "SetCloudFileNameFilter": 33, + "SetMatchAnyTag": 34, + "SetSearchText": 35, + "SetRankedByTrendDays": 36, + "SetTimeCreatedDateRange": 37, + "SetTimeUpdatedDateRange": 38, + "AddRequiredKeyValueTag": 39, + "RequestUGCDetails": 40, + "CreateItem": 41, + "StartItemUpdate": 42, + "SetItemTitle": 43, + "SetItemDescription": 44, + "SetItemUpdateLanguage": 45, + "SetItemMetadata": 46, + "SetItemVisibility": 47, + "SetItemTags": 48, + "SetItemContent": 49, + "SetItemPreview": 50, + "SetAllowLegacyUpload": 51, + "RemoveAllItemKeyValueTags": 52, + "RemoveItemKeyValueTags": 53, + "AddItemKeyValueTag": 54, + "AddItemPreviewFile": 55, + "AddItemPreviewVideo": 56, + "UpdateItemPreviewFile": 57, + "UpdateItemPreviewVideo": 58, + "RemoveItemPreview": 59, + "AddContentDescriptor": 60, + "RemoveContentDescriptor": 61, + "SubmitItemUpdate": 62, + "GetItemUpdateProgress": 63, + "SetUserItemVote": 64, + "GetUserItemVote": 65, + "AddItemToFavorites": 66, + "RemoveItemFromFavorites": 67, + "SubscribeItem": 68, + "UnsubscribeItem": 69, + "GetNumSubscribedItems": 70, + "GetSubscribedItems": 71, + "GetItemState": 72, + "GetItemInstallInfo": 73, + "GetItemDownloadInfo": 74, + "DownloadItem": 75, + "BInitWorkshopForGameServer": 76, + "SuspendDownloads": 77, + "StartPlaytimeTracking": 78, + "StopPlaytimeTracking": 79, + "StopPlaytimeTrackingForAllItems": 80, + "AddDependency": 81, + "RemoveDependency": 82, + "AddAppDependency": 83, + "RemoveAppDependency": 84, + "GetAppDependencies": 85, + "DeleteItem": 86, + "ShowWorkshopEULA": 87, + "GetWorkshopEULAStatus": 88 }, "SteamUser023": { - "AdvertiseGame": 20, - "BIsBehindNAT": 19, - "BIsPhoneIdentifying": 28, - "BIsPhoneRequiringVerification": 29, - "BIsPhoneVerified": 26, - "BIsTwoFactorEnabled": 27, - "BLoggedOn": 1, - "BSetDurationControlOnlineState": 32, - "BeginAuthSession": 15, - "CancelAuthTicket": 17, - "DecompressVoice": 11, - "EndAuthSession": 16, - "GetAuthSessionTicket": 13, - "GetAuthTicketForWebApi": 14, - "GetAvailableVoice": 9, - "GetDurationControl": 31, - "GetEncryptedAppTicket": 22, - "GetGameBadgeLevel": 23, "GetHSteamUser": 0, - "GetMarketEligibility": 30, - "GetPlayerSteamLevel": 24, + "BLoggedOn": 1, "GetSteamID": 2, - "GetUserDataFolder": 6, - "GetVoice": 10, - "GetVoiceOptimalSampleRate": 12, "InitiateGameConnection_DEPRECATED": 3, - "RequestEncryptedAppTicket": 21, - "RequestStoreAuthURL": 25, - "StartVoiceRecording": 7, - "StopVoiceRecording": 8, "TerminateGameConnection_DEPRECATED": 4, "TrackAppUsageEvent": 5, - "UserHasLicenseForApp": 18 + "GetUserDataFolder": 6, + "StartVoiceRecording": 7, + "StopVoiceRecording": 8, + "GetAvailableVoice": 9, + "GetVoice": 10, + "DecompressVoice": 11, + "GetVoiceOptimalSampleRate": 12, + "GetAuthSessionTicket": 13, + "GetAuthTicketForWebApi": 14, + "BeginAuthSession": 15, + "EndAuthSession": 16, + "CancelAuthTicket": 17, + "UserHasLicenseForApp": 18, + "BIsBehindNAT": 19, + "AdvertiseGame": 20, + "RequestEncryptedAppTicket": 21, + "GetEncryptedAppTicket": 22, + "GetGameBadgeLevel": 23, + "GetPlayerSteamLevel": 24, + "RequestStoreAuthURL": 25, + "BIsPhoneVerified": 26, + "BIsTwoFactorEnabled": 27, + "BIsPhoneIdentifying": 28, + "BIsPhoneRequiringVerification": 29, + "GetMarketEligibility": 30, + "GetDurationControl": 31, + "BSetDurationControlOnlineState": 32 }, - "SteamUtils002": { - "GetAPICallFailureReason": 12, - "GetAPICallResult": 13, - "GetAppID": 9, - "GetCSERIPPort": 7, - "GetConnectedUniverse": 2, - "GetCurrentBatteryPower": 8, - "GetIPCountry": 4, - "GetImageRGBA": 6, - "GetImageSize": 5, - "GetSecondsSinceAppActive": 0, - "GetSecondsSinceComputerActive": 1, - "GetServerRealTime": 3, - "IsAPICallCompleted": 11, - "SetOverlayNotificationPosition": 10 + "STEAMREMOTEPLAY_INTERFACE_VERSION002": { + "GetSessionCount": 0, + "GetSessionID": 1, + "GetSessionSteamID": 2, + "GetSessionClientName": 3, + "GetSessionClientFormFactor": 4, + "BGetSessionClientResolution": 5, + "BStartRemotePlayTogether": 6, + "BSendRemotePlayTogetherInvite": 7 }, - "SteamUtils004": { - "GetAPICallFailureReason": 12, - "GetAPICallResult": 13, - "GetAppID": 9, - "GetCSERIPPort": 7, - "GetConnectedUniverse": 2, - "GetCurrentBatteryPower": 8, - "GetIPCCallCount": 15, - "GetIPCountry": 4, - "GetImageRGBA": 6, - "GetImageSize": 5, - "GetSecondsSinceAppActive": 0, - "GetSecondsSinceComputerActive": 1, - "GetServerRealTime": 3, - "IsAPICallCompleted": 11, - "IsOverlayEnabled": 17, - "RunFrame": 14, - "SetOverlayNotificationPosition": 10, - "SetWarningMessageHook": 16 + "STEAMUGC_INTERFACE_VERSION018": { + "CreateQueryUserUGCRequest": 0, + "CreateQueryAllUGCRequest": 2, + "CreateQueryUGCDetailsRequest": 3, + "SendQueryUGCRequest": 4, + "GetQueryUGCResult": 5, + "GetQueryUGCNumTags": 6, + "GetQueryUGCTag": 7, + "GetQueryUGCTagDisplayName": 8, + "GetQueryUGCPreviewURL": 9, + "GetQueryUGCMetadata": 10, + "GetQueryUGCChildren": 11, + "GetQueryUGCStatistic": 12, + "GetQueryUGCNumAdditionalPreviews": 13, + "GetQueryUGCAdditionalPreview": 14, + "GetQueryUGCNumKeyValueTags": 15, + "GetQueryUGCKeyValueTag": 17, + "GetQueryUGCContentDescriptors": 18, + "ReleaseQueryUGCRequest": 19, + "AddRequiredTag": 20, + "AddRequiredTagGroup": 21, + "AddExcludedTag": 22, + "SetReturnOnlyIDs": 23, + "SetReturnKeyValueTags": 24, + "SetReturnLongDescription": 25, + "SetReturnMetadata": 26, + "SetReturnChildren": 27, + "SetReturnAdditionalPreviews": 28, + "SetReturnTotalOnly": 29, + "SetReturnPlaytimeStats": 30, + "SetLanguage": 31, + "SetAllowCachedResponse": 32, + "SetCloudFileNameFilter": 33, + "SetMatchAnyTag": 34, + "SetSearchText": 35, + "SetRankedByTrendDays": 36, + "SetTimeCreatedDateRange": 37, + "SetTimeUpdatedDateRange": 38, + "AddRequiredKeyValueTag": 39, + "RequestUGCDetails": 40, + "CreateItem": 41, + "StartItemUpdate": 42, + "SetItemTitle": 43, + "SetItemDescription": 44, + "SetItemUpdateLanguage": 45, + "SetItemMetadata": 46, + "SetItemVisibility": 47, + "SetItemTags": 48, + "SetItemContent": 49, + "SetItemPreview": 50, + "SetAllowLegacyUpload": 51, + "RemoveAllItemKeyValueTags": 52, + "RemoveItemKeyValueTags": 53, + "AddItemKeyValueTag": 54, + "AddItemPreviewFile": 55, + "AddItemPreviewVideo": 56, + "UpdateItemPreviewFile": 57, + "UpdateItemPreviewVideo": 58, + "RemoveItemPreview": 59, + "AddContentDescriptor": 60, + "RemoveContentDescriptor": 61, + "SubmitItemUpdate": 62, + "GetItemUpdateProgress": 63, + "SetUserItemVote": 64, + "GetUserItemVote": 65, + "AddItemToFavorites": 66, + "RemoveItemFromFavorites": 67, + "SubscribeItem": 68, + "UnsubscribeItem": 69, + "GetNumSubscribedItems": 70, + "GetSubscribedItems": 71, + "GetItemState": 72, + "GetItemInstallInfo": 73, + "GetItemDownloadInfo": 74, + "DownloadItem": 75, + "BInitWorkshopForGameServer": 76, + "SuspendDownloads": 77, + "StartPlaytimeTracking": 78, + "StopPlaytimeTracking": 79, + "StopPlaytimeTrackingForAllItems": 80, + "AddDependency": 81, + "RemoveDependency": 82, + "AddAppDependency": 83, + "RemoveAppDependency": 84, + "GetAppDependencies": 85, + "DeleteItem": 86, + "ShowWorkshopEULA": 87, + "GetWorkshopEULAStatus": 88, + "GetUserContentDescriptorPreferences": 89 }, - "SteamUtils005": { - "BIsPSNOnline": 25, - "BIsReadyToShutdown": 24, - "BOverlayNeedsPresent": 18, - "CheckFileSignature": 22, - "GetAPICallFailureReason": 12, - "GetAPICallResult": 13, - "GetAppID": 9, - "GetCSERIPPort": 7, - "GetConnectedUniverse": 2, - "GetCurrentBatteryPower": 8, - "GetEnteredGamepadTextInput": 21, - "GetEnteredGamepadTextLength": 20, - "GetIPCCallCount": 15, - "GetIPCountry": 4, - "GetImageRGBA": 6, - "GetImageSize": 5, - "GetSecondsSinceAppActive": 0, - "GetSecondsSinceComputerActive": 1, - "GetServerRealTime": 3, - "IsAPICallCompleted": 11, - "IsOverlayEnabled": 17, - "PostPS3SysutilCallback": 23, - "RunFrame": 14, - "SetOverlayNotificationPosition": 10, - "SetPSNGameBootInviteStrings": 26, - "SetWarningMessageHook": 16, - "ShowGamepadTextInput": 19 + "SteamClient021": { + "CreateSteamPipe": 0, + "BReleaseSteamPipe": 1, + "ConnectToGlobalUser": 2, + "CreateLocalUser": 3, + "ReleaseUser": 4, + "GetISteamUser": 5, + "GetISteamGameServer": 6, + "SetLocalIPBinding": 7, + "GetISteamFriends": 8, + "GetISteamUtils": 9, + "GetISteamMatchmaking": 10, + "GetISteamMatchmakingServers": 11, + "GetISteamGenericInterface": 12, + "GetISteamUserStats": 13, + "GetISteamGameServerStats": 14, + "GetISteamApps": 15, + "GetISteamNetworking": 16, + "GetISteamRemoteStorage": 17, + "GetISteamScreenshots": 18, + "GetISteamGameSearch": 19, + "RunFrame": 20, + "GetIPCCallCount": 21, + "SetWarningMessageHook": 22, + "BShutdownIfAllPipesClosed": 23, + "GetISteamHTTP": 24, + "GetISteamController": 25, + "GetISteamUGC": 26, + "GetISteamMusic": 27, + "GetISteamMusicRemote": 28, + "GetISteamHTMLSurface": 29, + "DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess": 30, + "DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess": 31, + "Set_SteamAPI_CCheckCallbackRegisteredInProcess": 32, + "GetISteamInventory": 33, + "GetISteamVideo": 34, + "GetISteamParentalSettings": 35, + "GetISteamInput": 36, + "GetISteamParties": 37, + "GetISteamRemotePlay": 38, + "DestroyAllInterfaces": 39 }, - "SteamUtils006": { - "BIsPSNOnline": 27, - "BIsReadyToShutdown": 26, - "BOverlayNeedsPresent": 18, - "CheckFileSignature": 24, - "GetAPICallFailureReason": 12, - "GetAPICallResult": 13, - "GetAppID": 9, - "GetCSERIPPort": 7, - "GetConnectedUniverse": 2, - "GetCurrentBatteryPower": 8, - "GetEnteredGamepadTextInput": 21, - "GetEnteredGamepadTextLength": 20, - "GetIPCCallCount": 15, - "GetIPCountry": 4, - "GetImageRGBA": 6, - "GetImageSize": 5, - "GetSecondsSinceAppActive": 0, - "GetSecondsSinceComputerActive": 1, - "GetServerRealTime": 3, - "GetSteamUILanguage": 22, - "IsAPICallCompleted": 11, - "IsOverlayEnabled": 17, - "IsSteamRunningInVR": 23, - "PostPS3SysutilCallback": 25, - "RunFrame": 14, - "SetOverlayNotificationPosition": 10, - "SetPSNGameBootInviteStrings": 28, - "SetWarningMessageHook": 16, - "ShowGamepadTextInput": 19 + "STEAMTIMELINE_INTERFACE_V001": { + "SetTimelineStateDescription": 0, + "ClearTimelineStateDescription": 1, + "AddTimelineEvent": 2, + "SetTimelineGameMode": 3 }, - "SteamUtils007": { - "BOverlayNeedsPresent": 17, - "CheckFileSignature": 18, - "GetAPICallFailureReason": 12, - "GetAPICallResult": 13, - "GetAppID": 9, - "GetCSERIPPort": 7, - "GetConnectedUniverse": 2, - "GetCurrentBatteryPower": 8, - "GetEnteredGamepadTextInput": 21, - "GetEnteredGamepadTextLength": 20, - "GetIPCCallCount": 14, - "GetIPCountry": 4, - "GetImageRGBA": 6, - "GetImageSize": 5, - "GetSecondsSinceAppActive": 0, - "GetSecondsSinceComputerActive": 1, - "GetServerRealTime": 3, - "GetSteamUILanguage": 22, - "IsAPICallCompleted": 11, - "IsOverlayEnabled": 16, - "IsSteamRunningInVR": 23, - "SetOverlayNotificationInset": 24, - "SetOverlayNotificationPosition": 10, - "SetWarningMessageHook": 15, - "ShowGamepadTextInput": 19 + "STEAMUGC_INTERFACE_VERSION020": { + "CreateQueryUserUGCRequest": 0, + "CreateQueryAllUGCRequest": 2, + "CreateQueryUGCDetailsRequest": 3, + "SendQueryUGCRequest": 4, + "GetQueryUGCResult": 5, + "GetQueryUGCNumTags": 6, + "GetQueryUGCTag": 7, + "GetQueryUGCTagDisplayName": 8, + "GetQueryUGCPreviewURL": 9, + "GetQueryUGCMetadata": 10, + "GetQueryUGCChildren": 11, + "GetQueryUGCStatistic": 12, + "GetQueryUGCNumAdditionalPreviews": 13, + "GetQueryUGCAdditionalPreview": 14, + "GetQueryUGCNumKeyValueTags": 15, + "GetQueryUGCKeyValueTag": 17, + "GetNumSupportedGameVersions": 18, + "GetSupportedGameVersionData": 19, + "GetQueryUGCContentDescriptors": 20, + "ReleaseQueryUGCRequest": 21, + "AddRequiredTag": 22, + "AddRequiredTagGroup": 23, + "AddExcludedTag": 24, + "SetReturnOnlyIDs": 25, + "SetReturnKeyValueTags": 26, + "SetReturnLongDescription": 27, + "SetReturnMetadata": 28, + "SetReturnChildren": 29, + "SetReturnAdditionalPreviews": 30, + "SetReturnTotalOnly": 31, + "SetReturnPlaytimeStats": 32, + "SetLanguage": 33, + "SetAllowCachedResponse": 34, + "SetAdminQuery": 35, + "SetCloudFileNameFilter": 36, + "SetMatchAnyTag": 37, + "SetSearchText": 38, + "SetRankedByTrendDays": 39, + "SetTimeCreatedDateRange": 40, + "SetTimeUpdatedDateRange": 41, + "AddRequiredKeyValueTag": 42, + "RequestUGCDetails": 43, + "CreateItem": 44, + "StartItemUpdate": 45, + "SetItemTitle": 46, + "SetItemDescription": 47, + "SetItemUpdateLanguage": 48, + "SetItemMetadata": 49, + "SetItemVisibility": 50, + "SetItemTags": 51, + "SetItemContent": 52, + "SetItemPreview": 53, + "SetAllowLegacyUpload": 54, + "RemoveAllItemKeyValueTags": 55, + "RemoveItemKeyValueTags": 56, + "AddItemKeyValueTag": 57, + "AddItemPreviewFile": 58, + "AddItemPreviewVideo": 59, + "UpdateItemPreviewFile": 60, + "UpdateItemPreviewVideo": 61, + "RemoveItemPreview": 62, + "AddContentDescriptor": 63, + "RemoveContentDescriptor": 64, + "SetRequiredGameVersions": 65, + "SubmitItemUpdate": 66, + "GetItemUpdateProgress": 67, + "SetUserItemVote": 68, + "GetUserItemVote": 69, + "AddItemToFavorites": 70, + "RemoveItemFromFavorites": 71, + "SubscribeItem": 72, + "UnsubscribeItem": 73, + "GetNumSubscribedItems": 74, + "GetSubscribedItems": 75, + "GetItemState": 76, + "GetItemInstallInfo": 77, + "GetItemDownloadInfo": 78, + "DownloadItem": 79, + "BInitWorkshopForGameServer": 80, + "SuspendDownloads": 81, + "StartPlaytimeTracking": 82, + "StopPlaytimeTracking": 83, + "StopPlaytimeTrackingForAllItems": 84, + "AddDependency": 85, + "RemoveDependency": 86, + "AddAppDependency": 87, + "RemoveAppDependency": 88, + "GetAppDependencies": 89, + "DeleteItem": 90, + "ShowWorkshopEULA": 91, + "GetWorkshopEULAStatus": 92, + "GetUserContentDescriptorPreferences": 93 }, - "SteamUtils008": { - "BOverlayNeedsPresent": 17, - "CheckFileSignature": 18, - "GetAPICallFailureReason": 12, - "GetAPICallResult": 13, - "GetAppID": 9, - "GetCSERIPPort": 7, - "GetConnectedUniverse": 2, - "GetCurrentBatteryPower": 8, - "GetEnteredGamepadTextInput": 21, - "GetEnteredGamepadTextLength": 20, - "GetIPCCallCount": 14, - "GetIPCountry": 4, - "GetImageRGBA": 6, - "GetImageSize": 5, - "GetSecondsSinceAppActive": 0, - "GetSecondsSinceComputerActive": 1, - "GetServerRealTime": 3, - "GetSteamUILanguage": 22, - "IsAPICallCompleted": 11, - "IsOverlayEnabled": 16, - "IsSteamInBigPictureMode": 25, - "IsSteamRunningInVR": 23, - "SetOverlayNotificationInset": 24, - "SetOverlayNotificationPosition": 10, - "SetWarningMessageHook": 15, - "ShowGamepadTextInput": 19, - "StartVRDashboard": 26 + "STEAMVIDEO_INTERFACE_V007": { + "GetVideoURL": 0, + "IsBroadcasting": 1, + "GetOPFSettings": 2, + "GetOPFStringForApp": 3 }, - "SteamUtils009": { - "BOverlayNeedsPresent": 17, - "CheckFileSignature": 18, - "FilterText": 31, - "GetAPICallFailureReason": 12, - "GetAPICallResult": 13, - "GetAppID": 9, - "GetCSERIPPort": 7, - "GetConnectedUniverse": 2, - "GetCurrentBatteryPower": 8, - "GetEnteredGamepadTextInput": 21, - "GetEnteredGamepadTextLength": 20, - "GetIPCCallCount": 14, - "GetIPCountry": 4, - "GetIPv6ConnectivityState": 32, - "GetImageRGBA": 6, - "GetImageSize": 5, - "GetSecondsSinceAppActive": 0, - "GetSecondsSinceComputerActive": 1, - "GetServerRealTime": 3, - "GetSteamUILanguage": 22, - "InitFilterText": 30, - "IsAPICallCompleted": 11, - "IsOverlayEnabled": 16, - "IsSteamChinaLauncher": 29, - "IsSteamInBigPictureMode": 25, - "IsSteamRunningInVR": 23, - "IsVRHeadsetStreamingEnabled": 27, - "SetOverlayNotificationInset": 24, - "SetOverlayNotificationPosition": 10, - "SetVRHeadsetStreamingEnabled": 28, - "SetWarningMessageHook": 15, - "ShowGamepadTextInput": 19, - "StartVRDashboard": 26 + "STEAMTIMELINE_INTERFACE_V004": { + "SetTimelineTooltip": 0, + "ClearTimelineTooltip": 1, + "SetTimelineGameMode": 2, + "AddInstantaneousTimelineEvent": 3, + "AddRangeTimelineEvent": 4, + "StartRangeTimelineEvent": 5, + "UpdateRangeTimelineEvent": 6, + "EndRangeTimelineEvent": 7, + "RemoveTimelineEvent": 8, + "DoesEventRecordingExist": 9, + "StartGamePhase": 10, + "EndGamePhase": 11, + "SetGamePhaseID": 12, + "DoesGamePhaseRecordingExist": 13, + "AddGamePhaseTag": 14, + "SetGamePhaseAttribute": 15, + "OpenOverlayToGamePhase": 16, + "OpenOverlayToTimelineEvent": 17 }, - "SteamUtils010": { - "BOverlayNeedsPresent": 16, - "CheckFileSignature": 17, - "DismissFloatingGamepadTextInput": 35, - "DismissGamepadTextInput": 36, - "FilterText": 30, - "GetAPICallFailureReason": 11, - "GetAPICallResult": 12, - "GetAppID": 8, - "GetConnectedUniverse": 2, - "GetCurrentBatteryPower": 7, - "GetEnteredGamepadTextInput": 20, - "GetEnteredGamepadTextLength": 19, - "GetIPCCallCount": 13, - "GetIPCountry": 4, - "GetIPv6ConnectivityState": 31, - "GetImageRGBA": 6, - "GetImageSize": 5, - "GetSecondsSinceAppActive": 0, - "GetSecondsSinceComputerActive": 1, - "GetServerRealTime": 3, - "GetSteamUILanguage": 21, - "InitFilterText": 29, - "IsAPICallCompleted": 10, - "IsOverlayEnabled": 15, - "IsSteamChinaLauncher": 28, - "IsSteamInBigPictureMode": 24, - "IsSteamRunningInVR": 22, - "IsSteamRunningOnSteamDeck": 32, - "IsVRHeadsetStreamingEnabled": 26, - "SetGameLauncherMode": 34, - "SetOverlayNotificationInset": 23, - "SetOverlayNotificationPosition": 9, - "SetVRHeadsetStreamingEnabled": 27, - "SetWarningMessageHook": 14, - "ShowFloatingGamepadTextInput": 33, - "ShowGamepadTextInput": 18, - "StartVRDashboard": 25 + "STEAMUSERSTATS_INTERFACE_VERSION013": { + "GetStat": 1, + "SetStat": 3, + "UpdateAvgRateStat": 4, + "GetAchievement": 5, + "SetAchievement": 6, + "ClearAchievement": 7, + "GetAchievementAndUnlockTime": 8, + "StoreStats": 9, + "GetAchievementIcon": 10, + "GetAchievementDisplayAttribute": 11, + "IndicateAchievementProgress": 12, + "GetNumAchievements": 13, + "GetAchievementName": 14, + "RequestUserStats": 15, + "GetUserStat": 17, + "GetUserAchievement": 18, + "GetUserAchievementAndUnlockTime": 19, + "ResetAllStats": 20, + "FindOrCreateLeaderboard": 21, + "FindLeaderboard": 22, + "GetLeaderboardName": 23, + "GetLeaderboardEntryCount": 24, + "GetLeaderboardSortMethod": 25, + "GetLeaderboardDisplayType": 26, + "DownloadLeaderboardEntries": 27, + "DownloadLeaderboardEntriesForUsers": 28, + "GetDownloadedLeaderboardEntry": 29, + "UploadLeaderboardScore": 30, + "AttachLeaderboardUGC": 31, + "GetNumberOfCurrentPlayers": 32, + "RequestGlobalAchievementPercentages": 33, + "GetMostAchievedAchievementInfo": 34, + "GetNextMostAchievedAchievementInfo": 35, + "GetAchievementAchievedPercent": 36, + "RequestGlobalStats": 37, + "GetGlobalStat": 39, + "GetGlobalStatHistory": 41, + "GetAchievementProgressLimits": 43 + }, + "SteamFriends018": { + "GetPersonaName": 0, + "GetPersonaState": 1, + "GetFriendCount": 2, + "GetFriendByIndex": 3, + "GetFriendRelationship": 4, + "GetFriendPersonaState": 5, + "GetFriendPersonaName": 6, + "GetFriendGamePlayed": 7, + "GetFriendPersonaNameHistory": 8, + "GetFriendSteamLevel": 9, + "GetPlayerNickname": 10, + "GetFriendsGroupCount": 11, + "GetFriendsGroupIDByIndex": 12, + "GetFriendsGroupName": 13, + "GetFriendsGroupMembersCount": 14, + "GetFriendsGroupMembersList": 15, + "HasFriend": 16, + "GetClanCount": 17, + "GetClanByIndex": 18, + "GetClanName": 19, + "GetClanTag": 20, + "GetClanActivityCounts": 21, + "DownloadClanActivityCounts": 22, + "GetFriendCountFromSource": 23, + "GetFriendFromSourceByIndex": 24, + "IsUserInSource": 25, + "SetInGameVoiceSpeaking": 26, + "ActivateGameOverlay": 27, + "ActivateGameOverlayToUser": 28, + "ActivateGameOverlayToWebPage": 29, + "ActivateGameOverlayToStore": 30, + "SetPlayedWith": 31, + "ActivateGameOverlayInviteDialog": 32, + "GetSmallFriendAvatar": 33, + "GetMediumFriendAvatar": 34, + "GetLargeFriendAvatar": 35, + "RequestUserInformation": 36, + "RequestClanOfficerList": 37, + "GetClanOwner": 38, + "GetClanOfficerCount": 39, + "GetClanOfficerByIndex": 40, + "SetRichPresence": 41, + "ClearRichPresence": 42, + "GetFriendRichPresence": 43, + "GetFriendRichPresenceKeyCount": 44, + "GetFriendRichPresenceKeyByIndex": 45, + "RequestFriendRichPresence": 46, + "InviteUserToGame": 47, + "GetCoplayFriendCount": 48, + "GetCoplayFriend": 49, + "GetFriendCoplayTime": 50, + "GetFriendCoplayGame": 51, + "JoinClanChatRoom": 52, + "LeaveClanChatRoom": 53, + "GetClanChatMemberCount": 54, + "GetChatMemberByIndex": 55, + "SendClanChatMessage": 56, + "GetClanChatMessage": 57, + "IsClanChatAdmin": 58, + "IsClanChatWindowOpenInSteam": 59, + "OpenClanChatWindowInSteam": 60, + "CloseClanChatWindowInSteam": 61, + "SetListenForFriendsMessages": 62, + "ReplyToFriendMessage": 63, + "GetFriendMessage": 64, + "GetFollowerCount": 65, + "IsFollowing": 66, + "EnumerateFollowingList": 67, + "IsClanPublic": 68, + "IsClanOfficialGameGroup": 69, + "GetNumChatsWithUnreadPriorityMessages": 70, + "ActivateGameOverlayRemotePlayTogetherInviteDialog": 71, + "RegisterProtocolInOverlayBrowser": 72, + "ActivateGameOverlayInviteDialogConnectString": 73, + "RequestEquippedProfileItems": 74, + "BHasEquippedProfileItem": 75, + "GetProfileItemPropertyString": 76, + "GetProfileItemPropertyUint": 77 + }, + "STEAMREMOTEPLAY_INTERFACE_VERSION003": { + "GetSessionCount": 0, + "GetSessionID": 1, + "GetSessionSteamID": 2, + "GetSessionClientName": 3, + "GetSessionClientFormFactor": 4, + "BGetSessionClientResolution": 5, + "ShowRemotePlayTogetherUI": 6, + "BSendRemotePlayTogetherInvite": 7, + "BEnableRemotePlayTogetherDirectInput": 8, + "DisableRemotePlayTogetherDirectInput": 9, + "GetInput": 10, + "SetMouseVisibility": 11, + "SetMousePosition": 12, + "CreateMouseCursor": 13, + "SetMouseCursor": 14 + }, + "STEAMUGC_INTERFACE_VERSION021": { + "CreateQueryUserUGCRequest": 0, + "CreateQueryAllUGCRequest": 2, + "CreateQueryUGCDetailsRequest": 3, + "SendQueryUGCRequest": 4, + "GetQueryUGCResult": 5, + "GetQueryUGCNumTags": 6, + "GetQueryUGCTag": 7, + "GetQueryUGCTagDisplayName": 8, + "GetQueryUGCPreviewURL": 9, + "GetQueryUGCMetadata": 10, + "GetQueryUGCChildren": 11, + "GetQueryUGCStatistic": 12, + "GetQueryUGCNumAdditionalPreviews": 13, + "GetQueryUGCAdditionalPreview": 14, + "GetQueryUGCNumKeyValueTags": 15, + "GetQueryUGCKeyValueTag": 17, + "GetNumSupportedGameVersions": 18, + "GetSupportedGameVersionData": 19, + "GetQueryUGCContentDescriptors": 20, + "ReleaseQueryUGCRequest": 21, + "AddRequiredTag": 22, + "AddRequiredTagGroup": 23, + "AddExcludedTag": 24, + "SetReturnOnlyIDs": 25, + "SetReturnKeyValueTags": 26, + "SetReturnLongDescription": 27, + "SetReturnMetadata": 28, + "SetReturnChildren": 29, + "SetReturnAdditionalPreviews": 30, + "SetReturnTotalOnly": 31, + "SetReturnPlaytimeStats": 32, + "SetLanguage": 33, + "SetAllowCachedResponse": 34, + "SetAdminQuery": 35, + "SetCloudFileNameFilter": 36, + "SetMatchAnyTag": 37, + "SetSearchText": 38, + "SetRankedByTrendDays": 39, + "SetTimeCreatedDateRange": 40, + "SetTimeUpdatedDateRange": 41, + "AddRequiredKeyValueTag": 42, + "RequestUGCDetails": 43, + "CreateItem": 44, + "StartItemUpdate": 45, + "SetItemTitle": 46, + "SetItemDescription": 47, + "SetItemUpdateLanguage": 48, + "SetItemMetadata": 49, + "SetItemVisibility": 50, + "SetItemTags": 51, + "SetItemContent": 52, + "SetItemPreview": 53, + "SetAllowLegacyUpload": 54, + "RemoveAllItemKeyValueTags": 55, + "RemoveItemKeyValueTags": 56, + "AddItemKeyValueTag": 57, + "AddItemPreviewFile": 58, + "AddItemPreviewVideo": 59, + "UpdateItemPreviewFile": 60, + "UpdateItemPreviewVideo": 61, + "RemoveItemPreview": 62, + "AddContentDescriptor": 63, + "RemoveContentDescriptor": 64, + "SetRequiredGameVersions": 65, + "SubmitItemUpdate": 66, + "GetItemUpdateProgress": 67, + "SetUserItemVote": 68, + "GetUserItemVote": 69, + "AddItemToFavorites": 70, + "RemoveItemFromFavorites": 71, + "SubscribeItem": 72, + "UnsubscribeItem": 73, + "GetNumSubscribedItems": 74, + "GetSubscribedItems": 75, + "GetItemState": 76, + "GetItemInstallInfo": 77, + "GetItemDownloadInfo": 78, + "DownloadItem": 79, + "BInitWorkshopForGameServer": 80, + "SuspendDownloads": 81, + "StartPlaytimeTracking": 82, + "StopPlaytimeTracking": 83, + "StopPlaytimeTrackingForAllItems": 84, + "AddDependency": 85, + "RemoveDependency": 86, + "AddAppDependency": 87, + "RemoveAppDependency": 88, + "GetAppDependencies": 89, + "DeleteItem": 90, + "ShowWorkshopEULA": 91, + "GetWorkshopEULAStatus": 92, + "GetUserContentDescriptorPreferences": 93, + "SetItemsDisabledLocally": 94, + "SetSubscriptionsLoadOrder": 95 } -} +} \ No newline at end of file diff --git a/res/steamworks/100/headers/isteamapps.h b/res/steamworks/100/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/100/headers/isteamapps.h rename to res/steamworks/100/headers/steam/isteamapps.h diff --git a/res/steamworks/100/headers/isteamclient.h b/res/steamworks/100/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/100/headers/isteamclient.h rename to res/steamworks/100/headers/steam/isteamclient.h diff --git a/res/steamworks/100/headers/isteamfriends.h b/res/steamworks/100/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/100/headers/isteamfriends.h rename to res/steamworks/100/headers/steam/isteamfriends.h diff --git a/res/steamworks/100/headers/isteamgameserver.h b/res/steamworks/100/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/100/headers/isteamgameserver.h rename to res/steamworks/100/headers/steam/isteamgameserver.h diff --git a/res/steamworks/100/headers/isteammasterserverupdater.h b/res/steamworks/100/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/100/headers/isteammasterserverupdater.h rename to res/steamworks/100/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/100/headers/isteammatchmaking.h b/res/steamworks/100/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/100/headers/isteammatchmaking.h rename to res/steamworks/100/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/100/headers/isteamnetworking.h b/res/steamworks/100/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/100/headers/isteamnetworking.h rename to res/steamworks/100/headers/steam/isteamnetworking.h diff --git a/res/steamworks/100/headers/isteamuser.h b/res/steamworks/100/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/100/headers/isteamuser.h rename to res/steamworks/100/headers/steam/isteamuser.h diff --git a/res/steamworks/100/headers/isteamuserstats.h b/res/steamworks/100/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/100/headers/isteamuserstats.h rename to res/steamworks/100/headers/steam/isteamuserstats.h diff --git a/res/steamworks/100/headers/isteamutils.h b/res/steamworks/100/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/100/headers/isteamutils.h rename to res/steamworks/100/headers/steam/isteamutils.h diff --git a/res/steamworks/100/headers/matchmakingtypes.h b/res/steamworks/100/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/100/headers/matchmakingtypes.h rename to res/steamworks/100/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/100/headers/steam_api.h b/res/steamworks/100/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/100/headers/steam_api.h rename to res/steamworks/100/headers/steam/steam_api.h diff --git a/res/steamworks/100/headers/steam_gameserver.h b/res/steamworks/100/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/100/headers/steam_gameserver.h rename to res/steamworks/100/headers/steam/steam_gameserver.h diff --git a/res/steamworks/100/headers/steamclientpublic.h b/res/steamworks/100/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/100/headers/steamclientpublic.h rename to res/steamworks/100/headers/steam/steamclientpublic.h diff --git a/res/steamworks/100/headers/steamtypes.h b/res/steamworks/100/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/100/headers/steamtypes.h rename to res/steamworks/100/headers/steam/steamtypes.h diff --git a/res/steamworks/101/headers/isteamapps.h b/res/steamworks/101/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/101/headers/isteamapps.h rename to res/steamworks/101/headers/steam/isteamapps.h diff --git a/res/steamworks/101/headers/isteamclient.h b/res/steamworks/101/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/101/headers/isteamclient.h rename to res/steamworks/101/headers/steam/isteamclient.h diff --git a/res/steamworks/101/headers/isteamfriends.h b/res/steamworks/101/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/101/headers/isteamfriends.h rename to res/steamworks/101/headers/steam/isteamfriends.h diff --git a/res/steamworks/101/headers/isteamgameserver.h b/res/steamworks/101/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/101/headers/isteamgameserver.h rename to res/steamworks/101/headers/steam/isteamgameserver.h diff --git a/res/steamworks/101/headers/isteammasterserverupdater.h b/res/steamworks/101/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/101/headers/isteammasterserverupdater.h rename to res/steamworks/101/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/101/headers/isteammatchmaking.h b/res/steamworks/101/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/101/headers/isteammatchmaking.h rename to res/steamworks/101/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/101/headers/isteamnetworking.h b/res/steamworks/101/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/101/headers/isteamnetworking.h rename to res/steamworks/101/headers/steam/isteamnetworking.h diff --git a/res/steamworks/101/headers/isteamuser.h b/res/steamworks/101/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/101/headers/isteamuser.h rename to res/steamworks/101/headers/steam/isteamuser.h diff --git a/res/steamworks/101/headers/isteamuserstats.h b/res/steamworks/101/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/101/headers/isteamuserstats.h rename to res/steamworks/101/headers/steam/isteamuserstats.h diff --git a/res/steamworks/101/headers/isteamutils.h b/res/steamworks/101/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/101/headers/isteamutils.h rename to res/steamworks/101/headers/steam/isteamutils.h diff --git a/res/steamworks/101/headers/matchmakingtypes.h b/res/steamworks/101/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/101/headers/matchmakingtypes.h rename to res/steamworks/101/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/101/headers/steam_api.h b/res/steamworks/101/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/101/headers/steam_api.h rename to res/steamworks/101/headers/steam/steam_api.h diff --git a/res/steamworks/101/headers/steam_gameserver.h b/res/steamworks/101/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/101/headers/steam_gameserver.h rename to res/steamworks/101/headers/steam/steam_gameserver.h diff --git a/res/steamworks/101/headers/steamclientpublic.h b/res/steamworks/101/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/101/headers/steamclientpublic.h rename to res/steamworks/101/headers/steam/steamclientpublic.h diff --git a/res/steamworks/101/headers/steamtypes.h b/res/steamworks/101/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/101/headers/steamtypes.h rename to res/steamworks/101/headers/steam/steamtypes.h diff --git a/res/steamworks/102/headers/isteamapps.h b/res/steamworks/102/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/102/headers/isteamapps.h rename to res/steamworks/102/headers/steam/isteamapps.h diff --git a/res/steamworks/102/headers/isteamclient.h b/res/steamworks/102/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/102/headers/isteamclient.h rename to res/steamworks/102/headers/steam/isteamclient.h diff --git a/res/steamworks/102/headers/isteamfriends.h b/res/steamworks/102/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/102/headers/isteamfriends.h rename to res/steamworks/102/headers/steam/isteamfriends.h diff --git a/res/steamworks/102/headers/isteamgameserver.h b/res/steamworks/102/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/102/headers/isteamgameserver.h rename to res/steamworks/102/headers/steam/isteamgameserver.h diff --git a/res/steamworks/102/headers/isteammasterserverupdater.h b/res/steamworks/102/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/102/headers/isteammasterserverupdater.h rename to res/steamworks/102/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/102/headers/isteammatchmaking.h b/res/steamworks/102/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/102/headers/isteammatchmaking.h rename to res/steamworks/102/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/102/headers/isteamnetworking.h b/res/steamworks/102/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/102/headers/isteamnetworking.h rename to res/steamworks/102/headers/steam/isteamnetworking.h diff --git a/res/steamworks/102/headers/isteamuser.h b/res/steamworks/102/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/102/headers/isteamuser.h rename to res/steamworks/102/headers/steam/isteamuser.h diff --git a/res/steamworks/102/headers/isteamuserstats.h b/res/steamworks/102/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/102/headers/isteamuserstats.h rename to res/steamworks/102/headers/steam/isteamuserstats.h diff --git a/res/steamworks/102/headers/isteamutils.h b/res/steamworks/102/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/102/headers/isteamutils.h rename to res/steamworks/102/headers/steam/isteamutils.h diff --git a/res/steamworks/102/headers/matchmakingtypes.h b/res/steamworks/102/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/102/headers/matchmakingtypes.h rename to res/steamworks/102/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/102/headers/steam_api.h b/res/steamworks/102/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/102/headers/steam_api.h rename to res/steamworks/102/headers/steam/steam_api.h diff --git a/res/steamworks/102/headers/steam_gameserver.h b/res/steamworks/102/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/102/headers/steam_gameserver.h rename to res/steamworks/102/headers/steam/steam_gameserver.h diff --git a/res/steamworks/102/headers/steamclientpublic.h b/res/steamworks/102/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/102/headers/steamclientpublic.h rename to res/steamworks/102/headers/steam/steamclientpublic.h diff --git a/res/steamworks/102/headers/steamtypes.h b/res/steamworks/102/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/102/headers/steamtypes.h rename to res/steamworks/102/headers/steam/steamtypes.h diff --git a/res/steamworks/103/headers/isteamapps.h b/res/steamworks/103/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/103/headers/isteamapps.h rename to res/steamworks/103/headers/steam/isteamapps.h diff --git a/res/steamworks/103/headers/isteamclient.h b/res/steamworks/103/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/103/headers/isteamclient.h rename to res/steamworks/103/headers/steam/isteamclient.h diff --git a/res/steamworks/103/headers/isteamfriends.h b/res/steamworks/103/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/103/headers/isteamfriends.h rename to res/steamworks/103/headers/steam/isteamfriends.h diff --git a/res/steamworks/103/headers/isteamgameserver.h b/res/steamworks/103/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/103/headers/isteamgameserver.h rename to res/steamworks/103/headers/steam/isteamgameserver.h diff --git a/res/steamworks/103/headers/isteammasterserverupdater.h b/res/steamworks/103/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/103/headers/isteammasterserverupdater.h rename to res/steamworks/103/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/103/headers/isteammatchmaking.h b/res/steamworks/103/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/103/headers/isteammatchmaking.h rename to res/steamworks/103/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/103/headers/isteamnetworking.h b/res/steamworks/103/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/103/headers/isteamnetworking.h rename to res/steamworks/103/headers/steam/isteamnetworking.h diff --git a/res/steamworks/103/headers/isteamremotestorage.h b/res/steamworks/103/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/103/headers/isteamremotestorage.h rename to res/steamworks/103/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/103/headers/isteamuser.h b/res/steamworks/103/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/103/headers/isteamuser.h rename to res/steamworks/103/headers/steam/isteamuser.h diff --git a/res/steamworks/103/headers/isteamuserstats.h b/res/steamworks/103/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/103/headers/isteamuserstats.h rename to res/steamworks/103/headers/steam/isteamuserstats.h diff --git a/res/steamworks/103/headers/isteamutils.h b/res/steamworks/103/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/103/headers/isteamutils.h rename to res/steamworks/103/headers/steam/isteamutils.h diff --git a/res/steamworks/103/headers/matchmakingtypes.h b/res/steamworks/103/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/103/headers/matchmakingtypes.h rename to res/steamworks/103/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/103/headers/steam_api.h b/res/steamworks/103/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/103/headers/steam_api.h rename to res/steamworks/103/headers/steam/steam_api.h diff --git a/res/steamworks/103/headers/steam_gameserver.h b/res/steamworks/103/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/103/headers/steam_gameserver.h rename to res/steamworks/103/headers/steam/steam_gameserver.h diff --git a/res/steamworks/103/headers/steamclientpublic.h b/res/steamworks/103/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/103/headers/steamclientpublic.h rename to res/steamworks/103/headers/steam/steamclientpublic.h diff --git a/res/steamworks/103/headers/steamtypes.h b/res/steamworks/103/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/103/headers/steamtypes.h rename to res/steamworks/103/headers/steam/steamtypes.h diff --git a/res/steamworks/104/headers/isteamapps.h b/res/steamworks/104/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/104/headers/isteamapps.h rename to res/steamworks/104/headers/steam/isteamapps.h diff --git a/res/steamworks/104/headers/isteamclient.h b/res/steamworks/104/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/104/headers/isteamclient.h rename to res/steamworks/104/headers/steam/isteamclient.h diff --git a/res/steamworks/104/headers/isteamfriends.h b/res/steamworks/104/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/104/headers/isteamfriends.h rename to res/steamworks/104/headers/steam/isteamfriends.h diff --git a/res/steamworks/104/headers/isteamgameserver.h b/res/steamworks/104/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/104/headers/isteamgameserver.h rename to res/steamworks/104/headers/steam/isteamgameserver.h diff --git a/res/steamworks/104/headers/isteammasterserverupdater.h b/res/steamworks/104/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/104/headers/isteammasterserverupdater.h rename to res/steamworks/104/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/104/headers/isteammatchmaking.h b/res/steamworks/104/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/104/headers/isteammatchmaking.h rename to res/steamworks/104/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/104/headers/isteamnetworking.h b/res/steamworks/104/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/104/headers/isteamnetworking.h rename to res/steamworks/104/headers/steam/isteamnetworking.h diff --git a/res/steamworks/104/headers/isteamremotestorage.h b/res/steamworks/104/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/104/headers/isteamremotestorage.h rename to res/steamworks/104/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/104/headers/isteamuser.h b/res/steamworks/104/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/104/headers/isteamuser.h rename to res/steamworks/104/headers/steam/isteamuser.h diff --git a/res/steamworks/104/headers/isteamuserstats.h b/res/steamworks/104/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/104/headers/isteamuserstats.h rename to res/steamworks/104/headers/steam/isteamuserstats.h diff --git a/res/steamworks/104/headers/isteamutils.h b/res/steamworks/104/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/104/headers/isteamutils.h rename to res/steamworks/104/headers/steam/isteamutils.h diff --git a/res/steamworks/104/headers/matchmakingtypes.h b/res/steamworks/104/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/104/headers/matchmakingtypes.h rename to res/steamworks/104/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/104/headers/steam_api.h b/res/steamworks/104/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/104/headers/steam_api.h rename to res/steamworks/104/headers/steam/steam_api.h diff --git a/res/steamworks/104/headers/steam_gameserver.h b/res/steamworks/104/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/104/headers/steam_gameserver.h rename to res/steamworks/104/headers/steam/steam_gameserver.h diff --git a/res/steamworks/104/headers/steamclientpublic.h b/res/steamworks/104/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/104/headers/steamclientpublic.h rename to res/steamworks/104/headers/steam/steamclientpublic.h diff --git a/res/steamworks/104/headers/steamtypes.h b/res/steamworks/104/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/104/headers/steamtypes.h rename to res/steamworks/104/headers/steam/steamtypes.h diff --git a/res/steamworks/105/headers/isteamapps.h b/res/steamworks/105/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/105/headers/isteamapps.h rename to res/steamworks/105/headers/steam/isteamapps.h diff --git a/res/steamworks/105/headers/isteamclient.h b/res/steamworks/105/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/105/headers/isteamclient.h rename to res/steamworks/105/headers/steam/isteamclient.h diff --git a/res/steamworks/105/headers/isteamfriends.h b/res/steamworks/105/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/105/headers/isteamfriends.h rename to res/steamworks/105/headers/steam/isteamfriends.h diff --git a/res/steamworks/105/headers/isteamgameserver.h b/res/steamworks/105/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/105/headers/isteamgameserver.h rename to res/steamworks/105/headers/steam/isteamgameserver.h diff --git a/res/steamworks/105/headers/isteammasterserverupdater.h b/res/steamworks/105/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/105/headers/isteammasterserverupdater.h rename to res/steamworks/105/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/105/headers/isteammatchmaking.h b/res/steamworks/105/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/105/headers/isteammatchmaking.h rename to res/steamworks/105/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/105/headers/isteamnetworking.h b/res/steamworks/105/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/105/headers/isteamnetworking.h rename to res/steamworks/105/headers/steam/isteamnetworking.h diff --git a/res/steamworks/105/headers/isteamremotestorage.h b/res/steamworks/105/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/105/headers/isteamremotestorage.h rename to res/steamworks/105/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/105/headers/isteamuser.h b/res/steamworks/105/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/105/headers/isteamuser.h rename to res/steamworks/105/headers/steam/isteamuser.h diff --git a/res/steamworks/105/headers/isteamuserstats.h b/res/steamworks/105/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/105/headers/isteamuserstats.h rename to res/steamworks/105/headers/steam/isteamuserstats.h diff --git a/res/steamworks/105/headers/isteamutils.h b/res/steamworks/105/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/105/headers/isteamutils.h rename to res/steamworks/105/headers/steam/isteamutils.h diff --git a/res/steamworks/105/headers/matchmakingtypes.h b/res/steamworks/105/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/105/headers/matchmakingtypes.h rename to res/steamworks/105/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/105/headers/steam_api.h b/res/steamworks/105/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/105/headers/steam_api.h rename to res/steamworks/105/headers/steam/steam_api.h diff --git a/res/steamworks/105/headers/steam_gameserver.h b/res/steamworks/105/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/105/headers/steam_gameserver.h rename to res/steamworks/105/headers/steam/steam_gameserver.h diff --git a/res/steamworks/105/headers/steamclientpublic.h b/res/steamworks/105/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/105/headers/steamclientpublic.h rename to res/steamworks/105/headers/steam/steamclientpublic.h diff --git a/res/steamworks/105/headers/steamtypes.h b/res/steamworks/105/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/105/headers/steamtypes.h rename to res/steamworks/105/headers/steam/steamtypes.h diff --git a/res/steamworks/106/headers/isteamapps.h b/res/steamworks/106/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/106/headers/isteamapps.h rename to res/steamworks/106/headers/steam/isteamapps.h diff --git a/res/steamworks/106/headers/isteamclient.h b/res/steamworks/106/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/106/headers/isteamclient.h rename to res/steamworks/106/headers/steam/isteamclient.h diff --git a/res/steamworks/106/headers/isteamfriends.h b/res/steamworks/106/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/106/headers/isteamfriends.h rename to res/steamworks/106/headers/steam/isteamfriends.h diff --git a/res/steamworks/106/headers/isteamgameserver.h b/res/steamworks/106/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/106/headers/isteamgameserver.h rename to res/steamworks/106/headers/steam/isteamgameserver.h diff --git a/res/steamworks/106/headers/isteammasterserverupdater.h b/res/steamworks/106/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/106/headers/isteammasterserverupdater.h rename to res/steamworks/106/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/106/headers/isteammatchmaking.h b/res/steamworks/106/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/106/headers/isteammatchmaking.h rename to res/steamworks/106/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/106/headers/isteamnetworking.h b/res/steamworks/106/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/106/headers/isteamnetworking.h rename to res/steamworks/106/headers/steam/isteamnetworking.h diff --git a/res/steamworks/106/headers/isteamremotestorage.h b/res/steamworks/106/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/106/headers/isteamremotestorage.h rename to res/steamworks/106/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/106/headers/isteamuser.h b/res/steamworks/106/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/106/headers/isteamuser.h rename to res/steamworks/106/headers/steam/isteamuser.h diff --git a/res/steamworks/106/headers/isteamuserstats.h b/res/steamworks/106/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/106/headers/isteamuserstats.h rename to res/steamworks/106/headers/steam/isteamuserstats.h diff --git a/res/steamworks/106/headers/isteamutils.h b/res/steamworks/106/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/106/headers/isteamutils.h rename to res/steamworks/106/headers/steam/isteamutils.h diff --git a/res/steamworks/106/headers/matchmakingtypes.h b/res/steamworks/106/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/106/headers/matchmakingtypes.h rename to res/steamworks/106/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/106/headers/steam_api.h b/res/steamworks/106/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/106/headers/steam_api.h rename to res/steamworks/106/headers/steam/steam_api.h diff --git a/res/steamworks/106/headers/steam_gameserver.h b/res/steamworks/106/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/106/headers/steam_gameserver.h rename to res/steamworks/106/headers/steam/steam_gameserver.h diff --git a/res/steamworks/106/headers/steamclientpublic.h b/res/steamworks/106/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/106/headers/steamclientpublic.h rename to res/steamworks/106/headers/steam/steamclientpublic.h diff --git a/res/steamworks/106/headers/steamtypes.h b/res/steamworks/106/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/106/headers/steamtypes.h rename to res/steamworks/106/headers/steam/steamtypes.h diff --git a/res/steamworks/107/headers/isteamapps.h b/res/steamworks/107/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/107/headers/isteamapps.h rename to res/steamworks/107/headers/steam/isteamapps.h diff --git a/res/steamworks/107/headers/isteamclient.h b/res/steamworks/107/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/107/headers/isteamclient.h rename to res/steamworks/107/headers/steam/isteamclient.h diff --git a/res/steamworks/107/headers/isteamfriends.h b/res/steamworks/107/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/107/headers/isteamfriends.h rename to res/steamworks/107/headers/steam/isteamfriends.h diff --git a/res/steamworks/107/headers/isteamgameserver.h b/res/steamworks/107/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/107/headers/isteamgameserver.h rename to res/steamworks/107/headers/steam/isteamgameserver.h diff --git a/res/steamworks/107/headers/isteammasterserverupdater.h b/res/steamworks/107/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/107/headers/isteammasterserverupdater.h rename to res/steamworks/107/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/107/headers/isteammatchmaking.h b/res/steamworks/107/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/107/headers/isteammatchmaking.h rename to res/steamworks/107/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/107/headers/isteamnetworking.h b/res/steamworks/107/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/107/headers/isteamnetworking.h rename to res/steamworks/107/headers/steam/isteamnetworking.h diff --git a/res/steamworks/107/headers/isteamremotestorage.h b/res/steamworks/107/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/107/headers/isteamremotestorage.h rename to res/steamworks/107/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/107/headers/isteamuser.h b/res/steamworks/107/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/107/headers/isteamuser.h rename to res/steamworks/107/headers/steam/isteamuser.h diff --git a/res/steamworks/107/headers/isteamuserstats.h b/res/steamworks/107/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/107/headers/isteamuserstats.h rename to res/steamworks/107/headers/steam/isteamuserstats.h diff --git a/res/steamworks/107/headers/isteamutils.h b/res/steamworks/107/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/107/headers/isteamutils.h rename to res/steamworks/107/headers/steam/isteamutils.h diff --git a/res/steamworks/107/headers/matchmakingtypes.h b/res/steamworks/107/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/107/headers/matchmakingtypes.h rename to res/steamworks/107/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/107/headers/steam_api.h b/res/steamworks/107/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/107/headers/steam_api.h rename to res/steamworks/107/headers/steam/steam_api.h diff --git a/res/steamworks/107/headers/steam_gameserver.h b/res/steamworks/107/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/107/headers/steam_gameserver.h rename to res/steamworks/107/headers/steam/steam_gameserver.h diff --git a/res/steamworks/107/headers/steamclientpublic.h b/res/steamworks/107/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/107/headers/steamclientpublic.h rename to res/steamworks/107/headers/steam/steamclientpublic.h diff --git a/res/steamworks/107/headers/steamtypes.h b/res/steamworks/107/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/107/headers/steamtypes.h rename to res/steamworks/107/headers/steam/steamtypes.h diff --git a/res/steamworks/108/headers/isteamapps.h b/res/steamworks/108/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/108/headers/isteamapps.h rename to res/steamworks/108/headers/steam/isteamapps.h diff --git a/res/steamworks/108/headers/isteamclient.h b/res/steamworks/108/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/108/headers/isteamclient.h rename to res/steamworks/108/headers/steam/isteamclient.h diff --git a/res/steamworks/108/headers/isteamfriends.h b/res/steamworks/108/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/108/headers/isteamfriends.h rename to res/steamworks/108/headers/steam/isteamfriends.h diff --git a/res/steamworks/108/headers/isteamgameserver.h b/res/steamworks/108/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/108/headers/isteamgameserver.h rename to res/steamworks/108/headers/steam/isteamgameserver.h diff --git a/res/steamworks/108/headers/isteamgameserverstats.h b/res/steamworks/108/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/108/headers/isteamgameserverstats.h rename to res/steamworks/108/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/108/headers/isteamgamestats.h b/res/steamworks/108/headers/steam/isteamgamestats.h similarity index 100% rename from res/steamworks/108/headers/isteamgamestats.h rename to res/steamworks/108/headers/steam/isteamgamestats.h diff --git a/res/steamworks/108/headers/isteammasterserverupdater.h b/res/steamworks/108/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/108/headers/isteammasterserverupdater.h rename to res/steamworks/108/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/108/headers/isteammatchmaking.h b/res/steamworks/108/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/108/headers/isteammatchmaking.h rename to res/steamworks/108/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/108/headers/isteamnetworking.h b/res/steamworks/108/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/108/headers/isteamnetworking.h rename to res/steamworks/108/headers/steam/isteamnetworking.h diff --git a/res/steamworks/108/headers/isteamremotestorage.h b/res/steamworks/108/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/108/headers/isteamremotestorage.h rename to res/steamworks/108/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/108/headers/isteamuser.h b/res/steamworks/108/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/108/headers/isteamuser.h rename to res/steamworks/108/headers/steam/isteamuser.h diff --git a/res/steamworks/108/headers/isteamuserstats.h b/res/steamworks/108/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/108/headers/isteamuserstats.h rename to res/steamworks/108/headers/steam/isteamuserstats.h diff --git a/res/steamworks/108/headers/isteamutils.h b/res/steamworks/108/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/108/headers/isteamutils.h rename to res/steamworks/108/headers/steam/isteamutils.h diff --git a/res/steamworks/108/headers/matchmakingtypes.h b/res/steamworks/108/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/108/headers/matchmakingtypes.h rename to res/steamworks/108/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/108/headers/steam_api.h b/res/steamworks/108/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/108/headers/steam_api.h rename to res/steamworks/108/headers/steam/steam_api.h diff --git a/res/steamworks/108/headers/steam_gameserver.h b/res/steamworks/108/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/108/headers/steam_gameserver.h rename to res/steamworks/108/headers/steam/steam_gameserver.h diff --git a/res/steamworks/108/headers/steamclientpublic.h b/res/steamworks/108/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/108/headers/steamclientpublic.h rename to res/steamworks/108/headers/steam/steamclientpublic.h diff --git a/res/steamworks/108/headers/steamtypes.h b/res/steamworks/108/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/108/headers/steamtypes.h rename to res/steamworks/108/headers/steam/steamtypes.h diff --git a/res/steamworks/109/headers/isteamapps.h b/res/steamworks/109/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/109/headers/isteamapps.h rename to res/steamworks/109/headers/steam/isteamapps.h diff --git a/res/steamworks/109/headers/isteamclient.h b/res/steamworks/109/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/109/headers/isteamclient.h rename to res/steamworks/109/headers/steam/isteamclient.h diff --git a/res/steamworks/109/headers/isteamfriends.h b/res/steamworks/109/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/109/headers/isteamfriends.h rename to res/steamworks/109/headers/steam/isteamfriends.h diff --git a/res/steamworks/109/headers/isteamgamecoordinator.h b/res/steamworks/109/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/109/headers/isteamgamecoordinator.h rename to res/steamworks/109/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/109/headers/isteamgameserver.h b/res/steamworks/109/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/109/headers/isteamgameserver.h rename to res/steamworks/109/headers/steam/isteamgameserver.h diff --git a/res/steamworks/109/headers/isteamgameserverstats.h b/res/steamworks/109/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/109/headers/isteamgameserverstats.h rename to res/steamworks/109/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/109/headers/isteamgamestats.h b/res/steamworks/109/headers/steam/isteamgamestats.h similarity index 100% rename from res/steamworks/109/headers/isteamgamestats.h rename to res/steamworks/109/headers/steam/isteamgamestats.h diff --git a/res/steamworks/109/headers/isteammasterserverupdater.h b/res/steamworks/109/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/109/headers/isteammasterserverupdater.h rename to res/steamworks/109/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/109/headers/isteammatchmaking.h b/res/steamworks/109/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/109/headers/isteammatchmaking.h rename to res/steamworks/109/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/109/headers/isteamnetworking.h b/res/steamworks/109/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/109/headers/isteamnetworking.h rename to res/steamworks/109/headers/steam/isteamnetworking.h diff --git a/res/steamworks/109/headers/isteamremotestorage.h b/res/steamworks/109/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/109/headers/isteamremotestorage.h rename to res/steamworks/109/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/109/headers/isteamuser.h b/res/steamworks/109/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/109/headers/isteamuser.h rename to res/steamworks/109/headers/steam/isteamuser.h diff --git a/res/steamworks/109/headers/isteamuserstats.h b/res/steamworks/109/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/109/headers/isteamuserstats.h rename to res/steamworks/109/headers/steam/isteamuserstats.h diff --git a/res/steamworks/109/headers/isteamutils.h b/res/steamworks/109/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/109/headers/isteamutils.h rename to res/steamworks/109/headers/steam/isteamutils.h diff --git a/res/steamworks/109/headers/matchmakingtypes.h b/res/steamworks/109/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/109/headers/matchmakingtypes.h rename to res/steamworks/109/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/109/headers/steam_api.h b/res/steamworks/109/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/109/headers/steam_api.h rename to res/steamworks/109/headers/steam/steam_api.h diff --git a/res/steamworks/109/headers/steam_gameserver.h b/res/steamworks/109/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/109/headers/steam_gameserver.h rename to res/steamworks/109/headers/steam/steam_gameserver.h diff --git a/res/steamworks/109/headers/steamclientpublic.h b/res/steamworks/109/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/109/headers/steamclientpublic.h rename to res/steamworks/109/headers/steam/steamclientpublic.h diff --git a/res/steamworks/109/headers/steamtypes.h b/res/steamworks/109/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/109/headers/steamtypes.h rename to res/steamworks/109/headers/steam/steamtypes.h diff --git a/res/steamworks/110/headers/isteamapps.h b/res/steamworks/110/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/110/headers/isteamapps.h rename to res/steamworks/110/headers/steam/isteamapps.h diff --git a/res/steamworks/110/headers/isteamclient.h b/res/steamworks/110/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/110/headers/isteamclient.h rename to res/steamworks/110/headers/steam/isteamclient.h diff --git a/res/steamworks/110/headers/isteamfriends.h b/res/steamworks/110/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/110/headers/isteamfriends.h rename to res/steamworks/110/headers/steam/isteamfriends.h diff --git a/res/steamworks/110/headers/isteamgamecoordinator.h b/res/steamworks/110/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/110/headers/isteamgamecoordinator.h rename to res/steamworks/110/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/110/headers/isteamgameserver.h b/res/steamworks/110/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/110/headers/isteamgameserver.h rename to res/steamworks/110/headers/steam/isteamgameserver.h diff --git a/res/steamworks/110/headers/isteamgameserverstats.h b/res/steamworks/110/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/110/headers/isteamgameserverstats.h rename to res/steamworks/110/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/110/headers/isteamgamestats.h b/res/steamworks/110/headers/steam/isteamgamestats.h similarity index 100% rename from res/steamworks/110/headers/isteamgamestats.h rename to res/steamworks/110/headers/steam/isteamgamestats.h diff --git a/res/steamworks/110/headers/isteammasterserverupdater.h b/res/steamworks/110/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/110/headers/isteammasterserverupdater.h rename to res/steamworks/110/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/110/headers/isteammatchmaking.h b/res/steamworks/110/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/110/headers/isteammatchmaking.h rename to res/steamworks/110/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/110/headers/isteamnetworking.h b/res/steamworks/110/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/110/headers/isteamnetworking.h rename to res/steamworks/110/headers/steam/isteamnetworking.h diff --git a/res/steamworks/110/headers/isteamremotestorage.h b/res/steamworks/110/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/110/headers/isteamremotestorage.h rename to res/steamworks/110/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/110/headers/isteamuser.h b/res/steamworks/110/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/110/headers/isteamuser.h rename to res/steamworks/110/headers/steam/isteamuser.h diff --git a/res/steamworks/110/headers/isteamuserstats.h b/res/steamworks/110/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/110/headers/isteamuserstats.h rename to res/steamworks/110/headers/steam/isteamuserstats.h diff --git a/res/steamworks/110/headers/isteamutils.h b/res/steamworks/110/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/110/headers/isteamutils.h rename to res/steamworks/110/headers/steam/isteamutils.h diff --git a/res/steamworks/110/headers/matchmakingtypes.h b/res/steamworks/110/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/110/headers/matchmakingtypes.h rename to res/steamworks/110/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/110/headers/steam_api.h b/res/steamworks/110/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/110/headers/steam_api.h rename to res/steamworks/110/headers/steam/steam_api.h diff --git a/res/steamworks/110/headers/steam_gameserver.h b/res/steamworks/110/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/110/headers/steam_gameserver.h rename to res/steamworks/110/headers/steam/steam_gameserver.h diff --git a/res/steamworks/110/headers/steamclientpublic.h b/res/steamworks/110/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/110/headers/steamclientpublic.h rename to res/steamworks/110/headers/steam/steamclientpublic.h diff --git a/res/steamworks/110/headers/steamtypes.h b/res/steamworks/110/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/110/headers/steamtypes.h rename to res/steamworks/110/headers/steam/steamtypes.h diff --git a/res/steamworks/111/headers/isteamapps.h b/res/steamworks/111/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/111/headers/isteamapps.h rename to res/steamworks/111/headers/steam/isteamapps.h diff --git a/res/steamworks/111/headers/isteamclient.h b/res/steamworks/111/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/111/headers/isteamclient.h rename to res/steamworks/111/headers/steam/isteamclient.h diff --git a/res/steamworks/111/headers/isteamfriends.h b/res/steamworks/111/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/111/headers/isteamfriends.h rename to res/steamworks/111/headers/steam/isteamfriends.h diff --git a/res/steamworks/111/headers/isteamgamecoordinator.h b/res/steamworks/111/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/111/headers/isteamgamecoordinator.h rename to res/steamworks/111/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/111/headers/isteamgameserver.h b/res/steamworks/111/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/111/headers/isteamgameserver.h rename to res/steamworks/111/headers/steam/isteamgameserver.h diff --git a/res/steamworks/111/headers/isteamgameserverstats.h b/res/steamworks/111/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/111/headers/isteamgameserverstats.h rename to res/steamworks/111/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/111/headers/isteamgamestats.h b/res/steamworks/111/headers/steam/isteamgamestats.h similarity index 100% rename from res/steamworks/111/headers/isteamgamestats.h rename to res/steamworks/111/headers/steam/isteamgamestats.h diff --git a/res/steamworks/111/headers/isteammasterserverupdater.h b/res/steamworks/111/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/111/headers/isteammasterserverupdater.h rename to res/steamworks/111/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/111/headers/isteammatchmaking.h b/res/steamworks/111/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/111/headers/isteammatchmaking.h rename to res/steamworks/111/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/111/headers/isteamnetworking.h b/res/steamworks/111/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/111/headers/isteamnetworking.h rename to res/steamworks/111/headers/steam/isteamnetworking.h diff --git a/res/steamworks/111/headers/isteamremotestorage.h b/res/steamworks/111/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/111/headers/isteamremotestorage.h rename to res/steamworks/111/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/111/headers/isteamuser.h b/res/steamworks/111/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/111/headers/isteamuser.h rename to res/steamworks/111/headers/steam/isteamuser.h diff --git a/res/steamworks/111/headers/isteamuserstats.h b/res/steamworks/111/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/111/headers/isteamuserstats.h rename to res/steamworks/111/headers/steam/isteamuserstats.h diff --git a/res/steamworks/111/headers/isteamutils.h b/res/steamworks/111/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/111/headers/isteamutils.h rename to res/steamworks/111/headers/steam/isteamutils.h diff --git a/res/steamworks/111/headers/matchmakingtypes.h b/res/steamworks/111/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/111/headers/matchmakingtypes.h rename to res/steamworks/111/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/111/headers/steam_api.h b/res/steamworks/111/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/111/headers/steam_api.h rename to res/steamworks/111/headers/steam/steam_api.h diff --git a/res/steamworks/111/headers/steam_gameserver.h b/res/steamworks/111/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/111/headers/steam_gameserver.h rename to res/steamworks/111/headers/steam/steam_gameserver.h diff --git a/res/steamworks/111/headers/steamclientpublic.h b/res/steamworks/111/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/111/headers/steamclientpublic.h rename to res/steamworks/111/headers/steam/steamclientpublic.h diff --git a/res/steamworks/111/headers/steamencryptedappticket.h b/res/steamworks/111/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/111/headers/steamencryptedappticket.h rename to res/steamworks/111/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/111/headers/steamtypes.h b/res/steamworks/111/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/111/headers/steamtypes.h rename to res/steamworks/111/headers/steam/steamtypes.h diff --git a/res/steamworks/112/headers/isteamapps.h b/res/steamworks/112/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/112/headers/isteamapps.h rename to res/steamworks/112/headers/steam/isteamapps.h diff --git a/res/steamworks/112/headers/isteamappticket.h b/res/steamworks/112/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/112/headers/isteamappticket.h rename to res/steamworks/112/headers/steam/isteamappticket.h diff --git a/res/steamworks/112/headers/isteamclient.h b/res/steamworks/112/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/112/headers/isteamclient.h rename to res/steamworks/112/headers/steam/isteamclient.h diff --git a/res/steamworks/112/headers/isteamfriends.h b/res/steamworks/112/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/112/headers/isteamfriends.h rename to res/steamworks/112/headers/steam/isteamfriends.h diff --git a/res/steamworks/112/headers/isteamgamecoordinator.h b/res/steamworks/112/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/112/headers/isteamgamecoordinator.h rename to res/steamworks/112/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/112/headers/isteamgameserver.h b/res/steamworks/112/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/112/headers/isteamgameserver.h rename to res/steamworks/112/headers/steam/isteamgameserver.h diff --git a/res/steamworks/112/headers/isteamgameserverstats.h b/res/steamworks/112/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/112/headers/isteamgameserverstats.h rename to res/steamworks/112/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/112/headers/isteamgamestats.h b/res/steamworks/112/headers/steam/isteamgamestats.h similarity index 100% rename from res/steamworks/112/headers/isteamgamestats.h rename to res/steamworks/112/headers/steam/isteamgamestats.h diff --git a/res/steamworks/112/headers/isteammasterserverupdater.h b/res/steamworks/112/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/112/headers/isteammasterserverupdater.h rename to res/steamworks/112/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/112/headers/isteammatchmaking.h b/res/steamworks/112/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/112/headers/isteammatchmaking.h rename to res/steamworks/112/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/112/headers/isteamnetworking.h b/res/steamworks/112/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/112/headers/isteamnetworking.h rename to res/steamworks/112/headers/steam/isteamnetworking.h diff --git a/res/steamworks/112/headers/isteamremotestorage.h b/res/steamworks/112/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/112/headers/isteamremotestorage.h rename to res/steamworks/112/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/112/headers/isteamuser.h b/res/steamworks/112/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/112/headers/isteamuser.h rename to res/steamworks/112/headers/steam/isteamuser.h diff --git a/res/steamworks/112/headers/isteamuserstats.h b/res/steamworks/112/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/112/headers/isteamuserstats.h rename to res/steamworks/112/headers/steam/isteamuserstats.h diff --git a/res/steamworks/112/headers/isteamutils.h b/res/steamworks/112/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/112/headers/isteamutils.h rename to res/steamworks/112/headers/steam/isteamutils.h diff --git a/res/steamworks/112/headers/matchmakingtypes.h b/res/steamworks/112/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/112/headers/matchmakingtypes.h rename to res/steamworks/112/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/112/headers/steam_api.h b/res/steamworks/112/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/112/headers/steam_api.h rename to res/steamworks/112/headers/steam/steam_api.h diff --git a/res/steamworks/112/headers/steam_gameserver.h b/res/steamworks/112/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/112/headers/steam_gameserver.h rename to res/steamworks/112/headers/steam/steam_gameserver.h diff --git a/res/steamworks/112/headers/steamclientpublic.h b/res/steamworks/112/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/112/headers/steamclientpublic.h rename to res/steamworks/112/headers/steam/steamclientpublic.h diff --git a/res/steamworks/112/headers/steamencryptedappticket.h b/res/steamworks/112/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/112/headers/steamencryptedappticket.h rename to res/steamworks/112/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/112/headers/steamps3params_internal.h b/res/steamworks/112/headers/steam/steamps3params_internal.h similarity index 100% rename from res/steamworks/112/headers/steamps3params_internal.h rename to res/steamworks/112/headers/steam/steamps3params_internal.h diff --git a/res/steamworks/112/headers/steamtypes.h b/res/steamworks/112/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/112/headers/steamtypes.h rename to res/steamworks/112/headers/steam/steamtypes.h diff --git a/res/steamworks/113/headers/isteamapps.h b/res/steamworks/113/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/113/headers/isteamapps.h rename to res/steamworks/113/headers/steam/isteamapps.h diff --git a/res/steamworks/113/headers/isteamappticket.h b/res/steamworks/113/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/113/headers/isteamappticket.h rename to res/steamworks/113/headers/steam/isteamappticket.h diff --git a/res/steamworks/113/headers/isteamclient.h b/res/steamworks/113/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/113/headers/isteamclient.h rename to res/steamworks/113/headers/steam/isteamclient.h diff --git a/res/steamworks/113/headers/isteamfriends.h b/res/steamworks/113/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/113/headers/isteamfriends.h rename to res/steamworks/113/headers/steam/isteamfriends.h diff --git a/res/steamworks/113/headers/isteamgamecoordinator.h b/res/steamworks/113/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/113/headers/isteamgamecoordinator.h rename to res/steamworks/113/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/113/headers/isteamgameserver.h b/res/steamworks/113/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/113/headers/isteamgameserver.h rename to res/steamworks/113/headers/steam/isteamgameserver.h diff --git a/res/steamworks/113/headers/isteamgameserverstats.h b/res/steamworks/113/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/113/headers/isteamgameserverstats.h rename to res/steamworks/113/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/113/headers/isteamgamestats.h b/res/steamworks/113/headers/steam/isteamgamestats.h similarity index 100% rename from res/steamworks/113/headers/isteamgamestats.h rename to res/steamworks/113/headers/steam/isteamgamestats.h diff --git a/res/steamworks/113/headers/isteamhttp.h b/res/steamworks/113/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/113/headers/isteamhttp.h rename to res/steamworks/113/headers/steam/isteamhttp.h diff --git a/res/steamworks/113/headers/isteammasterserverupdater.h b/res/steamworks/113/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/113/headers/isteammasterserverupdater.h rename to res/steamworks/113/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/113/headers/isteammatchmaking.h b/res/steamworks/113/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/113/headers/isteammatchmaking.h rename to res/steamworks/113/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/113/headers/isteamnetworking.h b/res/steamworks/113/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/113/headers/isteamnetworking.h rename to res/steamworks/113/headers/steam/isteamnetworking.h diff --git a/res/steamworks/113/headers/isteamps3overlayrenderer.h b/res/steamworks/113/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/113/headers/isteamps3overlayrenderer.h rename to res/steamworks/113/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/113/headers/isteamremotestorage.h b/res/steamworks/113/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/113/headers/isteamremotestorage.h rename to res/steamworks/113/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/113/headers/isteamuser.h b/res/steamworks/113/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/113/headers/isteamuser.h rename to res/steamworks/113/headers/steam/isteamuser.h diff --git a/res/steamworks/113/headers/isteamuserstats.h b/res/steamworks/113/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/113/headers/isteamuserstats.h rename to res/steamworks/113/headers/steam/isteamuserstats.h diff --git a/res/steamworks/113/headers/isteamutils.h b/res/steamworks/113/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/113/headers/isteamutils.h rename to res/steamworks/113/headers/steam/isteamutils.h diff --git a/res/steamworks/113/headers/matchmakingtypes.h b/res/steamworks/113/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/113/headers/matchmakingtypes.h rename to res/steamworks/113/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/113/headers/steam_api.h b/res/steamworks/113/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/113/headers/steam_api.h rename to res/steamworks/113/headers/steam/steam_api.h diff --git a/res/steamworks/113/headers/steam_gameserver.h b/res/steamworks/113/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/113/headers/steam_gameserver.h rename to res/steamworks/113/headers/steam/steam_gameserver.h diff --git a/res/steamworks/113/headers/steamclientpublic.h b/res/steamworks/113/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/113/headers/steamclientpublic.h rename to res/steamworks/113/headers/steam/steamclientpublic.h diff --git a/res/steamworks/113/headers/steamencryptedappticket.h b/res/steamworks/113/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/113/headers/steamencryptedappticket.h rename to res/steamworks/113/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/113/headers/steamhttpenums.h b/res/steamworks/113/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/113/headers/steamhttpenums.h rename to res/steamworks/113/headers/steam/steamhttpenums.h diff --git a/res/steamworks/113/headers/steamps3params.h b/res/steamworks/113/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/113/headers/steamps3params.h rename to res/steamworks/113/headers/steam/steamps3params.h diff --git a/res/steamworks/113/headers/steamtypes.h b/res/steamworks/113/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/113/headers/steamtypes.h rename to res/steamworks/113/headers/steam/steamtypes.h diff --git a/res/steamworks/114/headers/isteamapps.h b/res/steamworks/114/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/114/headers/isteamapps.h rename to res/steamworks/114/headers/steam/isteamapps.h diff --git a/res/steamworks/114/headers/isteamappticket.h b/res/steamworks/114/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/114/headers/isteamappticket.h rename to res/steamworks/114/headers/steam/isteamappticket.h diff --git a/res/steamworks/114/headers/isteamclient.h b/res/steamworks/114/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/114/headers/isteamclient.h rename to res/steamworks/114/headers/steam/isteamclient.h diff --git a/res/steamworks/114/headers/isteamfriends.h b/res/steamworks/114/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/114/headers/isteamfriends.h rename to res/steamworks/114/headers/steam/isteamfriends.h diff --git a/res/steamworks/114/headers/isteamgamecoordinator.h b/res/steamworks/114/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/114/headers/isteamgamecoordinator.h rename to res/steamworks/114/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/114/headers/isteamgameserver.h b/res/steamworks/114/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/114/headers/isteamgameserver.h rename to res/steamworks/114/headers/steam/isteamgameserver.h diff --git a/res/steamworks/114/headers/isteamgameserverstats.h b/res/steamworks/114/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/114/headers/isteamgameserverstats.h rename to res/steamworks/114/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/114/headers/isteamgamestats.h b/res/steamworks/114/headers/steam/isteamgamestats.h similarity index 100% rename from res/steamworks/114/headers/isteamgamestats.h rename to res/steamworks/114/headers/steam/isteamgamestats.h diff --git a/res/steamworks/114/headers/isteamhttp.h b/res/steamworks/114/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/114/headers/isteamhttp.h rename to res/steamworks/114/headers/steam/isteamhttp.h diff --git a/res/steamworks/114/headers/isteammasterserverupdater.h b/res/steamworks/114/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/114/headers/isteammasterserverupdater.h rename to res/steamworks/114/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/114/headers/isteammatchmaking.h b/res/steamworks/114/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/114/headers/isteammatchmaking.h rename to res/steamworks/114/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/114/headers/isteamnetworking.h b/res/steamworks/114/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/114/headers/isteamnetworking.h rename to res/steamworks/114/headers/steam/isteamnetworking.h diff --git a/res/steamworks/114/headers/isteamps3overlayrenderer.h b/res/steamworks/114/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/114/headers/isteamps3overlayrenderer.h rename to res/steamworks/114/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/114/headers/isteamremotestorage.h b/res/steamworks/114/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/114/headers/isteamremotestorage.h rename to res/steamworks/114/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/114/headers/isteamuser.h b/res/steamworks/114/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/114/headers/isteamuser.h rename to res/steamworks/114/headers/steam/isteamuser.h diff --git a/res/steamworks/114/headers/isteamuserstats.h b/res/steamworks/114/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/114/headers/isteamuserstats.h rename to res/steamworks/114/headers/steam/isteamuserstats.h diff --git a/res/steamworks/114/headers/isteamutils.h b/res/steamworks/114/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/114/headers/isteamutils.h rename to res/steamworks/114/headers/steam/isteamutils.h diff --git a/res/steamworks/114/headers/matchmakingtypes.h b/res/steamworks/114/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/114/headers/matchmakingtypes.h rename to res/steamworks/114/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/114/headers/steam_api.h b/res/steamworks/114/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/114/headers/steam_api.h rename to res/steamworks/114/headers/steam/steam_api.h diff --git a/res/steamworks/114/headers/steam_gameserver.h b/res/steamworks/114/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/114/headers/steam_gameserver.h rename to res/steamworks/114/headers/steam/steam_gameserver.h diff --git a/res/steamworks/114/headers/steamclientpublic.h b/res/steamworks/114/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/114/headers/steamclientpublic.h rename to res/steamworks/114/headers/steam/steamclientpublic.h diff --git a/res/steamworks/114/headers/steamencryptedappticket.h b/res/steamworks/114/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/114/headers/steamencryptedappticket.h rename to res/steamworks/114/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/114/headers/steamhttpenums.h b/res/steamworks/114/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/114/headers/steamhttpenums.h rename to res/steamworks/114/headers/steam/steamhttpenums.h diff --git a/res/steamworks/114/headers/steamps3params.h b/res/steamworks/114/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/114/headers/steamps3params.h rename to res/steamworks/114/headers/steam/steamps3params.h diff --git a/res/steamworks/114/headers/steamtypes.h b/res/steamworks/114/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/114/headers/steamtypes.h rename to res/steamworks/114/headers/steam/steamtypes.h diff --git a/res/steamworks/115/headers/isteamapps.h b/res/steamworks/115/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/115/headers/isteamapps.h rename to res/steamworks/115/headers/steam/isteamapps.h diff --git a/res/steamworks/115/headers/isteamappticket.h b/res/steamworks/115/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/115/headers/isteamappticket.h rename to res/steamworks/115/headers/steam/isteamappticket.h diff --git a/res/steamworks/115/headers/isteamclient.h b/res/steamworks/115/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/115/headers/isteamclient.h rename to res/steamworks/115/headers/steam/isteamclient.h diff --git a/res/steamworks/115/headers/isteamfriends.h b/res/steamworks/115/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/115/headers/isteamfriends.h rename to res/steamworks/115/headers/steam/isteamfriends.h diff --git a/res/steamworks/115/headers/isteamgamecoordinator.h b/res/steamworks/115/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/115/headers/isteamgamecoordinator.h rename to res/steamworks/115/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/115/headers/isteamgameserver.h b/res/steamworks/115/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/115/headers/isteamgameserver.h rename to res/steamworks/115/headers/steam/isteamgameserver.h diff --git a/res/steamworks/115/headers/isteamgameserverstats.h b/res/steamworks/115/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/115/headers/isteamgameserverstats.h rename to res/steamworks/115/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/115/headers/isteamgamestats.h b/res/steamworks/115/headers/steam/isteamgamestats.h similarity index 100% rename from res/steamworks/115/headers/isteamgamestats.h rename to res/steamworks/115/headers/steam/isteamgamestats.h diff --git a/res/steamworks/115/headers/isteamhttp.h b/res/steamworks/115/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/115/headers/isteamhttp.h rename to res/steamworks/115/headers/steam/isteamhttp.h diff --git a/res/steamworks/115/headers/isteammasterserverupdater.h b/res/steamworks/115/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/115/headers/isteammasterserverupdater.h rename to res/steamworks/115/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/115/headers/isteammatchmaking.h b/res/steamworks/115/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/115/headers/isteammatchmaking.h rename to res/steamworks/115/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/115/headers/isteamnetworking.h b/res/steamworks/115/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/115/headers/isteamnetworking.h rename to res/steamworks/115/headers/steam/isteamnetworking.h diff --git a/res/steamworks/115/headers/isteamps3overlayrenderer.h b/res/steamworks/115/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/115/headers/isteamps3overlayrenderer.h rename to res/steamworks/115/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/115/headers/isteamremotestorage.h b/res/steamworks/115/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/115/headers/isteamremotestorage.h rename to res/steamworks/115/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/115/headers/isteamuser.h b/res/steamworks/115/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/115/headers/isteamuser.h rename to res/steamworks/115/headers/steam/isteamuser.h diff --git a/res/steamworks/115/headers/isteamuserstats.h b/res/steamworks/115/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/115/headers/isteamuserstats.h rename to res/steamworks/115/headers/steam/isteamuserstats.h diff --git a/res/steamworks/115/headers/isteamutils.h b/res/steamworks/115/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/115/headers/isteamutils.h rename to res/steamworks/115/headers/steam/isteamutils.h diff --git a/res/steamworks/115/headers/matchmakingtypes.h b/res/steamworks/115/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/115/headers/matchmakingtypes.h rename to res/steamworks/115/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/115/headers/steam_api.h b/res/steamworks/115/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/115/headers/steam_api.h rename to res/steamworks/115/headers/steam/steam_api.h diff --git a/res/steamworks/115/headers/steam_gameserver.h b/res/steamworks/115/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/115/headers/steam_gameserver.h rename to res/steamworks/115/headers/steam/steam_gameserver.h diff --git a/res/steamworks/115/headers/steamclientpublic.h b/res/steamworks/115/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/115/headers/steamclientpublic.h rename to res/steamworks/115/headers/steam/steamclientpublic.h diff --git a/res/steamworks/115/headers/steamencryptedappticket.h b/res/steamworks/115/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/115/headers/steamencryptedappticket.h rename to res/steamworks/115/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/115/headers/steamhttpenums.h b/res/steamworks/115/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/115/headers/steamhttpenums.h rename to res/steamworks/115/headers/steam/steamhttpenums.h diff --git a/res/steamworks/115/headers/steamps3params.h b/res/steamworks/115/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/115/headers/steamps3params.h rename to res/steamworks/115/headers/steam/steamps3params.h diff --git a/res/steamworks/115/headers/steamtypes.h b/res/steamworks/115/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/115/headers/steamtypes.h rename to res/steamworks/115/headers/steam/steamtypes.h diff --git a/res/steamworks/116/headers/isteamapps.h b/res/steamworks/116/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/116/headers/isteamapps.h rename to res/steamworks/116/headers/steam/isteamapps.h diff --git a/res/steamworks/116/headers/isteamappticket.h b/res/steamworks/116/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/116/headers/isteamappticket.h rename to res/steamworks/116/headers/steam/isteamappticket.h diff --git a/res/steamworks/116/headers/isteamclient.h b/res/steamworks/116/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/116/headers/isteamclient.h rename to res/steamworks/116/headers/steam/isteamclient.h diff --git a/res/steamworks/116/headers/isteamfriends.h b/res/steamworks/116/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/116/headers/isteamfriends.h rename to res/steamworks/116/headers/steam/isteamfriends.h diff --git a/res/steamworks/116/headers/isteamgamecoordinator.h b/res/steamworks/116/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/116/headers/isteamgamecoordinator.h rename to res/steamworks/116/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/116/headers/isteamgameserver.h b/res/steamworks/116/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/116/headers/isteamgameserver.h rename to res/steamworks/116/headers/steam/isteamgameserver.h diff --git a/res/steamworks/116/headers/isteamgameserverstats.h b/res/steamworks/116/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/116/headers/isteamgameserverstats.h rename to res/steamworks/116/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/116/headers/isteamgamestats.h b/res/steamworks/116/headers/steam/isteamgamestats.h similarity index 100% rename from res/steamworks/116/headers/isteamgamestats.h rename to res/steamworks/116/headers/steam/isteamgamestats.h diff --git a/res/steamworks/116/headers/isteamhttp.h b/res/steamworks/116/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/116/headers/isteamhttp.h rename to res/steamworks/116/headers/steam/isteamhttp.h diff --git a/res/steamworks/116/headers/isteammasterserverupdater.h b/res/steamworks/116/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/116/headers/isteammasterserverupdater.h rename to res/steamworks/116/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/116/headers/isteammatchmaking.h b/res/steamworks/116/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/116/headers/isteammatchmaking.h rename to res/steamworks/116/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/116/headers/isteamnetworking.h b/res/steamworks/116/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/116/headers/isteamnetworking.h rename to res/steamworks/116/headers/steam/isteamnetworking.h diff --git a/res/steamworks/116/headers/isteamps3overlayrenderer.h b/res/steamworks/116/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/116/headers/isteamps3overlayrenderer.h rename to res/steamworks/116/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/116/headers/isteamremotestorage.h b/res/steamworks/116/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/116/headers/isteamremotestorage.h rename to res/steamworks/116/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/116/headers/isteamscreenshots.h b/res/steamworks/116/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/116/headers/isteamscreenshots.h rename to res/steamworks/116/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/116/headers/isteamuser.h b/res/steamworks/116/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/116/headers/isteamuser.h rename to res/steamworks/116/headers/steam/isteamuser.h diff --git a/res/steamworks/116/headers/isteamuserstats.h b/res/steamworks/116/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/116/headers/isteamuserstats.h rename to res/steamworks/116/headers/steam/isteamuserstats.h diff --git a/res/steamworks/116/headers/isteamutils.h b/res/steamworks/116/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/116/headers/isteamutils.h rename to res/steamworks/116/headers/steam/isteamutils.h diff --git a/res/steamworks/116/headers/matchmakingtypes.h b/res/steamworks/116/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/116/headers/matchmakingtypes.h rename to res/steamworks/116/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/116/headers/steam_api.h b/res/steamworks/116/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/116/headers/steam_api.h rename to res/steamworks/116/headers/steam/steam_api.h diff --git a/res/steamworks/116/headers/steam_gameserver.h b/res/steamworks/116/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/116/headers/steam_gameserver.h rename to res/steamworks/116/headers/steam/steam_gameserver.h diff --git a/res/steamworks/116/headers/steamclientpublic.h b/res/steamworks/116/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/116/headers/steamclientpublic.h rename to res/steamworks/116/headers/steam/steamclientpublic.h diff --git a/res/steamworks/116/headers/steamencryptedappticket.h b/res/steamworks/116/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/116/headers/steamencryptedappticket.h rename to res/steamworks/116/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/116/headers/steamhttpenums.h b/res/steamworks/116/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/116/headers/steamhttpenums.h rename to res/steamworks/116/headers/steam/steamhttpenums.h diff --git a/res/steamworks/116/headers/steamps3params.h b/res/steamworks/116/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/116/headers/steamps3params.h rename to res/steamworks/116/headers/steam/steamps3params.h diff --git a/res/steamworks/116/headers/steamtypes.h b/res/steamworks/116/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/116/headers/steamtypes.h rename to res/steamworks/116/headers/steam/steamtypes.h diff --git a/res/steamworks/117/headers/isteamapps.h b/res/steamworks/117/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/117/headers/isteamapps.h rename to res/steamworks/117/headers/steam/isteamapps.h diff --git a/res/steamworks/117/headers/isteamappticket.h b/res/steamworks/117/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/117/headers/isteamappticket.h rename to res/steamworks/117/headers/steam/isteamappticket.h diff --git a/res/steamworks/117/headers/isteamclient.h b/res/steamworks/117/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/117/headers/isteamclient.h rename to res/steamworks/117/headers/steam/isteamclient.h diff --git a/res/steamworks/117/headers/isteamfriends.h b/res/steamworks/117/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/117/headers/isteamfriends.h rename to res/steamworks/117/headers/steam/isteamfriends.h diff --git a/res/steamworks/117/headers/isteamgamecoordinator.h b/res/steamworks/117/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/117/headers/isteamgamecoordinator.h rename to res/steamworks/117/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/117/headers/isteamgameserver.h b/res/steamworks/117/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/117/headers/isteamgameserver.h rename to res/steamworks/117/headers/steam/isteamgameserver.h diff --git a/res/steamworks/117/headers/isteamgameserverstats.h b/res/steamworks/117/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/117/headers/isteamgameserverstats.h rename to res/steamworks/117/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/117/headers/isteamgamestats.h b/res/steamworks/117/headers/steam/isteamgamestats.h similarity index 100% rename from res/steamworks/117/headers/isteamgamestats.h rename to res/steamworks/117/headers/steam/isteamgamestats.h diff --git a/res/steamworks/117/headers/isteamhttp.h b/res/steamworks/117/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/117/headers/isteamhttp.h rename to res/steamworks/117/headers/steam/isteamhttp.h diff --git a/res/steamworks/117/headers/isteammasterserverupdater.h b/res/steamworks/117/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/117/headers/isteammasterserverupdater.h rename to res/steamworks/117/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/117/headers/isteammatchmaking.h b/res/steamworks/117/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/117/headers/isteammatchmaking.h rename to res/steamworks/117/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/117/headers/isteamnetworking.h b/res/steamworks/117/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/117/headers/isteamnetworking.h rename to res/steamworks/117/headers/steam/isteamnetworking.h diff --git a/res/steamworks/117/headers/isteamps3overlayrenderer.h b/res/steamworks/117/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/117/headers/isteamps3overlayrenderer.h rename to res/steamworks/117/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/117/headers/isteamremotestorage.h b/res/steamworks/117/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/117/headers/isteamremotestorage.h rename to res/steamworks/117/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/117/headers/isteamscreenshots.h b/res/steamworks/117/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/117/headers/isteamscreenshots.h rename to res/steamworks/117/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/117/headers/isteamuser.h b/res/steamworks/117/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/117/headers/isteamuser.h rename to res/steamworks/117/headers/steam/isteamuser.h diff --git a/res/steamworks/117/headers/isteamuserstats.h b/res/steamworks/117/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/117/headers/isteamuserstats.h rename to res/steamworks/117/headers/steam/isteamuserstats.h diff --git a/res/steamworks/117/headers/isteamutils.h b/res/steamworks/117/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/117/headers/isteamutils.h rename to res/steamworks/117/headers/steam/isteamutils.h diff --git a/res/steamworks/117/headers/matchmakingtypes.h b/res/steamworks/117/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/117/headers/matchmakingtypes.h rename to res/steamworks/117/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/117/headers/steam_api.h b/res/steamworks/117/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/117/headers/steam_api.h rename to res/steamworks/117/headers/steam/steam_api.h diff --git a/res/steamworks/117/headers/steam_gameserver.h b/res/steamworks/117/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/117/headers/steam_gameserver.h rename to res/steamworks/117/headers/steam/steam_gameserver.h diff --git a/res/steamworks/117/headers/steamclientpublic.h b/res/steamworks/117/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/117/headers/steamclientpublic.h rename to res/steamworks/117/headers/steam/steamclientpublic.h diff --git a/res/steamworks/117/headers/steamencryptedappticket.h b/res/steamworks/117/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/117/headers/steamencryptedappticket.h rename to res/steamworks/117/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/117/headers/steamhttpenums.h b/res/steamworks/117/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/117/headers/steamhttpenums.h rename to res/steamworks/117/headers/steam/steamhttpenums.h diff --git a/res/steamworks/117/headers/steamps3params.h b/res/steamworks/117/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/117/headers/steamps3params.h rename to res/steamworks/117/headers/steam/steamps3params.h diff --git a/res/steamworks/117/headers/steamtypes.h b/res/steamworks/117/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/117/headers/steamtypes.h rename to res/steamworks/117/headers/steam/steamtypes.h diff --git a/res/steamworks/118/headers/isteamapps.h b/res/steamworks/118/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/118/headers/isteamapps.h rename to res/steamworks/118/headers/steam/isteamapps.h diff --git a/res/steamworks/118/headers/isteamappticket.h b/res/steamworks/118/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/118/headers/isteamappticket.h rename to res/steamworks/118/headers/steam/isteamappticket.h diff --git a/res/steamworks/118/headers/isteamclient.h b/res/steamworks/118/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/118/headers/isteamclient.h rename to res/steamworks/118/headers/steam/isteamclient.h diff --git a/res/steamworks/118/headers/isteamfriends.h b/res/steamworks/118/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/118/headers/isteamfriends.h rename to res/steamworks/118/headers/steam/isteamfriends.h diff --git a/res/steamworks/118/headers/isteamgamecoordinator.h b/res/steamworks/118/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/118/headers/isteamgamecoordinator.h rename to res/steamworks/118/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/118/headers/isteamgameserver.h b/res/steamworks/118/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/118/headers/isteamgameserver.h rename to res/steamworks/118/headers/steam/isteamgameserver.h diff --git a/res/steamworks/118/headers/isteamgameserverstats.h b/res/steamworks/118/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/118/headers/isteamgameserverstats.h rename to res/steamworks/118/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/118/headers/isteamhttp.h b/res/steamworks/118/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/118/headers/isteamhttp.h rename to res/steamworks/118/headers/steam/isteamhttp.h diff --git a/res/steamworks/118/headers/isteammasterserverupdater.h b/res/steamworks/118/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/118/headers/isteammasterserverupdater.h rename to res/steamworks/118/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/118/headers/isteammatchmaking.h b/res/steamworks/118/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/118/headers/isteammatchmaking.h rename to res/steamworks/118/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/118/headers/isteamnetworking.h b/res/steamworks/118/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/118/headers/isteamnetworking.h rename to res/steamworks/118/headers/steam/isteamnetworking.h diff --git a/res/steamworks/118/headers/isteamps3overlayrenderer.h b/res/steamworks/118/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/118/headers/isteamps3overlayrenderer.h rename to res/steamworks/118/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/118/headers/isteamremotestorage.h b/res/steamworks/118/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/118/headers/isteamremotestorage.h rename to res/steamworks/118/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/118/headers/isteamscreenshots.h b/res/steamworks/118/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/118/headers/isteamscreenshots.h rename to res/steamworks/118/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/118/headers/isteamuser.h b/res/steamworks/118/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/118/headers/isteamuser.h rename to res/steamworks/118/headers/steam/isteamuser.h diff --git a/res/steamworks/118/headers/isteamuserstats.h b/res/steamworks/118/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/118/headers/isteamuserstats.h rename to res/steamworks/118/headers/steam/isteamuserstats.h diff --git a/res/steamworks/118/headers/isteamutils.h b/res/steamworks/118/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/118/headers/isteamutils.h rename to res/steamworks/118/headers/steam/isteamutils.h diff --git a/res/steamworks/118/headers/matchmakingtypes.h b/res/steamworks/118/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/118/headers/matchmakingtypes.h rename to res/steamworks/118/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/118/headers/steam_api.h b/res/steamworks/118/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/118/headers/steam_api.h rename to res/steamworks/118/headers/steam/steam_api.h diff --git a/res/steamworks/118/headers/steam_gameserver.h b/res/steamworks/118/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/118/headers/steam_gameserver.h rename to res/steamworks/118/headers/steam/steam_gameserver.h diff --git a/res/steamworks/118/headers/steamclientpublic.h b/res/steamworks/118/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/118/headers/steamclientpublic.h rename to res/steamworks/118/headers/steam/steamclientpublic.h diff --git a/res/steamworks/118/headers/steamencryptedappticket.h b/res/steamworks/118/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/118/headers/steamencryptedappticket.h rename to res/steamworks/118/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/118/headers/steamhttpenums.h b/res/steamworks/118/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/118/headers/steamhttpenums.h rename to res/steamworks/118/headers/steam/steamhttpenums.h diff --git a/res/steamworks/118/headers/steamps3params.h b/res/steamworks/118/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/118/headers/steamps3params.h rename to res/steamworks/118/headers/steam/steamps3params.h diff --git a/res/steamworks/118/headers/steamtypes.h b/res/steamworks/118/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/118/headers/steamtypes.h rename to res/steamworks/118/headers/steam/steamtypes.h diff --git a/res/steamworks/119/headers/isteamapps.h b/res/steamworks/119/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/119/headers/isteamapps.h rename to res/steamworks/119/headers/steam/isteamapps.h diff --git a/res/steamworks/119/headers/isteamappticket.h b/res/steamworks/119/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/119/headers/isteamappticket.h rename to res/steamworks/119/headers/steam/isteamappticket.h diff --git a/res/steamworks/119/headers/isteamclient.h b/res/steamworks/119/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/119/headers/isteamclient.h rename to res/steamworks/119/headers/steam/isteamclient.h diff --git a/res/steamworks/119/headers/isteamfriends.h b/res/steamworks/119/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/119/headers/isteamfriends.h rename to res/steamworks/119/headers/steam/isteamfriends.h diff --git a/res/steamworks/119/headers/isteamgamecoordinator.h b/res/steamworks/119/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/119/headers/isteamgamecoordinator.h rename to res/steamworks/119/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/119/headers/isteamgameserver.h b/res/steamworks/119/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/119/headers/isteamgameserver.h rename to res/steamworks/119/headers/steam/isteamgameserver.h diff --git a/res/steamworks/119/headers/isteamgameserverstats.h b/res/steamworks/119/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/119/headers/isteamgameserverstats.h rename to res/steamworks/119/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/119/headers/isteamhttp.h b/res/steamworks/119/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/119/headers/isteamhttp.h rename to res/steamworks/119/headers/steam/isteamhttp.h diff --git a/res/steamworks/119/headers/isteammasterserverupdater.h b/res/steamworks/119/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/119/headers/isteammasterserverupdater.h rename to res/steamworks/119/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/119/headers/isteammatchmaking.h b/res/steamworks/119/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/119/headers/isteammatchmaking.h rename to res/steamworks/119/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/119/headers/isteamnetworking.h b/res/steamworks/119/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/119/headers/isteamnetworking.h rename to res/steamworks/119/headers/steam/isteamnetworking.h diff --git a/res/steamworks/119/headers/isteamps3overlayrenderer.h b/res/steamworks/119/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/119/headers/isteamps3overlayrenderer.h rename to res/steamworks/119/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/119/headers/isteamremotestorage.h b/res/steamworks/119/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/119/headers/isteamremotestorage.h rename to res/steamworks/119/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/119/headers/isteamscreenshots.h b/res/steamworks/119/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/119/headers/isteamscreenshots.h rename to res/steamworks/119/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/119/headers/isteamuser.h b/res/steamworks/119/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/119/headers/isteamuser.h rename to res/steamworks/119/headers/steam/isteamuser.h diff --git a/res/steamworks/119/headers/isteamuserstats.h b/res/steamworks/119/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/119/headers/isteamuserstats.h rename to res/steamworks/119/headers/steam/isteamuserstats.h diff --git a/res/steamworks/119/headers/isteamutils.h b/res/steamworks/119/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/119/headers/isteamutils.h rename to res/steamworks/119/headers/steam/isteamutils.h diff --git a/res/steamworks/119/headers/matchmakingtypes.h b/res/steamworks/119/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/119/headers/matchmakingtypes.h rename to res/steamworks/119/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/119/headers/steam_api.h b/res/steamworks/119/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/119/headers/steam_api.h rename to res/steamworks/119/headers/steam/steam_api.h diff --git a/res/steamworks/119/headers/steam_gameserver.h b/res/steamworks/119/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/119/headers/steam_gameserver.h rename to res/steamworks/119/headers/steam/steam_gameserver.h diff --git a/res/steamworks/119/headers/steamclientpublic.h b/res/steamworks/119/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/119/headers/steamclientpublic.h rename to res/steamworks/119/headers/steam/steamclientpublic.h diff --git a/res/steamworks/119/headers/steamencryptedappticket.h b/res/steamworks/119/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/119/headers/steamencryptedappticket.h rename to res/steamworks/119/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/119/headers/steamhttpenums.h b/res/steamworks/119/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/119/headers/steamhttpenums.h rename to res/steamworks/119/headers/steam/steamhttpenums.h diff --git a/res/steamworks/119/headers/steamps3params.h b/res/steamworks/119/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/119/headers/steamps3params.h rename to res/steamworks/119/headers/steam/steamps3params.h diff --git a/res/steamworks/119/headers/steamtypes.h b/res/steamworks/119/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/119/headers/steamtypes.h rename to res/steamworks/119/headers/steam/steamtypes.h diff --git a/res/steamworks/120/headers/isteamapps.h b/res/steamworks/120/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/120/headers/isteamapps.h rename to res/steamworks/120/headers/steam/isteamapps.h diff --git a/res/steamworks/120/headers/isteamappticket.h b/res/steamworks/120/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/120/headers/isteamappticket.h rename to res/steamworks/120/headers/steam/isteamappticket.h diff --git a/res/steamworks/120/headers/isteamclient.h b/res/steamworks/120/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/120/headers/isteamclient.h rename to res/steamworks/120/headers/steam/isteamclient.h diff --git a/res/steamworks/120/headers/isteamfriends.h b/res/steamworks/120/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/120/headers/isteamfriends.h rename to res/steamworks/120/headers/steam/isteamfriends.h diff --git a/res/steamworks/120/headers/isteamgamecoordinator.h b/res/steamworks/120/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/120/headers/isteamgamecoordinator.h rename to res/steamworks/120/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/120/headers/isteamgameserver.h b/res/steamworks/120/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/120/headers/isteamgameserver.h rename to res/steamworks/120/headers/steam/isteamgameserver.h diff --git a/res/steamworks/120/headers/isteamgameserverstats.h b/res/steamworks/120/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/120/headers/isteamgameserverstats.h rename to res/steamworks/120/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/120/headers/isteamhttp.h b/res/steamworks/120/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/120/headers/isteamhttp.h rename to res/steamworks/120/headers/steam/isteamhttp.h diff --git a/res/steamworks/120/headers/isteammasterserverupdater.h b/res/steamworks/120/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/120/headers/isteammasterserverupdater.h rename to res/steamworks/120/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/120/headers/isteammatchmaking.h b/res/steamworks/120/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/120/headers/isteammatchmaking.h rename to res/steamworks/120/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/120/headers/isteamnetworking.h b/res/steamworks/120/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/120/headers/isteamnetworking.h rename to res/steamworks/120/headers/steam/isteamnetworking.h diff --git a/res/steamworks/120/headers/isteamps3overlayrenderer.h b/res/steamworks/120/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/120/headers/isteamps3overlayrenderer.h rename to res/steamworks/120/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/120/headers/isteamremotestorage.h b/res/steamworks/120/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/120/headers/isteamremotestorage.h rename to res/steamworks/120/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/120/headers/isteamscreenshots.h b/res/steamworks/120/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/120/headers/isteamscreenshots.h rename to res/steamworks/120/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/120/headers/isteamuser.h b/res/steamworks/120/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/120/headers/isteamuser.h rename to res/steamworks/120/headers/steam/isteamuser.h diff --git a/res/steamworks/120/headers/isteamuserstats.h b/res/steamworks/120/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/120/headers/isteamuserstats.h rename to res/steamworks/120/headers/steam/isteamuserstats.h diff --git a/res/steamworks/120/headers/isteamutils.h b/res/steamworks/120/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/120/headers/isteamutils.h rename to res/steamworks/120/headers/steam/isteamutils.h diff --git a/res/steamworks/120/headers/matchmakingtypes.h b/res/steamworks/120/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/120/headers/matchmakingtypes.h rename to res/steamworks/120/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/120/headers/steam_api.h b/res/steamworks/120/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/120/headers/steam_api.h rename to res/steamworks/120/headers/steam/steam_api.h diff --git a/res/steamworks/120/headers/steam_gameserver.h b/res/steamworks/120/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/120/headers/steam_gameserver.h rename to res/steamworks/120/headers/steam/steam_gameserver.h diff --git a/res/steamworks/120/headers/steamclientpublic.h b/res/steamworks/120/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/120/headers/steamclientpublic.h rename to res/steamworks/120/headers/steam/steamclientpublic.h diff --git a/res/steamworks/120/headers/steamencryptedappticket.h b/res/steamworks/120/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/120/headers/steamencryptedappticket.h rename to res/steamworks/120/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/120/headers/steamhttpenums.h b/res/steamworks/120/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/120/headers/steamhttpenums.h rename to res/steamworks/120/headers/steam/steamhttpenums.h diff --git a/res/steamworks/120/headers/steamps3params.h b/res/steamworks/120/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/120/headers/steamps3params.h rename to res/steamworks/120/headers/steam/steamps3params.h diff --git a/res/steamworks/120/headers/steamtypes.h b/res/steamworks/120/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/120/headers/steamtypes.h rename to res/steamworks/120/headers/steam/steamtypes.h diff --git a/res/steamworks/121/headers/isteamapps.h b/res/steamworks/121/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/121/headers/isteamapps.h rename to res/steamworks/121/headers/steam/isteamapps.h diff --git a/res/steamworks/121/headers/isteamappticket.h b/res/steamworks/121/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/121/headers/isteamappticket.h rename to res/steamworks/121/headers/steam/isteamappticket.h diff --git a/res/steamworks/121/headers/isteamclient.h b/res/steamworks/121/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/121/headers/isteamclient.h rename to res/steamworks/121/headers/steam/isteamclient.h diff --git a/res/steamworks/121/headers/isteamfriends.h b/res/steamworks/121/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/121/headers/isteamfriends.h rename to res/steamworks/121/headers/steam/isteamfriends.h diff --git a/res/steamworks/121/headers/isteamgamecoordinator.h b/res/steamworks/121/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/121/headers/isteamgamecoordinator.h rename to res/steamworks/121/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/121/headers/isteamgameserver.h b/res/steamworks/121/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/121/headers/isteamgameserver.h rename to res/steamworks/121/headers/steam/isteamgameserver.h diff --git a/res/steamworks/121/headers/isteamgameserverstats.h b/res/steamworks/121/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/121/headers/isteamgameserverstats.h rename to res/steamworks/121/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/121/headers/isteamhttp.h b/res/steamworks/121/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/121/headers/isteamhttp.h rename to res/steamworks/121/headers/steam/isteamhttp.h diff --git a/res/steamworks/121/headers/isteammasterserverupdater.h b/res/steamworks/121/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/121/headers/isteammasterserverupdater.h rename to res/steamworks/121/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/121/headers/isteammatchmaking.h b/res/steamworks/121/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/121/headers/isteammatchmaking.h rename to res/steamworks/121/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/121/headers/isteamnetworking.h b/res/steamworks/121/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/121/headers/isteamnetworking.h rename to res/steamworks/121/headers/steam/isteamnetworking.h diff --git a/res/steamworks/121/headers/isteamps3overlayrenderer.h b/res/steamworks/121/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/121/headers/isteamps3overlayrenderer.h rename to res/steamworks/121/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/121/headers/isteamremotestorage.h b/res/steamworks/121/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/121/headers/isteamremotestorage.h rename to res/steamworks/121/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/121/headers/isteamscreenshots.h b/res/steamworks/121/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/121/headers/isteamscreenshots.h rename to res/steamworks/121/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/121/headers/isteamuser.h b/res/steamworks/121/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/121/headers/isteamuser.h rename to res/steamworks/121/headers/steam/isteamuser.h diff --git a/res/steamworks/121/headers/isteamuserstats.h b/res/steamworks/121/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/121/headers/isteamuserstats.h rename to res/steamworks/121/headers/steam/isteamuserstats.h diff --git a/res/steamworks/121/headers/isteamutils.h b/res/steamworks/121/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/121/headers/isteamutils.h rename to res/steamworks/121/headers/steam/isteamutils.h diff --git a/res/steamworks/121/headers/matchmakingtypes.h b/res/steamworks/121/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/121/headers/matchmakingtypes.h rename to res/steamworks/121/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/121/headers/steam_api.h b/res/steamworks/121/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/121/headers/steam_api.h rename to res/steamworks/121/headers/steam/steam_api.h diff --git a/res/steamworks/121/headers/steam_gameserver.h b/res/steamworks/121/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/121/headers/steam_gameserver.h rename to res/steamworks/121/headers/steam/steam_gameserver.h diff --git a/res/steamworks/121/headers/steamclientpublic.h b/res/steamworks/121/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/121/headers/steamclientpublic.h rename to res/steamworks/121/headers/steam/steamclientpublic.h diff --git a/res/steamworks/121/headers/steamencryptedappticket.h b/res/steamworks/121/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/121/headers/steamencryptedappticket.h rename to res/steamworks/121/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/121/headers/steamhttpenums.h b/res/steamworks/121/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/121/headers/steamhttpenums.h rename to res/steamworks/121/headers/steam/steamhttpenums.h diff --git a/res/steamworks/121/headers/steamps3params.h b/res/steamworks/121/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/121/headers/steamps3params.h rename to res/steamworks/121/headers/steam/steamps3params.h diff --git a/res/steamworks/121/headers/steamtypes.h b/res/steamworks/121/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/121/headers/steamtypes.h rename to res/steamworks/121/headers/steam/steamtypes.h diff --git a/res/steamworks/122/headers/isteamapps.h b/res/steamworks/122/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/122/headers/isteamapps.h rename to res/steamworks/122/headers/steam/isteamapps.h diff --git a/res/steamworks/122/headers/isteamappticket.h b/res/steamworks/122/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/122/headers/isteamappticket.h rename to res/steamworks/122/headers/steam/isteamappticket.h diff --git a/res/steamworks/122/headers/isteamclient.h b/res/steamworks/122/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/122/headers/isteamclient.h rename to res/steamworks/122/headers/steam/isteamclient.h diff --git a/res/steamworks/122/headers/isteamfriends.h b/res/steamworks/122/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/122/headers/isteamfriends.h rename to res/steamworks/122/headers/steam/isteamfriends.h diff --git a/res/steamworks/122/headers/isteamgamecoordinator.h b/res/steamworks/122/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/122/headers/isteamgamecoordinator.h rename to res/steamworks/122/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/122/headers/isteamgameserver.h b/res/steamworks/122/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/122/headers/isteamgameserver.h rename to res/steamworks/122/headers/steam/isteamgameserver.h diff --git a/res/steamworks/122/headers/isteamgameserverstats.h b/res/steamworks/122/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/122/headers/isteamgameserverstats.h rename to res/steamworks/122/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/122/headers/isteamhttp.h b/res/steamworks/122/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/122/headers/isteamhttp.h rename to res/steamworks/122/headers/steam/isteamhttp.h diff --git a/res/steamworks/122/headers/isteammasterserverupdater.h b/res/steamworks/122/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/122/headers/isteammasterserverupdater.h rename to res/steamworks/122/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/122/headers/isteammatchmaking.h b/res/steamworks/122/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/122/headers/isteammatchmaking.h rename to res/steamworks/122/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/122/headers/isteamnetworking.h b/res/steamworks/122/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/122/headers/isteamnetworking.h rename to res/steamworks/122/headers/steam/isteamnetworking.h diff --git a/res/steamworks/122/headers/isteamps3overlayrenderer.h b/res/steamworks/122/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/122/headers/isteamps3overlayrenderer.h rename to res/steamworks/122/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/122/headers/isteamremotestorage.h b/res/steamworks/122/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/122/headers/isteamremotestorage.h rename to res/steamworks/122/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/122/headers/isteamscreenshots.h b/res/steamworks/122/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/122/headers/isteamscreenshots.h rename to res/steamworks/122/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/122/headers/isteamuser.h b/res/steamworks/122/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/122/headers/isteamuser.h rename to res/steamworks/122/headers/steam/isteamuser.h diff --git a/res/steamworks/122/headers/isteamuserstats.h b/res/steamworks/122/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/122/headers/isteamuserstats.h rename to res/steamworks/122/headers/steam/isteamuserstats.h diff --git a/res/steamworks/122/headers/isteamutils.h b/res/steamworks/122/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/122/headers/isteamutils.h rename to res/steamworks/122/headers/steam/isteamutils.h diff --git a/res/steamworks/122/headers/matchmakingtypes.h b/res/steamworks/122/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/122/headers/matchmakingtypes.h rename to res/steamworks/122/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/122/headers/steam_api.h b/res/steamworks/122/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/122/headers/steam_api.h rename to res/steamworks/122/headers/steam/steam_api.h diff --git a/res/steamworks/122/headers/steam_gameserver.h b/res/steamworks/122/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/122/headers/steam_gameserver.h rename to res/steamworks/122/headers/steam/steam_gameserver.h diff --git a/res/steamworks/122/headers/steamclientpublic.h b/res/steamworks/122/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/122/headers/steamclientpublic.h rename to res/steamworks/122/headers/steam/steamclientpublic.h diff --git a/res/steamworks/122/headers/steamencryptedappticket.h b/res/steamworks/122/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/122/headers/steamencryptedappticket.h rename to res/steamworks/122/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/122/headers/steamhttpenums.h b/res/steamworks/122/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/122/headers/steamhttpenums.h rename to res/steamworks/122/headers/steam/steamhttpenums.h diff --git a/res/steamworks/122/headers/steamps3params.h b/res/steamworks/122/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/122/headers/steamps3params.h rename to res/steamworks/122/headers/steam/steamps3params.h diff --git a/res/steamworks/122/headers/steamtypes.h b/res/steamworks/122/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/122/headers/steamtypes.h rename to res/steamworks/122/headers/steam/steamtypes.h diff --git a/res/steamworks/123a/headers/isteamapps.h b/res/steamworks/123a/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/123a/headers/isteamapps.h rename to res/steamworks/123a/headers/steam/isteamapps.h diff --git a/res/steamworks/123a/headers/isteamappticket.h b/res/steamworks/123a/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/123a/headers/isteamappticket.h rename to res/steamworks/123a/headers/steam/isteamappticket.h diff --git a/res/steamworks/123a/headers/isteamclient.h b/res/steamworks/123a/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/123a/headers/isteamclient.h rename to res/steamworks/123a/headers/steam/isteamclient.h diff --git a/res/steamworks/123a/headers/isteamfriends.h b/res/steamworks/123a/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/123a/headers/isteamfriends.h rename to res/steamworks/123a/headers/steam/isteamfriends.h diff --git a/res/steamworks/123a/headers/isteamgamecoordinator.h b/res/steamworks/123a/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/123a/headers/isteamgamecoordinator.h rename to res/steamworks/123a/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/123a/headers/isteamgameserver.h b/res/steamworks/123a/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/123a/headers/isteamgameserver.h rename to res/steamworks/123a/headers/steam/isteamgameserver.h diff --git a/res/steamworks/123a/headers/isteamgameserverstats.h b/res/steamworks/123a/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/123a/headers/isteamgameserverstats.h rename to res/steamworks/123a/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/123a/headers/isteamhttp.h b/res/steamworks/123a/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/123a/headers/isteamhttp.h rename to res/steamworks/123a/headers/steam/isteamhttp.h diff --git a/res/steamworks/123a/headers/isteammasterserverupdater.h b/res/steamworks/123a/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/123a/headers/isteammasterserverupdater.h rename to res/steamworks/123a/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/123a/headers/isteammatchmaking.h b/res/steamworks/123a/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/123a/headers/isteammatchmaking.h rename to res/steamworks/123a/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/123a/headers/isteamnetworking.h b/res/steamworks/123a/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/123a/headers/isteamnetworking.h rename to res/steamworks/123a/headers/steam/isteamnetworking.h diff --git a/res/steamworks/123a/headers/isteamps3overlayrenderer.h b/res/steamworks/123a/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/123a/headers/isteamps3overlayrenderer.h rename to res/steamworks/123a/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/123a/headers/isteamremotestorage.h b/res/steamworks/123a/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/123a/headers/isteamremotestorage.h rename to res/steamworks/123a/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/123a/headers/isteamscreenshots.h b/res/steamworks/123a/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/123a/headers/isteamscreenshots.h rename to res/steamworks/123a/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/123a/headers/isteamunifiedmessages.h b/res/steamworks/123a/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/123a/headers/isteamunifiedmessages.h rename to res/steamworks/123a/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/123a/headers/isteamuser.h b/res/steamworks/123a/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/123a/headers/isteamuser.h rename to res/steamworks/123a/headers/steam/isteamuser.h diff --git a/res/steamworks/123a/headers/isteamuserstats.h b/res/steamworks/123a/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/123a/headers/isteamuserstats.h rename to res/steamworks/123a/headers/steam/isteamuserstats.h diff --git a/res/steamworks/123a/headers/isteamutils.h b/res/steamworks/123a/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/123a/headers/isteamutils.h rename to res/steamworks/123a/headers/steam/isteamutils.h diff --git a/res/steamworks/123a/headers/matchmakingtypes.h b/res/steamworks/123a/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/123a/headers/matchmakingtypes.h rename to res/steamworks/123a/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/123a/headers/steam_api.h b/res/steamworks/123a/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/123a/headers/steam_api.h rename to res/steamworks/123a/headers/steam/steam_api.h diff --git a/res/steamworks/123a/headers/steam_gameserver.h b/res/steamworks/123a/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/123a/headers/steam_gameserver.h rename to res/steamworks/123a/headers/steam/steam_gameserver.h diff --git a/res/steamworks/123a/headers/steamclientpublic.h b/res/steamworks/123a/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/123a/headers/steamclientpublic.h rename to res/steamworks/123a/headers/steam/steamclientpublic.h diff --git a/res/steamworks/123a/headers/steamencryptedappticket.h b/res/steamworks/123a/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/123a/headers/steamencryptedappticket.h rename to res/steamworks/123a/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/123a/headers/steamhttpenums.h b/res/steamworks/123a/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/123a/headers/steamhttpenums.h rename to res/steamworks/123a/headers/steam/steamhttpenums.h diff --git a/res/steamworks/123a/headers/steamps3params.h b/res/steamworks/123a/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/123a/headers/steamps3params.h rename to res/steamworks/123a/headers/steam/steamps3params.h diff --git a/res/steamworks/123a/headers/steamtypes.h b/res/steamworks/123a/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/123a/headers/steamtypes.h rename to res/steamworks/123a/headers/steam/steamtypes.h diff --git a/res/steamworks/125/headers/isteamapps.h b/res/steamworks/125/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/125/headers/isteamapps.h rename to res/steamworks/125/headers/steam/isteamapps.h diff --git a/res/steamworks/125/headers/isteamappticket.h b/res/steamworks/125/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/125/headers/isteamappticket.h rename to res/steamworks/125/headers/steam/isteamappticket.h diff --git a/res/steamworks/125/headers/isteamclient.h b/res/steamworks/125/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/125/headers/isteamclient.h rename to res/steamworks/125/headers/steam/isteamclient.h diff --git a/res/steamworks/125/headers/isteamcontroller.h b/res/steamworks/125/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/125/headers/isteamcontroller.h rename to res/steamworks/125/headers/steam/isteamcontroller.h diff --git a/res/steamworks/125/headers/isteamfriends.h b/res/steamworks/125/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/125/headers/isteamfriends.h rename to res/steamworks/125/headers/steam/isteamfriends.h diff --git a/res/steamworks/125/headers/isteamgamecoordinator.h b/res/steamworks/125/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/125/headers/isteamgamecoordinator.h rename to res/steamworks/125/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/125/headers/isteamgameserver.h b/res/steamworks/125/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/125/headers/isteamgameserver.h rename to res/steamworks/125/headers/steam/isteamgameserver.h diff --git a/res/steamworks/125/headers/isteamgameserverstats.h b/res/steamworks/125/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/125/headers/isteamgameserverstats.h rename to res/steamworks/125/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/125/headers/isteamhttp.h b/res/steamworks/125/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/125/headers/isteamhttp.h rename to res/steamworks/125/headers/steam/isteamhttp.h diff --git a/res/steamworks/125/headers/isteammasterserverupdater.h b/res/steamworks/125/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/125/headers/isteammasterserverupdater.h rename to res/steamworks/125/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/125/headers/isteammatchmaking.h b/res/steamworks/125/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/125/headers/isteammatchmaking.h rename to res/steamworks/125/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/125/headers/isteamnetworking.h b/res/steamworks/125/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/125/headers/isteamnetworking.h rename to res/steamworks/125/headers/steam/isteamnetworking.h diff --git a/res/steamworks/125/headers/isteamps3overlayrenderer.h b/res/steamworks/125/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/125/headers/isteamps3overlayrenderer.h rename to res/steamworks/125/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/125/headers/isteamremotestorage.h b/res/steamworks/125/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/125/headers/isteamremotestorage.h rename to res/steamworks/125/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/125/headers/isteamscreenshots.h b/res/steamworks/125/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/125/headers/isteamscreenshots.h rename to res/steamworks/125/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/125/headers/isteamunifiedmessages.h b/res/steamworks/125/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/125/headers/isteamunifiedmessages.h rename to res/steamworks/125/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/125/headers/isteamuser.h b/res/steamworks/125/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/125/headers/isteamuser.h rename to res/steamworks/125/headers/steam/isteamuser.h diff --git a/res/steamworks/125/headers/isteamuserstats.h b/res/steamworks/125/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/125/headers/isteamuserstats.h rename to res/steamworks/125/headers/steam/isteamuserstats.h diff --git a/res/steamworks/125/headers/isteamutils.h b/res/steamworks/125/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/125/headers/isteamutils.h rename to res/steamworks/125/headers/steam/isteamutils.h diff --git a/res/steamworks/125/headers/matchmakingtypes.h b/res/steamworks/125/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/125/headers/matchmakingtypes.h rename to res/steamworks/125/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/125/headers/steam_api.h b/res/steamworks/125/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/125/headers/steam_api.h rename to res/steamworks/125/headers/steam/steam_api.h diff --git a/res/steamworks/125/headers/steam_gameserver.h b/res/steamworks/125/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/125/headers/steam_gameserver.h rename to res/steamworks/125/headers/steam/steam_gameserver.h diff --git a/res/steamworks/125/headers/steamclientpublic.h b/res/steamworks/125/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/125/headers/steamclientpublic.h rename to res/steamworks/125/headers/steam/steamclientpublic.h diff --git a/res/steamworks/125/headers/steamencryptedappticket.h b/res/steamworks/125/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/125/headers/steamencryptedappticket.h rename to res/steamworks/125/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/125/headers/steamhttpenums.h b/res/steamworks/125/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/125/headers/steamhttpenums.h rename to res/steamworks/125/headers/steam/steamhttpenums.h diff --git a/res/steamworks/125/headers/steamps3params.h b/res/steamworks/125/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/125/headers/steamps3params.h rename to res/steamworks/125/headers/steam/steamps3params.h diff --git a/res/steamworks/125/headers/steamtypes.h b/res/steamworks/125/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/125/headers/steamtypes.h rename to res/steamworks/125/headers/steam/steamtypes.h diff --git a/res/steamworks/125/headers/steamuniverse.h b/res/steamworks/125/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/125/headers/steamuniverse.h rename to res/steamworks/125/headers/steam/steamuniverse.h diff --git a/res/steamworks/126a/headers/isteamapps.h b/res/steamworks/126a/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/126a/headers/isteamapps.h rename to res/steamworks/126a/headers/steam/isteamapps.h diff --git a/res/steamworks/126a/headers/isteamappticket.h b/res/steamworks/126a/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/126a/headers/isteamappticket.h rename to res/steamworks/126a/headers/steam/isteamappticket.h diff --git a/res/steamworks/126a/headers/isteamclient.h b/res/steamworks/126a/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/126a/headers/isteamclient.h rename to res/steamworks/126a/headers/steam/isteamclient.h diff --git a/res/steamworks/126a/headers/isteamcontroller.h b/res/steamworks/126a/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/126a/headers/isteamcontroller.h rename to res/steamworks/126a/headers/steam/isteamcontroller.h diff --git a/res/steamworks/126a/headers/isteamfriends.h b/res/steamworks/126a/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/126a/headers/isteamfriends.h rename to res/steamworks/126a/headers/steam/isteamfriends.h diff --git a/res/steamworks/126a/headers/isteamgamecoordinator.h b/res/steamworks/126a/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/126a/headers/isteamgamecoordinator.h rename to res/steamworks/126a/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/126a/headers/isteamgameserver.h b/res/steamworks/126a/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/126a/headers/isteamgameserver.h rename to res/steamworks/126a/headers/steam/isteamgameserver.h diff --git a/res/steamworks/126a/headers/isteamgameserverstats.h b/res/steamworks/126a/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/126a/headers/isteamgameserverstats.h rename to res/steamworks/126a/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/126a/headers/isteamhttp.h b/res/steamworks/126a/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/126a/headers/isteamhttp.h rename to res/steamworks/126a/headers/steam/isteamhttp.h diff --git a/res/steamworks/126a/headers/isteammasterserverupdater.h b/res/steamworks/126a/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/126a/headers/isteammasterserverupdater.h rename to res/steamworks/126a/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/126a/headers/isteammatchmaking.h b/res/steamworks/126a/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/126a/headers/isteammatchmaking.h rename to res/steamworks/126a/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/126a/headers/isteamnetworking.h b/res/steamworks/126a/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/126a/headers/isteamnetworking.h rename to res/steamworks/126a/headers/steam/isteamnetworking.h diff --git a/res/steamworks/126a/headers/isteamps3overlayrenderer.h b/res/steamworks/126a/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/126a/headers/isteamps3overlayrenderer.h rename to res/steamworks/126a/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/126a/headers/isteamremotestorage.h b/res/steamworks/126a/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/126a/headers/isteamremotestorage.h rename to res/steamworks/126a/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/126a/headers/isteamscreenshots.h b/res/steamworks/126a/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/126a/headers/isteamscreenshots.h rename to res/steamworks/126a/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/126a/headers/isteamugc.h b/res/steamworks/126a/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/126a/headers/isteamugc.h rename to res/steamworks/126a/headers/steam/isteamugc.h diff --git a/res/steamworks/126a/headers/isteamunifiedmessages.h b/res/steamworks/126a/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/126a/headers/isteamunifiedmessages.h rename to res/steamworks/126a/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/126a/headers/isteamuser.h b/res/steamworks/126a/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/126a/headers/isteamuser.h rename to res/steamworks/126a/headers/steam/isteamuser.h diff --git a/res/steamworks/126a/headers/isteamuserstats.h b/res/steamworks/126a/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/126a/headers/isteamuserstats.h rename to res/steamworks/126a/headers/steam/isteamuserstats.h diff --git a/res/steamworks/126a/headers/isteamutils.h b/res/steamworks/126a/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/126a/headers/isteamutils.h rename to res/steamworks/126a/headers/steam/isteamutils.h diff --git a/res/steamworks/126a/headers/matchmakingtypes.h b/res/steamworks/126a/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/126a/headers/matchmakingtypes.h rename to res/steamworks/126a/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/126a/headers/steam_api.h b/res/steamworks/126a/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/126a/headers/steam_api.h rename to res/steamworks/126a/headers/steam/steam_api.h diff --git a/res/steamworks/126a/headers/steam_gameserver.h b/res/steamworks/126a/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/126a/headers/steam_gameserver.h rename to res/steamworks/126a/headers/steam/steam_gameserver.h diff --git a/res/steamworks/126a/headers/steamclientpublic.h b/res/steamworks/126a/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/126a/headers/steamclientpublic.h rename to res/steamworks/126a/headers/steam/steamclientpublic.h diff --git a/res/steamworks/126a/headers/steamencryptedappticket.h b/res/steamworks/126a/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/126a/headers/steamencryptedappticket.h rename to res/steamworks/126a/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/126a/headers/steamhttpenums.h b/res/steamworks/126a/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/126a/headers/steamhttpenums.h rename to res/steamworks/126a/headers/steam/steamhttpenums.h diff --git a/res/steamworks/126a/headers/steamps3params.h b/res/steamworks/126a/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/126a/headers/steamps3params.h rename to res/steamworks/126a/headers/steam/steamps3params.h diff --git a/res/steamworks/126a/headers/steamtypes.h b/res/steamworks/126a/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/126a/headers/steamtypes.h rename to res/steamworks/126a/headers/steam/steamtypes.h diff --git a/res/steamworks/126a/headers/steamuniverse.h b/res/steamworks/126a/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/126a/headers/steamuniverse.h rename to res/steamworks/126a/headers/steam/steamuniverse.h diff --git a/res/steamworks/127/headers/isteamapps.h b/res/steamworks/127/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/127/headers/isteamapps.h rename to res/steamworks/127/headers/steam/isteamapps.h diff --git a/res/steamworks/127/headers/isteamappticket.h b/res/steamworks/127/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/127/headers/isteamappticket.h rename to res/steamworks/127/headers/steam/isteamappticket.h diff --git a/res/steamworks/127/headers/isteamclient.h b/res/steamworks/127/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/127/headers/isteamclient.h rename to res/steamworks/127/headers/steam/isteamclient.h diff --git a/res/steamworks/127/headers/isteamcontroller.h b/res/steamworks/127/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/127/headers/isteamcontroller.h rename to res/steamworks/127/headers/steam/isteamcontroller.h diff --git a/res/steamworks/127/headers/isteamfriends.h b/res/steamworks/127/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/127/headers/isteamfriends.h rename to res/steamworks/127/headers/steam/isteamfriends.h diff --git a/res/steamworks/127/headers/isteamgamecoordinator.h b/res/steamworks/127/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/127/headers/isteamgamecoordinator.h rename to res/steamworks/127/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/127/headers/isteamgameserver.h b/res/steamworks/127/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/127/headers/isteamgameserver.h rename to res/steamworks/127/headers/steam/isteamgameserver.h diff --git a/res/steamworks/127/headers/isteamgameserverstats.h b/res/steamworks/127/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/127/headers/isteamgameserverstats.h rename to res/steamworks/127/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/127/headers/isteamhttp.h b/res/steamworks/127/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/127/headers/isteamhttp.h rename to res/steamworks/127/headers/steam/isteamhttp.h diff --git a/res/steamworks/127/headers/isteammasterserverupdater.h b/res/steamworks/127/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/127/headers/isteammasterserverupdater.h rename to res/steamworks/127/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/127/headers/isteammatchmaking.h b/res/steamworks/127/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/127/headers/isteammatchmaking.h rename to res/steamworks/127/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/127/headers/isteamnetworking.h b/res/steamworks/127/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/127/headers/isteamnetworking.h rename to res/steamworks/127/headers/steam/isteamnetworking.h diff --git a/res/steamworks/127/headers/isteamps3overlayrenderer.h b/res/steamworks/127/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/127/headers/isteamps3overlayrenderer.h rename to res/steamworks/127/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/127/headers/isteamremotestorage.h b/res/steamworks/127/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/127/headers/isteamremotestorage.h rename to res/steamworks/127/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/127/headers/isteamscreenshots.h b/res/steamworks/127/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/127/headers/isteamscreenshots.h rename to res/steamworks/127/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/127/headers/isteamugc.h b/res/steamworks/127/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/127/headers/isteamugc.h rename to res/steamworks/127/headers/steam/isteamugc.h diff --git a/res/steamworks/127/headers/isteamunifiedmessages.h b/res/steamworks/127/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/127/headers/isteamunifiedmessages.h rename to res/steamworks/127/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/127/headers/isteamuser.h b/res/steamworks/127/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/127/headers/isteamuser.h rename to res/steamworks/127/headers/steam/isteamuser.h diff --git a/res/steamworks/127/headers/isteamuserstats.h b/res/steamworks/127/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/127/headers/isteamuserstats.h rename to res/steamworks/127/headers/steam/isteamuserstats.h diff --git a/res/steamworks/127/headers/isteamutils.h b/res/steamworks/127/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/127/headers/isteamutils.h rename to res/steamworks/127/headers/steam/isteamutils.h diff --git a/res/steamworks/127/headers/matchmakingtypes.h b/res/steamworks/127/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/127/headers/matchmakingtypes.h rename to res/steamworks/127/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/127/headers/steam_api.h b/res/steamworks/127/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/127/headers/steam_api.h rename to res/steamworks/127/headers/steam/steam_api.h diff --git a/res/steamworks/127/headers/steam_gameserver.h b/res/steamworks/127/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/127/headers/steam_gameserver.h rename to res/steamworks/127/headers/steam/steam_gameserver.h diff --git a/res/steamworks/127/headers/steamclientpublic.h b/res/steamworks/127/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/127/headers/steamclientpublic.h rename to res/steamworks/127/headers/steam/steamclientpublic.h diff --git a/res/steamworks/127/headers/steamcontrollerpublic.h b/res/steamworks/127/headers/steam/steamcontrollerpublic.h similarity index 100% rename from res/steamworks/127/headers/steamcontrollerpublic.h rename to res/steamworks/127/headers/steam/steamcontrollerpublic.h diff --git a/res/steamworks/127/headers/steamencryptedappticket.h b/res/steamworks/127/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/127/headers/steamencryptedappticket.h rename to res/steamworks/127/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/127/headers/steamhttpenums.h b/res/steamworks/127/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/127/headers/steamhttpenums.h rename to res/steamworks/127/headers/steam/steamhttpenums.h diff --git a/res/steamworks/127/headers/steamps3params.h b/res/steamworks/127/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/127/headers/steamps3params.h rename to res/steamworks/127/headers/steam/steamps3params.h diff --git a/res/steamworks/127/headers/steamtypes.h b/res/steamworks/127/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/127/headers/steamtypes.h rename to res/steamworks/127/headers/steam/steamtypes.h diff --git a/res/steamworks/127/headers/steamuniverse.h b/res/steamworks/127/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/127/headers/steamuniverse.h rename to res/steamworks/127/headers/steam/steamuniverse.h diff --git a/res/steamworks/128/headers/isteamapps.h b/res/steamworks/128/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/128/headers/isteamapps.h rename to res/steamworks/128/headers/steam/isteamapps.h diff --git a/res/steamworks/128/headers/isteamappticket.h b/res/steamworks/128/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/128/headers/isteamappticket.h rename to res/steamworks/128/headers/steam/isteamappticket.h diff --git a/res/steamworks/128/headers/isteamclient.h b/res/steamworks/128/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/128/headers/isteamclient.h rename to res/steamworks/128/headers/steam/isteamclient.h diff --git a/res/steamworks/128/headers/isteamcontroller.h b/res/steamworks/128/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/128/headers/isteamcontroller.h rename to res/steamworks/128/headers/steam/isteamcontroller.h diff --git a/res/steamworks/128/headers/isteamfriends.h b/res/steamworks/128/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/128/headers/isteamfriends.h rename to res/steamworks/128/headers/steam/isteamfriends.h diff --git a/res/steamworks/128/headers/isteamgamecoordinator.h b/res/steamworks/128/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/128/headers/isteamgamecoordinator.h rename to res/steamworks/128/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/128/headers/isteamgameserver.h b/res/steamworks/128/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/128/headers/isteamgameserver.h rename to res/steamworks/128/headers/steam/isteamgameserver.h diff --git a/res/steamworks/128/headers/isteamgameserverstats.h b/res/steamworks/128/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/128/headers/isteamgameserverstats.h rename to res/steamworks/128/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/128/headers/isteamhttp.h b/res/steamworks/128/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/128/headers/isteamhttp.h rename to res/steamworks/128/headers/steam/isteamhttp.h diff --git a/res/steamworks/128/headers/isteammasterserverupdater.h b/res/steamworks/128/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/128/headers/isteammasterserverupdater.h rename to res/steamworks/128/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/128/headers/isteammatchmaking.h b/res/steamworks/128/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/128/headers/isteammatchmaking.h rename to res/steamworks/128/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/128/headers/isteamnetworking.h b/res/steamworks/128/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/128/headers/isteamnetworking.h rename to res/steamworks/128/headers/steam/isteamnetworking.h diff --git a/res/steamworks/128/headers/isteamps3overlayrenderer.h b/res/steamworks/128/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/128/headers/isteamps3overlayrenderer.h rename to res/steamworks/128/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/128/headers/isteamremotestorage.h b/res/steamworks/128/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/128/headers/isteamremotestorage.h rename to res/steamworks/128/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/128/headers/isteamscreenshots.h b/res/steamworks/128/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/128/headers/isteamscreenshots.h rename to res/steamworks/128/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/128/headers/isteamugc.h b/res/steamworks/128/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/128/headers/isteamugc.h rename to res/steamworks/128/headers/steam/isteamugc.h diff --git a/res/steamworks/128/headers/isteamunifiedmessages.h b/res/steamworks/128/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/128/headers/isteamunifiedmessages.h rename to res/steamworks/128/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/128/headers/isteamuser.h b/res/steamworks/128/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/128/headers/isteamuser.h rename to res/steamworks/128/headers/steam/isteamuser.h diff --git a/res/steamworks/128/headers/isteamuserstats.h b/res/steamworks/128/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/128/headers/isteamuserstats.h rename to res/steamworks/128/headers/steam/isteamuserstats.h diff --git a/res/steamworks/128/headers/isteamutils.h b/res/steamworks/128/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/128/headers/isteamutils.h rename to res/steamworks/128/headers/steam/isteamutils.h diff --git a/res/steamworks/128/headers/matchmakingtypes.h b/res/steamworks/128/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/128/headers/matchmakingtypes.h rename to res/steamworks/128/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/128/headers/steam_api.h b/res/steamworks/128/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/128/headers/steam_api.h rename to res/steamworks/128/headers/steam/steam_api.h diff --git a/res/steamworks/128/headers/steam_gameserver.h b/res/steamworks/128/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/128/headers/steam_gameserver.h rename to res/steamworks/128/headers/steam/steam_gameserver.h diff --git a/res/steamworks/128/headers/steamclientpublic.h b/res/steamworks/128/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/128/headers/steamclientpublic.h rename to res/steamworks/128/headers/steam/steamclientpublic.h diff --git a/res/steamworks/128/headers/steamcontrollerpublic.h b/res/steamworks/128/headers/steam/steamcontrollerpublic.h similarity index 100% rename from res/steamworks/128/headers/steamcontrollerpublic.h rename to res/steamworks/128/headers/steam/steamcontrollerpublic.h diff --git a/res/steamworks/128/headers/steamencryptedappticket.h b/res/steamworks/128/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/128/headers/steamencryptedappticket.h rename to res/steamworks/128/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/128/headers/steamhttpenums.h b/res/steamworks/128/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/128/headers/steamhttpenums.h rename to res/steamworks/128/headers/steam/steamhttpenums.h diff --git a/res/steamworks/128/headers/steamps3params.h b/res/steamworks/128/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/128/headers/steamps3params.h rename to res/steamworks/128/headers/steam/steamps3params.h diff --git a/res/steamworks/128/headers/steamtypes.h b/res/steamworks/128/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/128/headers/steamtypes.h rename to res/steamworks/128/headers/steam/steamtypes.h diff --git a/res/steamworks/128/headers/steamuniverse.h b/res/steamworks/128/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/128/headers/steamuniverse.h rename to res/steamworks/128/headers/steam/steamuniverse.h diff --git a/res/steamworks/128/headers/steamvr.h b/res/steamworks/128/headers/steam/steamvr.h similarity index 100% rename from res/steamworks/128/headers/steamvr.h rename to res/steamworks/128/headers/steam/steamvr.h diff --git a/res/steamworks/129a/headers/isteamapplist.h b/res/steamworks/129a/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/129a/headers/isteamapplist.h rename to res/steamworks/129a/headers/steam/isteamapplist.h diff --git a/res/steamworks/129a/headers/isteamapps.h b/res/steamworks/129a/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/129a/headers/isteamapps.h rename to res/steamworks/129a/headers/steam/isteamapps.h diff --git a/res/steamworks/129a/headers/isteamappticket.h b/res/steamworks/129a/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/129a/headers/isteamappticket.h rename to res/steamworks/129a/headers/steam/isteamappticket.h diff --git a/res/steamworks/129a/headers/isteamclient.h b/res/steamworks/129a/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/129a/headers/isteamclient.h rename to res/steamworks/129a/headers/steam/isteamclient.h diff --git a/res/steamworks/129a/headers/isteamcontroller.h b/res/steamworks/129a/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/129a/headers/isteamcontroller.h rename to res/steamworks/129a/headers/steam/isteamcontroller.h diff --git a/res/steamworks/129a/headers/isteamfriends.h b/res/steamworks/129a/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/129a/headers/isteamfriends.h rename to res/steamworks/129a/headers/steam/isteamfriends.h diff --git a/res/steamworks/129a/headers/isteamgamecoordinator.h b/res/steamworks/129a/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/129a/headers/isteamgamecoordinator.h rename to res/steamworks/129a/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/129a/headers/isteamgameserver.h b/res/steamworks/129a/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/129a/headers/isteamgameserver.h rename to res/steamworks/129a/headers/steam/isteamgameserver.h diff --git a/res/steamworks/129a/headers/isteamgameserverstats.h b/res/steamworks/129a/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/129a/headers/isteamgameserverstats.h rename to res/steamworks/129a/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/129a/headers/isteamhttp.h b/res/steamworks/129a/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/129a/headers/isteamhttp.h rename to res/steamworks/129a/headers/steam/isteamhttp.h diff --git a/res/steamworks/129a/headers/isteammasterserverupdater.h b/res/steamworks/129a/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/129a/headers/isteammasterserverupdater.h rename to res/steamworks/129a/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/129a/headers/isteammatchmaking.h b/res/steamworks/129a/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/129a/headers/isteammatchmaking.h rename to res/steamworks/129a/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/129a/headers/isteammusic.h b/res/steamworks/129a/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/129a/headers/isteammusic.h rename to res/steamworks/129a/headers/steam/isteammusic.h diff --git a/res/steamworks/129a/headers/isteamnetworking.h b/res/steamworks/129a/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/129a/headers/isteamnetworking.h rename to res/steamworks/129a/headers/steam/isteamnetworking.h diff --git a/res/steamworks/129a/headers/isteamps3overlayrenderer.h b/res/steamworks/129a/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/129a/headers/isteamps3overlayrenderer.h rename to res/steamworks/129a/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/129a/headers/isteamremotestorage.h b/res/steamworks/129a/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/129a/headers/isteamremotestorage.h rename to res/steamworks/129a/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/129a/headers/isteamscreenshots.h b/res/steamworks/129a/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/129a/headers/isteamscreenshots.h rename to res/steamworks/129a/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/129a/headers/isteamugc.h b/res/steamworks/129a/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/129a/headers/isteamugc.h rename to res/steamworks/129a/headers/steam/isteamugc.h diff --git a/res/steamworks/129a/headers/isteamunifiedmessages.h b/res/steamworks/129a/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/129a/headers/isteamunifiedmessages.h rename to res/steamworks/129a/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/129a/headers/isteamuser.h b/res/steamworks/129a/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/129a/headers/isteamuser.h rename to res/steamworks/129a/headers/steam/isteamuser.h diff --git a/res/steamworks/129a/headers/isteamuserstats.h b/res/steamworks/129a/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/129a/headers/isteamuserstats.h rename to res/steamworks/129a/headers/steam/isteamuserstats.h diff --git a/res/steamworks/129a/headers/isteamutils.h b/res/steamworks/129a/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/129a/headers/isteamutils.h rename to res/steamworks/129a/headers/steam/isteamutils.h diff --git a/res/steamworks/129a/headers/matchmakingtypes.h b/res/steamworks/129a/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/129a/headers/matchmakingtypes.h rename to res/steamworks/129a/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/129a/headers/steam_api.h b/res/steamworks/129a/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/129a/headers/steam_api.h rename to res/steamworks/129a/headers/steam/steam_api.h diff --git a/res/steamworks/129a/headers/steam_gameserver.h b/res/steamworks/129a/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/129a/headers/steam_gameserver.h rename to res/steamworks/129a/headers/steam/steam_gameserver.h diff --git a/res/steamworks/129a/headers/steamclientpublic.h b/res/steamworks/129a/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/129a/headers/steamclientpublic.h rename to res/steamworks/129a/headers/steam/steamclientpublic.h diff --git a/res/steamworks/129a/headers/steamcontrollerpublic.h b/res/steamworks/129a/headers/steam/steamcontrollerpublic.h similarity index 100% rename from res/steamworks/129a/headers/steamcontrollerpublic.h rename to res/steamworks/129a/headers/steam/steamcontrollerpublic.h diff --git a/res/steamworks/129a/headers/steamencryptedappticket.h b/res/steamworks/129a/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/129a/headers/steamencryptedappticket.h rename to res/steamworks/129a/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/129a/headers/steamhttpenums.h b/res/steamworks/129a/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/129a/headers/steamhttpenums.h rename to res/steamworks/129a/headers/steam/steamhttpenums.h diff --git a/res/steamworks/129a/headers/steamps3params.h b/res/steamworks/129a/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/129a/headers/steamps3params.h rename to res/steamworks/129a/headers/steam/steamps3params.h diff --git a/res/steamworks/129a/headers/steamtypes.h b/res/steamworks/129a/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/129a/headers/steamtypes.h rename to res/steamworks/129a/headers/steam/steamtypes.h diff --git a/res/steamworks/129a/headers/steamuniverse.h b/res/steamworks/129a/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/129a/headers/steamuniverse.h rename to res/steamworks/129a/headers/steam/steamuniverse.h diff --git a/res/steamworks/129a/headers/steamvr.h b/res/steamworks/129a/headers/steam/steamvr.h similarity index 100% rename from res/steamworks/129a/headers/steamvr.h rename to res/steamworks/129a/headers/steam/steamvr.h diff --git a/res/steamworks/130/headers/isteamapplist.h b/res/steamworks/130/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/130/headers/isteamapplist.h rename to res/steamworks/130/headers/steam/isteamapplist.h diff --git a/res/steamworks/130/headers/isteamapps.h b/res/steamworks/130/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/130/headers/isteamapps.h rename to res/steamworks/130/headers/steam/isteamapps.h diff --git a/res/steamworks/130/headers/isteamappticket.h b/res/steamworks/130/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/130/headers/isteamappticket.h rename to res/steamworks/130/headers/steam/isteamappticket.h diff --git a/res/steamworks/130/headers/isteamclient.h b/res/steamworks/130/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/130/headers/isteamclient.h rename to res/steamworks/130/headers/steam/isteamclient.h diff --git a/res/steamworks/130/headers/isteamcontroller.h b/res/steamworks/130/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/130/headers/isteamcontroller.h rename to res/steamworks/130/headers/steam/isteamcontroller.h diff --git a/res/steamworks/130/headers/isteamfriends.h b/res/steamworks/130/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/130/headers/isteamfriends.h rename to res/steamworks/130/headers/steam/isteamfriends.h diff --git a/res/steamworks/130/headers/isteamgamecoordinator.h b/res/steamworks/130/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/130/headers/isteamgamecoordinator.h rename to res/steamworks/130/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/130/headers/isteamgameserver.h b/res/steamworks/130/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/130/headers/isteamgameserver.h rename to res/steamworks/130/headers/steam/isteamgameserver.h diff --git a/res/steamworks/130/headers/isteamgameserverstats.h b/res/steamworks/130/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/130/headers/isteamgameserverstats.h rename to res/steamworks/130/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/130/headers/isteamhttp.h b/res/steamworks/130/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/130/headers/isteamhttp.h rename to res/steamworks/130/headers/steam/isteamhttp.h diff --git a/res/steamworks/130/headers/isteammasterserverupdater.h b/res/steamworks/130/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/130/headers/isteammasterserverupdater.h rename to res/steamworks/130/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/130/headers/isteammatchmaking.h b/res/steamworks/130/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/130/headers/isteammatchmaking.h rename to res/steamworks/130/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/130/headers/isteammusic.h b/res/steamworks/130/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/130/headers/isteammusic.h rename to res/steamworks/130/headers/steam/isteammusic.h diff --git a/res/steamworks/130/headers/isteammusicremote.h b/res/steamworks/130/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/130/headers/isteammusicremote.h rename to res/steamworks/130/headers/steam/isteammusicremote.h diff --git a/res/steamworks/130/headers/isteamnetworking.h b/res/steamworks/130/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/130/headers/isteamnetworking.h rename to res/steamworks/130/headers/steam/isteamnetworking.h diff --git a/res/steamworks/130/headers/isteamps3overlayrenderer.h b/res/steamworks/130/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/130/headers/isteamps3overlayrenderer.h rename to res/steamworks/130/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/130/headers/isteamremotestorage.h b/res/steamworks/130/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/130/headers/isteamremotestorage.h rename to res/steamworks/130/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/130/headers/isteamscreenshots.h b/res/steamworks/130/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/130/headers/isteamscreenshots.h rename to res/steamworks/130/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/130/headers/isteamugc.h b/res/steamworks/130/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/130/headers/isteamugc.h rename to res/steamworks/130/headers/steam/isteamugc.h diff --git a/res/steamworks/130/headers/isteamunifiedmessages.h b/res/steamworks/130/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/130/headers/isteamunifiedmessages.h rename to res/steamworks/130/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/130/headers/isteamuser.h b/res/steamworks/130/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/130/headers/isteamuser.h rename to res/steamworks/130/headers/steam/isteamuser.h diff --git a/res/steamworks/130/headers/isteamuserstats.h b/res/steamworks/130/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/130/headers/isteamuserstats.h rename to res/steamworks/130/headers/steam/isteamuserstats.h diff --git a/res/steamworks/130/headers/isteamutils.h b/res/steamworks/130/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/130/headers/isteamutils.h rename to res/steamworks/130/headers/steam/isteamutils.h diff --git a/res/steamworks/130/headers/matchmakingtypes.h b/res/steamworks/130/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/130/headers/matchmakingtypes.h rename to res/steamworks/130/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/130/headers/steam_api.h b/res/steamworks/130/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/130/headers/steam_api.h rename to res/steamworks/130/headers/steam/steam_api.h diff --git a/res/steamworks/130/headers/steam_gameserver.h b/res/steamworks/130/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/130/headers/steam_gameserver.h rename to res/steamworks/130/headers/steam/steam_gameserver.h diff --git a/res/steamworks/130/headers/steamclientpublic.h b/res/steamworks/130/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/130/headers/steamclientpublic.h rename to res/steamworks/130/headers/steam/steamclientpublic.h diff --git a/res/steamworks/130/headers/steamcontrollerpublic.h b/res/steamworks/130/headers/steam/steamcontrollerpublic.h similarity index 100% rename from res/steamworks/130/headers/steamcontrollerpublic.h rename to res/steamworks/130/headers/steam/steamcontrollerpublic.h diff --git a/res/steamworks/130/headers/steamencryptedappticket.h b/res/steamworks/130/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/130/headers/steamencryptedappticket.h rename to res/steamworks/130/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/130/headers/steamhttpenums.h b/res/steamworks/130/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/130/headers/steamhttpenums.h rename to res/steamworks/130/headers/steam/steamhttpenums.h diff --git a/res/steamworks/130/headers/steamps3params.h b/res/steamworks/130/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/130/headers/steamps3params.h rename to res/steamworks/130/headers/steam/steamps3params.h diff --git a/res/steamworks/130/headers/steamtypes.h b/res/steamworks/130/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/130/headers/steamtypes.h rename to res/steamworks/130/headers/steam/steamtypes.h diff --git a/res/steamworks/130/headers/steamuniverse.h b/res/steamworks/130/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/130/headers/steamuniverse.h rename to res/steamworks/130/headers/steam/steamuniverse.h diff --git a/res/steamworks/130/headers/steamvr.h b/res/steamworks/130/headers/steam/steamvr.h similarity index 100% rename from res/steamworks/130/headers/steamvr.h rename to res/steamworks/130/headers/steam/steamvr.h diff --git a/res/steamworks/131/headers/isteamapplist.h b/res/steamworks/131/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/131/headers/isteamapplist.h rename to res/steamworks/131/headers/steam/isteamapplist.h diff --git a/res/steamworks/131/headers/isteamapps.h b/res/steamworks/131/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/131/headers/isteamapps.h rename to res/steamworks/131/headers/steam/isteamapps.h diff --git a/res/steamworks/131/headers/isteamappticket.h b/res/steamworks/131/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/131/headers/isteamappticket.h rename to res/steamworks/131/headers/steam/isteamappticket.h diff --git a/res/steamworks/131/headers/isteamclient.h b/res/steamworks/131/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/131/headers/isteamclient.h rename to res/steamworks/131/headers/steam/isteamclient.h diff --git a/res/steamworks/131/headers/isteamcontroller.h b/res/steamworks/131/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/131/headers/isteamcontroller.h rename to res/steamworks/131/headers/steam/isteamcontroller.h diff --git a/res/steamworks/131/headers/isteamfriends.h b/res/steamworks/131/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/131/headers/isteamfriends.h rename to res/steamworks/131/headers/steam/isteamfriends.h diff --git a/res/steamworks/131/headers/isteamgamecoordinator.h b/res/steamworks/131/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/131/headers/isteamgamecoordinator.h rename to res/steamworks/131/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/131/headers/isteamgameserver.h b/res/steamworks/131/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/131/headers/isteamgameserver.h rename to res/steamworks/131/headers/steam/isteamgameserver.h diff --git a/res/steamworks/131/headers/isteamgameserverstats.h b/res/steamworks/131/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/131/headers/isteamgameserverstats.h rename to res/steamworks/131/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/131/headers/isteamhtmlsurface.h b/res/steamworks/131/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/131/headers/isteamhtmlsurface.h rename to res/steamworks/131/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/131/headers/isteamhttp.h b/res/steamworks/131/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/131/headers/isteamhttp.h rename to res/steamworks/131/headers/steam/isteamhttp.h diff --git a/res/steamworks/131/headers/isteammasterserverupdater.h b/res/steamworks/131/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/131/headers/isteammasterserverupdater.h rename to res/steamworks/131/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/131/headers/isteammatchmaking.h b/res/steamworks/131/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/131/headers/isteammatchmaking.h rename to res/steamworks/131/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/131/headers/isteammusic.h b/res/steamworks/131/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/131/headers/isteammusic.h rename to res/steamworks/131/headers/steam/isteammusic.h diff --git a/res/steamworks/131/headers/isteammusicremote.h b/res/steamworks/131/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/131/headers/isteammusicremote.h rename to res/steamworks/131/headers/steam/isteammusicremote.h diff --git a/res/steamworks/131/headers/isteamnetworking.h b/res/steamworks/131/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/131/headers/isteamnetworking.h rename to res/steamworks/131/headers/steam/isteamnetworking.h diff --git a/res/steamworks/131/headers/isteamps3overlayrenderer.h b/res/steamworks/131/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/131/headers/isteamps3overlayrenderer.h rename to res/steamworks/131/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/131/headers/isteamremotestorage.h b/res/steamworks/131/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/131/headers/isteamremotestorage.h rename to res/steamworks/131/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/131/headers/isteamscreenshots.h b/res/steamworks/131/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/131/headers/isteamscreenshots.h rename to res/steamworks/131/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/131/headers/isteamugc.h b/res/steamworks/131/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/131/headers/isteamugc.h rename to res/steamworks/131/headers/steam/isteamugc.h diff --git a/res/steamworks/131/headers/isteamunifiedmessages.h b/res/steamworks/131/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/131/headers/isteamunifiedmessages.h rename to res/steamworks/131/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/131/headers/isteamuser.h b/res/steamworks/131/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/131/headers/isteamuser.h rename to res/steamworks/131/headers/steam/isteamuser.h diff --git a/res/steamworks/131/headers/isteamuserstats.h b/res/steamworks/131/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/131/headers/isteamuserstats.h rename to res/steamworks/131/headers/steam/isteamuserstats.h diff --git a/res/steamworks/131/headers/isteamutils.h b/res/steamworks/131/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/131/headers/isteamutils.h rename to res/steamworks/131/headers/steam/isteamutils.h diff --git a/res/steamworks/131/headers/matchmakingtypes.h b/res/steamworks/131/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/131/headers/matchmakingtypes.h rename to res/steamworks/131/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/131/headers/steam_api.h b/res/steamworks/131/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/131/headers/steam_api.h rename to res/steamworks/131/headers/steam/steam_api.h diff --git a/res/steamworks/131/headers/steam_gameserver.h b/res/steamworks/131/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/131/headers/steam_gameserver.h rename to res/steamworks/131/headers/steam/steam_gameserver.h diff --git a/res/steamworks/131/headers/steamclientpublic.h b/res/steamworks/131/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/131/headers/steamclientpublic.h rename to res/steamworks/131/headers/steam/steamclientpublic.h diff --git a/res/steamworks/131/headers/steamcontrollerpublic.h b/res/steamworks/131/headers/steam/steamcontrollerpublic.h similarity index 100% rename from res/steamworks/131/headers/steamcontrollerpublic.h rename to res/steamworks/131/headers/steam/steamcontrollerpublic.h diff --git a/res/steamworks/131/headers/steamencryptedappticket.h b/res/steamworks/131/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/131/headers/steamencryptedappticket.h rename to res/steamworks/131/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/131/headers/steamhttpenums.h b/res/steamworks/131/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/131/headers/steamhttpenums.h rename to res/steamworks/131/headers/steam/steamhttpenums.h diff --git a/res/steamworks/131/headers/steamps3params.h b/res/steamworks/131/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/131/headers/steamps3params.h rename to res/steamworks/131/headers/steam/steamps3params.h diff --git a/res/steamworks/131/headers/steamtypes.h b/res/steamworks/131/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/131/headers/steamtypes.h rename to res/steamworks/131/headers/steam/steamtypes.h diff --git a/res/steamworks/131/headers/steamuniverse.h b/res/steamworks/131/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/131/headers/steamuniverse.h rename to res/steamworks/131/headers/steam/steamuniverse.h diff --git a/res/steamworks/131/headers/steamvr.h b/res/steamworks/131/headers/steam/steamvr.h similarity index 100% rename from res/steamworks/131/headers/steamvr.h rename to res/steamworks/131/headers/steam/steamvr.h diff --git a/res/steamworks/132/headers/isteamapplist.h b/res/steamworks/132/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/132/headers/isteamapplist.h rename to res/steamworks/132/headers/steam/isteamapplist.h diff --git a/res/steamworks/132/headers/isteamapps.h b/res/steamworks/132/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/132/headers/isteamapps.h rename to res/steamworks/132/headers/steam/isteamapps.h diff --git a/res/steamworks/132/headers/isteamappticket.h b/res/steamworks/132/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/132/headers/isteamappticket.h rename to res/steamworks/132/headers/steam/isteamappticket.h diff --git a/res/steamworks/132/headers/isteamclient.h b/res/steamworks/132/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/132/headers/isteamclient.h rename to res/steamworks/132/headers/steam/isteamclient.h diff --git a/res/steamworks/132/headers/isteamcontroller.h b/res/steamworks/132/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/132/headers/isteamcontroller.h rename to res/steamworks/132/headers/steam/isteamcontroller.h diff --git a/res/steamworks/132/headers/isteamfriends.h b/res/steamworks/132/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/132/headers/isteamfriends.h rename to res/steamworks/132/headers/steam/isteamfriends.h diff --git a/res/steamworks/132/headers/isteamgamecoordinator.h b/res/steamworks/132/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/132/headers/isteamgamecoordinator.h rename to res/steamworks/132/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/132/headers/isteamgameserver.h b/res/steamworks/132/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/132/headers/isteamgameserver.h rename to res/steamworks/132/headers/steam/isteamgameserver.h diff --git a/res/steamworks/132/headers/isteamgameserverstats.h b/res/steamworks/132/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/132/headers/isteamgameserverstats.h rename to res/steamworks/132/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/132/headers/isteamhtmlsurface.h b/res/steamworks/132/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/132/headers/isteamhtmlsurface.h rename to res/steamworks/132/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/132/headers/isteamhttp.h b/res/steamworks/132/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/132/headers/isteamhttp.h rename to res/steamworks/132/headers/steam/isteamhttp.h diff --git a/res/steamworks/132/headers/isteaminventory.h b/res/steamworks/132/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/132/headers/isteaminventory.h rename to res/steamworks/132/headers/steam/isteaminventory.h diff --git a/res/steamworks/132/headers/isteammasterserverupdater.h b/res/steamworks/132/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/132/headers/isteammasterserverupdater.h rename to res/steamworks/132/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/132/headers/isteammatchmaking.h b/res/steamworks/132/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/132/headers/isteammatchmaking.h rename to res/steamworks/132/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/132/headers/isteammusic.h b/res/steamworks/132/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/132/headers/isteammusic.h rename to res/steamworks/132/headers/steam/isteammusic.h diff --git a/res/steamworks/132/headers/isteammusicremote.h b/res/steamworks/132/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/132/headers/isteammusicremote.h rename to res/steamworks/132/headers/steam/isteammusicremote.h diff --git a/res/steamworks/132/headers/isteamnetworking.h b/res/steamworks/132/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/132/headers/isteamnetworking.h rename to res/steamworks/132/headers/steam/isteamnetworking.h diff --git a/res/steamworks/132/headers/isteamps3overlayrenderer.h b/res/steamworks/132/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/132/headers/isteamps3overlayrenderer.h rename to res/steamworks/132/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/132/headers/isteamremotestorage.h b/res/steamworks/132/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/132/headers/isteamremotestorage.h rename to res/steamworks/132/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/132/headers/isteamscreenshots.h b/res/steamworks/132/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/132/headers/isteamscreenshots.h rename to res/steamworks/132/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/132/headers/isteamugc.h b/res/steamworks/132/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/132/headers/isteamugc.h rename to res/steamworks/132/headers/steam/isteamugc.h diff --git a/res/steamworks/132/headers/isteamunifiedmessages.h b/res/steamworks/132/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/132/headers/isteamunifiedmessages.h rename to res/steamworks/132/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/132/headers/isteamuser.h b/res/steamworks/132/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/132/headers/isteamuser.h rename to res/steamworks/132/headers/steam/isteamuser.h diff --git a/res/steamworks/132/headers/isteamuserstats.h b/res/steamworks/132/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/132/headers/isteamuserstats.h rename to res/steamworks/132/headers/steam/isteamuserstats.h diff --git a/res/steamworks/132/headers/isteamutils.h b/res/steamworks/132/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/132/headers/isteamutils.h rename to res/steamworks/132/headers/steam/isteamutils.h diff --git a/res/steamworks/132/headers/isteamvideo.h b/res/steamworks/132/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/132/headers/isteamvideo.h rename to res/steamworks/132/headers/steam/isteamvideo.h diff --git a/res/steamworks/132/headers/matchmakingtypes.h b/res/steamworks/132/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/132/headers/matchmakingtypes.h rename to res/steamworks/132/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/132/headers/steam_api.h b/res/steamworks/132/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/132/headers/steam_api.h rename to res/steamworks/132/headers/steam/steam_api.h diff --git a/res/steamworks/132/headers/steam_api_flat.h b/res/steamworks/132/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/132/headers/steam_api_flat.h rename to res/steamworks/132/headers/steam/steam_api_flat.h diff --git a/res/steamworks/132/headers/steam_gameserver.h b/res/steamworks/132/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/132/headers/steam_gameserver.h rename to res/steamworks/132/headers/steam/steam_gameserver.h diff --git a/res/steamworks/132/headers/steamclientpublic.h b/res/steamworks/132/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/132/headers/steamclientpublic.h rename to res/steamworks/132/headers/steam/steamclientpublic.h diff --git a/res/steamworks/132/headers/steamcontrollerpublic.h b/res/steamworks/132/headers/steam/steamcontrollerpublic.h similarity index 100% rename from res/steamworks/132/headers/steamcontrollerpublic.h rename to res/steamworks/132/headers/steam/steamcontrollerpublic.h diff --git a/res/steamworks/132/headers/steamencryptedappticket.h b/res/steamworks/132/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/132/headers/steamencryptedappticket.h rename to res/steamworks/132/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/132/headers/steamhttpenums.h b/res/steamworks/132/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/132/headers/steamhttpenums.h rename to res/steamworks/132/headers/steam/steamhttpenums.h diff --git a/res/steamworks/132/headers/steamps3params.h b/res/steamworks/132/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/132/headers/steamps3params.h rename to res/steamworks/132/headers/steam/steamps3params.h diff --git a/res/steamworks/132/headers/steamtypes.h b/res/steamworks/132/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/132/headers/steamtypes.h rename to res/steamworks/132/headers/steam/steamtypes.h diff --git a/res/steamworks/132/headers/steamuniverse.h b/res/steamworks/132/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/132/headers/steamuniverse.h rename to res/steamworks/132/headers/steam/steamuniverse.h diff --git a/res/steamworks/132/headers/steamvr.h b/res/steamworks/132/headers/steam/steamvr.h similarity index 100% rename from res/steamworks/132/headers/steamvr.h rename to res/steamworks/132/headers/steam/steamvr.h diff --git a/res/steamworks/132/headers/steamvr_flat.h b/res/steamworks/132/headers/steam/steamvr_flat.h similarity index 100% rename from res/steamworks/132/headers/steamvr_flat.h rename to res/steamworks/132/headers/steam/steamvr_flat.h diff --git a/res/steamworks/133b/headers/isteamapplist.h b/res/steamworks/133b/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/133b/headers/isteamapplist.h rename to res/steamworks/133b/headers/steam/isteamapplist.h diff --git a/res/steamworks/133b/headers/isteamapps.h b/res/steamworks/133b/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/133b/headers/isteamapps.h rename to res/steamworks/133b/headers/steam/isteamapps.h diff --git a/res/steamworks/133b/headers/isteamappticket.h b/res/steamworks/133b/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/133b/headers/isteamappticket.h rename to res/steamworks/133b/headers/steam/isteamappticket.h diff --git a/res/steamworks/133b/headers/isteamclient.h b/res/steamworks/133b/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/133b/headers/isteamclient.h rename to res/steamworks/133b/headers/steam/isteamclient.h diff --git a/res/steamworks/133b/headers/isteamcontroller.h b/res/steamworks/133b/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/133b/headers/isteamcontroller.h rename to res/steamworks/133b/headers/steam/isteamcontroller.h diff --git a/res/steamworks/133b/headers/isteamfriends.h b/res/steamworks/133b/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/133b/headers/isteamfriends.h rename to res/steamworks/133b/headers/steam/isteamfriends.h diff --git a/res/steamworks/133b/headers/isteamgamecoordinator.h b/res/steamworks/133b/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/133b/headers/isteamgamecoordinator.h rename to res/steamworks/133b/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/133b/headers/isteamgameserver.h b/res/steamworks/133b/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/133b/headers/isteamgameserver.h rename to res/steamworks/133b/headers/steam/isteamgameserver.h diff --git a/res/steamworks/133b/headers/isteamgameserverstats.h b/res/steamworks/133b/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/133b/headers/isteamgameserverstats.h rename to res/steamworks/133b/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/133b/headers/isteamhtmlsurface.h b/res/steamworks/133b/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/133b/headers/isteamhtmlsurface.h rename to res/steamworks/133b/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/133b/headers/isteamhttp.h b/res/steamworks/133b/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/133b/headers/isteamhttp.h rename to res/steamworks/133b/headers/steam/isteamhttp.h diff --git a/res/steamworks/133b/headers/isteaminventory.h b/res/steamworks/133b/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/133b/headers/isteaminventory.h rename to res/steamworks/133b/headers/steam/isteaminventory.h diff --git a/res/steamworks/133b/headers/isteammasterserverupdater.h b/res/steamworks/133b/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/133b/headers/isteammasterserverupdater.h rename to res/steamworks/133b/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/133b/headers/isteammatchmaking.h b/res/steamworks/133b/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/133b/headers/isteammatchmaking.h rename to res/steamworks/133b/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/133b/headers/isteammusic.h b/res/steamworks/133b/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/133b/headers/isteammusic.h rename to res/steamworks/133b/headers/steam/isteammusic.h diff --git a/res/steamworks/133b/headers/isteammusicremote.h b/res/steamworks/133b/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/133b/headers/isteammusicremote.h rename to res/steamworks/133b/headers/steam/isteammusicremote.h diff --git a/res/steamworks/133b/headers/isteamnetworking.h b/res/steamworks/133b/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/133b/headers/isteamnetworking.h rename to res/steamworks/133b/headers/steam/isteamnetworking.h diff --git a/res/steamworks/133b/headers/isteamps3overlayrenderer.h b/res/steamworks/133b/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/133b/headers/isteamps3overlayrenderer.h rename to res/steamworks/133b/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/133b/headers/isteamremotestorage.h b/res/steamworks/133b/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/133b/headers/isteamremotestorage.h rename to res/steamworks/133b/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/133b/headers/isteamscreenshots.h b/res/steamworks/133b/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/133b/headers/isteamscreenshots.h rename to res/steamworks/133b/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/133b/headers/isteamugc.h b/res/steamworks/133b/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/133b/headers/isteamugc.h rename to res/steamworks/133b/headers/steam/isteamugc.h diff --git a/res/steamworks/133b/headers/isteamunifiedmessages.h b/res/steamworks/133b/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/133b/headers/isteamunifiedmessages.h rename to res/steamworks/133b/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/133b/headers/isteamuser.h b/res/steamworks/133b/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/133b/headers/isteamuser.h rename to res/steamworks/133b/headers/steam/isteamuser.h diff --git a/res/steamworks/133b/headers/isteamuserstats.h b/res/steamworks/133b/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/133b/headers/isteamuserstats.h rename to res/steamworks/133b/headers/steam/isteamuserstats.h diff --git a/res/steamworks/133b/headers/isteamutils.h b/res/steamworks/133b/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/133b/headers/isteamutils.h rename to res/steamworks/133b/headers/steam/isteamutils.h diff --git a/res/steamworks/133b/headers/isteamvideo.h b/res/steamworks/133b/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/133b/headers/isteamvideo.h rename to res/steamworks/133b/headers/steam/isteamvideo.h diff --git a/res/steamworks/133b/headers/matchmakingtypes.h b/res/steamworks/133b/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/133b/headers/matchmakingtypes.h rename to res/steamworks/133b/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/133b/headers/steam_api.h b/res/steamworks/133b/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/133b/headers/steam_api.h rename to res/steamworks/133b/headers/steam/steam_api.h diff --git a/res/steamworks/133b/headers/steam_api_flat.h b/res/steamworks/133b/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/133b/headers/steam_api_flat.h rename to res/steamworks/133b/headers/steam/steam_api_flat.h diff --git a/res/steamworks/133b/headers/steam_gameserver.h b/res/steamworks/133b/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/133b/headers/steam_gameserver.h rename to res/steamworks/133b/headers/steam/steam_gameserver.h diff --git a/res/steamworks/133b/headers/steamclientpublic.h b/res/steamworks/133b/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/133b/headers/steamclientpublic.h rename to res/steamworks/133b/headers/steam/steamclientpublic.h diff --git a/res/steamworks/133b/headers/steamencryptedappticket.h b/res/steamworks/133b/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/133b/headers/steamencryptedappticket.h rename to res/steamworks/133b/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/133b/headers/steamhttpenums.h b/res/steamworks/133b/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/133b/headers/steamhttpenums.h rename to res/steamworks/133b/headers/steam/steamhttpenums.h diff --git a/res/steamworks/133b/headers/steamps3params.h b/res/steamworks/133b/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/133b/headers/steamps3params.h rename to res/steamworks/133b/headers/steam/steamps3params.h diff --git a/res/steamworks/133b/headers/steamtypes.h b/res/steamworks/133b/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/133b/headers/steamtypes.h rename to res/steamworks/133b/headers/steam/steamtypes.h diff --git a/res/steamworks/133b/headers/steamuniverse.h b/res/steamworks/133b/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/133b/headers/steamuniverse.h rename to res/steamworks/133b/headers/steam/steamuniverse.h diff --git a/res/steamworks/134/headers/isteamapplist.h b/res/steamworks/134/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/134/headers/isteamapplist.h rename to res/steamworks/134/headers/steam/isteamapplist.h diff --git a/res/steamworks/134/headers/isteamapps.h b/res/steamworks/134/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/134/headers/isteamapps.h rename to res/steamworks/134/headers/steam/isteamapps.h diff --git a/res/steamworks/134/headers/isteamappticket.h b/res/steamworks/134/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/134/headers/isteamappticket.h rename to res/steamworks/134/headers/steam/isteamappticket.h diff --git a/res/steamworks/134/headers/isteamclient.h b/res/steamworks/134/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/134/headers/isteamclient.h rename to res/steamworks/134/headers/steam/isteamclient.h diff --git a/res/steamworks/134/headers/isteamcontroller.h b/res/steamworks/134/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/134/headers/isteamcontroller.h rename to res/steamworks/134/headers/steam/isteamcontroller.h diff --git a/res/steamworks/134/headers/isteamfriends.h b/res/steamworks/134/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/134/headers/isteamfriends.h rename to res/steamworks/134/headers/steam/isteamfriends.h diff --git a/res/steamworks/134/headers/isteamgamecoordinator.h b/res/steamworks/134/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/134/headers/isteamgamecoordinator.h rename to res/steamworks/134/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/134/headers/isteamgameserver.h b/res/steamworks/134/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/134/headers/isteamgameserver.h rename to res/steamworks/134/headers/steam/isteamgameserver.h diff --git a/res/steamworks/134/headers/isteamgameserverstats.h b/res/steamworks/134/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/134/headers/isteamgameserverstats.h rename to res/steamworks/134/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/134/headers/isteamhtmlsurface.h b/res/steamworks/134/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/134/headers/isteamhtmlsurface.h rename to res/steamworks/134/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/134/headers/isteamhttp.h b/res/steamworks/134/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/134/headers/isteamhttp.h rename to res/steamworks/134/headers/steam/isteamhttp.h diff --git a/res/steamworks/134/headers/isteaminventory.h b/res/steamworks/134/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/134/headers/isteaminventory.h rename to res/steamworks/134/headers/steam/isteaminventory.h diff --git a/res/steamworks/134/headers/isteammasterserverupdater.h b/res/steamworks/134/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/134/headers/isteammasterserverupdater.h rename to res/steamworks/134/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/134/headers/isteammatchmaking.h b/res/steamworks/134/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/134/headers/isteammatchmaking.h rename to res/steamworks/134/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/134/headers/isteammusic.h b/res/steamworks/134/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/134/headers/isteammusic.h rename to res/steamworks/134/headers/steam/isteammusic.h diff --git a/res/steamworks/134/headers/isteammusicremote.h b/res/steamworks/134/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/134/headers/isteammusicremote.h rename to res/steamworks/134/headers/steam/isteammusicremote.h diff --git a/res/steamworks/134/headers/isteamnetworking.h b/res/steamworks/134/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/134/headers/isteamnetworking.h rename to res/steamworks/134/headers/steam/isteamnetworking.h diff --git a/res/steamworks/134/headers/isteamps3overlayrenderer.h b/res/steamworks/134/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/134/headers/isteamps3overlayrenderer.h rename to res/steamworks/134/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/134/headers/isteamremotestorage.h b/res/steamworks/134/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/134/headers/isteamremotestorage.h rename to res/steamworks/134/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/134/headers/isteamscreenshots.h b/res/steamworks/134/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/134/headers/isteamscreenshots.h rename to res/steamworks/134/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/134/headers/isteamugc.h b/res/steamworks/134/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/134/headers/isteamugc.h rename to res/steamworks/134/headers/steam/isteamugc.h diff --git a/res/steamworks/134/headers/isteamunifiedmessages.h b/res/steamworks/134/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/134/headers/isteamunifiedmessages.h rename to res/steamworks/134/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/134/headers/isteamuser.h b/res/steamworks/134/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/134/headers/isteamuser.h rename to res/steamworks/134/headers/steam/isteamuser.h diff --git a/res/steamworks/134/headers/isteamuserstats.h b/res/steamworks/134/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/134/headers/isteamuserstats.h rename to res/steamworks/134/headers/steam/isteamuserstats.h diff --git a/res/steamworks/134/headers/isteamutils.h b/res/steamworks/134/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/134/headers/isteamutils.h rename to res/steamworks/134/headers/steam/isteamutils.h diff --git a/res/steamworks/134/headers/isteamvideo.h b/res/steamworks/134/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/134/headers/isteamvideo.h rename to res/steamworks/134/headers/steam/isteamvideo.h diff --git a/res/steamworks/134/headers/matchmakingtypes.h b/res/steamworks/134/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/134/headers/matchmakingtypes.h rename to res/steamworks/134/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/134/headers/steam_api.h b/res/steamworks/134/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/134/headers/steam_api.h rename to res/steamworks/134/headers/steam/steam_api.h diff --git a/res/steamworks/134/headers/steam_api_flat.h b/res/steamworks/134/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/134/headers/steam_api_flat.h rename to res/steamworks/134/headers/steam/steam_api_flat.h diff --git a/res/steamworks/134/headers/steam_gameserver.h b/res/steamworks/134/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/134/headers/steam_gameserver.h rename to res/steamworks/134/headers/steam/steam_gameserver.h diff --git a/res/steamworks/134/headers/steamclientpublic.h b/res/steamworks/134/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/134/headers/steamclientpublic.h rename to res/steamworks/134/headers/steam/steamclientpublic.h diff --git a/res/steamworks/134/headers/steamencryptedappticket.h b/res/steamworks/134/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/134/headers/steamencryptedappticket.h rename to res/steamworks/134/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/134/headers/steamhttpenums.h b/res/steamworks/134/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/134/headers/steamhttpenums.h rename to res/steamworks/134/headers/steam/steamhttpenums.h diff --git a/res/steamworks/134/headers/steamps3params.h b/res/steamworks/134/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/134/headers/steamps3params.h rename to res/steamworks/134/headers/steam/steamps3params.h diff --git a/res/steamworks/134/headers/steamtypes.h b/res/steamworks/134/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/134/headers/steamtypes.h rename to res/steamworks/134/headers/steam/steamtypes.h diff --git a/res/steamworks/134/headers/steamuniverse.h b/res/steamworks/134/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/134/headers/steamuniverse.h rename to res/steamworks/134/headers/steam/steamuniverse.h diff --git a/res/steamworks/135/headers/isteamapplist.h b/res/steamworks/135/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/135/headers/isteamapplist.h rename to res/steamworks/135/headers/steam/isteamapplist.h diff --git a/res/steamworks/135/headers/isteamapps.h b/res/steamworks/135/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/135/headers/isteamapps.h rename to res/steamworks/135/headers/steam/isteamapps.h diff --git a/res/steamworks/135/headers/isteamappticket.h b/res/steamworks/135/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/135/headers/isteamappticket.h rename to res/steamworks/135/headers/steam/isteamappticket.h diff --git a/res/steamworks/135/headers/isteamclient.h b/res/steamworks/135/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/135/headers/isteamclient.h rename to res/steamworks/135/headers/steam/isteamclient.h diff --git a/res/steamworks/135/headers/isteamcontroller.h b/res/steamworks/135/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/135/headers/isteamcontroller.h rename to res/steamworks/135/headers/steam/isteamcontroller.h diff --git a/res/steamworks/135/headers/isteamfriends.h b/res/steamworks/135/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/135/headers/isteamfriends.h rename to res/steamworks/135/headers/steam/isteamfriends.h diff --git a/res/steamworks/135/headers/isteamgamecoordinator.h b/res/steamworks/135/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/135/headers/isteamgamecoordinator.h rename to res/steamworks/135/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/135/headers/isteamgameserver.h b/res/steamworks/135/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/135/headers/isteamgameserver.h rename to res/steamworks/135/headers/steam/isteamgameserver.h diff --git a/res/steamworks/135/headers/isteamgameserverstats.h b/res/steamworks/135/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/135/headers/isteamgameserverstats.h rename to res/steamworks/135/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/135/headers/isteamhtmlsurface.h b/res/steamworks/135/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/135/headers/isteamhtmlsurface.h rename to res/steamworks/135/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/135/headers/isteamhttp.h b/res/steamworks/135/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/135/headers/isteamhttp.h rename to res/steamworks/135/headers/steam/isteamhttp.h diff --git a/res/steamworks/135/headers/isteaminventory.h b/res/steamworks/135/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/135/headers/isteaminventory.h rename to res/steamworks/135/headers/steam/isteaminventory.h diff --git a/res/steamworks/135/headers/isteammasterserverupdater.h b/res/steamworks/135/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/135/headers/isteammasterserverupdater.h rename to res/steamworks/135/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/135/headers/isteammatchmaking.h b/res/steamworks/135/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/135/headers/isteammatchmaking.h rename to res/steamworks/135/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/135/headers/isteammusic.h b/res/steamworks/135/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/135/headers/isteammusic.h rename to res/steamworks/135/headers/steam/isteammusic.h diff --git a/res/steamworks/135/headers/isteammusicremote.h b/res/steamworks/135/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/135/headers/isteammusicremote.h rename to res/steamworks/135/headers/steam/isteammusicremote.h diff --git a/res/steamworks/135/headers/isteamnetworking.h b/res/steamworks/135/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/135/headers/isteamnetworking.h rename to res/steamworks/135/headers/steam/isteamnetworking.h diff --git a/res/steamworks/135/headers/isteamps3overlayrenderer.h b/res/steamworks/135/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/135/headers/isteamps3overlayrenderer.h rename to res/steamworks/135/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/135/headers/isteamremotestorage.h b/res/steamworks/135/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/135/headers/isteamremotestorage.h rename to res/steamworks/135/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/135/headers/isteamscreenshots.h b/res/steamworks/135/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/135/headers/isteamscreenshots.h rename to res/steamworks/135/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/135/headers/isteamugc.h b/res/steamworks/135/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/135/headers/isteamugc.h rename to res/steamworks/135/headers/steam/isteamugc.h diff --git a/res/steamworks/135/headers/isteamunifiedmessages.h b/res/steamworks/135/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/135/headers/isteamunifiedmessages.h rename to res/steamworks/135/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/135/headers/isteamuser.h b/res/steamworks/135/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/135/headers/isteamuser.h rename to res/steamworks/135/headers/steam/isteamuser.h diff --git a/res/steamworks/135/headers/isteamuserstats.h b/res/steamworks/135/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/135/headers/isteamuserstats.h rename to res/steamworks/135/headers/steam/isteamuserstats.h diff --git a/res/steamworks/135/headers/isteamutils.h b/res/steamworks/135/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/135/headers/isteamutils.h rename to res/steamworks/135/headers/steam/isteamutils.h diff --git a/res/steamworks/135/headers/isteamvideo.h b/res/steamworks/135/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/135/headers/isteamvideo.h rename to res/steamworks/135/headers/steam/isteamvideo.h diff --git a/res/steamworks/135/headers/matchmakingtypes.h b/res/steamworks/135/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/135/headers/matchmakingtypes.h rename to res/steamworks/135/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/135/headers/steam_api.h b/res/steamworks/135/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/135/headers/steam_api.h rename to res/steamworks/135/headers/steam/steam_api.h diff --git a/res/steamworks/135/headers/steam_api_flat.h b/res/steamworks/135/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/135/headers/steam_api_flat.h rename to res/steamworks/135/headers/steam/steam_api_flat.h diff --git a/res/steamworks/135/headers/steam_gameserver.h b/res/steamworks/135/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/135/headers/steam_gameserver.h rename to res/steamworks/135/headers/steam/steam_gameserver.h diff --git a/res/steamworks/135/headers/steamclientpublic.h b/res/steamworks/135/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/135/headers/steamclientpublic.h rename to res/steamworks/135/headers/steam/steamclientpublic.h diff --git a/res/steamworks/135/headers/steamencryptedappticket.h b/res/steamworks/135/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/135/headers/steamencryptedappticket.h rename to res/steamworks/135/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/135/headers/steamhttpenums.h b/res/steamworks/135/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/135/headers/steamhttpenums.h rename to res/steamworks/135/headers/steam/steamhttpenums.h diff --git a/res/steamworks/135/headers/steamps3params.h b/res/steamworks/135/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/135/headers/steamps3params.h rename to res/steamworks/135/headers/steam/steamps3params.h diff --git a/res/steamworks/135/headers/steamtypes.h b/res/steamworks/135/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/135/headers/steamtypes.h rename to res/steamworks/135/headers/steam/steamtypes.h diff --git a/res/steamworks/135/headers/steamuniverse.h b/res/steamworks/135/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/135/headers/steamuniverse.h rename to res/steamworks/135/headers/steam/steamuniverse.h diff --git a/res/steamworks/135a/headers/isteamapplist.h b/res/steamworks/135a/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/135a/headers/isteamapplist.h rename to res/steamworks/135a/headers/steam/isteamapplist.h diff --git a/res/steamworks/135a/headers/isteamapps.h b/res/steamworks/135a/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/135a/headers/isteamapps.h rename to res/steamworks/135a/headers/steam/isteamapps.h diff --git a/res/steamworks/135a/headers/isteamappticket.h b/res/steamworks/135a/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/135a/headers/isteamappticket.h rename to res/steamworks/135a/headers/steam/isteamappticket.h diff --git a/res/steamworks/135a/headers/isteamclient.h b/res/steamworks/135a/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/135a/headers/isteamclient.h rename to res/steamworks/135a/headers/steam/isteamclient.h diff --git a/res/steamworks/135a/headers/isteamcontroller.h b/res/steamworks/135a/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/135a/headers/isteamcontroller.h rename to res/steamworks/135a/headers/steam/isteamcontroller.h diff --git a/res/steamworks/135a/headers/isteamfriends.h b/res/steamworks/135a/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/135a/headers/isteamfriends.h rename to res/steamworks/135a/headers/steam/isteamfriends.h diff --git a/res/steamworks/135a/headers/isteamgamecoordinator.h b/res/steamworks/135a/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/135a/headers/isteamgamecoordinator.h rename to res/steamworks/135a/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/135a/headers/isteamgameserver.h b/res/steamworks/135a/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/135a/headers/isteamgameserver.h rename to res/steamworks/135a/headers/steam/isteamgameserver.h diff --git a/res/steamworks/135a/headers/isteamgameserverstats.h b/res/steamworks/135a/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/135a/headers/isteamgameserverstats.h rename to res/steamworks/135a/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/135a/headers/isteamhtmlsurface.h b/res/steamworks/135a/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/135a/headers/isteamhtmlsurface.h rename to res/steamworks/135a/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/135a/headers/isteamhttp.h b/res/steamworks/135a/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/135a/headers/isteamhttp.h rename to res/steamworks/135a/headers/steam/isteamhttp.h diff --git a/res/steamworks/135a/headers/isteaminventory.h b/res/steamworks/135a/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/135a/headers/isteaminventory.h rename to res/steamworks/135a/headers/steam/isteaminventory.h diff --git a/res/steamworks/135a/headers/isteammasterserverupdater.h b/res/steamworks/135a/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/135a/headers/isteammasterserverupdater.h rename to res/steamworks/135a/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/135a/headers/isteammatchmaking.h b/res/steamworks/135a/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/135a/headers/isteammatchmaking.h rename to res/steamworks/135a/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/135a/headers/isteammusic.h b/res/steamworks/135a/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/135a/headers/isteammusic.h rename to res/steamworks/135a/headers/steam/isteammusic.h diff --git a/res/steamworks/135a/headers/isteammusicremote.h b/res/steamworks/135a/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/135a/headers/isteammusicremote.h rename to res/steamworks/135a/headers/steam/isteammusicremote.h diff --git a/res/steamworks/135a/headers/isteamnetworking.h b/res/steamworks/135a/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/135a/headers/isteamnetworking.h rename to res/steamworks/135a/headers/steam/isteamnetworking.h diff --git a/res/steamworks/135a/headers/isteamps3overlayrenderer.h b/res/steamworks/135a/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/135a/headers/isteamps3overlayrenderer.h rename to res/steamworks/135a/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/135a/headers/isteamremotestorage.h b/res/steamworks/135a/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/135a/headers/isteamremotestorage.h rename to res/steamworks/135a/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/135a/headers/isteamscreenshots.h b/res/steamworks/135a/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/135a/headers/isteamscreenshots.h rename to res/steamworks/135a/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/135a/headers/isteamugc.h b/res/steamworks/135a/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/135a/headers/isteamugc.h rename to res/steamworks/135a/headers/steam/isteamugc.h diff --git a/res/steamworks/135a/headers/isteamunifiedmessages.h b/res/steamworks/135a/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/135a/headers/isteamunifiedmessages.h rename to res/steamworks/135a/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/135a/headers/isteamuser.h b/res/steamworks/135a/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/135a/headers/isteamuser.h rename to res/steamworks/135a/headers/steam/isteamuser.h diff --git a/res/steamworks/135a/headers/isteamuserstats.h b/res/steamworks/135a/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/135a/headers/isteamuserstats.h rename to res/steamworks/135a/headers/steam/isteamuserstats.h diff --git a/res/steamworks/135a/headers/isteamutils.h b/res/steamworks/135a/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/135a/headers/isteamutils.h rename to res/steamworks/135a/headers/steam/isteamutils.h diff --git a/res/steamworks/135a/headers/isteamvideo.h b/res/steamworks/135a/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/135a/headers/isteamvideo.h rename to res/steamworks/135a/headers/steam/isteamvideo.h diff --git a/res/steamworks/135a/headers/matchmakingtypes.h b/res/steamworks/135a/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/135a/headers/matchmakingtypes.h rename to res/steamworks/135a/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/135a/headers/steam_api.h b/res/steamworks/135a/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/135a/headers/steam_api.h rename to res/steamworks/135a/headers/steam/steam_api.h diff --git a/res/steamworks/135a/headers/steam_api_flat.h b/res/steamworks/135a/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/135a/headers/steam_api_flat.h rename to res/steamworks/135a/headers/steam/steam_api_flat.h diff --git a/res/steamworks/135a/headers/steam_gameserver.h b/res/steamworks/135a/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/135a/headers/steam_gameserver.h rename to res/steamworks/135a/headers/steam/steam_gameserver.h diff --git a/res/steamworks/135a/headers/steamclientpublic.h b/res/steamworks/135a/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/135a/headers/steamclientpublic.h rename to res/steamworks/135a/headers/steam/steamclientpublic.h diff --git a/res/steamworks/135a/headers/steamencryptedappticket.h b/res/steamworks/135a/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/135a/headers/steamencryptedappticket.h rename to res/steamworks/135a/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/135a/headers/steamhttpenums.h b/res/steamworks/135a/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/135a/headers/steamhttpenums.h rename to res/steamworks/135a/headers/steam/steamhttpenums.h diff --git a/res/steamworks/135a/headers/steamps3params.h b/res/steamworks/135a/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/135a/headers/steamps3params.h rename to res/steamworks/135a/headers/steam/steamps3params.h diff --git a/res/steamworks/135a/headers/steamtypes.h b/res/steamworks/135a/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/135a/headers/steamtypes.h rename to res/steamworks/135a/headers/steam/steamtypes.h diff --git a/res/steamworks/135a/headers/steamuniverse.h b/res/steamworks/135a/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/135a/headers/steamuniverse.h rename to res/steamworks/135a/headers/steam/steamuniverse.h diff --git a/res/steamworks/136/headers/isteamapplist.h b/res/steamworks/136/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/136/headers/isteamapplist.h rename to res/steamworks/136/headers/steam/isteamapplist.h diff --git a/res/steamworks/136/headers/isteamapps.h b/res/steamworks/136/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/136/headers/isteamapps.h rename to res/steamworks/136/headers/steam/isteamapps.h diff --git a/res/steamworks/136/headers/isteamappticket.h b/res/steamworks/136/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/136/headers/isteamappticket.h rename to res/steamworks/136/headers/steam/isteamappticket.h diff --git a/res/steamworks/136/headers/isteamclient.h b/res/steamworks/136/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/136/headers/isteamclient.h rename to res/steamworks/136/headers/steam/isteamclient.h diff --git a/res/steamworks/136/headers/isteamcontroller.h b/res/steamworks/136/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/136/headers/isteamcontroller.h rename to res/steamworks/136/headers/steam/isteamcontroller.h diff --git a/res/steamworks/136/headers/isteamfriends.h b/res/steamworks/136/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/136/headers/isteamfriends.h rename to res/steamworks/136/headers/steam/isteamfriends.h diff --git a/res/steamworks/136/headers/isteamgamecoordinator.h b/res/steamworks/136/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/136/headers/isteamgamecoordinator.h rename to res/steamworks/136/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/136/headers/isteamgameserver.h b/res/steamworks/136/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/136/headers/isteamgameserver.h rename to res/steamworks/136/headers/steam/isteamgameserver.h diff --git a/res/steamworks/136/headers/isteamgameserverstats.h b/res/steamworks/136/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/136/headers/isteamgameserverstats.h rename to res/steamworks/136/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/136/headers/isteamhtmlsurface.h b/res/steamworks/136/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/136/headers/isteamhtmlsurface.h rename to res/steamworks/136/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/136/headers/isteamhttp.h b/res/steamworks/136/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/136/headers/isteamhttp.h rename to res/steamworks/136/headers/steam/isteamhttp.h diff --git a/res/steamworks/136/headers/isteaminventory.h b/res/steamworks/136/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/136/headers/isteaminventory.h rename to res/steamworks/136/headers/steam/isteaminventory.h diff --git a/res/steamworks/136/headers/isteammasterserverupdater.h b/res/steamworks/136/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/136/headers/isteammasterserverupdater.h rename to res/steamworks/136/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/136/headers/isteammatchmaking.h b/res/steamworks/136/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/136/headers/isteammatchmaking.h rename to res/steamworks/136/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/136/headers/isteammusic.h b/res/steamworks/136/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/136/headers/isteammusic.h rename to res/steamworks/136/headers/steam/isteammusic.h diff --git a/res/steamworks/136/headers/isteammusicremote.h b/res/steamworks/136/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/136/headers/isteammusicremote.h rename to res/steamworks/136/headers/steam/isteammusicremote.h diff --git a/res/steamworks/136/headers/isteamnetworking.h b/res/steamworks/136/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/136/headers/isteamnetworking.h rename to res/steamworks/136/headers/steam/isteamnetworking.h diff --git a/res/steamworks/136/headers/isteamps3overlayrenderer.h b/res/steamworks/136/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/136/headers/isteamps3overlayrenderer.h rename to res/steamworks/136/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/136/headers/isteamremotestorage.h b/res/steamworks/136/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/136/headers/isteamremotestorage.h rename to res/steamworks/136/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/136/headers/isteamscreenshots.h b/res/steamworks/136/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/136/headers/isteamscreenshots.h rename to res/steamworks/136/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/136/headers/isteamugc.h b/res/steamworks/136/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/136/headers/isteamugc.h rename to res/steamworks/136/headers/steam/isteamugc.h diff --git a/res/steamworks/136/headers/isteamunifiedmessages.h b/res/steamworks/136/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/136/headers/isteamunifiedmessages.h rename to res/steamworks/136/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/136/headers/isteamuser.h b/res/steamworks/136/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/136/headers/isteamuser.h rename to res/steamworks/136/headers/steam/isteamuser.h diff --git a/res/steamworks/136/headers/isteamuserstats.h b/res/steamworks/136/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/136/headers/isteamuserstats.h rename to res/steamworks/136/headers/steam/isteamuserstats.h diff --git a/res/steamworks/136/headers/isteamutils.h b/res/steamworks/136/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/136/headers/isteamutils.h rename to res/steamworks/136/headers/steam/isteamutils.h diff --git a/res/steamworks/136/headers/isteamvideo.h b/res/steamworks/136/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/136/headers/isteamvideo.h rename to res/steamworks/136/headers/steam/isteamvideo.h diff --git a/res/steamworks/136/headers/matchmakingtypes.h b/res/steamworks/136/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/136/headers/matchmakingtypes.h rename to res/steamworks/136/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/136/headers/steam_api.h b/res/steamworks/136/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/136/headers/steam_api.h rename to res/steamworks/136/headers/steam/steam_api.h diff --git a/res/steamworks/136/headers/steam_api_flat.h b/res/steamworks/136/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/136/headers/steam_api_flat.h rename to res/steamworks/136/headers/steam/steam_api_flat.h diff --git a/res/steamworks/136/headers/steam_gameserver.h b/res/steamworks/136/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/136/headers/steam_gameserver.h rename to res/steamworks/136/headers/steam/steam_gameserver.h diff --git a/res/steamworks/136/headers/steamclientpublic.h b/res/steamworks/136/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/136/headers/steamclientpublic.h rename to res/steamworks/136/headers/steam/steamclientpublic.h diff --git a/res/steamworks/136/headers/steamencryptedappticket.h b/res/steamworks/136/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/136/headers/steamencryptedappticket.h rename to res/steamworks/136/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/136/headers/steamhttpenums.h b/res/steamworks/136/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/136/headers/steamhttpenums.h rename to res/steamworks/136/headers/steam/steamhttpenums.h diff --git a/res/steamworks/136/headers/steamps3params.h b/res/steamworks/136/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/136/headers/steamps3params.h rename to res/steamworks/136/headers/steam/steamps3params.h diff --git a/res/steamworks/136/headers/steamtypes.h b/res/steamworks/136/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/136/headers/steamtypes.h rename to res/steamworks/136/headers/steam/steamtypes.h diff --git a/res/steamworks/136/headers/steamuniverse.h b/res/steamworks/136/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/136/headers/steamuniverse.h rename to res/steamworks/136/headers/steam/steamuniverse.h diff --git a/res/steamworks/137/headers/isteamapplist.h b/res/steamworks/137/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/137/headers/isteamapplist.h rename to res/steamworks/137/headers/steam/isteamapplist.h diff --git a/res/steamworks/137/headers/isteamapps.h b/res/steamworks/137/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/137/headers/isteamapps.h rename to res/steamworks/137/headers/steam/isteamapps.h diff --git a/res/steamworks/137/headers/isteamappticket.h b/res/steamworks/137/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/137/headers/isteamappticket.h rename to res/steamworks/137/headers/steam/isteamappticket.h diff --git a/res/steamworks/137/headers/isteamclient.h b/res/steamworks/137/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/137/headers/isteamclient.h rename to res/steamworks/137/headers/steam/isteamclient.h diff --git a/res/steamworks/137/headers/isteamcontroller.h b/res/steamworks/137/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/137/headers/isteamcontroller.h rename to res/steamworks/137/headers/steam/isteamcontroller.h diff --git a/res/steamworks/137/headers/isteamfriends.h b/res/steamworks/137/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/137/headers/isteamfriends.h rename to res/steamworks/137/headers/steam/isteamfriends.h diff --git a/res/steamworks/137/headers/isteamgamecoordinator.h b/res/steamworks/137/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/137/headers/isteamgamecoordinator.h rename to res/steamworks/137/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/137/headers/isteamgameserver.h b/res/steamworks/137/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/137/headers/isteamgameserver.h rename to res/steamworks/137/headers/steam/isteamgameserver.h diff --git a/res/steamworks/137/headers/isteamgameserverstats.h b/res/steamworks/137/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/137/headers/isteamgameserverstats.h rename to res/steamworks/137/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/137/headers/isteamhtmlsurface.h b/res/steamworks/137/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/137/headers/isteamhtmlsurface.h rename to res/steamworks/137/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/137/headers/isteamhttp.h b/res/steamworks/137/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/137/headers/isteamhttp.h rename to res/steamworks/137/headers/steam/isteamhttp.h diff --git a/res/steamworks/137/headers/isteaminventory.h b/res/steamworks/137/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/137/headers/isteaminventory.h rename to res/steamworks/137/headers/steam/isteaminventory.h diff --git a/res/steamworks/137/headers/isteammasterserverupdater.h b/res/steamworks/137/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/137/headers/isteammasterserverupdater.h rename to res/steamworks/137/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/137/headers/isteammatchmaking.h b/res/steamworks/137/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/137/headers/isteammatchmaking.h rename to res/steamworks/137/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/137/headers/isteammusic.h b/res/steamworks/137/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/137/headers/isteammusic.h rename to res/steamworks/137/headers/steam/isteammusic.h diff --git a/res/steamworks/137/headers/isteammusicremote.h b/res/steamworks/137/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/137/headers/isteammusicremote.h rename to res/steamworks/137/headers/steam/isteammusicremote.h diff --git a/res/steamworks/137/headers/isteamnetworking.h b/res/steamworks/137/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/137/headers/isteamnetworking.h rename to res/steamworks/137/headers/steam/isteamnetworking.h diff --git a/res/steamworks/137/headers/isteamps3overlayrenderer.h b/res/steamworks/137/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/137/headers/isteamps3overlayrenderer.h rename to res/steamworks/137/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/137/headers/isteamremotestorage.h b/res/steamworks/137/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/137/headers/isteamremotestorage.h rename to res/steamworks/137/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/137/headers/isteamscreenshots.h b/res/steamworks/137/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/137/headers/isteamscreenshots.h rename to res/steamworks/137/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/137/headers/isteamugc.h b/res/steamworks/137/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/137/headers/isteamugc.h rename to res/steamworks/137/headers/steam/isteamugc.h diff --git a/res/steamworks/137/headers/isteamunifiedmessages.h b/res/steamworks/137/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/137/headers/isteamunifiedmessages.h rename to res/steamworks/137/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/137/headers/isteamuser.h b/res/steamworks/137/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/137/headers/isteamuser.h rename to res/steamworks/137/headers/steam/isteamuser.h diff --git a/res/steamworks/137/headers/isteamuserstats.h b/res/steamworks/137/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/137/headers/isteamuserstats.h rename to res/steamworks/137/headers/steam/isteamuserstats.h diff --git a/res/steamworks/137/headers/isteamutils.h b/res/steamworks/137/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/137/headers/isteamutils.h rename to res/steamworks/137/headers/steam/isteamutils.h diff --git a/res/steamworks/137/headers/isteamvideo.h b/res/steamworks/137/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/137/headers/isteamvideo.h rename to res/steamworks/137/headers/steam/isteamvideo.h diff --git a/res/steamworks/137/headers/matchmakingtypes.h b/res/steamworks/137/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/137/headers/matchmakingtypes.h rename to res/steamworks/137/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/137/headers/steam_api.h b/res/steamworks/137/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/137/headers/steam_api.h rename to res/steamworks/137/headers/steam/steam_api.h diff --git a/res/steamworks/137/headers/steam_api_flat.h b/res/steamworks/137/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/137/headers/steam_api_flat.h rename to res/steamworks/137/headers/steam/steam_api_flat.h diff --git a/res/steamworks/137/headers/steam_api_internal.h b/res/steamworks/137/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/137/headers/steam_api_internal.h rename to res/steamworks/137/headers/steam/steam_api_internal.h diff --git a/res/steamworks/137/headers/steam_gameserver.h b/res/steamworks/137/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/137/headers/steam_gameserver.h rename to res/steamworks/137/headers/steam/steam_gameserver.h diff --git a/res/steamworks/137/headers/steamclientpublic.h b/res/steamworks/137/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/137/headers/steamclientpublic.h rename to res/steamworks/137/headers/steam/steamclientpublic.h diff --git a/res/steamworks/137/headers/steamencryptedappticket.h b/res/steamworks/137/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/137/headers/steamencryptedappticket.h rename to res/steamworks/137/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/137/headers/steamhttpenums.h b/res/steamworks/137/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/137/headers/steamhttpenums.h rename to res/steamworks/137/headers/steam/steamhttpenums.h diff --git a/res/steamworks/137/headers/steamps3params.h b/res/steamworks/137/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/137/headers/steamps3params.h rename to res/steamworks/137/headers/steam/steamps3params.h diff --git a/res/steamworks/137/headers/steamtypes.h b/res/steamworks/137/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/137/headers/steamtypes.h rename to res/steamworks/137/headers/steam/steamtypes.h diff --git a/res/steamworks/137/headers/steamuniverse.h b/res/steamworks/137/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/137/headers/steamuniverse.h rename to res/steamworks/137/headers/steam/steamuniverse.h diff --git a/res/steamworks/138a/headers/isteamapplist.h b/res/steamworks/138a/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/138a/headers/isteamapplist.h rename to res/steamworks/138a/headers/steam/isteamapplist.h diff --git a/res/steamworks/138a/headers/isteamapps.h b/res/steamworks/138a/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/138a/headers/isteamapps.h rename to res/steamworks/138a/headers/steam/isteamapps.h diff --git a/res/steamworks/138a/headers/isteamappticket.h b/res/steamworks/138a/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/138a/headers/isteamappticket.h rename to res/steamworks/138a/headers/steam/isteamappticket.h diff --git a/res/steamworks/138a/headers/isteamclient.h b/res/steamworks/138a/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/138a/headers/isteamclient.h rename to res/steamworks/138a/headers/steam/isteamclient.h diff --git a/res/steamworks/138a/headers/isteamcontroller.h b/res/steamworks/138a/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/138a/headers/isteamcontroller.h rename to res/steamworks/138a/headers/steam/isteamcontroller.h diff --git a/res/steamworks/138a/headers/isteamfriends.h b/res/steamworks/138a/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/138a/headers/isteamfriends.h rename to res/steamworks/138a/headers/steam/isteamfriends.h diff --git a/res/steamworks/138a/headers/isteamgamecoordinator.h b/res/steamworks/138a/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/138a/headers/isteamgamecoordinator.h rename to res/steamworks/138a/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/138a/headers/isteamgameserver.h b/res/steamworks/138a/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/138a/headers/isteamgameserver.h rename to res/steamworks/138a/headers/steam/isteamgameserver.h diff --git a/res/steamworks/138a/headers/isteamgameserverstats.h b/res/steamworks/138a/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/138a/headers/isteamgameserverstats.h rename to res/steamworks/138a/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/138a/headers/isteamhtmlsurface.h b/res/steamworks/138a/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/138a/headers/isteamhtmlsurface.h rename to res/steamworks/138a/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/138a/headers/isteamhttp.h b/res/steamworks/138a/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/138a/headers/isteamhttp.h rename to res/steamworks/138a/headers/steam/isteamhttp.h diff --git a/res/steamworks/138a/headers/isteaminventory.h b/res/steamworks/138a/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/138a/headers/isteaminventory.h rename to res/steamworks/138a/headers/steam/isteaminventory.h diff --git a/res/steamworks/138a/headers/isteammasterserverupdater.h b/res/steamworks/138a/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/138a/headers/isteammasterserverupdater.h rename to res/steamworks/138a/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/138a/headers/isteammatchmaking.h b/res/steamworks/138a/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/138a/headers/isteammatchmaking.h rename to res/steamworks/138a/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/138a/headers/isteammusic.h b/res/steamworks/138a/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/138a/headers/isteammusic.h rename to res/steamworks/138a/headers/steam/isteammusic.h diff --git a/res/steamworks/138a/headers/isteammusicremote.h b/res/steamworks/138a/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/138a/headers/isteammusicremote.h rename to res/steamworks/138a/headers/steam/isteammusicremote.h diff --git a/res/steamworks/138a/headers/isteamnetworking.h b/res/steamworks/138a/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/138a/headers/isteamnetworking.h rename to res/steamworks/138a/headers/steam/isteamnetworking.h diff --git a/res/steamworks/138a/headers/isteamps3overlayrenderer.h b/res/steamworks/138a/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/138a/headers/isteamps3overlayrenderer.h rename to res/steamworks/138a/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/138a/headers/isteamremotestorage.h b/res/steamworks/138a/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/138a/headers/isteamremotestorage.h rename to res/steamworks/138a/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/138a/headers/isteamscreenshots.h b/res/steamworks/138a/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/138a/headers/isteamscreenshots.h rename to res/steamworks/138a/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/138a/headers/isteamugc.h b/res/steamworks/138a/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/138a/headers/isteamugc.h rename to res/steamworks/138a/headers/steam/isteamugc.h diff --git a/res/steamworks/138a/headers/isteamunifiedmessages.h b/res/steamworks/138a/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/138a/headers/isteamunifiedmessages.h rename to res/steamworks/138a/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/138a/headers/isteamuser.h b/res/steamworks/138a/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/138a/headers/isteamuser.h rename to res/steamworks/138a/headers/steam/isteamuser.h diff --git a/res/steamworks/138a/headers/isteamuserstats.h b/res/steamworks/138a/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/138a/headers/isteamuserstats.h rename to res/steamworks/138a/headers/steam/isteamuserstats.h diff --git a/res/steamworks/138a/headers/isteamutils.h b/res/steamworks/138a/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/138a/headers/isteamutils.h rename to res/steamworks/138a/headers/steam/isteamutils.h diff --git a/res/steamworks/138a/headers/isteamvideo.h b/res/steamworks/138a/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/138a/headers/isteamvideo.h rename to res/steamworks/138a/headers/steam/isteamvideo.h diff --git a/res/steamworks/138a/headers/matchmakingtypes.h b/res/steamworks/138a/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/138a/headers/matchmakingtypes.h rename to res/steamworks/138a/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/138a/headers/steam_api.h b/res/steamworks/138a/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/138a/headers/steam_api.h rename to res/steamworks/138a/headers/steam/steam_api.h diff --git a/res/steamworks/138a/headers/steam_api_flat.h b/res/steamworks/138a/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/138a/headers/steam_api_flat.h rename to res/steamworks/138a/headers/steam/steam_api_flat.h diff --git a/res/steamworks/138a/headers/steam_api_internal.h b/res/steamworks/138a/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/138a/headers/steam_api_internal.h rename to res/steamworks/138a/headers/steam/steam_api_internal.h diff --git a/res/steamworks/138a/headers/steam_gameserver.h b/res/steamworks/138a/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/138a/headers/steam_gameserver.h rename to res/steamworks/138a/headers/steam/steam_gameserver.h diff --git a/res/steamworks/138a/headers/steamclientpublic.h b/res/steamworks/138a/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/138a/headers/steamclientpublic.h rename to res/steamworks/138a/headers/steam/steamclientpublic.h diff --git a/res/steamworks/138a/headers/steamencryptedappticket.h b/res/steamworks/138a/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/138a/headers/steamencryptedappticket.h rename to res/steamworks/138a/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/138a/headers/steamhttpenums.h b/res/steamworks/138a/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/138a/headers/steamhttpenums.h rename to res/steamworks/138a/headers/steam/steamhttpenums.h diff --git a/res/steamworks/138a/headers/steamps3params.h b/res/steamworks/138a/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/138a/headers/steamps3params.h rename to res/steamworks/138a/headers/steam/steamps3params.h diff --git a/res/steamworks/138a/headers/steamtypes.h b/res/steamworks/138a/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/138a/headers/steamtypes.h rename to res/steamworks/138a/headers/steam/steamtypes.h diff --git a/res/steamworks/138a/headers/steamuniverse.h b/res/steamworks/138a/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/138a/headers/steamuniverse.h rename to res/steamworks/138a/headers/steam/steamuniverse.h diff --git a/res/steamworks/139/headers/isteamapplist.h b/res/steamworks/139/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/139/headers/isteamapplist.h rename to res/steamworks/139/headers/steam/isteamapplist.h diff --git a/res/steamworks/139/headers/isteamapps.h b/res/steamworks/139/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/139/headers/isteamapps.h rename to res/steamworks/139/headers/steam/isteamapps.h diff --git a/res/steamworks/139/headers/isteamappticket.h b/res/steamworks/139/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/139/headers/isteamappticket.h rename to res/steamworks/139/headers/steam/isteamappticket.h diff --git a/res/steamworks/139/headers/isteamclient.h b/res/steamworks/139/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/139/headers/isteamclient.h rename to res/steamworks/139/headers/steam/isteamclient.h diff --git a/res/steamworks/139/headers/isteamcontroller.h b/res/steamworks/139/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/139/headers/isteamcontroller.h rename to res/steamworks/139/headers/steam/isteamcontroller.h diff --git a/res/steamworks/139/headers/isteamfriends.h b/res/steamworks/139/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/139/headers/isteamfriends.h rename to res/steamworks/139/headers/steam/isteamfriends.h diff --git a/res/steamworks/139/headers/isteamgamecoordinator.h b/res/steamworks/139/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/139/headers/isteamgamecoordinator.h rename to res/steamworks/139/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/139/headers/isteamgameserver.h b/res/steamworks/139/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/139/headers/isteamgameserver.h rename to res/steamworks/139/headers/steam/isteamgameserver.h diff --git a/res/steamworks/139/headers/isteamgameserverstats.h b/res/steamworks/139/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/139/headers/isteamgameserverstats.h rename to res/steamworks/139/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/139/headers/isteamhtmlsurface.h b/res/steamworks/139/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/139/headers/isteamhtmlsurface.h rename to res/steamworks/139/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/139/headers/isteamhttp.h b/res/steamworks/139/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/139/headers/isteamhttp.h rename to res/steamworks/139/headers/steam/isteamhttp.h diff --git a/res/steamworks/139/headers/isteaminventory.h b/res/steamworks/139/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/139/headers/isteaminventory.h rename to res/steamworks/139/headers/steam/isteaminventory.h diff --git a/res/steamworks/139/headers/isteammasterserverupdater.h b/res/steamworks/139/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/139/headers/isteammasterserverupdater.h rename to res/steamworks/139/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/139/headers/isteammatchmaking.h b/res/steamworks/139/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/139/headers/isteammatchmaking.h rename to res/steamworks/139/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/139/headers/isteammusic.h b/res/steamworks/139/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/139/headers/isteammusic.h rename to res/steamworks/139/headers/steam/isteammusic.h diff --git a/res/steamworks/139/headers/isteammusicremote.h b/res/steamworks/139/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/139/headers/isteammusicremote.h rename to res/steamworks/139/headers/steam/isteammusicremote.h diff --git a/res/steamworks/139/headers/isteamnetworking.h b/res/steamworks/139/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/139/headers/isteamnetworking.h rename to res/steamworks/139/headers/steam/isteamnetworking.h diff --git a/res/steamworks/139/headers/isteamps3overlayrenderer.h b/res/steamworks/139/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/139/headers/isteamps3overlayrenderer.h rename to res/steamworks/139/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/139/headers/isteamremotestorage.h b/res/steamworks/139/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/139/headers/isteamremotestorage.h rename to res/steamworks/139/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/139/headers/isteamscreenshots.h b/res/steamworks/139/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/139/headers/isteamscreenshots.h rename to res/steamworks/139/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/139/headers/isteamugc.h b/res/steamworks/139/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/139/headers/isteamugc.h rename to res/steamworks/139/headers/steam/isteamugc.h diff --git a/res/steamworks/139/headers/isteamunifiedmessages.h b/res/steamworks/139/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/139/headers/isteamunifiedmessages.h rename to res/steamworks/139/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/139/headers/isteamuser.h b/res/steamworks/139/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/139/headers/isteamuser.h rename to res/steamworks/139/headers/steam/isteamuser.h diff --git a/res/steamworks/139/headers/isteamuserstats.h b/res/steamworks/139/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/139/headers/isteamuserstats.h rename to res/steamworks/139/headers/steam/isteamuserstats.h diff --git a/res/steamworks/139/headers/isteamutils.h b/res/steamworks/139/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/139/headers/isteamutils.h rename to res/steamworks/139/headers/steam/isteamutils.h diff --git a/res/steamworks/139/headers/isteamvideo.h b/res/steamworks/139/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/139/headers/isteamvideo.h rename to res/steamworks/139/headers/steam/isteamvideo.h diff --git a/res/steamworks/139/headers/matchmakingtypes.h b/res/steamworks/139/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/139/headers/matchmakingtypes.h rename to res/steamworks/139/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/139/headers/steam_api.h b/res/steamworks/139/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/139/headers/steam_api.h rename to res/steamworks/139/headers/steam/steam_api.h diff --git a/res/steamworks/139/headers/steam_api_flat.h b/res/steamworks/139/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/139/headers/steam_api_flat.h rename to res/steamworks/139/headers/steam/steam_api_flat.h diff --git a/res/steamworks/139/headers/steam_api_internal.h b/res/steamworks/139/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/139/headers/steam_api_internal.h rename to res/steamworks/139/headers/steam/steam_api_internal.h diff --git a/res/steamworks/139/headers/steam_gameserver.h b/res/steamworks/139/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/139/headers/steam_gameserver.h rename to res/steamworks/139/headers/steam/steam_gameserver.h diff --git a/res/steamworks/139/headers/steamclientpublic.h b/res/steamworks/139/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/139/headers/steamclientpublic.h rename to res/steamworks/139/headers/steam/steamclientpublic.h diff --git a/res/steamworks/139/headers/steamencryptedappticket.h b/res/steamworks/139/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/139/headers/steamencryptedappticket.h rename to res/steamworks/139/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/139/headers/steamhttpenums.h b/res/steamworks/139/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/139/headers/steamhttpenums.h rename to res/steamworks/139/headers/steam/steamhttpenums.h diff --git a/res/steamworks/139/headers/steamps3params.h b/res/steamworks/139/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/139/headers/steamps3params.h rename to res/steamworks/139/headers/steam/steamps3params.h diff --git a/res/steamworks/139/headers/steamtypes.h b/res/steamworks/139/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/139/headers/steamtypes.h rename to res/steamworks/139/headers/steam/steamtypes.h diff --git a/res/steamworks/139/headers/steamuniverse.h b/res/steamworks/139/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/139/headers/steamuniverse.h rename to res/steamworks/139/headers/steam/steamuniverse.h diff --git a/res/steamworks/140/headers/isteamapplist.h b/res/steamworks/140/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/140/headers/isteamapplist.h rename to res/steamworks/140/headers/steam/isteamapplist.h diff --git a/res/steamworks/140/headers/isteamapps.h b/res/steamworks/140/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/140/headers/isteamapps.h rename to res/steamworks/140/headers/steam/isteamapps.h diff --git a/res/steamworks/140/headers/isteamappticket.h b/res/steamworks/140/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/140/headers/isteamappticket.h rename to res/steamworks/140/headers/steam/isteamappticket.h diff --git a/res/steamworks/140/headers/isteamclient.h b/res/steamworks/140/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/140/headers/isteamclient.h rename to res/steamworks/140/headers/steam/isteamclient.h diff --git a/res/steamworks/140/headers/isteamcontroller.h b/res/steamworks/140/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/140/headers/isteamcontroller.h rename to res/steamworks/140/headers/steam/isteamcontroller.h diff --git a/res/steamworks/140/headers/isteamfriends.h b/res/steamworks/140/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/140/headers/isteamfriends.h rename to res/steamworks/140/headers/steam/isteamfriends.h diff --git a/res/steamworks/140/headers/isteamgamecoordinator.h b/res/steamworks/140/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/140/headers/isteamgamecoordinator.h rename to res/steamworks/140/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/140/headers/isteamgameserver.h b/res/steamworks/140/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/140/headers/isteamgameserver.h rename to res/steamworks/140/headers/steam/isteamgameserver.h diff --git a/res/steamworks/140/headers/isteamgameserverstats.h b/res/steamworks/140/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/140/headers/isteamgameserverstats.h rename to res/steamworks/140/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/140/headers/isteamhtmlsurface.h b/res/steamworks/140/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/140/headers/isteamhtmlsurface.h rename to res/steamworks/140/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/140/headers/isteamhttp.h b/res/steamworks/140/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/140/headers/isteamhttp.h rename to res/steamworks/140/headers/steam/isteamhttp.h diff --git a/res/steamworks/140/headers/isteaminventory.h b/res/steamworks/140/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/140/headers/isteaminventory.h rename to res/steamworks/140/headers/steam/isteaminventory.h diff --git a/res/steamworks/140/headers/isteammasterserverupdater.h b/res/steamworks/140/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/140/headers/isteammasterserverupdater.h rename to res/steamworks/140/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/140/headers/isteammatchmaking.h b/res/steamworks/140/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/140/headers/isteammatchmaking.h rename to res/steamworks/140/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/140/headers/isteammusic.h b/res/steamworks/140/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/140/headers/isteammusic.h rename to res/steamworks/140/headers/steam/isteammusic.h diff --git a/res/steamworks/140/headers/isteammusicremote.h b/res/steamworks/140/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/140/headers/isteammusicremote.h rename to res/steamworks/140/headers/steam/isteammusicremote.h diff --git a/res/steamworks/140/headers/isteamnetworking.h b/res/steamworks/140/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/140/headers/isteamnetworking.h rename to res/steamworks/140/headers/steam/isteamnetworking.h diff --git a/res/steamworks/140/headers/isteamps3overlayrenderer.h b/res/steamworks/140/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/140/headers/isteamps3overlayrenderer.h rename to res/steamworks/140/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/140/headers/isteamremotestorage.h b/res/steamworks/140/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/140/headers/isteamremotestorage.h rename to res/steamworks/140/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/140/headers/isteamscreenshots.h b/res/steamworks/140/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/140/headers/isteamscreenshots.h rename to res/steamworks/140/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/140/headers/isteamugc.h b/res/steamworks/140/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/140/headers/isteamugc.h rename to res/steamworks/140/headers/steam/isteamugc.h diff --git a/res/steamworks/140/headers/isteamunifiedmessages.h b/res/steamworks/140/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/140/headers/isteamunifiedmessages.h rename to res/steamworks/140/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/140/headers/isteamuser.h b/res/steamworks/140/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/140/headers/isteamuser.h rename to res/steamworks/140/headers/steam/isteamuser.h diff --git a/res/steamworks/140/headers/isteamuserstats.h b/res/steamworks/140/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/140/headers/isteamuserstats.h rename to res/steamworks/140/headers/steam/isteamuserstats.h diff --git a/res/steamworks/140/headers/isteamutils.h b/res/steamworks/140/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/140/headers/isteamutils.h rename to res/steamworks/140/headers/steam/isteamutils.h diff --git a/res/steamworks/140/headers/isteamvideo.h b/res/steamworks/140/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/140/headers/isteamvideo.h rename to res/steamworks/140/headers/steam/isteamvideo.h diff --git a/res/steamworks/140/headers/matchmakingtypes.h b/res/steamworks/140/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/140/headers/matchmakingtypes.h rename to res/steamworks/140/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/140/headers/steam_api.h b/res/steamworks/140/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/140/headers/steam_api.h rename to res/steamworks/140/headers/steam/steam_api.h diff --git a/res/steamworks/140/headers/steam_api_flat.h b/res/steamworks/140/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/140/headers/steam_api_flat.h rename to res/steamworks/140/headers/steam/steam_api_flat.h diff --git a/res/steamworks/140/headers/steam_api_internal.h b/res/steamworks/140/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/140/headers/steam_api_internal.h rename to res/steamworks/140/headers/steam/steam_api_internal.h diff --git a/res/steamworks/140/headers/steam_gameserver.h b/res/steamworks/140/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/140/headers/steam_gameserver.h rename to res/steamworks/140/headers/steam/steam_gameserver.h diff --git a/res/steamworks/140/headers/steamclientpublic.h b/res/steamworks/140/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/140/headers/steamclientpublic.h rename to res/steamworks/140/headers/steam/steamclientpublic.h diff --git a/res/steamworks/140/headers/steamencryptedappticket.h b/res/steamworks/140/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/140/headers/steamencryptedappticket.h rename to res/steamworks/140/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/140/headers/steamhttpenums.h b/res/steamworks/140/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/140/headers/steamhttpenums.h rename to res/steamworks/140/headers/steam/steamhttpenums.h diff --git a/res/steamworks/140/headers/steamps3params.h b/res/steamworks/140/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/140/headers/steamps3params.h rename to res/steamworks/140/headers/steam/steamps3params.h diff --git a/res/steamworks/140/headers/steamtypes.h b/res/steamworks/140/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/140/headers/steamtypes.h rename to res/steamworks/140/headers/steam/steamtypes.h diff --git a/res/steamworks/140/headers/steamuniverse.h b/res/steamworks/140/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/140/headers/steamuniverse.h rename to res/steamworks/140/headers/steam/steamuniverse.h diff --git a/res/steamworks/141/headers/isteamapplist.h b/res/steamworks/141/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/141/headers/isteamapplist.h rename to res/steamworks/141/headers/steam/isteamapplist.h diff --git a/res/steamworks/141/headers/isteamapps.h b/res/steamworks/141/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/141/headers/isteamapps.h rename to res/steamworks/141/headers/steam/isteamapps.h diff --git a/res/steamworks/141/headers/isteamappticket.h b/res/steamworks/141/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/141/headers/isteamappticket.h rename to res/steamworks/141/headers/steam/isteamappticket.h diff --git a/res/steamworks/141/headers/isteamclient.h b/res/steamworks/141/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/141/headers/isteamclient.h rename to res/steamworks/141/headers/steam/isteamclient.h diff --git a/res/steamworks/141/headers/isteamcontroller.h b/res/steamworks/141/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/141/headers/isteamcontroller.h rename to res/steamworks/141/headers/steam/isteamcontroller.h diff --git a/res/steamworks/141/headers/isteamfriends.h b/res/steamworks/141/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/141/headers/isteamfriends.h rename to res/steamworks/141/headers/steam/isteamfriends.h diff --git a/res/steamworks/141/headers/isteamgamecoordinator.h b/res/steamworks/141/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/141/headers/isteamgamecoordinator.h rename to res/steamworks/141/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/141/headers/isteamgameserver.h b/res/steamworks/141/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/141/headers/isteamgameserver.h rename to res/steamworks/141/headers/steam/isteamgameserver.h diff --git a/res/steamworks/141/headers/isteamgameserverstats.h b/res/steamworks/141/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/141/headers/isteamgameserverstats.h rename to res/steamworks/141/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/141/headers/isteamhtmlsurface.h b/res/steamworks/141/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/141/headers/isteamhtmlsurface.h rename to res/steamworks/141/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/141/headers/isteamhttp.h b/res/steamworks/141/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/141/headers/isteamhttp.h rename to res/steamworks/141/headers/steam/isteamhttp.h diff --git a/res/steamworks/141/headers/isteaminventory.h b/res/steamworks/141/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/141/headers/isteaminventory.h rename to res/steamworks/141/headers/steam/isteaminventory.h diff --git a/res/steamworks/141/headers/isteammasterserverupdater.h b/res/steamworks/141/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/141/headers/isteammasterserverupdater.h rename to res/steamworks/141/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/141/headers/isteammatchmaking.h b/res/steamworks/141/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/141/headers/isteammatchmaking.h rename to res/steamworks/141/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/141/headers/isteammusic.h b/res/steamworks/141/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/141/headers/isteammusic.h rename to res/steamworks/141/headers/steam/isteammusic.h diff --git a/res/steamworks/141/headers/isteammusicremote.h b/res/steamworks/141/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/141/headers/isteammusicremote.h rename to res/steamworks/141/headers/steam/isteammusicremote.h diff --git a/res/steamworks/141/headers/isteamnetworking.h b/res/steamworks/141/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/141/headers/isteamnetworking.h rename to res/steamworks/141/headers/steam/isteamnetworking.h diff --git a/res/steamworks/141/headers/isteamparentalsettings.h b/res/steamworks/141/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/141/headers/isteamparentalsettings.h rename to res/steamworks/141/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/141/headers/isteamps3overlayrenderer.h b/res/steamworks/141/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/141/headers/isteamps3overlayrenderer.h rename to res/steamworks/141/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/141/headers/isteamremotestorage.h b/res/steamworks/141/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/141/headers/isteamremotestorage.h rename to res/steamworks/141/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/141/headers/isteamscreenshots.h b/res/steamworks/141/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/141/headers/isteamscreenshots.h rename to res/steamworks/141/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/141/headers/isteamugc.h b/res/steamworks/141/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/141/headers/isteamugc.h rename to res/steamworks/141/headers/steam/isteamugc.h diff --git a/res/steamworks/141/headers/isteamunifiedmessages.h b/res/steamworks/141/headers/steam/isteamunifiedmessages.h similarity index 100% rename from res/steamworks/141/headers/isteamunifiedmessages.h rename to res/steamworks/141/headers/steam/isteamunifiedmessages.h diff --git a/res/steamworks/141/headers/isteamuser.h b/res/steamworks/141/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/141/headers/isteamuser.h rename to res/steamworks/141/headers/steam/isteamuser.h diff --git a/res/steamworks/141/headers/isteamuserstats.h b/res/steamworks/141/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/141/headers/isteamuserstats.h rename to res/steamworks/141/headers/steam/isteamuserstats.h diff --git a/res/steamworks/141/headers/isteamutils.h b/res/steamworks/141/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/141/headers/isteamutils.h rename to res/steamworks/141/headers/steam/isteamutils.h diff --git a/res/steamworks/141/headers/isteamvideo.h b/res/steamworks/141/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/141/headers/isteamvideo.h rename to res/steamworks/141/headers/steam/isteamvideo.h diff --git a/res/steamworks/141/headers/matchmakingtypes.h b/res/steamworks/141/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/141/headers/matchmakingtypes.h rename to res/steamworks/141/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/141/headers/steam_api.h b/res/steamworks/141/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/141/headers/steam_api.h rename to res/steamworks/141/headers/steam/steam_api.h diff --git a/res/steamworks/141/headers/steam_api_flat.h b/res/steamworks/141/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/141/headers/steam_api_flat.h rename to res/steamworks/141/headers/steam/steam_api_flat.h diff --git a/res/steamworks/141/headers/steam_api_internal.h b/res/steamworks/141/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/141/headers/steam_api_internal.h rename to res/steamworks/141/headers/steam/steam_api_internal.h diff --git a/res/steamworks/141/headers/steam_gameserver.h b/res/steamworks/141/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/141/headers/steam_gameserver.h rename to res/steamworks/141/headers/steam/steam_gameserver.h diff --git a/res/steamworks/141/headers/steamclientpublic.h b/res/steamworks/141/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/141/headers/steamclientpublic.h rename to res/steamworks/141/headers/steam/steamclientpublic.h diff --git a/res/steamworks/141/headers/steamencryptedappticket.h b/res/steamworks/141/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/141/headers/steamencryptedappticket.h rename to res/steamworks/141/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/141/headers/steamhttpenums.h b/res/steamworks/141/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/141/headers/steamhttpenums.h rename to res/steamworks/141/headers/steam/steamhttpenums.h diff --git a/res/steamworks/141/headers/steamps3params.h b/res/steamworks/141/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/141/headers/steamps3params.h rename to res/steamworks/141/headers/steam/steamps3params.h diff --git a/res/steamworks/141/headers/steamtypes.h b/res/steamworks/141/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/141/headers/steamtypes.h rename to res/steamworks/141/headers/steam/steamtypes.h diff --git a/res/steamworks/141/headers/steamuniverse.h b/res/steamworks/141/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/141/headers/steamuniverse.h rename to res/steamworks/141/headers/steam/steamuniverse.h diff --git a/res/steamworks/142/headers/isteamapplist.h b/res/steamworks/142/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/142/headers/isteamapplist.h rename to res/steamworks/142/headers/steam/isteamapplist.h diff --git a/res/steamworks/142/headers/isteamapps.h b/res/steamworks/142/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/142/headers/isteamapps.h rename to res/steamworks/142/headers/steam/isteamapps.h diff --git a/res/steamworks/142/headers/isteamappticket.h b/res/steamworks/142/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/142/headers/isteamappticket.h rename to res/steamworks/142/headers/steam/isteamappticket.h diff --git a/res/steamworks/142/headers/isteamclient.h b/res/steamworks/142/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/142/headers/isteamclient.h rename to res/steamworks/142/headers/steam/isteamclient.h diff --git a/res/steamworks/142/headers/isteamcontroller.h b/res/steamworks/142/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/142/headers/isteamcontroller.h rename to res/steamworks/142/headers/steam/isteamcontroller.h diff --git a/res/steamworks/142/headers/isteamfriends.h b/res/steamworks/142/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/142/headers/isteamfriends.h rename to res/steamworks/142/headers/steam/isteamfriends.h diff --git a/res/steamworks/142/headers/isteamgamecoordinator.h b/res/steamworks/142/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/142/headers/isteamgamecoordinator.h rename to res/steamworks/142/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/142/headers/isteamgameserver.h b/res/steamworks/142/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/142/headers/isteamgameserver.h rename to res/steamworks/142/headers/steam/isteamgameserver.h diff --git a/res/steamworks/142/headers/isteamgameserverstats.h b/res/steamworks/142/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/142/headers/isteamgameserverstats.h rename to res/steamworks/142/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/142/headers/isteamhtmlsurface.h b/res/steamworks/142/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/142/headers/isteamhtmlsurface.h rename to res/steamworks/142/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/142/headers/isteamhttp.h b/res/steamworks/142/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/142/headers/isteamhttp.h rename to res/steamworks/142/headers/steam/isteamhttp.h diff --git a/res/steamworks/142/headers/isteaminventory.h b/res/steamworks/142/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/142/headers/isteaminventory.h rename to res/steamworks/142/headers/steam/isteaminventory.h diff --git a/res/steamworks/142/headers/isteammasterserverupdater.h b/res/steamworks/142/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/142/headers/isteammasterserverupdater.h rename to res/steamworks/142/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/142/headers/isteammatchmaking.h b/res/steamworks/142/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/142/headers/isteammatchmaking.h rename to res/steamworks/142/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/142/headers/isteammusic.h b/res/steamworks/142/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/142/headers/isteammusic.h rename to res/steamworks/142/headers/steam/isteammusic.h diff --git a/res/steamworks/142/headers/isteammusicremote.h b/res/steamworks/142/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/142/headers/isteammusicremote.h rename to res/steamworks/142/headers/steam/isteammusicremote.h diff --git a/res/steamworks/142/headers/isteamnetworking.h b/res/steamworks/142/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/142/headers/isteamnetworking.h rename to res/steamworks/142/headers/steam/isteamnetworking.h diff --git a/res/steamworks/142/headers/isteamparentalsettings.h b/res/steamworks/142/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/142/headers/isteamparentalsettings.h rename to res/steamworks/142/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/142/headers/isteamps3overlayrenderer.h b/res/steamworks/142/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/142/headers/isteamps3overlayrenderer.h rename to res/steamworks/142/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/142/headers/isteamremotestorage.h b/res/steamworks/142/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/142/headers/isteamremotestorage.h rename to res/steamworks/142/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/142/headers/isteamscreenshots.h b/res/steamworks/142/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/142/headers/isteamscreenshots.h rename to res/steamworks/142/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/142/headers/isteamugc.h b/res/steamworks/142/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/142/headers/isteamugc.h rename to res/steamworks/142/headers/steam/isteamugc.h diff --git a/res/steamworks/142/headers/isteamuser.h b/res/steamworks/142/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/142/headers/isteamuser.h rename to res/steamworks/142/headers/steam/isteamuser.h diff --git a/res/steamworks/142/headers/isteamuserstats.h b/res/steamworks/142/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/142/headers/isteamuserstats.h rename to res/steamworks/142/headers/steam/isteamuserstats.h diff --git a/res/steamworks/142/headers/isteamutils.h b/res/steamworks/142/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/142/headers/isteamutils.h rename to res/steamworks/142/headers/steam/isteamutils.h diff --git a/res/steamworks/142/headers/isteamvideo.h b/res/steamworks/142/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/142/headers/isteamvideo.h rename to res/steamworks/142/headers/steam/isteamvideo.h diff --git a/res/steamworks/142/headers/matchmakingtypes.h b/res/steamworks/142/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/142/headers/matchmakingtypes.h rename to res/steamworks/142/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/142/headers/steam_api.h b/res/steamworks/142/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/142/headers/steam_api.h rename to res/steamworks/142/headers/steam/steam_api.h diff --git a/res/steamworks/142/headers/steam_api_flat.h b/res/steamworks/142/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/142/headers/steam_api_flat.h rename to res/steamworks/142/headers/steam/steam_api_flat.h diff --git a/res/steamworks/142/headers/steam_api_internal.h b/res/steamworks/142/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/142/headers/steam_api_internal.h rename to res/steamworks/142/headers/steam/steam_api_internal.h diff --git a/res/steamworks/142/headers/steam_gameserver.h b/res/steamworks/142/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/142/headers/steam_gameserver.h rename to res/steamworks/142/headers/steam/steam_gameserver.h diff --git a/res/steamworks/142/headers/steamclientpublic.h b/res/steamworks/142/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/142/headers/steamclientpublic.h rename to res/steamworks/142/headers/steam/steamclientpublic.h diff --git a/res/steamworks/142/headers/steamencryptedappticket.h b/res/steamworks/142/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/142/headers/steamencryptedappticket.h rename to res/steamworks/142/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/142/headers/steamhttpenums.h b/res/steamworks/142/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/142/headers/steamhttpenums.h rename to res/steamworks/142/headers/steam/steamhttpenums.h diff --git a/res/steamworks/142/headers/steamps3params.h b/res/steamworks/142/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/142/headers/steamps3params.h rename to res/steamworks/142/headers/steam/steamps3params.h diff --git a/res/steamworks/142/headers/steamtypes.h b/res/steamworks/142/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/142/headers/steamtypes.h rename to res/steamworks/142/headers/steam/steamtypes.h diff --git a/res/steamworks/142/headers/steamuniverse.h b/res/steamworks/142/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/142/headers/steamuniverse.h rename to res/steamworks/142/headers/steam/steamuniverse.h diff --git a/res/steamworks/143/headers/isteamapplist.h b/res/steamworks/143/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/143/headers/isteamapplist.h rename to res/steamworks/143/headers/steam/isteamapplist.h diff --git a/res/steamworks/143/headers/isteamapps.h b/res/steamworks/143/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/143/headers/isteamapps.h rename to res/steamworks/143/headers/steam/isteamapps.h diff --git a/res/steamworks/143/headers/isteamappticket.h b/res/steamworks/143/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/143/headers/isteamappticket.h rename to res/steamworks/143/headers/steam/isteamappticket.h diff --git a/res/steamworks/143/headers/isteamclient.h b/res/steamworks/143/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/143/headers/isteamclient.h rename to res/steamworks/143/headers/steam/isteamclient.h diff --git a/res/steamworks/143/headers/isteamcontroller.h b/res/steamworks/143/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/143/headers/isteamcontroller.h rename to res/steamworks/143/headers/steam/isteamcontroller.h diff --git a/res/steamworks/143/headers/isteamfriends.h b/res/steamworks/143/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/143/headers/isteamfriends.h rename to res/steamworks/143/headers/steam/isteamfriends.h diff --git a/res/steamworks/143/headers/isteamgamecoordinator.h b/res/steamworks/143/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/143/headers/isteamgamecoordinator.h rename to res/steamworks/143/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/143/headers/isteamgameserver.h b/res/steamworks/143/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/143/headers/isteamgameserver.h rename to res/steamworks/143/headers/steam/isteamgameserver.h diff --git a/res/steamworks/143/headers/isteamgameserverstats.h b/res/steamworks/143/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/143/headers/isteamgameserverstats.h rename to res/steamworks/143/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/143/headers/isteamhtmlsurface.h b/res/steamworks/143/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/143/headers/isteamhtmlsurface.h rename to res/steamworks/143/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/143/headers/isteamhttp.h b/res/steamworks/143/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/143/headers/isteamhttp.h rename to res/steamworks/143/headers/steam/isteamhttp.h diff --git a/res/steamworks/143/headers/isteaminput.h b/res/steamworks/143/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/143/headers/isteaminput.h rename to res/steamworks/143/headers/steam/isteaminput.h diff --git a/res/steamworks/143/headers/isteaminventory.h b/res/steamworks/143/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/143/headers/isteaminventory.h rename to res/steamworks/143/headers/steam/isteaminventory.h diff --git a/res/steamworks/143/headers/isteammasterserverupdater.h b/res/steamworks/143/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/143/headers/isteammasterserverupdater.h rename to res/steamworks/143/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/143/headers/isteammatchmaking.h b/res/steamworks/143/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/143/headers/isteammatchmaking.h rename to res/steamworks/143/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/143/headers/isteammusic.h b/res/steamworks/143/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/143/headers/isteammusic.h rename to res/steamworks/143/headers/steam/isteammusic.h diff --git a/res/steamworks/143/headers/isteammusicremote.h b/res/steamworks/143/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/143/headers/isteammusicremote.h rename to res/steamworks/143/headers/steam/isteammusicremote.h diff --git a/res/steamworks/143/headers/isteamnetworking.h b/res/steamworks/143/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/143/headers/isteamnetworking.h rename to res/steamworks/143/headers/steam/isteamnetworking.h diff --git a/res/steamworks/143/headers/isteamparentalsettings.h b/res/steamworks/143/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/143/headers/isteamparentalsettings.h rename to res/steamworks/143/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/143/headers/isteamps3overlayrenderer.h b/res/steamworks/143/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/143/headers/isteamps3overlayrenderer.h rename to res/steamworks/143/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/143/headers/isteamremotestorage.h b/res/steamworks/143/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/143/headers/isteamremotestorage.h rename to res/steamworks/143/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/143/headers/isteamscreenshots.h b/res/steamworks/143/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/143/headers/isteamscreenshots.h rename to res/steamworks/143/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/143/headers/isteamugc.h b/res/steamworks/143/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/143/headers/isteamugc.h rename to res/steamworks/143/headers/steam/isteamugc.h diff --git a/res/steamworks/143/headers/isteamuser.h b/res/steamworks/143/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/143/headers/isteamuser.h rename to res/steamworks/143/headers/steam/isteamuser.h diff --git a/res/steamworks/143/headers/isteamuserstats.h b/res/steamworks/143/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/143/headers/isteamuserstats.h rename to res/steamworks/143/headers/steam/isteamuserstats.h diff --git a/res/steamworks/143/headers/isteamutils.h b/res/steamworks/143/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/143/headers/isteamutils.h rename to res/steamworks/143/headers/steam/isteamutils.h diff --git a/res/steamworks/143/headers/isteamvideo.h b/res/steamworks/143/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/143/headers/isteamvideo.h rename to res/steamworks/143/headers/steam/isteamvideo.h diff --git a/res/steamworks/143/headers/matchmakingtypes.h b/res/steamworks/143/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/143/headers/matchmakingtypes.h rename to res/steamworks/143/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/143/headers/steam_api.h b/res/steamworks/143/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/143/headers/steam_api.h rename to res/steamworks/143/headers/steam/steam_api.h diff --git a/res/steamworks/143/headers/steam_api_common.h b/res/steamworks/143/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/143/headers/steam_api_common.h rename to res/steamworks/143/headers/steam/steam_api_common.h diff --git a/res/steamworks/143/headers/steam_api_flat.h b/res/steamworks/143/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/143/headers/steam_api_flat.h rename to res/steamworks/143/headers/steam/steam_api_flat.h diff --git a/res/steamworks/143/headers/steam_api_internal.h b/res/steamworks/143/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/143/headers/steam_api_internal.h rename to res/steamworks/143/headers/steam/steam_api_internal.h diff --git a/res/steamworks/143/headers/steam_gameserver.h b/res/steamworks/143/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/143/headers/steam_gameserver.h rename to res/steamworks/143/headers/steam/steam_gameserver.h diff --git a/res/steamworks/143/headers/steamclientpublic.h b/res/steamworks/143/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/143/headers/steamclientpublic.h rename to res/steamworks/143/headers/steam/steamclientpublic.h diff --git a/res/steamworks/143/headers/steamencryptedappticket.h b/res/steamworks/143/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/143/headers/steamencryptedappticket.h rename to res/steamworks/143/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/143/headers/steamhttpenums.h b/res/steamworks/143/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/143/headers/steamhttpenums.h rename to res/steamworks/143/headers/steam/steamhttpenums.h diff --git a/res/steamworks/143/headers/steamps3params.h b/res/steamworks/143/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/143/headers/steamps3params.h rename to res/steamworks/143/headers/steam/steamps3params.h diff --git a/res/steamworks/143/headers/steamtypes.h b/res/steamworks/143/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/143/headers/steamtypes.h rename to res/steamworks/143/headers/steam/steamtypes.h diff --git a/res/steamworks/143/headers/steamuniverse.h b/res/steamworks/143/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/143/headers/steamuniverse.h rename to res/steamworks/143/headers/steam/steamuniverse.h diff --git a/res/steamworks/144/headers/isteamapplist.h b/res/steamworks/144/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/144/headers/isteamapplist.h rename to res/steamworks/144/headers/steam/isteamapplist.h diff --git a/res/steamworks/144/headers/isteamapps.h b/res/steamworks/144/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/144/headers/isteamapps.h rename to res/steamworks/144/headers/steam/isteamapps.h diff --git a/res/steamworks/144/headers/isteamappticket.h b/res/steamworks/144/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/144/headers/isteamappticket.h rename to res/steamworks/144/headers/steam/isteamappticket.h diff --git a/res/steamworks/144/headers/isteamclient.h b/res/steamworks/144/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/144/headers/isteamclient.h rename to res/steamworks/144/headers/steam/isteamclient.h diff --git a/res/steamworks/144/headers/isteamcontroller.h b/res/steamworks/144/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/144/headers/isteamcontroller.h rename to res/steamworks/144/headers/steam/isteamcontroller.h diff --git a/res/steamworks/144/headers/isteamfriends.h b/res/steamworks/144/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/144/headers/isteamfriends.h rename to res/steamworks/144/headers/steam/isteamfriends.h diff --git a/res/steamworks/144/headers/isteamgamecoordinator.h b/res/steamworks/144/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/144/headers/isteamgamecoordinator.h rename to res/steamworks/144/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/144/headers/isteamgameserver.h b/res/steamworks/144/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/144/headers/isteamgameserver.h rename to res/steamworks/144/headers/steam/isteamgameserver.h diff --git a/res/steamworks/144/headers/isteamgameserverstats.h b/res/steamworks/144/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/144/headers/isteamgameserverstats.h rename to res/steamworks/144/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/144/headers/isteamhtmlsurface.h b/res/steamworks/144/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/144/headers/isteamhtmlsurface.h rename to res/steamworks/144/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/144/headers/isteamhttp.h b/res/steamworks/144/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/144/headers/isteamhttp.h rename to res/steamworks/144/headers/steam/isteamhttp.h diff --git a/res/steamworks/144/headers/isteaminput.h b/res/steamworks/144/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/144/headers/isteaminput.h rename to res/steamworks/144/headers/steam/isteaminput.h diff --git a/res/steamworks/144/headers/isteaminventory.h b/res/steamworks/144/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/144/headers/isteaminventory.h rename to res/steamworks/144/headers/steam/isteaminventory.h diff --git a/res/steamworks/144/headers/isteammasterserverupdater.h b/res/steamworks/144/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/144/headers/isteammasterserverupdater.h rename to res/steamworks/144/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/144/headers/isteammatchmaking.h b/res/steamworks/144/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/144/headers/isteammatchmaking.h rename to res/steamworks/144/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/144/headers/isteammusic.h b/res/steamworks/144/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/144/headers/isteammusic.h rename to res/steamworks/144/headers/steam/isteammusic.h diff --git a/res/steamworks/144/headers/isteammusicremote.h b/res/steamworks/144/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/144/headers/isteammusicremote.h rename to res/steamworks/144/headers/steam/isteammusicremote.h diff --git a/res/steamworks/144/headers/isteamnetworking.h b/res/steamworks/144/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/144/headers/isteamnetworking.h rename to res/steamworks/144/headers/steam/isteamnetworking.h diff --git a/res/steamworks/144/headers/isteamnetworkingsockets.h b/res/steamworks/144/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/144/headers/isteamnetworkingsockets.h rename to res/steamworks/144/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/144/headers/isteamnetworkingutils.h b/res/steamworks/144/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/144/headers/isteamnetworkingutils.h rename to res/steamworks/144/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/144/headers/isteamparentalsettings.h b/res/steamworks/144/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/144/headers/isteamparentalsettings.h rename to res/steamworks/144/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/144/headers/isteamps3overlayrenderer.h b/res/steamworks/144/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/144/headers/isteamps3overlayrenderer.h rename to res/steamworks/144/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/144/headers/isteamremotestorage.h b/res/steamworks/144/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/144/headers/isteamremotestorage.h rename to res/steamworks/144/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/144/headers/isteamscreenshots.h b/res/steamworks/144/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/144/headers/isteamscreenshots.h rename to res/steamworks/144/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/144/headers/isteamugc.h b/res/steamworks/144/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/144/headers/isteamugc.h rename to res/steamworks/144/headers/steam/isteamugc.h diff --git a/res/steamworks/144/headers/isteamuser.h b/res/steamworks/144/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/144/headers/isteamuser.h rename to res/steamworks/144/headers/steam/isteamuser.h diff --git a/res/steamworks/144/headers/isteamuserstats.h b/res/steamworks/144/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/144/headers/isteamuserstats.h rename to res/steamworks/144/headers/steam/isteamuserstats.h diff --git a/res/steamworks/144/headers/isteamutils.h b/res/steamworks/144/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/144/headers/isteamutils.h rename to res/steamworks/144/headers/steam/isteamutils.h diff --git a/res/steamworks/144/headers/isteamvideo.h b/res/steamworks/144/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/144/headers/isteamvideo.h rename to res/steamworks/144/headers/steam/isteamvideo.h diff --git a/res/steamworks/144/headers/matchmakingtypes.h b/res/steamworks/144/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/144/headers/matchmakingtypes.h rename to res/steamworks/144/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/144/headers/steam_api.h b/res/steamworks/144/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/144/headers/steam_api.h rename to res/steamworks/144/headers/steam/steam_api.h diff --git a/res/steamworks/144/headers/steam_api_common.h b/res/steamworks/144/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/144/headers/steam_api_common.h rename to res/steamworks/144/headers/steam/steam_api_common.h diff --git a/res/steamworks/144/headers/steam_api_flat.h b/res/steamworks/144/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/144/headers/steam_api_flat.h rename to res/steamworks/144/headers/steam/steam_api_flat.h diff --git a/res/steamworks/144/headers/steam_api_internal.h b/res/steamworks/144/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/144/headers/steam_api_internal.h rename to res/steamworks/144/headers/steam/steam_api_internal.h diff --git a/res/steamworks/144/headers/steam_gameserver.h b/res/steamworks/144/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/144/headers/steam_gameserver.h rename to res/steamworks/144/headers/steam/steam_gameserver.h diff --git a/res/steamworks/144/headers/steamclientpublic.h b/res/steamworks/144/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/144/headers/steamclientpublic.h rename to res/steamworks/144/headers/steam/steamclientpublic.h diff --git a/res/steamworks/144/headers/steamdatagram_ticketgen.h b/res/steamworks/144/headers/steam/steamdatagram_ticketgen.h similarity index 100% rename from res/steamworks/144/headers/steamdatagram_ticketgen.h rename to res/steamworks/144/headers/steam/steamdatagram_ticketgen.h diff --git a/res/steamworks/144/headers/steamdatagram_tickets.h b/res/steamworks/144/headers/steam/steamdatagram_tickets.h similarity index 100% rename from res/steamworks/144/headers/steamdatagram_tickets.h rename to res/steamworks/144/headers/steam/steamdatagram_tickets.h diff --git a/res/steamworks/144/headers/steamencryptedappticket.h b/res/steamworks/144/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/144/headers/steamencryptedappticket.h rename to res/steamworks/144/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/144/headers/steamhttpenums.h b/res/steamworks/144/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/144/headers/steamhttpenums.h rename to res/steamworks/144/headers/steam/steamhttpenums.h diff --git a/res/steamworks/144/headers/steamnetworkingtypes.h b/res/steamworks/144/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/144/headers/steamnetworkingtypes.h rename to res/steamworks/144/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/144/headers/steamps3params.h b/res/steamworks/144/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/144/headers/steamps3params.h rename to res/steamworks/144/headers/steam/steamps3params.h diff --git a/res/steamworks/144/headers/steamtypes.h b/res/steamworks/144/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/144/headers/steamtypes.h rename to res/steamworks/144/headers/steam/steamtypes.h diff --git a/res/steamworks/144/headers/steamuniverse.h b/res/steamworks/144/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/144/headers/steamuniverse.h rename to res/steamworks/144/headers/steam/steamuniverse.h diff --git a/res/steamworks/145/headers/isteamapplist.h b/res/steamworks/145/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/145/headers/isteamapplist.h rename to res/steamworks/145/headers/steam/isteamapplist.h diff --git a/res/steamworks/145/headers/isteamapps.h b/res/steamworks/145/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/145/headers/isteamapps.h rename to res/steamworks/145/headers/steam/isteamapps.h diff --git a/res/steamworks/145/headers/isteamappticket.h b/res/steamworks/145/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/145/headers/isteamappticket.h rename to res/steamworks/145/headers/steam/isteamappticket.h diff --git a/res/steamworks/145/headers/isteamclient.h b/res/steamworks/145/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/145/headers/isteamclient.h rename to res/steamworks/145/headers/steam/isteamclient.h diff --git a/res/steamworks/145/headers/isteamcontroller.h b/res/steamworks/145/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/145/headers/isteamcontroller.h rename to res/steamworks/145/headers/steam/isteamcontroller.h diff --git a/res/steamworks/145/headers/isteamfriends.h b/res/steamworks/145/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/145/headers/isteamfriends.h rename to res/steamworks/145/headers/steam/isteamfriends.h diff --git a/res/steamworks/145/headers/isteamgamecoordinator.h b/res/steamworks/145/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/145/headers/isteamgamecoordinator.h rename to res/steamworks/145/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/145/headers/isteamgameserver.h b/res/steamworks/145/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/145/headers/isteamgameserver.h rename to res/steamworks/145/headers/steam/isteamgameserver.h diff --git a/res/steamworks/145/headers/isteamgameserverstats.h b/res/steamworks/145/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/145/headers/isteamgameserverstats.h rename to res/steamworks/145/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/145/headers/isteamhtmlsurface.h b/res/steamworks/145/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/145/headers/isteamhtmlsurface.h rename to res/steamworks/145/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/145/headers/isteamhttp.h b/res/steamworks/145/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/145/headers/isteamhttp.h rename to res/steamworks/145/headers/steam/isteamhttp.h diff --git a/res/steamworks/145/headers/isteaminput.h b/res/steamworks/145/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/145/headers/isteaminput.h rename to res/steamworks/145/headers/steam/isteaminput.h diff --git a/res/steamworks/145/headers/isteaminventory.h b/res/steamworks/145/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/145/headers/isteaminventory.h rename to res/steamworks/145/headers/steam/isteaminventory.h diff --git a/res/steamworks/145/headers/isteammasterserverupdater.h b/res/steamworks/145/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/145/headers/isteammasterserverupdater.h rename to res/steamworks/145/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/145/headers/isteammatchmaking.h b/res/steamworks/145/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/145/headers/isteammatchmaking.h rename to res/steamworks/145/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/145/headers/isteammusic.h b/res/steamworks/145/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/145/headers/isteammusic.h rename to res/steamworks/145/headers/steam/isteammusic.h diff --git a/res/steamworks/145/headers/isteammusicremote.h b/res/steamworks/145/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/145/headers/isteammusicremote.h rename to res/steamworks/145/headers/steam/isteammusicremote.h diff --git a/res/steamworks/145/headers/isteamnetworking.h b/res/steamworks/145/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/145/headers/isteamnetworking.h rename to res/steamworks/145/headers/steam/isteamnetworking.h diff --git a/res/steamworks/145/headers/isteamnetworkingsockets.h b/res/steamworks/145/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/145/headers/isteamnetworkingsockets.h rename to res/steamworks/145/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/145/headers/isteamnetworkingutils.h b/res/steamworks/145/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/145/headers/isteamnetworkingutils.h rename to res/steamworks/145/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/145/headers/isteamparentalsettings.h b/res/steamworks/145/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/145/headers/isteamparentalsettings.h rename to res/steamworks/145/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/145/headers/isteamps3overlayrenderer.h b/res/steamworks/145/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/145/headers/isteamps3overlayrenderer.h rename to res/steamworks/145/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/145/headers/isteamremotestorage.h b/res/steamworks/145/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/145/headers/isteamremotestorage.h rename to res/steamworks/145/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/145/headers/isteamscreenshots.h b/res/steamworks/145/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/145/headers/isteamscreenshots.h rename to res/steamworks/145/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/145/headers/isteamugc.h b/res/steamworks/145/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/145/headers/isteamugc.h rename to res/steamworks/145/headers/steam/isteamugc.h diff --git a/res/steamworks/145/headers/isteamuser.h b/res/steamworks/145/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/145/headers/isteamuser.h rename to res/steamworks/145/headers/steam/isteamuser.h diff --git a/res/steamworks/145/headers/isteamuserstats.h b/res/steamworks/145/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/145/headers/isteamuserstats.h rename to res/steamworks/145/headers/steam/isteamuserstats.h diff --git a/res/steamworks/145/headers/isteamutils.h b/res/steamworks/145/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/145/headers/isteamutils.h rename to res/steamworks/145/headers/steam/isteamutils.h diff --git a/res/steamworks/145/headers/isteamvideo.h b/res/steamworks/145/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/145/headers/isteamvideo.h rename to res/steamworks/145/headers/steam/isteamvideo.h diff --git a/res/steamworks/145/headers/matchmakingtypes.h b/res/steamworks/145/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/145/headers/matchmakingtypes.h rename to res/steamworks/145/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/145/headers/steam_api.h b/res/steamworks/145/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/145/headers/steam_api.h rename to res/steamworks/145/headers/steam/steam_api.h diff --git a/res/steamworks/145/headers/steam_api_common.h b/res/steamworks/145/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/145/headers/steam_api_common.h rename to res/steamworks/145/headers/steam/steam_api_common.h diff --git a/res/steamworks/145/headers/steam_api_flat.h b/res/steamworks/145/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/145/headers/steam_api_flat.h rename to res/steamworks/145/headers/steam/steam_api_flat.h diff --git a/res/steamworks/145/headers/steam_api_internal.h b/res/steamworks/145/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/145/headers/steam_api_internal.h rename to res/steamworks/145/headers/steam/steam_api_internal.h diff --git a/res/steamworks/145/headers/steam_gameserver.h b/res/steamworks/145/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/145/headers/steam_gameserver.h rename to res/steamworks/145/headers/steam/steam_gameserver.h diff --git a/res/steamworks/145/headers/steamclientpublic.h b/res/steamworks/145/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/145/headers/steamclientpublic.h rename to res/steamworks/145/headers/steam/steamclientpublic.h diff --git a/res/steamworks/145/headers/steamdatagram_tickets.h b/res/steamworks/145/headers/steam/steamdatagram_tickets.h similarity index 100% rename from res/steamworks/145/headers/steamdatagram_tickets.h rename to res/steamworks/145/headers/steam/steamdatagram_tickets.h diff --git a/res/steamworks/145/headers/steamencryptedappticket.h b/res/steamworks/145/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/145/headers/steamencryptedappticket.h rename to res/steamworks/145/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/145/headers/steamhttpenums.h b/res/steamworks/145/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/145/headers/steamhttpenums.h rename to res/steamworks/145/headers/steam/steamhttpenums.h diff --git a/res/steamworks/145/headers/steamnetworkingtypes.h b/res/steamworks/145/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/145/headers/steamnetworkingtypes.h rename to res/steamworks/145/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/145/headers/steamps3params.h b/res/steamworks/145/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/145/headers/steamps3params.h rename to res/steamworks/145/headers/steam/steamps3params.h diff --git a/res/steamworks/145/headers/steamtypes.h b/res/steamworks/145/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/145/headers/steamtypes.h rename to res/steamworks/145/headers/steam/steamtypes.h diff --git a/res/steamworks/145/headers/steamuniverse.h b/res/steamworks/145/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/145/headers/steamuniverse.h rename to res/steamworks/145/headers/steam/steamuniverse.h diff --git a/res/steamworks/146/headers/isteamapplist.h b/res/steamworks/146/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/146/headers/isteamapplist.h rename to res/steamworks/146/headers/steam/isteamapplist.h diff --git a/res/steamworks/146/headers/isteamapps.h b/res/steamworks/146/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/146/headers/isteamapps.h rename to res/steamworks/146/headers/steam/isteamapps.h diff --git a/res/steamworks/146/headers/isteamappticket.h b/res/steamworks/146/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/146/headers/isteamappticket.h rename to res/steamworks/146/headers/steam/isteamappticket.h diff --git a/res/steamworks/146/headers/isteamclient.h b/res/steamworks/146/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/146/headers/isteamclient.h rename to res/steamworks/146/headers/steam/isteamclient.h diff --git a/res/steamworks/146/headers/isteamcontroller.h b/res/steamworks/146/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/146/headers/isteamcontroller.h rename to res/steamworks/146/headers/steam/isteamcontroller.h diff --git a/res/steamworks/146/headers/isteamfriends.h b/res/steamworks/146/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/146/headers/isteamfriends.h rename to res/steamworks/146/headers/steam/isteamfriends.h diff --git a/res/steamworks/146/headers/isteamgamecoordinator.h b/res/steamworks/146/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/146/headers/isteamgamecoordinator.h rename to res/steamworks/146/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/146/headers/isteamgameserver.h b/res/steamworks/146/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/146/headers/isteamgameserver.h rename to res/steamworks/146/headers/steam/isteamgameserver.h diff --git a/res/steamworks/146/headers/isteamgameserverstats.h b/res/steamworks/146/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/146/headers/isteamgameserverstats.h rename to res/steamworks/146/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/146/headers/isteamhtmlsurface.h b/res/steamworks/146/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/146/headers/isteamhtmlsurface.h rename to res/steamworks/146/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/146/headers/isteamhttp.h b/res/steamworks/146/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/146/headers/isteamhttp.h rename to res/steamworks/146/headers/steam/isteamhttp.h diff --git a/res/steamworks/146/headers/isteaminput.h b/res/steamworks/146/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/146/headers/isteaminput.h rename to res/steamworks/146/headers/steam/isteaminput.h diff --git a/res/steamworks/146/headers/isteaminventory.h b/res/steamworks/146/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/146/headers/isteaminventory.h rename to res/steamworks/146/headers/steam/isteaminventory.h diff --git a/res/steamworks/146/headers/isteammasterserverupdater.h b/res/steamworks/146/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/146/headers/isteammasterserverupdater.h rename to res/steamworks/146/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/146/headers/isteammatchmaking.h b/res/steamworks/146/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/146/headers/isteammatchmaking.h rename to res/steamworks/146/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/146/headers/isteammusic.h b/res/steamworks/146/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/146/headers/isteammusic.h rename to res/steamworks/146/headers/steam/isteammusic.h diff --git a/res/steamworks/146/headers/isteammusicremote.h b/res/steamworks/146/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/146/headers/isteammusicremote.h rename to res/steamworks/146/headers/steam/isteammusicremote.h diff --git a/res/steamworks/146/headers/isteamnetworking.h b/res/steamworks/146/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/146/headers/isteamnetworking.h rename to res/steamworks/146/headers/steam/isteamnetworking.h diff --git a/res/steamworks/146/headers/isteamnetworkingsockets.h b/res/steamworks/146/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/146/headers/isteamnetworkingsockets.h rename to res/steamworks/146/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/146/headers/isteamnetworkingutils.h b/res/steamworks/146/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/146/headers/isteamnetworkingutils.h rename to res/steamworks/146/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/146/headers/isteamparentalsettings.h b/res/steamworks/146/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/146/headers/isteamparentalsettings.h rename to res/steamworks/146/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/146/headers/isteamps3overlayrenderer.h b/res/steamworks/146/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/146/headers/isteamps3overlayrenderer.h rename to res/steamworks/146/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/146/headers/isteamremoteplay.h b/res/steamworks/146/headers/steam/isteamremoteplay.h similarity index 100% rename from res/steamworks/146/headers/isteamremoteplay.h rename to res/steamworks/146/headers/steam/isteamremoteplay.h diff --git a/res/steamworks/146/headers/isteamremotestorage.h b/res/steamworks/146/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/146/headers/isteamremotestorage.h rename to res/steamworks/146/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/146/headers/isteamscreenshots.h b/res/steamworks/146/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/146/headers/isteamscreenshots.h rename to res/steamworks/146/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/146/headers/isteamugc.h b/res/steamworks/146/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/146/headers/isteamugc.h rename to res/steamworks/146/headers/steam/isteamugc.h diff --git a/res/steamworks/146/headers/isteamuser.h b/res/steamworks/146/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/146/headers/isteamuser.h rename to res/steamworks/146/headers/steam/isteamuser.h diff --git a/res/steamworks/146/headers/isteamuserstats.h b/res/steamworks/146/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/146/headers/isteamuserstats.h rename to res/steamworks/146/headers/steam/isteamuserstats.h diff --git a/res/steamworks/146/headers/isteamutils.h b/res/steamworks/146/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/146/headers/isteamutils.h rename to res/steamworks/146/headers/steam/isteamutils.h diff --git a/res/steamworks/146/headers/isteamvideo.h b/res/steamworks/146/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/146/headers/isteamvideo.h rename to res/steamworks/146/headers/steam/isteamvideo.h diff --git a/res/steamworks/146/headers/matchmakingtypes.h b/res/steamworks/146/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/146/headers/matchmakingtypes.h rename to res/steamworks/146/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/146/headers/steam_api.h b/res/steamworks/146/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/146/headers/steam_api.h rename to res/steamworks/146/headers/steam/steam_api.h diff --git a/res/steamworks/146/headers/steam_api_common.h b/res/steamworks/146/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/146/headers/steam_api_common.h rename to res/steamworks/146/headers/steam/steam_api_common.h diff --git a/res/steamworks/146/headers/steam_api_flat.h b/res/steamworks/146/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/146/headers/steam_api_flat.h rename to res/steamworks/146/headers/steam/steam_api_flat.h diff --git a/res/steamworks/146/headers/steam_api_internal.h b/res/steamworks/146/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/146/headers/steam_api_internal.h rename to res/steamworks/146/headers/steam/steam_api_internal.h diff --git a/res/steamworks/146/headers/steam_gameserver.h b/res/steamworks/146/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/146/headers/steam_gameserver.h rename to res/steamworks/146/headers/steam/steam_gameserver.h diff --git a/res/steamworks/146/headers/steamclientpublic.h b/res/steamworks/146/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/146/headers/steamclientpublic.h rename to res/steamworks/146/headers/steam/steamclientpublic.h diff --git a/res/steamworks/146/headers/steamdatagram_tickets.h b/res/steamworks/146/headers/steam/steamdatagram_tickets.h similarity index 100% rename from res/steamworks/146/headers/steamdatagram_tickets.h rename to res/steamworks/146/headers/steam/steamdatagram_tickets.h diff --git a/res/steamworks/146/headers/steamencryptedappticket.h b/res/steamworks/146/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/146/headers/steamencryptedappticket.h rename to res/steamworks/146/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/146/headers/steamhttpenums.h b/res/steamworks/146/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/146/headers/steamhttpenums.h rename to res/steamworks/146/headers/steam/steamhttpenums.h diff --git a/res/steamworks/146/headers/steamnetworkingtypes.h b/res/steamworks/146/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/146/headers/steamnetworkingtypes.h rename to res/steamworks/146/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/146/headers/steamps3params.h b/res/steamworks/146/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/146/headers/steamps3params.h rename to res/steamworks/146/headers/steam/steamps3params.h diff --git a/res/steamworks/146/headers/steamtypes.h b/res/steamworks/146/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/146/headers/steamtypes.h rename to res/steamworks/146/headers/steam/steamtypes.h diff --git a/res/steamworks/146/headers/steamuniverse.h b/res/steamworks/146/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/146/headers/steamuniverse.h rename to res/steamworks/146/headers/steam/steamuniverse.h diff --git a/res/steamworks/147/headers/isteamapplist.h b/res/steamworks/147/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/147/headers/isteamapplist.h rename to res/steamworks/147/headers/steam/isteamapplist.h diff --git a/res/steamworks/147/headers/isteamapps.h b/res/steamworks/147/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/147/headers/isteamapps.h rename to res/steamworks/147/headers/steam/isteamapps.h diff --git a/res/steamworks/147/headers/isteamappticket.h b/res/steamworks/147/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/147/headers/isteamappticket.h rename to res/steamworks/147/headers/steam/isteamappticket.h diff --git a/res/steamworks/147/headers/isteamclient.h b/res/steamworks/147/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/147/headers/isteamclient.h rename to res/steamworks/147/headers/steam/isteamclient.h diff --git a/res/steamworks/147/headers/isteamcontroller.h b/res/steamworks/147/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/147/headers/isteamcontroller.h rename to res/steamworks/147/headers/steam/isteamcontroller.h diff --git a/res/steamworks/147/headers/isteamfriends.h b/res/steamworks/147/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/147/headers/isteamfriends.h rename to res/steamworks/147/headers/steam/isteamfriends.h diff --git a/res/steamworks/147/headers/isteamgamecoordinator.h b/res/steamworks/147/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/147/headers/isteamgamecoordinator.h rename to res/steamworks/147/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/147/headers/isteamgameserver.h b/res/steamworks/147/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/147/headers/isteamgameserver.h rename to res/steamworks/147/headers/steam/isteamgameserver.h diff --git a/res/steamworks/147/headers/isteamgameserverstats.h b/res/steamworks/147/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/147/headers/isteamgameserverstats.h rename to res/steamworks/147/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/147/headers/isteamhtmlsurface.h b/res/steamworks/147/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/147/headers/isteamhtmlsurface.h rename to res/steamworks/147/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/147/headers/isteamhttp.h b/res/steamworks/147/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/147/headers/isteamhttp.h rename to res/steamworks/147/headers/steam/isteamhttp.h diff --git a/res/steamworks/147/headers/isteaminput.h b/res/steamworks/147/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/147/headers/isteaminput.h rename to res/steamworks/147/headers/steam/isteaminput.h diff --git a/res/steamworks/147/headers/isteaminventory.h b/res/steamworks/147/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/147/headers/isteaminventory.h rename to res/steamworks/147/headers/steam/isteaminventory.h diff --git a/res/steamworks/147/headers/isteammasterserverupdater.h b/res/steamworks/147/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/147/headers/isteammasterserverupdater.h rename to res/steamworks/147/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/147/headers/isteammatchmaking.h b/res/steamworks/147/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/147/headers/isteammatchmaking.h rename to res/steamworks/147/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/147/headers/isteammusic.h b/res/steamworks/147/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/147/headers/isteammusic.h rename to res/steamworks/147/headers/steam/isteammusic.h diff --git a/res/steamworks/147/headers/isteammusicremote.h b/res/steamworks/147/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/147/headers/isteammusicremote.h rename to res/steamworks/147/headers/steam/isteammusicremote.h diff --git a/res/steamworks/147/headers/isteamnetworking.h b/res/steamworks/147/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/147/headers/isteamnetworking.h rename to res/steamworks/147/headers/steam/isteamnetworking.h diff --git a/res/steamworks/147/headers/isteamnetworkingsockets.h b/res/steamworks/147/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/147/headers/isteamnetworkingsockets.h rename to res/steamworks/147/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/147/headers/isteamnetworkingutils.h b/res/steamworks/147/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/147/headers/isteamnetworkingutils.h rename to res/steamworks/147/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/147/headers/isteamparentalsettings.h b/res/steamworks/147/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/147/headers/isteamparentalsettings.h rename to res/steamworks/147/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/147/headers/isteamps3overlayrenderer.h b/res/steamworks/147/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/147/headers/isteamps3overlayrenderer.h rename to res/steamworks/147/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/147/headers/isteamremoteplay.h b/res/steamworks/147/headers/steam/isteamremoteplay.h similarity index 100% rename from res/steamworks/147/headers/isteamremoteplay.h rename to res/steamworks/147/headers/steam/isteamremoteplay.h diff --git a/res/steamworks/147/headers/isteamremotestorage.h b/res/steamworks/147/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/147/headers/isteamremotestorage.h rename to res/steamworks/147/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/147/headers/isteamscreenshots.h b/res/steamworks/147/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/147/headers/isteamscreenshots.h rename to res/steamworks/147/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/147/headers/isteamugc.h b/res/steamworks/147/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/147/headers/isteamugc.h rename to res/steamworks/147/headers/steam/isteamugc.h diff --git a/res/steamworks/147/headers/isteamuser.h b/res/steamworks/147/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/147/headers/isteamuser.h rename to res/steamworks/147/headers/steam/isteamuser.h diff --git a/res/steamworks/147/headers/isteamuserstats.h b/res/steamworks/147/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/147/headers/isteamuserstats.h rename to res/steamworks/147/headers/steam/isteamuserstats.h diff --git a/res/steamworks/147/headers/isteamutils.h b/res/steamworks/147/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/147/headers/isteamutils.h rename to res/steamworks/147/headers/steam/isteamutils.h diff --git a/res/steamworks/147/headers/isteamvideo.h b/res/steamworks/147/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/147/headers/isteamvideo.h rename to res/steamworks/147/headers/steam/isteamvideo.h diff --git a/res/steamworks/147/headers/matchmakingtypes.h b/res/steamworks/147/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/147/headers/matchmakingtypes.h rename to res/steamworks/147/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/147/headers/steam_api.h b/res/steamworks/147/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/147/headers/steam_api.h rename to res/steamworks/147/headers/steam/steam_api.h diff --git a/res/steamworks/147/headers/steam_api_common.h b/res/steamworks/147/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/147/headers/steam_api_common.h rename to res/steamworks/147/headers/steam/steam_api_common.h diff --git a/res/steamworks/147/headers/steam_api_flat.h b/res/steamworks/147/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/147/headers/steam_api_flat.h rename to res/steamworks/147/headers/steam/steam_api_flat.h diff --git a/res/steamworks/147/headers/steam_api_internal.h b/res/steamworks/147/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/147/headers/steam_api_internal.h rename to res/steamworks/147/headers/steam/steam_api_internal.h diff --git a/res/steamworks/147/headers/steam_gameserver.h b/res/steamworks/147/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/147/headers/steam_gameserver.h rename to res/steamworks/147/headers/steam/steam_gameserver.h diff --git a/res/steamworks/147/headers/steamclientpublic.h b/res/steamworks/147/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/147/headers/steamclientpublic.h rename to res/steamworks/147/headers/steam/steamclientpublic.h diff --git a/res/steamworks/147/headers/steamdatagram_tickets.h b/res/steamworks/147/headers/steam/steamdatagram_tickets.h similarity index 100% rename from res/steamworks/147/headers/steamdatagram_tickets.h rename to res/steamworks/147/headers/steam/steamdatagram_tickets.h diff --git a/res/steamworks/147/headers/steamencryptedappticket.h b/res/steamworks/147/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/147/headers/steamencryptedappticket.h rename to res/steamworks/147/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/147/headers/steamhttpenums.h b/res/steamworks/147/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/147/headers/steamhttpenums.h rename to res/steamworks/147/headers/steam/steamhttpenums.h diff --git a/res/steamworks/147/headers/steamnetworkingsockets.h b/res/steamworks/147/headers/steam/steamnetworkingsockets.h similarity index 100% rename from res/steamworks/147/headers/steamnetworkingsockets.h rename to res/steamworks/147/headers/steam/steamnetworkingsockets.h diff --git a/res/steamworks/147/headers/steamnetworkingtypes.h b/res/steamworks/147/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/147/headers/steamnetworkingtypes.h rename to res/steamworks/147/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/147/headers/steamps3params.h b/res/steamworks/147/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/147/headers/steamps3params.h rename to res/steamworks/147/headers/steam/steamps3params.h diff --git a/res/steamworks/147/headers/steamtypes.h b/res/steamworks/147/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/147/headers/steamtypes.h rename to res/steamworks/147/headers/steam/steamtypes.h diff --git a/res/steamworks/147/headers/steamuniverse.h b/res/steamworks/147/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/147/headers/steamuniverse.h rename to res/steamworks/147/headers/steam/steamuniverse.h diff --git a/res/steamworks/148a/headers/isteamapplist.h b/res/steamworks/148a/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/148a/headers/isteamapplist.h rename to res/steamworks/148a/headers/steam/isteamapplist.h diff --git a/res/steamworks/148a/headers/isteamapps.h b/res/steamworks/148a/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/148a/headers/isteamapps.h rename to res/steamworks/148a/headers/steam/isteamapps.h diff --git a/res/steamworks/148a/headers/isteamappticket.h b/res/steamworks/148a/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/148a/headers/isteamappticket.h rename to res/steamworks/148a/headers/steam/isteamappticket.h diff --git a/res/steamworks/148a/headers/isteamclient.h b/res/steamworks/148a/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/148a/headers/isteamclient.h rename to res/steamworks/148a/headers/steam/isteamclient.h diff --git a/res/steamworks/148a/headers/isteamcontroller.h b/res/steamworks/148a/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/148a/headers/isteamcontroller.h rename to res/steamworks/148a/headers/steam/isteamcontroller.h diff --git a/res/steamworks/148a/headers/isteamfriends.h b/res/steamworks/148a/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/148a/headers/isteamfriends.h rename to res/steamworks/148a/headers/steam/isteamfriends.h diff --git a/res/steamworks/148a/headers/isteamgamecoordinator.h b/res/steamworks/148a/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/148a/headers/isteamgamecoordinator.h rename to res/steamworks/148a/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/148a/headers/isteamgameserver.h b/res/steamworks/148a/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/148a/headers/isteamgameserver.h rename to res/steamworks/148a/headers/steam/isteamgameserver.h diff --git a/res/steamworks/148a/headers/isteamgameserverstats.h b/res/steamworks/148a/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/148a/headers/isteamgameserverstats.h rename to res/steamworks/148a/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/148a/headers/isteamhtmlsurface.h b/res/steamworks/148a/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/148a/headers/isteamhtmlsurface.h rename to res/steamworks/148a/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/148a/headers/isteamhttp.h b/res/steamworks/148a/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/148a/headers/isteamhttp.h rename to res/steamworks/148a/headers/steam/isteamhttp.h diff --git a/res/steamworks/148a/headers/isteaminput.h b/res/steamworks/148a/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/148a/headers/isteaminput.h rename to res/steamworks/148a/headers/steam/isteaminput.h diff --git a/res/steamworks/148a/headers/isteaminventory.h b/res/steamworks/148a/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/148a/headers/isteaminventory.h rename to res/steamworks/148a/headers/steam/isteaminventory.h diff --git a/res/steamworks/148a/headers/isteammasterserverupdater.h b/res/steamworks/148a/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/148a/headers/isteammasterserverupdater.h rename to res/steamworks/148a/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/148a/headers/isteammatchmaking.h b/res/steamworks/148a/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/148a/headers/isteammatchmaking.h rename to res/steamworks/148a/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/148a/headers/isteammusic.h b/res/steamworks/148a/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/148a/headers/isteammusic.h rename to res/steamworks/148a/headers/steam/isteammusic.h diff --git a/res/steamworks/148a/headers/isteammusicremote.h b/res/steamworks/148a/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/148a/headers/isteammusicremote.h rename to res/steamworks/148a/headers/steam/isteammusicremote.h diff --git a/res/steamworks/148a/headers/isteamnetworking.h b/res/steamworks/148a/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/148a/headers/isteamnetworking.h rename to res/steamworks/148a/headers/steam/isteamnetworking.h diff --git a/res/steamworks/148a/headers/isteamnetworkingsockets.h b/res/steamworks/148a/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/148a/headers/isteamnetworkingsockets.h rename to res/steamworks/148a/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/148a/headers/isteamnetworkingutils.h b/res/steamworks/148a/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/148a/headers/isteamnetworkingutils.h rename to res/steamworks/148a/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/148a/headers/isteamparentalsettings.h b/res/steamworks/148a/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/148a/headers/isteamparentalsettings.h rename to res/steamworks/148a/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/148a/headers/isteamps3overlayrenderer.h b/res/steamworks/148a/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/148a/headers/isteamps3overlayrenderer.h rename to res/steamworks/148a/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/148a/headers/isteamremoteplay.h b/res/steamworks/148a/headers/steam/isteamremoteplay.h similarity index 100% rename from res/steamworks/148a/headers/isteamremoteplay.h rename to res/steamworks/148a/headers/steam/isteamremoteplay.h diff --git a/res/steamworks/148a/headers/isteamremotestorage.h b/res/steamworks/148a/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/148a/headers/isteamremotestorage.h rename to res/steamworks/148a/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/148a/headers/isteamscreenshots.h b/res/steamworks/148a/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/148a/headers/isteamscreenshots.h rename to res/steamworks/148a/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/148a/headers/isteamugc.h b/res/steamworks/148a/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/148a/headers/isteamugc.h rename to res/steamworks/148a/headers/steam/isteamugc.h diff --git a/res/steamworks/148a/headers/isteamuser.h b/res/steamworks/148a/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/148a/headers/isteamuser.h rename to res/steamworks/148a/headers/steam/isteamuser.h diff --git a/res/steamworks/148a/headers/isteamuserstats.h b/res/steamworks/148a/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/148a/headers/isteamuserstats.h rename to res/steamworks/148a/headers/steam/isteamuserstats.h diff --git a/res/steamworks/148a/headers/isteamutils.h b/res/steamworks/148a/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/148a/headers/isteamutils.h rename to res/steamworks/148a/headers/steam/isteamutils.h diff --git a/res/steamworks/148a/headers/isteamvideo.h b/res/steamworks/148a/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/148a/headers/isteamvideo.h rename to res/steamworks/148a/headers/steam/isteamvideo.h diff --git a/res/steamworks/148a/headers/matchmakingtypes.h b/res/steamworks/148a/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/148a/headers/matchmakingtypes.h rename to res/steamworks/148a/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/148a/headers/steam_api.h b/res/steamworks/148a/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/148a/headers/steam_api.h rename to res/steamworks/148a/headers/steam/steam_api.h diff --git a/res/steamworks/148a/headers/steam_api_common.h b/res/steamworks/148a/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/148a/headers/steam_api_common.h rename to res/steamworks/148a/headers/steam/steam_api_common.h diff --git a/res/steamworks/148a/headers/steam_api_flat.h b/res/steamworks/148a/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/148a/headers/steam_api_flat.h rename to res/steamworks/148a/headers/steam/steam_api_flat.h diff --git a/res/steamworks/148a/headers/steam_api_internal.h b/res/steamworks/148a/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/148a/headers/steam_api_internal.h rename to res/steamworks/148a/headers/steam/steam_api_internal.h diff --git a/res/steamworks/148a/headers/steam_gameserver.h b/res/steamworks/148a/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/148a/headers/steam_gameserver.h rename to res/steamworks/148a/headers/steam/steam_gameserver.h diff --git a/res/steamworks/148a/headers/steamclientpublic.h b/res/steamworks/148a/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/148a/headers/steamclientpublic.h rename to res/steamworks/148a/headers/steam/steamclientpublic.h diff --git a/res/steamworks/148a/headers/steamdatagram_tickets.h b/res/steamworks/148a/headers/steam/steamdatagram_tickets.h similarity index 100% rename from res/steamworks/148a/headers/steamdatagram_tickets.h rename to res/steamworks/148a/headers/steam/steamdatagram_tickets.h diff --git a/res/steamworks/148a/headers/steamencryptedappticket.h b/res/steamworks/148a/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/148a/headers/steamencryptedappticket.h rename to res/steamworks/148a/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/148a/headers/steamhttpenums.h b/res/steamworks/148a/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/148a/headers/steamhttpenums.h rename to res/steamworks/148a/headers/steam/steamhttpenums.h diff --git a/res/steamworks/148a/headers/steamnetworkingtypes.h b/res/steamworks/148a/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/148a/headers/steamnetworkingtypes.h rename to res/steamworks/148a/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/148a/headers/steamps3params.h b/res/steamworks/148a/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/148a/headers/steamps3params.h rename to res/steamworks/148a/headers/steam/steamps3params.h diff --git a/res/steamworks/148a/headers/steamtypes.h b/res/steamworks/148a/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/148a/headers/steamtypes.h rename to res/steamworks/148a/headers/steam/steamtypes.h diff --git a/res/steamworks/148a/headers/steamuniverse.h b/res/steamworks/148a/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/148a/headers/steamuniverse.h rename to res/steamworks/148a/headers/steam/steamuniverse.h diff --git a/res/steamworks/149/headers/isteamapplist.h b/res/steamworks/149/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/149/headers/isteamapplist.h rename to res/steamworks/149/headers/steam/isteamapplist.h diff --git a/res/steamworks/149/headers/isteamapps.h b/res/steamworks/149/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/149/headers/isteamapps.h rename to res/steamworks/149/headers/steam/isteamapps.h diff --git a/res/steamworks/149/headers/isteamappticket.h b/res/steamworks/149/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/149/headers/isteamappticket.h rename to res/steamworks/149/headers/steam/isteamappticket.h diff --git a/res/steamworks/149/headers/isteamclient.h b/res/steamworks/149/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/149/headers/isteamclient.h rename to res/steamworks/149/headers/steam/isteamclient.h diff --git a/res/steamworks/149/headers/isteamcontroller.h b/res/steamworks/149/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/149/headers/isteamcontroller.h rename to res/steamworks/149/headers/steam/isteamcontroller.h diff --git a/res/steamworks/149/headers/isteamfriends.h b/res/steamworks/149/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/149/headers/isteamfriends.h rename to res/steamworks/149/headers/steam/isteamfriends.h diff --git a/res/steamworks/149/headers/isteamgamecoordinator.h b/res/steamworks/149/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/149/headers/isteamgamecoordinator.h rename to res/steamworks/149/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/149/headers/isteamgameserver.h b/res/steamworks/149/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/149/headers/isteamgameserver.h rename to res/steamworks/149/headers/steam/isteamgameserver.h diff --git a/res/steamworks/149/headers/isteamgameserverstats.h b/res/steamworks/149/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/149/headers/isteamgameserverstats.h rename to res/steamworks/149/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/149/headers/isteamhtmlsurface.h b/res/steamworks/149/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/149/headers/isteamhtmlsurface.h rename to res/steamworks/149/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/149/headers/isteamhttp.h b/res/steamworks/149/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/149/headers/isteamhttp.h rename to res/steamworks/149/headers/steam/isteamhttp.h diff --git a/res/steamworks/149/headers/isteaminput.h b/res/steamworks/149/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/149/headers/isteaminput.h rename to res/steamworks/149/headers/steam/isteaminput.h diff --git a/res/steamworks/149/headers/isteaminventory.h b/res/steamworks/149/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/149/headers/isteaminventory.h rename to res/steamworks/149/headers/steam/isteaminventory.h diff --git a/res/steamworks/149/headers/isteammasterserverupdater.h b/res/steamworks/149/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/149/headers/isteammasterserverupdater.h rename to res/steamworks/149/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/149/headers/isteammatchmaking.h b/res/steamworks/149/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/149/headers/isteammatchmaking.h rename to res/steamworks/149/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/149/headers/isteammusic.h b/res/steamworks/149/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/149/headers/isteammusic.h rename to res/steamworks/149/headers/steam/isteammusic.h diff --git a/res/steamworks/149/headers/isteammusicremote.h b/res/steamworks/149/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/149/headers/isteammusicremote.h rename to res/steamworks/149/headers/steam/isteammusicremote.h diff --git a/res/steamworks/149/headers/isteamnetworking.h b/res/steamworks/149/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/149/headers/isteamnetworking.h rename to res/steamworks/149/headers/steam/isteamnetworking.h diff --git a/res/steamworks/149/headers/isteamnetworkingsockets.h b/res/steamworks/149/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/149/headers/isteamnetworkingsockets.h rename to res/steamworks/149/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/149/headers/isteamnetworkingutils.h b/res/steamworks/149/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/149/headers/isteamnetworkingutils.h rename to res/steamworks/149/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/149/headers/isteamparentalsettings.h b/res/steamworks/149/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/149/headers/isteamparentalsettings.h rename to res/steamworks/149/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/149/headers/isteamps3overlayrenderer.h b/res/steamworks/149/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/149/headers/isteamps3overlayrenderer.h rename to res/steamworks/149/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/149/headers/isteamremoteplay.h b/res/steamworks/149/headers/steam/isteamremoteplay.h similarity index 100% rename from res/steamworks/149/headers/isteamremoteplay.h rename to res/steamworks/149/headers/steam/isteamremoteplay.h diff --git a/res/steamworks/149/headers/isteamremotestorage.h b/res/steamworks/149/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/149/headers/isteamremotestorage.h rename to res/steamworks/149/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/149/headers/isteamscreenshots.h b/res/steamworks/149/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/149/headers/isteamscreenshots.h rename to res/steamworks/149/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/149/headers/isteamugc.h b/res/steamworks/149/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/149/headers/isteamugc.h rename to res/steamworks/149/headers/steam/isteamugc.h diff --git a/res/steamworks/149/headers/isteamuser.h b/res/steamworks/149/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/149/headers/isteamuser.h rename to res/steamworks/149/headers/steam/isteamuser.h diff --git a/res/steamworks/149/headers/isteamuserstats.h b/res/steamworks/149/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/149/headers/isteamuserstats.h rename to res/steamworks/149/headers/steam/isteamuserstats.h diff --git a/res/steamworks/149/headers/isteamutils.h b/res/steamworks/149/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/149/headers/isteamutils.h rename to res/steamworks/149/headers/steam/isteamutils.h diff --git a/res/steamworks/149/headers/isteamvideo.h b/res/steamworks/149/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/149/headers/isteamvideo.h rename to res/steamworks/149/headers/steam/isteamvideo.h diff --git a/res/steamworks/149/headers/matchmakingtypes.h b/res/steamworks/149/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/149/headers/matchmakingtypes.h rename to res/steamworks/149/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/149/headers/steam_api.h b/res/steamworks/149/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/149/headers/steam_api.h rename to res/steamworks/149/headers/steam/steam_api.h diff --git a/res/steamworks/149/headers/steam_api_common.h b/res/steamworks/149/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/149/headers/steam_api_common.h rename to res/steamworks/149/headers/steam/steam_api_common.h diff --git a/res/steamworks/149/headers/steam_api_flat.h b/res/steamworks/149/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/149/headers/steam_api_flat.h rename to res/steamworks/149/headers/steam/steam_api_flat.h diff --git a/res/steamworks/149/headers/steam_api_internal.h b/res/steamworks/149/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/149/headers/steam_api_internal.h rename to res/steamworks/149/headers/steam/steam_api_internal.h diff --git a/res/steamworks/149/headers/steam_gameserver.h b/res/steamworks/149/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/149/headers/steam_gameserver.h rename to res/steamworks/149/headers/steam/steam_gameserver.h diff --git a/res/steamworks/149/headers/steamclientpublic.h b/res/steamworks/149/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/149/headers/steamclientpublic.h rename to res/steamworks/149/headers/steam/steamclientpublic.h diff --git a/res/steamworks/149/headers/steamdatagram_tickets.h b/res/steamworks/149/headers/steam/steamdatagram_tickets.h similarity index 100% rename from res/steamworks/149/headers/steamdatagram_tickets.h rename to res/steamworks/149/headers/steam/steamdatagram_tickets.h diff --git a/res/steamworks/149/headers/steamencryptedappticket.h b/res/steamworks/149/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/149/headers/steamencryptedappticket.h rename to res/steamworks/149/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/149/headers/steamhttpenums.h b/res/steamworks/149/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/149/headers/steamhttpenums.h rename to res/steamworks/149/headers/steam/steamhttpenums.h diff --git a/res/steamworks/149/headers/steamnetworkingtypes.h b/res/steamworks/149/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/149/headers/steamnetworkingtypes.h rename to res/steamworks/149/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/149/headers/steamps3params.h b/res/steamworks/149/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/149/headers/steamps3params.h rename to res/steamworks/149/headers/steam/steamps3params.h diff --git a/res/steamworks/149/headers/steamtypes.h b/res/steamworks/149/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/149/headers/steamtypes.h rename to res/steamworks/149/headers/steam/steamtypes.h diff --git a/res/steamworks/149/headers/steamuniverse.h b/res/steamworks/149/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/149/headers/steamuniverse.h rename to res/steamworks/149/headers/steam/steamuniverse.h diff --git a/res/steamworks/150/headers/isteamapplist.h b/res/steamworks/150/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/150/headers/isteamapplist.h rename to res/steamworks/150/headers/steam/isteamapplist.h diff --git a/res/steamworks/150/headers/isteamapps.h b/res/steamworks/150/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/150/headers/isteamapps.h rename to res/steamworks/150/headers/steam/isteamapps.h diff --git a/res/steamworks/150/headers/isteamappticket.h b/res/steamworks/150/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/150/headers/isteamappticket.h rename to res/steamworks/150/headers/steam/isteamappticket.h diff --git a/res/steamworks/150/headers/isteamclient.h b/res/steamworks/150/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/150/headers/isteamclient.h rename to res/steamworks/150/headers/steam/isteamclient.h diff --git a/res/steamworks/150/headers/isteamcontroller.h b/res/steamworks/150/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/150/headers/isteamcontroller.h rename to res/steamworks/150/headers/steam/isteamcontroller.h diff --git a/res/steamworks/150/headers/isteamfriends.h b/res/steamworks/150/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/150/headers/isteamfriends.h rename to res/steamworks/150/headers/steam/isteamfriends.h diff --git a/res/steamworks/150/headers/isteamgamecoordinator.h b/res/steamworks/150/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/150/headers/isteamgamecoordinator.h rename to res/steamworks/150/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/150/headers/isteamgameserver.h b/res/steamworks/150/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/150/headers/isteamgameserver.h rename to res/steamworks/150/headers/steam/isteamgameserver.h diff --git a/res/steamworks/150/headers/isteamgameserverstats.h b/res/steamworks/150/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/150/headers/isteamgameserverstats.h rename to res/steamworks/150/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/150/headers/isteamhtmlsurface.h b/res/steamworks/150/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/150/headers/isteamhtmlsurface.h rename to res/steamworks/150/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/150/headers/isteamhttp.h b/res/steamworks/150/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/150/headers/isteamhttp.h rename to res/steamworks/150/headers/steam/isteamhttp.h diff --git a/res/steamworks/150/headers/isteaminput.h b/res/steamworks/150/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/150/headers/isteaminput.h rename to res/steamworks/150/headers/steam/isteaminput.h diff --git a/res/steamworks/150/headers/isteaminventory.h b/res/steamworks/150/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/150/headers/isteaminventory.h rename to res/steamworks/150/headers/steam/isteaminventory.h diff --git a/res/steamworks/150/headers/isteammasterserverupdater.h b/res/steamworks/150/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/150/headers/isteammasterserverupdater.h rename to res/steamworks/150/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/150/headers/isteammatchmaking.h b/res/steamworks/150/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/150/headers/isteammatchmaking.h rename to res/steamworks/150/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/150/headers/isteammusic.h b/res/steamworks/150/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/150/headers/isteammusic.h rename to res/steamworks/150/headers/steam/isteammusic.h diff --git a/res/steamworks/150/headers/isteammusicremote.h b/res/steamworks/150/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/150/headers/isteammusicremote.h rename to res/steamworks/150/headers/steam/isteammusicremote.h diff --git a/res/steamworks/150/headers/isteamnetworking.h b/res/steamworks/150/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/150/headers/isteamnetworking.h rename to res/steamworks/150/headers/steam/isteamnetworking.h diff --git a/res/steamworks/150/headers/isteamnetworkingmessages.h b/res/steamworks/150/headers/steam/isteamnetworkingmessages.h similarity index 100% rename from res/steamworks/150/headers/isteamnetworkingmessages.h rename to res/steamworks/150/headers/steam/isteamnetworkingmessages.h diff --git a/res/steamworks/150/headers/isteamnetworkingsockets.h b/res/steamworks/150/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/150/headers/isteamnetworkingsockets.h rename to res/steamworks/150/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/150/headers/isteamnetworkingutils.h b/res/steamworks/150/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/150/headers/isteamnetworkingutils.h rename to res/steamworks/150/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/150/headers/isteamparentalsettings.h b/res/steamworks/150/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/150/headers/isteamparentalsettings.h rename to res/steamworks/150/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/150/headers/isteamps3overlayrenderer.h b/res/steamworks/150/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/150/headers/isteamps3overlayrenderer.h rename to res/steamworks/150/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/150/headers/isteamremoteplay.h b/res/steamworks/150/headers/steam/isteamremoteplay.h similarity index 100% rename from res/steamworks/150/headers/isteamremoteplay.h rename to res/steamworks/150/headers/steam/isteamremoteplay.h diff --git a/res/steamworks/150/headers/isteamremotestorage.h b/res/steamworks/150/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/150/headers/isteamremotestorage.h rename to res/steamworks/150/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/150/headers/isteamscreenshots.h b/res/steamworks/150/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/150/headers/isteamscreenshots.h rename to res/steamworks/150/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/150/headers/isteamugc.h b/res/steamworks/150/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/150/headers/isteamugc.h rename to res/steamworks/150/headers/steam/isteamugc.h diff --git a/res/steamworks/150/headers/isteamuser.h b/res/steamworks/150/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/150/headers/isteamuser.h rename to res/steamworks/150/headers/steam/isteamuser.h diff --git a/res/steamworks/150/headers/isteamuserstats.h b/res/steamworks/150/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/150/headers/isteamuserstats.h rename to res/steamworks/150/headers/steam/isteamuserstats.h diff --git a/res/steamworks/150/headers/isteamutils.h b/res/steamworks/150/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/150/headers/isteamutils.h rename to res/steamworks/150/headers/steam/isteamutils.h diff --git a/res/steamworks/150/headers/isteamvideo.h b/res/steamworks/150/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/150/headers/isteamvideo.h rename to res/steamworks/150/headers/steam/isteamvideo.h diff --git a/res/steamworks/150/headers/matchmakingtypes.h b/res/steamworks/150/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/150/headers/matchmakingtypes.h rename to res/steamworks/150/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/150/headers/steam_api.h b/res/steamworks/150/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/150/headers/steam_api.h rename to res/steamworks/150/headers/steam/steam_api.h diff --git a/res/steamworks/150/headers/steam_api_common.h b/res/steamworks/150/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/150/headers/steam_api_common.h rename to res/steamworks/150/headers/steam/steam_api_common.h diff --git a/res/steamworks/150/headers/steam_api_flat.h b/res/steamworks/150/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/150/headers/steam_api_flat.h rename to res/steamworks/150/headers/steam/steam_api_flat.h diff --git a/res/steamworks/150/headers/steam_api_internal.h b/res/steamworks/150/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/150/headers/steam_api_internal.h rename to res/steamworks/150/headers/steam/steam_api_internal.h diff --git a/res/steamworks/150/headers/steam_gameserver.h b/res/steamworks/150/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/150/headers/steam_gameserver.h rename to res/steamworks/150/headers/steam/steam_gameserver.h diff --git a/res/steamworks/150/headers/steamclientpublic.h b/res/steamworks/150/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/150/headers/steamclientpublic.h rename to res/steamworks/150/headers/steam/steamclientpublic.h diff --git a/res/steamworks/150/headers/steamdatagram_tickets.h b/res/steamworks/150/headers/steam/steamdatagram_tickets.h similarity index 100% rename from res/steamworks/150/headers/steamdatagram_tickets.h rename to res/steamworks/150/headers/steam/steamdatagram_tickets.h diff --git a/res/steamworks/150/headers/steamencryptedappticket.h b/res/steamworks/150/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/150/headers/steamencryptedappticket.h rename to res/steamworks/150/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/150/headers/steamhttpenums.h b/res/steamworks/150/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/150/headers/steamhttpenums.h rename to res/steamworks/150/headers/steam/steamhttpenums.h diff --git a/res/steamworks/150/headers/steamnetworkingtypes.h b/res/steamworks/150/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/150/headers/steamnetworkingtypes.h rename to res/steamworks/150/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/150/headers/steamps3params.h b/res/steamworks/150/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/150/headers/steamps3params.h rename to res/steamworks/150/headers/steam/steamps3params.h diff --git a/res/steamworks/150/headers/steamtypes.h b/res/steamworks/150/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/150/headers/steamtypes.h rename to res/steamworks/150/headers/steam/steamtypes.h diff --git a/res/steamworks/150/headers/steamuniverse.h b/res/steamworks/150/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/150/headers/steamuniverse.h rename to res/steamworks/150/headers/steam/steamuniverse.h diff --git a/res/steamworks/151/headers/isteamapplist.h b/res/steamworks/151/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/151/headers/isteamapplist.h rename to res/steamworks/151/headers/steam/isteamapplist.h diff --git a/res/steamworks/151/headers/isteamapps.h b/res/steamworks/151/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/151/headers/isteamapps.h rename to res/steamworks/151/headers/steam/isteamapps.h diff --git a/res/steamworks/151/headers/isteamappticket.h b/res/steamworks/151/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/151/headers/isteamappticket.h rename to res/steamworks/151/headers/steam/isteamappticket.h diff --git a/res/steamworks/151/headers/isteamclient.h b/res/steamworks/151/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/151/headers/isteamclient.h rename to res/steamworks/151/headers/steam/isteamclient.h diff --git a/res/steamworks/151/headers/isteamcontroller.h b/res/steamworks/151/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/151/headers/isteamcontroller.h rename to res/steamworks/151/headers/steam/isteamcontroller.h diff --git a/res/steamworks/151/headers/isteamfriends.h b/res/steamworks/151/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/151/headers/isteamfriends.h rename to res/steamworks/151/headers/steam/isteamfriends.h diff --git a/res/steamworks/151/headers/isteamgamecoordinator.h b/res/steamworks/151/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/151/headers/isteamgamecoordinator.h rename to res/steamworks/151/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/151/headers/isteamgameserver.h b/res/steamworks/151/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/151/headers/isteamgameserver.h rename to res/steamworks/151/headers/steam/isteamgameserver.h diff --git a/res/steamworks/151/headers/isteamgameserverstats.h b/res/steamworks/151/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/151/headers/isteamgameserverstats.h rename to res/steamworks/151/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/151/headers/isteamhtmlsurface.h b/res/steamworks/151/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/151/headers/isteamhtmlsurface.h rename to res/steamworks/151/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/151/headers/isteamhttp.h b/res/steamworks/151/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/151/headers/isteamhttp.h rename to res/steamworks/151/headers/steam/isteamhttp.h diff --git a/res/steamworks/151/headers/isteaminput.h b/res/steamworks/151/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/151/headers/isteaminput.h rename to res/steamworks/151/headers/steam/isteaminput.h diff --git a/res/steamworks/151/headers/isteaminventory.h b/res/steamworks/151/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/151/headers/isteaminventory.h rename to res/steamworks/151/headers/steam/isteaminventory.h diff --git a/res/steamworks/151/headers/isteammasterserverupdater.h b/res/steamworks/151/headers/steam/isteammasterserverupdater.h similarity index 100% rename from res/steamworks/151/headers/isteammasterserverupdater.h rename to res/steamworks/151/headers/steam/isteammasterserverupdater.h diff --git a/res/steamworks/151/headers/isteammatchmaking.h b/res/steamworks/151/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/151/headers/isteammatchmaking.h rename to res/steamworks/151/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/151/headers/isteammusic.h b/res/steamworks/151/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/151/headers/isteammusic.h rename to res/steamworks/151/headers/steam/isteammusic.h diff --git a/res/steamworks/151/headers/isteammusicremote.h b/res/steamworks/151/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/151/headers/isteammusicremote.h rename to res/steamworks/151/headers/steam/isteammusicremote.h diff --git a/res/steamworks/151/headers/isteamnetworking.h b/res/steamworks/151/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/151/headers/isteamnetworking.h rename to res/steamworks/151/headers/steam/isteamnetworking.h diff --git a/res/steamworks/151/headers/isteamnetworkingmessages.h b/res/steamworks/151/headers/steam/isteamnetworkingmessages.h similarity index 100% rename from res/steamworks/151/headers/isteamnetworkingmessages.h rename to res/steamworks/151/headers/steam/isteamnetworkingmessages.h diff --git a/res/steamworks/151/headers/isteamnetworkingsockets.h b/res/steamworks/151/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/151/headers/isteamnetworkingsockets.h rename to res/steamworks/151/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/151/headers/isteamnetworkingutils.h b/res/steamworks/151/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/151/headers/isteamnetworkingutils.h rename to res/steamworks/151/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/151/headers/isteamparentalsettings.h b/res/steamworks/151/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/151/headers/isteamparentalsettings.h rename to res/steamworks/151/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/151/headers/isteamps3overlayrenderer.h b/res/steamworks/151/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/151/headers/isteamps3overlayrenderer.h rename to res/steamworks/151/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/151/headers/isteamremoteplay.h b/res/steamworks/151/headers/steam/isteamremoteplay.h similarity index 100% rename from res/steamworks/151/headers/isteamremoteplay.h rename to res/steamworks/151/headers/steam/isteamremoteplay.h diff --git a/res/steamworks/151/headers/isteamremotestorage.h b/res/steamworks/151/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/151/headers/isteamremotestorage.h rename to res/steamworks/151/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/151/headers/isteamscreenshots.h b/res/steamworks/151/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/151/headers/isteamscreenshots.h rename to res/steamworks/151/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/151/headers/isteamugc.h b/res/steamworks/151/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/151/headers/isteamugc.h rename to res/steamworks/151/headers/steam/isteamugc.h diff --git a/res/steamworks/151/headers/isteamuser.h b/res/steamworks/151/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/151/headers/isteamuser.h rename to res/steamworks/151/headers/steam/isteamuser.h diff --git a/res/steamworks/151/headers/isteamuserstats.h b/res/steamworks/151/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/151/headers/isteamuserstats.h rename to res/steamworks/151/headers/steam/isteamuserstats.h diff --git a/res/steamworks/151/headers/isteamutils.h b/res/steamworks/151/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/151/headers/isteamutils.h rename to res/steamworks/151/headers/steam/isteamutils.h diff --git a/res/steamworks/151/headers/isteamvideo.h b/res/steamworks/151/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/151/headers/isteamvideo.h rename to res/steamworks/151/headers/steam/isteamvideo.h diff --git a/res/steamworks/151/headers/matchmakingtypes.h b/res/steamworks/151/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/151/headers/matchmakingtypes.h rename to res/steamworks/151/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/151/headers/steam_api.h b/res/steamworks/151/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/151/headers/steam_api.h rename to res/steamworks/151/headers/steam/steam_api.h diff --git a/res/steamworks/151/headers/steam_api_common.h b/res/steamworks/151/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/151/headers/steam_api_common.h rename to res/steamworks/151/headers/steam/steam_api_common.h diff --git a/res/steamworks/151/headers/steam_api_flat.h b/res/steamworks/151/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/151/headers/steam_api_flat.h rename to res/steamworks/151/headers/steam/steam_api_flat.h diff --git a/res/steamworks/151/headers/steam_api_internal.h b/res/steamworks/151/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/151/headers/steam_api_internal.h rename to res/steamworks/151/headers/steam/steam_api_internal.h diff --git a/res/steamworks/151/headers/steam_gameserver.h b/res/steamworks/151/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/151/headers/steam_gameserver.h rename to res/steamworks/151/headers/steam/steam_gameserver.h diff --git a/res/steamworks/151/headers/steamclientpublic.h b/res/steamworks/151/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/151/headers/steamclientpublic.h rename to res/steamworks/151/headers/steam/steamclientpublic.h diff --git a/res/steamworks/151/headers/steamdatagram_tickets.h b/res/steamworks/151/headers/steam/steamdatagram_tickets.h similarity index 100% rename from res/steamworks/151/headers/steamdatagram_tickets.h rename to res/steamworks/151/headers/steam/steamdatagram_tickets.h diff --git a/res/steamworks/151/headers/steamencryptedappticket.h b/res/steamworks/151/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/151/headers/steamencryptedappticket.h rename to res/steamworks/151/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/151/headers/steamhttpenums.h b/res/steamworks/151/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/151/headers/steamhttpenums.h rename to res/steamworks/151/headers/steam/steamhttpenums.h diff --git a/res/steamworks/151/headers/steamnetworkingtypes.h b/res/steamworks/151/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/151/headers/steamnetworkingtypes.h rename to res/steamworks/151/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/151/headers/steamps3params.h b/res/steamworks/151/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/151/headers/steamps3params.h rename to res/steamworks/151/headers/steam/steamps3params.h diff --git a/res/steamworks/151/headers/steamtypes.h b/res/steamworks/151/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/151/headers/steamtypes.h rename to res/steamworks/151/headers/steam/steamtypes.h diff --git a/res/steamworks/151/headers/steamuniverse.h b/res/steamworks/151/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/151/headers/steamuniverse.h rename to res/steamworks/151/headers/steam/steamuniverse.h diff --git a/res/steamworks/152/headers/isteamapplist.h b/res/steamworks/152/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/152/headers/isteamapplist.h rename to res/steamworks/152/headers/steam/isteamapplist.h diff --git a/res/steamworks/152/headers/isteamapps.h b/res/steamworks/152/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/152/headers/isteamapps.h rename to res/steamworks/152/headers/steam/isteamapps.h diff --git a/res/steamworks/152/headers/isteamappticket.h b/res/steamworks/152/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/152/headers/isteamappticket.h rename to res/steamworks/152/headers/steam/isteamappticket.h diff --git a/res/steamworks/152/headers/isteamclient.h b/res/steamworks/152/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/152/headers/isteamclient.h rename to res/steamworks/152/headers/steam/isteamclient.h diff --git a/res/steamworks/152/headers/isteamcontroller.h b/res/steamworks/152/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/152/headers/isteamcontroller.h rename to res/steamworks/152/headers/steam/isteamcontroller.h diff --git a/res/steamworks/152/headers/isteamfriends.h b/res/steamworks/152/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/152/headers/isteamfriends.h rename to res/steamworks/152/headers/steam/isteamfriends.h diff --git a/res/steamworks/152/headers/isteamgamecoordinator.h b/res/steamworks/152/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/152/headers/isteamgamecoordinator.h rename to res/steamworks/152/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/152/headers/isteamgameserver.h b/res/steamworks/152/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/152/headers/isteamgameserver.h rename to res/steamworks/152/headers/steam/isteamgameserver.h diff --git a/res/steamworks/152/headers/isteamgameserverstats.h b/res/steamworks/152/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/152/headers/isteamgameserverstats.h rename to res/steamworks/152/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/152/headers/isteamhtmlsurface.h b/res/steamworks/152/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/152/headers/isteamhtmlsurface.h rename to res/steamworks/152/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/152/headers/isteamhttp.h b/res/steamworks/152/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/152/headers/isteamhttp.h rename to res/steamworks/152/headers/steam/isteamhttp.h diff --git a/res/steamworks/152/headers/isteaminput.h b/res/steamworks/152/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/152/headers/isteaminput.h rename to res/steamworks/152/headers/steam/isteaminput.h diff --git a/res/steamworks/152/headers/isteaminventory.h b/res/steamworks/152/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/152/headers/isteaminventory.h rename to res/steamworks/152/headers/steam/isteaminventory.h diff --git a/res/steamworks/152/headers/isteammatchmaking.h b/res/steamworks/152/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/152/headers/isteammatchmaking.h rename to res/steamworks/152/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/152/headers/isteammusic.h b/res/steamworks/152/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/152/headers/isteammusic.h rename to res/steamworks/152/headers/steam/isteammusic.h diff --git a/res/steamworks/152/headers/isteammusicremote.h b/res/steamworks/152/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/152/headers/isteammusicremote.h rename to res/steamworks/152/headers/steam/isteammusicremote.h diff --git a/res/steamworks/152/headers/isteamnetworking.h b/res/steamworks/152/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/152/headers/isteamnetworking.h rename to res/steamworks/152/headers/steam/isteamnetworking.h diff --git a/res/steamworks/152/headers/isteamnetworkingmessages.h b/res/steamworks/152/headers/steam/isteamnetworkingmessages.h similarity index 100% rename from res/steamworks/152/headers/isteamnetworkingmessages.h rename to res/steamworks/152/headers/steam/isteamnetworkingmessages.h diff --git a/res/steamworks/152/headers/isteamnetworkingsockets.h b/res/steamworks/152/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/152/headers/isteamnetworkingsockets.h rename to res/steamworks/152/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/152/headers/isteamnetworkingutils.h b/res/steamworks/152/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/152/headers/isteamnetworkingutils.h rename to res/steamworks/152/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/152/headers/isteamparentalsettings.h b/res/steamworks/152/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/152/headers/isteamparentalsettings.h rename to res/steamworks/152/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/152/headers/isteamps3overlayrenderer.h b/res/steamworks/152/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/152/headers/isteamps3overlayrenderer.h rename to res/steamworks/152/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/152/headers/isteamremoteplay.h b/res/steamworks/152/headers/steam/isteamremoteplay.h similarity index 100% rename from res/steamworks/152/headers/isteamremoteplay.h rename to res/steamworks/152/headers/steam/isteamremoteplay.h diff --git a/res/steamworks/152/headers/isteamremotestorage.h b/res/steamworks/152/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/152/headers/isteamremotestorage.h rename to res/steamworks/152/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/152/headers/isteamscreenshots.h b/res/steamworks/152/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/152/headers/isteamscreenshots.h rename to res/steamworks/152/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/152/headers/isteamugc.h b/res/steamworks/152/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/152/headers/isteamugc.h rename to res/steamworks/152/headers/steam/isteamugc.h diff --git a/res/steamworks/152/headers/isteamuser.h b/res/steamworks/152/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/152/headers/isteamuser.h rename to res/steamworks/152/headers/steam/isteamuser.h diff --git a/res/steamworks/152/headers/isteamuserstats.h b/res/steamworks/152/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/152/headers/isteamuserstats.h rename to res/steamworks/152/headers/steam/isteamuserstats.h diff --git a/res/steamworks/152/headers/isteamutils.h b/res/steamworks/152/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/152/headers/isteamutils.h rename to res/steamworks/152/headers/steam/isteamutils.h diff --git a/res/steamworks/152/headers/isteamvideo.h b/res/steamworks/152/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/152/headers/isteamvideo.h rename to res/steamworks/152/headers/steam/isteamvideo.h diff --git a/res/steamworks/152/headers/matchmakingtypes.h b/res/steamworks/152/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/152/headers/matchmakingtypes.h rename to res/steamworks/152/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/152/headers/steam_api.h b/res/steamworks/152/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/152/headers/steam_api.h rename to res/steamworks/152/headers/steam/steam_api.h diff --git a/res/steamworks/152/headers/steam_api_common.h b/res/steamworks/152/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/152/headers/steam_api_common.h rename to res/steamworks/152/headers/steam/steam_api_common.h diff --git a/res/steamworks/152/headers/steam_api_flat.h b/res/steamworks/152/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/152/headers/steam_api_flat.h rename to res/steamworks/152/headers/steam/steam_api_flat.h diff --git a/res/steamworks/152/headers/steam_api_internal.h b/res/steamworks/152/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/152/headers/steam_api_internal.h rename to res/steamworks/152/headers/steam/steam_api_internal.h diff --git a/res/steamworks/152/headers/steam_gameserver.h b/res/steamworks/152/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/152/headers/steam_gameserver.h rename to res/steamworks/152/headers/steam/steam_gameserver.h diff --git a/res/steamworks/152/headers/steamclientpublic.h b/res/steamworks/152/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/152/headers/steamclientpublic.h rename to res/steamworks/152/headers/steam/steamclientpublic.h diff --git a/res/steamworks/152/headers/steamencryptedappticket.h b/res/steamworks/152/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/152/headers/steamencryptedappticket.h rename to res/steamworks/152/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/152/headers/steamhttpenums.h b/res/steamworks/152/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/152/headers/steamhttpenums.h rename to res/steamworks/152/headers/steam/steamhttpenums.h diff --git a/res/steamworks/152/headers/steamnetworkingtypes.h b/res/steamworks/152/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/152/headers/steamnetworkingtypes.h rename to res/steamworks/152/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/152/headers/steamps3params.h b/res/steamworks/152/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/152/headers/steamps3params.h rename to res/steamworks/152/headers/steam/steamps3params.h diff --git a/res/steamworks/152/headers/steamtypes.h b/res/steamworks/152/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/152/headers/steamtypes.h rename to res/steamworks/152/headers/steam/steamtypes.h diff --git a/res/steamworks/152/headers/steamuniverse.h b/res/steamworks/152/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/152/headers/steamuniverse.h rename to res/steamworks/152/headers/steam/steamuniverse.h diff --git a/res/steamworks/153a/headers/isteamapplist.h b/res/steamworks/153a/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/153a/headers/isteamapplist.h rename to res/steamworks/153a/headers/steam/isteamapplist.h diff --git a/res/steamworks/153a/headers/isteamapps.h b/res/steamworks/153a/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/153a/headers/isteamapps.h rename to res/steamworks/153a/headers/steam/isteamapps.h diff --git a/res/steamworks/153a/headers/isteamappticket.h b/res/steamworks/153a/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/153a/headers/isteamappticket.h rename to res/steamworks/153a/headers/steam/isteamappticket.h diff --git a/res/steamworks/153a/headers/isteamclient.h b/res/steamworks/153a/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/153a/headers/isteamclient.h rename to res/steamworks/153a/headers/steam/isteamclient.h diff --git a/res/steamworks/153a/headers/isteamcontroller.h b/res/steamworks/153a/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/153a/headers/isteamcontroller.h rename to res/steamworks/153a/headers/steam/isteamcontroller.h diff --git a/res/steamworks/153a/headers/isteamfriends.h b/res/steamworks/153a/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/153a/headers/isteamfriends.h rename to res/steamworks/153a/headers/steam/isteamfriends.h diff --git a/res/steamworks/153a/headers/isteamgamecoordinator.h b/res/steamworks/153a/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/153a/headers/isteamgamecoordinator.h rename to res/steamworks/153a/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/153a/headers/isteamgameserver.h b/res/steamworks/153a/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/153a/headers/isteamgameserver.h rename to res/steamworks/153a/headers/steam/isteamgameserver.h diff --git a/res/steamworks/153a/headers/isteamgameserverstats.h b/res/steamworks/153a/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/153a/headers/isteamgameserverstats.h rename to res/steamworks/153a/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/153a/headers/isteamhtmlsurface.h b/res/steamworks/153a/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/153a/headers/isteamhtmlsurface.h rename to res/steamworks/153a/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/153a/headers/isteamhttp.h b/res/steamworks/153a/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/153a/headers/isteamhttp.h rename to res/steamworks/153a/headers/steam/isteamhttp.h diff --git a/res/steamworks/153a/headers/isteaminput.h b/res/steamworks/153a/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/153a/headers/isteaminput.h rename to res/steamworks/153a/headers/steam/isteaminput.h diff --git a/res/steamworks/153a/headers/isteaminventory.h b/res/steamworks/153a/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/153a/headers/isteaminventory.h rename to res/steamworks/153a/headers/steam/isteaminventory.h diff --git a/res/steamworks/153a/headers/isteammatchmaking.h b/res/steamworks/153a/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/153a/headers/isteammatchmaking.h rename to res/steamworks/153a/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/153a/headers/isteammusic.h b/res/steamworks/153a/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/153a/headers/isteammusic.h rename to res/steamworks/153a/headers/steam/isteammusic.h diff --git a/res/steamworks/153a/headers/isteammusicremote.h b/res/steamworks/153a/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/153a/headers/isteammusicremote.h rename to res/steamworks/153a/headers/steam/isteammusicremote.h diff --git a/res/steamworks/153a/headers/isteamnetworking.h b/res/steamworks/153a/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/153a/headers/isteamnetworking.h rename to res/steamworks/153a/headers/steam/isteamnetworking.h diff --git a/res/steamworks/153a/headers/isteamnetworkingmessages.h b/res/steamworks/153a/headers/steam/isteamnetworkingmessages.h similarity index 100% rename from res/steamworks/153a/headers/isteamnetworkingmessages.h rename to res/steamworks/153a/headers/steam/isteamnetworkingmessages.h diff --git a/res/steamworks/153a/headers/isteamnetworkingsockets.h b/res/steamworks/153a/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/153a/headers/isteamnetworkingsockets.h rename to res/steamworks/153a/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/153a/headers/isteamnetworkingutils.h b/res/steamworks/153a/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/153a/headers/isteamnetworkingutils.h rename to res/steamworks/153a/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/153a/headers/isteamparentalsettings.h b/res/steamworks/153a/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/153a/headers/isteamparentalsettings.h rename to res/steamworks/153a/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/153a/headers/isteamps3overlayrenderer.h b/res/steamworks/153a/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/153a/headers/isteamps3overlayrenderer.h rename to res/steamworks/153a/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/153a/headers/isteamremoteplay.h b/res/steamworks/153a/headers/steam/isteamremoteplay.h similarity index 100% rename from res/steamworks/153a/headers/isteamremoteplay.h rename to res/steamworks/153a/headers/steam/isteamremoteplay.h diff --git a/res/steamworks/153a/headers/isteamremotestorage.h b/res/steamworks/153a/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/153a/headers/isteamremotestorage.h rename to res/steamworks/153a/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/153a/headers/isteamscreenshots.h b/res/steamworks/153a/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/153a/headers/isteamscreenshots.h rename to res/steamworks/153a/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/153a/headers/isteamugc.h b/res/steamworks/153a/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/153a/headers/isteamugc.h rename to res/steamworks/153a/headers/steam/isteamugc.h diff --git a/res/steamworks/153a/headers/isteamuser.h b/res/steamworks/153a/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/153a/headers/isteamuser.h rename to res/steamworks/153a/headers/steam/isteamuser.h diff --git a/res/steamworks/153a/headers/isteamuserstats.h b/res/steamworks/153a/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/153a/headers/isteamuserstats.h rename to res/steamworks/153a/headers/steam/isteamuserstats.h diff --git a/res/steamworks/153a/headers/isteamutils.h b/res/steamworks/153a/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/153a/headers/isteamutils.h rename to res/steamworks/153a/headers/steam/isteamutils.h diff --git a/res/steamworks/153a/headers/isteamvideo.h b/res/steamworks/153a/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/153a/headers/isteamvideo.h rename to res/steamworks/153a/headers/steam/isteamvideo.h diff --git a/res/steamworks/153a/headers/matchmakingtypes.h b/res/steamworks/153a/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/153a/headers/matchmakingtypes.h rename to res/steamworks/153a/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/153a/headers/steam_api.h b/res/steamworks/153a/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/153a/headers/steam_api.h rename to res/steamworks/153a/headers/steam/steam_api.h diff --git a/res/steamworks/153a/headers/steam_api_common.h b/res/steamworks/153a/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/153a/headers/steam_api_common.h rename to res/steamworks/153a/headers/steam/steam_api_common.h diff --git a/res/steamworks/153a/headers/steam_api_flat.h b/res/steamworks/153a/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/153a/headers/steam_api_flat.h rename to res/steamworks/153a/headers/steam/steam_api_flat.h diff --git a/res/steamworks/153a/headers/steam_api_internal.h b/res/steamworks/153a/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/153a/headers/steam_api_internal.h rename to res/steamworks/153a/headers/steam/steam_api_internal.h diff --git a/res/steamworks/153a/headers/steam_gameserver.h b/res/steamworks/153a/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/153a/headers/steam_gameserver.h rename to res/steamworks/153a/headers/steam/steam_gameserver.h diff --git a/res/steamworks/153a/headers/steamclientpublic.h b/res/steamworks/153a/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/153a/headers/steamclientpublic.h rename to res/steamworks/153a/headers/steam/steamclientpublic.h diff --git a/res/steamworks/153a/headers/steamencryptedappticket.h b/res/steamworks/153a/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/153a/headers/steamencryptedappticket.h rename to res/steamworks/153a/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/153a/headers/steamhttpenums.h b/res/steamworks/153a/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/153a/headers/steamhttpenums.h rename to res/steamworks/153a/headers/steam/steamhttpenums.h diff --git a/res/steamworks/153a/headers/steamnetworkingfakeip.h b/res/steamworks/153a/headers/steam/steamnetworkingfakeip.h similarity index 100% rename from res/steamworks/153a/headers/steamnetworkingfakeip.h rename to res/steamworks/153a/headers/steam/steamnetworkingfakeip.h diff --git a/res/steamworks/153a/headers/steamnetworkingtypes.h b/res/steamworks/153a/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/153a/headers/steamnetworkingtypes.h rename to res/steamworks/153a/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/153a/headers/steamps3params.h b/res/steamworks/153a/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/153a/headers/steamps3params.h rename to res/steamworks/153a/headers/steam/steamps3params.h diff --git a/res/steamworks/153a/headers/steamtypes.h b/res/steamworks/153a/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/153a/headers/steamtypes.h rename to res/steamworks/153a/headers/steam/steamtypes.h diff --git a/res/steamworks/153a/headers/steamuniverse.h b/res/steamworks/153a/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/153a/headers/steamuniverse.h rename to res/steamworks/153a/headers/steam/steamuniverse.h diff --git a/res/steamworks/154/headers/isteamapplist.h b/res/steamworks/154/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/154/headers/isteamapplist.h rename to res/steamworks/154/headers/steam/isteamapplist.h diff --git a/res/steamworks/154/headers/isteamapps.h b/res/steamworks/154/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/154/headers/isteamapps.h rename to res/steamworks/154/headers/steam/isteamapps.h diff --git a/res/steamworks/154/headers/isteamappticket.h b/res/steamworks/154/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/154/headers/isteamappticket.h rename to res/steamworks/154/headers/steam/isteamappticket.h diff --git a/res/steamworks/154/headers/isteamclient.h b/res/steamworks/154/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/154/headers/isteamclient.h rename to res/steamworks/154/headers/steam/isteamclient.h diff --git a/res/steamworks/154/headers/isteamcontroller.h b/res/steamworks/154/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/154/headers/isteamcontroller.h rename to res/steamworks/154/headers/steam/isteamcontroller.h diff --git a/res/steamworks/154/headers/isteamfriends.h b/res/steamworks/154/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/154/headers/isteamfriends.h rename to res/steamworks/154/headers/steam/isteamfriends.h diff --git a/res/steamworks/154/headers/isteamgamecoordinator.h b/res/steamworks/154/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/154/headers/isteamgamecoordinator.h rename to res/steamworks/154/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/154/headers/isteamgameserver.h b/res/steamworks/154/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/154/headers/isteamgameserver.h rename to res/steamworks/154/headers/steam/isteamgameserver.h diff --git a/res/steamworks/154/headers/isteamgameserverstats.h b/res/steamworks/154/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/154/headers/isteamgameserverstats.h rename to res/steamworks/154/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/154/headers/isteamhtmlsurface.h b/res/steamworks/154/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/154/headers/isteamhtmlsurface.h rename to res/steamworks/154/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/154/headers/isteamhttp.h b/res/steamworks/154/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/154/headers/isteamhttp.h rename to res/steamworks/154/headers/steam/isteamhttp.h diff --git a/res/steamworks/154/headers/isteaminput.h b/res/steamworks/154/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/154/headers/isteaminput.h rename to res/steamworks/154/headers/steam/isteaminput.h diff --git a/res/steamworks/154/headers/isteaminventory.h b/res/steamworks/154/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/154/headers/isteaminventory.h rename to res/steamworks/154/headers/steam/isteaminventory.h diff --git a/res/steamworks/154/headers/isteammatchmaking.h b/res/steamworks/154/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/154/headers/isteammatchmaking.h rename to res/steamworks/154/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/154/headers/isteammusic.h b/res/steamworks/154/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/154/headers/isteammusic.h rename to res/steamworks/154/headers/steam/isteammusic.h diff --git a/res/steamworks/154/headers/isteammusicremote.h b/res/steamworks/154/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/154/headers/isteammusicremote.h rename to res/steamworks/154/headers/steam/isteammusicremote.h diff --git a/res/steamworks/154/headers/isteamnetworking.h b/res/steamworks/154/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/154/headers/isteamnetworking.h rename to res/steamworks/154/headers/steam/isteamnetworking.h diff --git a/res/steamworks/154/headers/isteamnetworkingmessages.h b/res/steamworks/154/headers/steam/isteamnetworkingmessages.h similarity index 100% rename from res/steamworks/154/headers/isteamnetworkingmessages.h rename to res/steamworks/154/headers/steam/isteamnetworkingmessages.h diff --git a/res/steamworks/154/headers/isteamnetworkingsockets.h b/res/steamworks/154/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/154/headers/isteamnetworkingsockets.h rename to res/steamworks/154/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/154/headers/isteamnetworkingutils.h b/res/steamworks/154/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/154/headers/isteamnetworkingutils.h rename to res/steamworks/154/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/154/headers/isteamparentalsettings.h b/res/steamworks/154/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/154/headers/isteamparentalsettings.h rename to res/steamworks/154/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/154/headers/isteamps3overlayrenderer.h b/res/steamworks/154/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/154/headers/isteamps3overlayrenderer.h rename to res/steamworks/154/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/154/headers/isteamremoteplay.h b/res/steamworks/154/headers/steam/isteamremoteplay.h similarity index 100% rename from res/steamworks/154/headers/isteamremoteplay.h rename to res/steamworks/154/headers/steam/isteamremoteplay.h diff --git a/res/steamworks/154/headers/isteamremotestorage.h b/res/steamworks/154/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/154/headers/isteamremotestorage.h rename to res/steamworks/154/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/154/headers/isteamscreenshots.h b/res/steamworks/154/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/154/headers/isteamscreenshots.h rename to res/steamworks/154/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/154/headers/isteamugc.h b/res/steamworks/154/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/154/headers/isteamugc.h rename to res/steamworks/154/headers/steam/isteamugc.h diff --git a/res/steamworks/154/headers/isteamuser.h b/res/steamworks/154/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/154/headers/isteamuser.h rename to res/steamworks/154/headers/steam/isteamuser.h diff --git a/res/steamworks/154/headers/isteamuserstats.h b/res/steamworks/154/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/154/headers/isteamuserstats.h rename to res/steamworks/154/headers/steam/isteamuserstats.h diff --git a/res/steamworks/154/headers/isteamutils.h b/res/steamworks/154/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/154/headers/isteamutils.h rename to res/steamworks/154/headers/steam/isteamutils.h diff --git a/res/steamworks/154/headers/isteamvideo.h b/res/steamworks/154/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/154/headers/isteamvideo.h rename to res/steamworks/154/headers/steam/isteamvideo.h diff --git a/res/steamworks/154/headers/matchmakingtypes.h b/res/steamworks/154/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/154/headers/matchmakingtypes.h rename to res/steamworks/154/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/154/headers/steam_api.h b/res/steamworks/154/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/154/headers/steam_api.h rename to res/steamworks/154/headers/steam/steam_api.h diff --git a/res/steamworks/154/headers/steam_api_common.h b/res/steamworks/154/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/154/headers/steam_api_common.h rename to res/steamworks/154/headers/steam/steam_api_common.h diff --git a/res/steamworks/154/headers/steam_api_flat.h b/res/steamworks/154/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/154/headers/steam_api_flat.h rename to res/steamworks/154/headers/steam/steam_api_flat.h diff --git a/res/steamworks/154/headers/steam_api_internal.h b/res/steamworks/154/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/154/headers/steam_api_internal.h rename to res/steamworks/154/headers/steam/steam_api_internal.h diff --git a/res/steamworks/154/headers/steam_gameserver.h b/res/steamworks/154/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/154/headers/steam_gameserver.h rename to res/steamworks/154/headers/steam/steam_gameserver.h diff --git a/res/steamworks/154/headers/steamclientpublic.h b/res/steamworks/154/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/154/headers/steamclientpublic.h rename to res/steamworks/154/headers/steam/steamclientpublic.h diff --git a/res/steamworks/154/headers/steamencryptedappticket.h b/res/steamworks/154/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/154/headers/steamencryptedappticket.h rename to res/steamworks/154/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/154/headers/steamhttpenums.h b/res/steamworks/154/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/154/headers/steamhttpenums.h rename to res/steamworks/154/headers/steam/steamhttpenums.h diff --git a/res/steamworks/154/headers/steamnetworkingfakeip.h b/res/steamworks/154/headers/steam/steamnetworkingfakeip.h similarity index 100% rename from res/steamworks/154/headers/steamnetworkingfakeip.h rename to res/steamworks/154/headers/steam/steamnetworkingfakeip.h diff --git a/res/steamworks/154/headers/steamnetworkingtypes.h b/res/steamworks/154/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/154/headers/steamnetworkingtypes.h rename to res/steamworks/154/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/154/headers/steamps3params.h b/res/steamworks/154/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/154/headers/steamps3params.h rename to res/steamworks/154/headers/steam/steamps3params.h diff --git a/res/steamworks/154/headers/steamtypes.h b/res/steamworks/154/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/154/headers/steamtypes.h rename to res/steamworks/154/headers/steam/steamtypes.h diff --git a/res/steamworks/154/headers/steamuniverse.h b/res/steamworks/154/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/154/headers/steamuniverse.h rename to res/steamworks/154/headers/steam/steamuniverse.h diff --git a/res/steamworks/155/headers/isteamapplist.h b/res/steamworks/155/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/155/headers/isteamapplist.h rename to res/steamworks/155/headers/steam/isteamapplist.h diff --git a/res/steamworks/155/headers/isteamapps.h b/res/steamworks/155/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/155/headers/isteamapps.h rename to res/steamworks/155/headers/steam/isteamapps.h diff --git a/res/steamworks/155/headers/isteamappticket.h b/res/steamworks/155/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/155/headers/isteamappticket.h rename to res/steamworks/155/headers/steam/isteamappticket.h diff --git a/res/steamworks/155/headers/isteamclient.h b/res/steamworks/155/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/155/headers/isteamclient.h rename to res/steamworks/155/headers/steam/isteamclient.h diff --git a/res/steamworks/155/headers/isteamcontroller.h b/res/steamworks/155/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/155/headers/isteamcontroller.h rename to res/steamworks/155/headers/steam/isteamcontroller.h diff --git a/res/steamworks/155/headers/isteamdualsense.h b/res/steamworks/155/headers/steam/isteamdualsense.h similarity index 100% rename from res/steamworks/155/headers/isteamdualsense.h rename to res/steamworks/155/headers/steam/isteamdualsense.h diff --git a/res/steamworks/155/headers/isteamfriends.h b/res/steamworks/155/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/155/headers/isteamfriends.h rename to res/steamworks/155/headers/steam/isteamfriends.h diff --git a/res/steamworks/155/headers/isteamgamecoordinator.h b/res/steamworks/155/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/155/headers/isteamgamecoordinator.h rename to res/steamworks/155/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/155/headers/isteamgameserver.h b/res/steamworks/155/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/155/headers/isteamgameserver.h rename to res/steamworks/155/headers/steam/isteamgameserver.h diff --git a/res/steamworks/155/headers/isteamgameserverstats.h b/res/steamworks/155/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/155/headers/isteamgameserverstats.h rename to res/steamworks/155/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/155/headers/isteamhtmlsurface.h b/res/steamworks/155/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/155/headers/isteamhtmlsurface.h rename to res/steamworks/155/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/155/headers/isteamhttp.h b/res/steamworks/155/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/155/headers/isteamhttp.h rename to res/steamworks/155/headers/steam/isteamhttp.h diff --git a/res/steamworks/155/headers/isteaminput.h b/res/steamworks/155/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/155/headers/isteaminput.h rename to res/steamworks/155/headers/steam/isteaminput.h diff --git a/res/steamworks/155/headers/isteaminventory.h b/res/steamworks/155/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/155/headers/isteaminventory.h rename to res/steamworks/155/headers/steam/isteaminventory.h diff --git a/res/steamworks/155/headers/isteammatchmaking.h b/res/steamworks/155/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/155/headers/isteammatchmaking.h rename to res/steamworks/155/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/155/headers/isteammusic.h b/res/steamworks/155/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/155/headers/isteammusic.h rename to res/steamworks/155/headers/steam/isteammusic.h diff --git a/res/steamworks/155/headers/isteammusicremote.h b/res/steamworks/155/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/155/headers/isteammusicremote.h rename to res/steamworks/155/headers/steam/isteammusicremote.h diff --git a/res/steamworks/155/headers/isteamnetworking.h b/res/steamworks/155/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/155/headers/isteamnetworking.h rename to res/steamworks/155/headers/steam/isteamnetworking.h diff --git a/res/steamworks/155/headers/isteamnetworkingmessages.h b/res/steamworks/155/headers/steam/isteamnetworkingmessages.h similarity index 100% rename from res/steamworks/155/headers/isteamnetworkingmessages.h rename to res/steamworks/155/headers/steam/isteamnetworkingmessages.h diff --git a/res/steamworks/155/headers/isteamnetworkingsockets.h b/res/steamworks/155/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/155/headers/isteamnetworkingsockets.h rename to res/steamworks/155/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/155/headers/isteamnetworkingutils.h b/res/steamworks/155/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/155/headers/isteamnetworkingutils.h rename to res/steamworks/155/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/155/headers/isteamparentalsettings.h b/res/steamworks/155/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/155/headers/isteamparentalsettings.h rename to res/steamworks/155/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/155/headers/isteamps3overlayrenderer.h b/res/steamworks/155/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/155/headers/isteamps3overlayrenderer.h rename to res/steamworks/155/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/155/headers/isteamremoteplay.h b/res/steamworks/155/headers/steam/isteamremoteplay.h similarity index 100% rename from res/steamworks/155/headers/isteamremoteplay.h rename to res/steamworks/155/headers/steam/isteamremoteplay.h diff --git a/res/steamworks/155/headers/isteamremotestorage.h b/res/steamworks/155/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/155/headers/isteamremotestorage.h rename to res/steamworks/155/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/155/headers/isteamscreenshots.h b/res/steamworks/155/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/155/headers/isteamscreenshots.h rename to res/steamworks/155/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/155/headers/isteamugc.h b/res/steamworks/155/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/155/headers/isteamugc.h rename to res/steamworks/155/headers/steam/isteamugc.h diff --git a/res/steamworks/155/headers/isteamuser.h b/res/steamworks/155/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/155/headers/isteamuser.h rename to res/steamworks/155/headers/steam/isteamuser.h diff --git a/res/steamworks/155/headers/isteamuserstats.h b/res/steamworks/155/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/155/headers/isteamuserstats.h rename to res/steamworks/155/headers/steam/isteamuserstats.h diff --git a/res/steamworks/155/headers/isteamutils.h b/res/steamworks/155/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/155/headers/isteamutils.h rename to res/steamworks/155/headers/steam/isteamutils.h diff --git a/res/steamworks/155/headers/isteamvideo.h b/res/steamworks/155/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/155/headers/isteamvideo.h rename to res/steamworks/155/headers/steam/isteamvideo.h diff --git a/res/steamworks/155/headers/matchmakingtypes.h b/res/steamworks/155/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/155/headers/matchmakingtypes.h rename to res/steamworks/155/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/155/headers/steam_api.h b/res/steamworks/155/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/155/headers/steam_api.h rename to res/steamworks/155/headers/steam/steam_api.h diff --git a/res/steamworks/155/headers/steam_api_common.h b/res/steamworks/155/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/155/headers/steam_api_common.h rename to res/steamworks/155/headers/steam/steam_api_common.h diff --git a/res/steamworks/155/headers/steam_api_flat.h b/res/steamworks/155/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/155/headers/steam_api_flat.h rename to res/steamworks/155/headers/steam/steam_api_flat.h diff --git a/res/steamworks/155/headers/steam_api_internal.h b/res/steamworks/155/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/155/headers/steam_api_internal.h rename to res/steamworks/155/headers/steam/steam_api_internal.h diff --git a/res/steamworks/155/headers/steam_gameserver.h b/res/steamworks/155/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/155/headers/steam_gameserver.h rename to res/steamworks/155/headers/steam/steam_gameserver.h diff --git a/res/steamworks/155/headers/steamclientpublic.h b/res/steamworks/155/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/155/headers/steamclientpublic.h rename to res/steamworks/155/headers/steam/steamclientpublic.h diff --git a/res/steamworks/155/headers/steamencryptedappticket.h b/res/steamworks/155/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/155/headers/steamencryptedappticket.h rename to res/steamworks/155/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/155/headers/steamhttpenums.h b/res/steamworks/155/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/155/headers/steamhttpenums.h rename to res/steamworks/155/headers/steam/steamhttpenums.h diff --git a/res/steamworks/155/headers/steamnetworkingfakeip.h b/res/steamworks/155/headers/steam/steamnetworkingfakeip.h similarity index 100% rename from res/steamworks/155/headers/steamnetworkingfakeip.h rename to res/steamworks/155/headers/steam/steamnetworkingfakeip.h diff --git a/res/steamworks/155/headers/steamnetworkingtypes.h b/res/steamworks/155/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/155/headers/steamnetworkingtypes.h rename to res/steamworks/155/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/155/headers/steamps3params.h b/res/steamworks/155/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/155/headers/steamps3params.h rename to res/steamworks/155/headers/steam/steamps3params.h diff --git a/res/steamworks/155/headers/steamtypes.h b/res/steamworks/155/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/155/headers/steamtypes.h rename to res/steamworks/155/headers/steam/steamtypes.h diff --git a/res/steamworks/155/headers/steamuniverse.h b/res/steamworks/155/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/155/headers/steamuniverse.h rename to res/steamworks/155/headers/steam/steamuniverse.h diff --git a/res/steamworks/156/headers/isteamapplist.h b/res/steamworks/156/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/156/headers/isteamapplist.h rename to res/steamworks/156/headers/steam/isteamapplist.h diff --git a/res/steamworks/156/headers/isteamapps.h b/res/steamworks/156/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/156/headers/isteamapps.h rename to res/steamworks/156/headers/steam/isteamapps.h diff --git a/res/steamworks/156/headers/isteamappticket.h b/res/steamworks/156/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/156/headers/isteamappticket.h rename to res/steamworks/156/headers/steam/isteamappticket.h diff --git a/res/steamworks/156/headers/isteamclient.h b/res/steamworks/156/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/156/headers/isteamclient.h rename to res/steamworks/156/headers/steam/isteamclient.h diff --git a/res/steamworks/156/headers/isteamcontroller.h b/res/steamworks/156/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/156/headers/isteamcontroller.h rename to res/steamworks/156/headers/steam/isteamcontroller.h diff --git a/res/steamworks/156/headers/isteamdualsense.h b/res/steamworks/156/headers/steam/isteamdualsense.h similarity index 100% rename from res/steamworks/156/headers/isteamdualsense.h rename to res/steamworks/156/headers/steam/isteamdualsense.h diff --git a/res/steamworks/156/headers/isteamfriends.h b/res/steamworks/156/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/156/headers/isteamfriends.h rename to res/steamworks/156/headers/steam/isteamfriends.h diff --git a/res/steamworks/156/headers/isteamgamecoordinator.h b/res/steamworks/156/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/156/headers/isteamgamecoordinator.h rename to res/steamworks/156/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/156/headers/isteamgameserver.h b/res/steamworks/156/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/156/headers/isteamgameserver.h rename to res/steamworks/156/headers/steam/isteamgameserver.h diff --git a/res/steamworks/156/headers/isteamgameserverstats.h b/res/steamworks/156/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/156/headers/isteamgameserverstats.h rename to res/steamworks/156/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/156/headers/isteamhtmlsurface.h b/res/steamworks/156/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/156/headers/isteamhtmlsurface.h rename to res/steamworks/156/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/156/headers/isteamhttp.h b/res/steamworks/156/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/156/headers/isteamhttp.h rename to res/steamworks/156/headers/steam/isteamhttp.h diff --git a/res/steamworks/156/headers/isteaminput.h b/res/steamworks/156/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/156/headers/isteaminput.h rename to res/steamworks/156/headers/steam/isteaminput.h diff --git a/res/steamworks/156/headers/isteaminventory.h b/res/steamworks/156/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/156/headers/isteaminventory.h rename to res/steamworks/156/headers/steam/isteaminventory.h diff --git a/res/steamworks/156/headers/isteammatchmaking.h b/res/steamworks/156/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/156/headers/isteammatchmaking.h rename to res/steamworks/156/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/156/headers/isteammusic.h b/res/steamworks/156/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/156/headers/isteammusic.h rename to res/steamworks/156/headers/steam/isteammusic.h diff --git a/res/steamworks/156/headers/isteammusicremote.h b/res/steamworks/156/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/156/headers/isteammusicremote.h rename to res/steamworks/156/headers/steam/isteammusicremote.h diff --git a/res/steamworks/156/headers/isteamnetworking.h b/res/steamworks/156/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/156/headers/isteamnetworking.h rename to res/steamworks/156/headers/steam/isteamnetworking.h diff --git a/res/steamworks/156/headers/isteamnetworkingmessages.h b/res/steamworks/156/headers/steam/isteamnetworkingmessages.h similarity index 100% rename from res/steamworks/156/headers/isteamnetworkingmessages.h rename to res/steamworks/156/headers/steam/isteamnetworkingmessages.h diff --git a/res/steamworks/156/headers/isteamnetworkingsockets.h b/res/steamworks/156/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/156/headers/isteamnetworkingsockets.h rename to res/steamworks/156/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/156/headers/isteamnetworkingutils.h b/res/steamworks/156/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/156/headers/isteamnetworkingutils.h rename to res/steamworks/156/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/156/headers/isteamparentalsettings.h b/res/steamworks/156/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/156/headers/isteamparentalsettings.h rename to res/steamworks/156/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/156/headers/isteamps3overlayrenderer.h b/res/steamworks/156/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/156/headers/isteamps3overlayrenderer.h rename to res/steamworks/156/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/156/headers/isteamremoteplay.h b/res/steamworks/156/headers/steam/isteamremoteplay.h similarity index 100% rename from res/steamworks/156/headers/isteamremoteplay.h rename to res/steamworks/156/headers/steam/isteamremoteplay.h diff --git a/res/steamworks/156/headers/isteamremotestorage.h b/res/steamworks/156/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/156/headers/isteamremotestorage.h rename to res/steamworks/156/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/156/headers/isteamscreenshots.h b/res/steamworks/156/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/156/headers/isteamscreenshots.h rename to res/steamworks/156/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/156/headers/isteamugc.h b/res/steamworks/156/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/156/headers/isteamugc.h rename to res/steamworks/156/headers/steam/isteamugc.h diff --git a/res/steamworks/156/headers/isteamuser.h b/res/steamworks/156/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/156/headers/isteamuser.h rename to res/steamworks/156/headers/steam/isteamuser.h diff --git a/res/steamworks/156/headers/isteamuserstats.h b/res/steamworks/156/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/156/headers/isteamuserstats.h rename to res/steamworks/156/headers/steam/isteamuserstats.h diff --git a/res/steamworks/156/headers/isteamutils.h b/res/steamworks/156/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/156/headers/isteamutils.h rename to res/steamworks/156/headers/steam/isteamutils.h diff --git a/res/steamworks/156/headers/isteamvideo.h b/res/steamworks/156/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/156/headers/isteamvideo.h rename to res/steamworks/156/headers/steam/isteamvideo.h diff --git a/res/steamworks/156/headers/matchmakingtypes.h b/res/steamworks/156/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/156/headers/matchmakingtypes.h rename to res/steamworks/156/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/156/headers/steam_api.h b/res/steamworks/156/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/156/headers/steam_api.h rename to res/steamworks/156/headers/steam/steam_api.h diff --git a/res/steamworks/156/headers/steam_api_common.h b/res/steamworks/156/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/156/headers/steam_api_common.h rename to res/steamworks/156/headers/steam/steam_api_common.h diff --git a/res/steamworks/156/headers/steam_api_flat.h b/res/steamworks/156/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/156/headers/steam_api_flat.h rename to res/steamworks/156/headers/steam/steam_api_flat.h diff --git a/res/steamworks/156/headers/steam_api_internal.h b/res/steamworks/156/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/156/headers/steam_api_internal.h rename to res/steamworks/156/headers/steam/steam_api_internal.h diff --git a/res/steamworks/156/headers/steam_gameserver.h b/res/steamworks/156/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/156/headers/steam_gameserver.h rename to res/steamworks/156/headers/steam/steam_gameserver.h diff --git a/res/steamworks/156/headers/steamclientpublic.h b/res/steamworks/156/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/156/headers/steamclientpublic.h rename to res/steamworks/156/headers/steam/steamclientpublic.h diff --git a/res/steamworks/156/headers/steamencryptedappticket.h b/res/steamworks/156/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/156/headers/steamencryptedappticket.h rename to res/steamworks/156/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/156/headers/steamhttpenums.h b/res/steamworks/156/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/156/headers/steamhttpenums.h rename to res/steamworks/156/headers/steam/steamhttpenums.h diff --git a/res/steamworks/156/headers/steamnetworkingfakeip.h b/res/steamworks/156/headers/steam/steamnetworkingfakeip.h similarity index 100% rename from res/steamworks/156/headers/steamnetworkingfakeip.h rename to res/steamworks/156/headers/steam/steamnetworkingfakeip.h diff --git a/res/steamworks/156/headers/steamnetworkingtypes.h b/res/steamworks/156/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/156/headers/steamnetworkingtypes.h rename to res/steamworks/156/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/156/headers/steamps3params.h b/res/steamworks/156/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/156/headers/steamps3params.h rename to res/steamworks/156/headers/steam/steamps3params.h diff --git a/res/steamworks/156/headers/steamtypes.h b/res/steamworks/156/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/156/headers/steamtypes.h rename to res/steamworks/156/headers/steam/steamtypes.h diff --git a/res/steamworks/156/headers/steamuniverse.h b/res/steamworks/156/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/156/headers/steamuniverse.h rename to res/steamworks/156/headers/steam/steamuniverse.h diff --git a/res/steamworks/157/headers/isteamapplist.h b/res/steamworks/157/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/157/headers/isteamapplist.h rename to res/steamworks/157/headers/steam/isteamapplist.h diff --git a/res/steamworks/157/headers/isteamapps.h b/res/steamworks/157/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/157/headers/isteamapps.h rename to res/steamworks/157/headers/steam/isteamapps.h diff --git a/res/steamworks/157/headers/isteamappticket.h b/res/steamworks/157/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/157/headers/isteamappticket.h rename to res/steamworks/157/headers/steam/isteamappticket.h diff --git a/res/steamworks/157/headers/isteamclient.h b/res/steamworks/157/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/157/headers/isteamclient.h rename to res/steamworks/157/headers/steam/isteamclient.h diff --git a/res/steamworks/157/headers/isteamcontroller.h b/res/steamworks/157/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/157/headers/isteamcontroller.h rename to res/steamworks/157/headers/steam/isteamcontroller.h diff --git a/res/steamworks/157/headers/isteamdualsense.h b/res/steamworks/157/headers/steam/isteamdualsense.h similarity index 100% rename from res/steamworks/157/headers/isteamdualsense.h rename to res/steamworks/157/headers/steam/isteamdualsense.h diff --git a/res/steamworks/157/headers/isteamfriends.h b/res/steamworks/157/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/157/headers/isteamfriends.h rename to res/steamworks/157/headers/steam/isteamfriends.h diff --git a/res/steamworks/157/headers/isteamgamecoordinator.h b/res/steamworks/157/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/157/headers/isteamgamecoordinator.h rename to res/steamworks/157/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/157/headers/isteamgameserver.h b/res/steamworks/157/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/157/headers/isteamgameserver.h rename to res/steamworks/157/headers/steam/isteamgameserver.h diff --git a/res/steamworks/157/headers/isteamgameserverstats.h b/res/steamworks/157/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/157/headers/isteamgameserverstats.h rename to res/steamworks/157/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/157/headers/isteamhtmlsurface.h b/res/steamworks/157/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/157/headers/isteamhtmlsurface.h rename to res/steamworks/157/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/157/headers/isteamhttp.h b/res/steamworks/157/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/157/headers/isteamhttp.h rename to res/steamworks/157/headers/steam/isteamhttp.h diff --git a/res/steamworks/157/headers/isteaminput.h b/res/steamworks/157/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/157/headers/isteaminput.h rename to res/steamworks/157/headers/steam/isteaminput.h diff --git a/res/steamworks/157/headers/isteaminventory.h b/res/steamworks/157/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/157/headers/isteaminventory.h rename to res/steamworks/157/headers/steam/isteaminventory.h diff --git a/res/steamworks/157/headers/isteammatchmaking.h b/res/steamworks/157/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/157/headers/isteammatchmaking.h rename to res/steamworks/157/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/157/headers/isteammusic.h b/res/steamworks/157/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/157/headers/isteammusic.h rename to res/steamworks/157/headers/steam/isteammusic.h diff --git a/res/steamworks/157/headers/isteammusicremote.h b/res/steamworks/157/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/157/headers/isteammusicremote.h rename to res/steamworks/157/headers/steam/isteammusicremote.h diff --git a/res/steamworks/157/headers/isteamnetworking.h b/res/steamworks/157/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/157/headers/isteamnetworking.h rename to res/steamworks/157/headers/steam/isteamnetworking.h diff --git a/res/steamworks/157/headers/isteamnetworkingmessages.h b/res/steamworks/157/headers/steam/isteamnetworkingmessages.h similarity index 100% rename from res/steamworks/157/headers/isteamnetworkingmessages.h rename to res/steamworks/157/headers/steam/isteamnetworkingmessages.h diff --git a/res/steamworks/157/headers/isteamnetworkingsockets.h b/res/steamworks/157/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/157/headers/isteamnetworkingsockets.h rename to res/steamworks/157/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/157/headers/isteamnetworkingutils.h b/res/steamworks/157/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/157/headers/isteamnetworkingutils.h rename to res/steamworks/157/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/157/headers/isteamparentalsettings.h b/res/steamworks/157/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/157/headers/isteamparentalsettings.h rename to res/steamworks/157/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/157/headers/isteamps3overlayrenderer.h b/res/steamworks/157/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/157/headers/isteamps3overlayrenderer.h rename to res/steamworks/157/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/157/headers/isteamremoteplay.h b/res/steamworks/157/headers/steam/isteamremoteplay.h similarity index 100% rename from res/steamworks/157/headers/isteamremoteplay.h rename to res/steamworks/157/headers/steam/isteamremoteplay.h diff --git a/res/steamworks/157/headers/isteamremotestorage.h b/res/steamworks/157/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/157/headers/isteamremotestorage.h rename to res/steamworks/157/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/157/headers/isteamscreenshots.h b/res/steamworks/157/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/157/headers/isteamscreenshots.h rename to res/steamworks/157/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/157/headers/isteamugc.h b/res/steamworks/157/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/157/headers/isteamugc.h rename to res/steamworks/157/headers/steam/isteamugc.h diff --git a/res/steamworks/157/headers/isteamuser.h b/res/steamworks/157/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/157/headers/isteamuser.h rename to res/steamworks/157/headers/steam/isteamuser.h diff --git a/res/steamworks/157/headers/isteamuserstats.h b/res/steamworks/157/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/157/headers/isteamuserstats.h rename to res/steamworks/157/headers/steam/isteamuserstats.h diff --git a/res/steamworks/157/headers/isteamutils.h b/res/steamworks/157/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/157/headers/isteamutils.h rename to res/steamworks/157/headers/steam/isteamutils.h diff --git a/res/steamworks/157/headers/isteamvideo.h b/res/steamworks/157/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/157/headers/isteamvideo.h rename to res/steamworks/157/headers/steam/isteamvideo.h diff --git a/res/steamworks/157/headers/matchmakingtypes.h b/res/steamworks/157/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/157/headers/matchmakingtypes.h rename to res/steamworks/157/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/157/headers/steam_api.h b/res/steamworks/157/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/157/headers/steam_api.h rename to res/steamworks/157/headers/steam/steam_api.h diff --git a/res/steamworks/157/headers/steam_api_common.h b/res/steamworks/157/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/157/headers/steam_api_common.h rename to res/steamworks/157/headers/steam/steam_api_common.h diff --git a/res/steamworks/157/headers/steam_api_flat.h b/res/steamworks/157/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/157/headers/steam_api_flat.h rename to res/steamworks/157/headers/steam/steam_api_flat.h diff --git a/res/steamworks/157/headers/steam_api_internal.h b/res/steamworks/157/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/157/headers/steam_api_internal.h rename to res/steamworks/157/headers/steam/steam_api_internal.h diff --git a/res/steamworks/157/headers/steam_gameserver.h b/res/steamworks/157/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/157/headers/steam_gameserver.h rename to res/steamworks/157/headers/steam/steam_gameserver.h diff --git a/res/steamworks/157/headers/steamclientpublic.h b/res/steamworks/157/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/157/headers/steamclientpublic.h rename to res/steamworks/157/headers/steam/steamclientpublic.h diff --git a/res/steamworks/157/headers/steamencryptedappticket.h b/res/steamworks/157/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/157/headers/steamencryptedappticket.h rename to res/steamworks/157/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/157/headers/steamhttpenums.h b/res/steamworks/157/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/157/headers/steamhttpenums.h rename to res/steamworks/157/headers/steam/steamhttpenums.h diff --git a/res/steamworks/157/headers/steamnetworkingfakeip.h b/res/steamworks/157/headers/steam/steamnetworkingfakeip.h similarity index 100% rename from res/steamworks/157/headers/steamnetworkingfakeip.h rename to res/steamworks/157/headers/steam/steamnetworkingfakeip.h diff --git a/res/steamworks/157/headers/steamnetworkingtypes.h b/res/steamworks/157/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/157/headers/steamnetworkingtypes.h rename to res/steamworks/157/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/157/headers/steamps3params.h b/res/steamworks/157/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/157/headers/steamps3params.h rename to res/steamworks/157/headers/steam/steamps3params.h diff --git a/res/steamworks/157/headers/steamtypes.h b/res/steamworks/157/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/157/headers/steamtypes.h rename to res/steamworks/157/headers/steam/steamtypes.h diff --git a/res/steamworks/157/headers/steamuniverse.h b/res/steamworks/157/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/157/headers/steamuniverse.h rename to res/steamworks/157/headers/steam/steamuniverse.h diff --git a/res/steamworks/158a/headers/isteamapplist.h b/res/steamworks/158a/headers/steam/isteamapplist.h similarity index 100% rename from res/steamworks/158a/headers/isteamapplist.h rename to res/steamworks/158a/headers/steam/isteamapplist.h diff --git a/res/steamworks/158a/headers/isteamapps.h b/res/steamworks/158a/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/158a/headers/isteamapps.h rename to res/steamworks/158a/headers/steam/isteamapps.h diff --git a/res/steamworks/158a/headers/isteamappticket.h b/res/steamworks/158a/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/158a/headers/isteamappticket.h rename to res/steamworks/158a/headers/steam/isteamappticket.h diff --git a/res/steamworks/158a/headers/isteamclient.h b/res/steamworks/158a/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/158a/headers/isteamclient.h rename to res/steamworks/158a/headers/steam/isteamclient.h diff --git a/res/steamworks/158a/headers/isteamcontroller.h b/res/steamworks/158a/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/158a/headers/isteamcontroller.h rename to res/steamworks/158a/headers/steam/isteamcontroller.h diff --git a/res/steamworks/158a/headers/isteamdualsense.h b/res/steamworks/158a/headers/steam/isteamdualsense.h similarity index 100% rename from res/steamworks/158a/headers/isteamdualsense.h rename to res/steamworks/158a/headers/steam/isteamdualsense.h diff --git a/res/steamworks/158a/headers/isteamfriends.h b/res/steamworks/158a/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/158a/headers/isteamfriends.h rename to res/steamworks/158a/headers/steam/isteamfriends.h diff --git a/res/steamworks/158a/headers/isteamgamecoordinator.h b/res/steamworks/158a/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/158a/headers/isteamgamecoordinator.h rename to res/steamworks/158a/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/158a/headers/isteamgameserver.h b/res/steamworks/158a/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/158a/headers/isteamgameserver.h rename to res/steamworks/158a/headers/steam/isteamgameserver.h diff --git a/res/steamworks/158a/headers/isteamgameserverstats.h b/res/steamworks/158a/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/158a/headers/isteamgameserverstats.h rename to res/steamworks/158a/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/158a/headers/isteamhtmlsurface.h b/res/steamworks/158a/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/158a/headers/isteamhtmlsurface.h rename to res/steamworks/158a/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/158a/headers/isteamhttp.h b/res/steamworks/158a/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/158a/headers/isteamhttp.h rename to res/steamworks/158a/headers/steam/isteamhttp.h diff --git a/res/steamworks/158a/headers/isteaminput.h b/res/steamworks/158a/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/158a/headers/isteaminput.h rename to res/steamworks/158a/headers/steam/isteaminput.h diff --git a/res/steamworks/158a/headers/isteaminventory.h b/res/steamworks/158a/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/158a/headers/isteaminventory.h rename to res/steamworks/158a/headers/steam/isteaminventory.h diff --git a/res/steamworks/158a/headers/isteammatchmaking.h b/res/steamworks/158a/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/158a/headers/isteammatchmaking.h rename to res/steamworks/158a/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/158a/headers/isteammusic.h b/res/steamworks/158a/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/158a/headers/isteammusic.h rename to res/steamworks/158a/headers/steam/isteammusic.h diff --git a/res/steamworks/158a/headers/isteammusicremote.h b/res/steamworks/158a/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/158a/headers/isteammusicremote.h rename to res/steamworks/158a/headers/steam/isteammusicremote.h diff --git a/res/steamworks/158a/headers/isteamnetworking.h b/res/steamworks/158a/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/158a/headers/isteamnetworking.h rename to res/steamworks/158a/headers/steam/isteamnetworking.h diff --git a/res/steamworks/158a/headers/isteamnetworkingmessages.h b/res/steamworks/158a/headers/steam/isteamnetworkingmessages.h similarity index 100% rename from res/steamworks/158a/headers/isteamnetworkingmessages.h rename to res/steamworks/158a/headers/steam/isteamnetworkingmessages.h diff --git a/res/steamworks/158a/headers/isteamnetworkingsockets.h b/res/steamworks/158a/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/158a/headers/isteamnetworkingsockets.h rename to res/steamworks/158a/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/158a/headers/isteamnetworkingutils.h b/res/steamworks/158a/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/158a/headers/isteamnetworkingutils.h rename to res/steamworks/158a/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/158a/headers/isteamparentalsettings.h b/res/steamworks/158a/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/158a/headers/isteamparentalsettings.h rename to res/steamworks/158a/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/158a/headers/isteamps3overlayrenderer.h b/res/steamworks/158a/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/158a/headers/isteamps3overlayrenderer.h rename to res/steamworks/158a/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/158a/headers/isteamremoteplay.h b/res/steamworks/158a/headers/steam/isteamremoteplay.h similarity index 100% rename from res/steamworks/158a/headers/isteamremoteplay.h rename to res/steamworks/158a/headers/steam/isteamremoteplay.h diff --git a/res/steamworks/158a/headers/isteamremotestorage.h b/res/steamworks/158a/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/158a/headers/isteamremotestorage.h rename to res/steamworks/158a/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/158a/headers/isteamscreenshots.h b/res/steamworks/158a/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/158a/headers/isteamscreenshots.h rename to res/steamworks/158a/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/158a/headers/isteamugc.h b/res/steamworks/158a/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/158a/headers/isteamugc.h rename to res/steamworks/158a/headers/steam/isteamugc.h diff --git a/res/steamworks/158a/headers/isteamuser.h b/res/steamworks/158a/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/158a/headers/isteamuser.h rename to res/steamworks/158a/headers/steam/isteamuser.h diff --git a/res/steamworks/158a/headers/isteamuserstats.h b/res/steamworks/158a/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/158a/headers/isteamuserstats.h rename to res/steamworks/158a/headers/steam/isteamuserstats.h diff --git a/res/steamworks/158a/headers/isteamutils.h b/res/steamworks/158a/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/158a/headers/isteamutils.h rename to res/steamworks/158a/headers/steam/isteamutils.h diff --git a/res/steamworks/158a/headers/isteamvideo.h b/res/steamworks/158a/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/158a/headers/isteamvideo.h rename to res/steamworks/158a/headers/steam/isteamvideo.h diff --git a/res/steamworks/158a/headers/matchmakingtypes.h b/res/steamworks/158a/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/158a/headers/matchmakingtypes.h rename to res/steamworks/158a/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/158a/headers/steam_api.h b/res/steamworks/158a/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/158a/headers/steam_api.h rename to res/steamworks/158a/headers/steam/steam_api.h diff --git a/res/steamworks/158a/headers/steam_api_common.h b/res/steamworks/158a/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/158a/headers/steam_api_common.h rename to res/steamworks/158a/headers/steam/steam_api_common.h diff --git a/res/steamworks/158a/headers/steam_api_flat.h b/res/steamworks/158a/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/158a/headers/steam_api_flat.h rename to res/steamworks/158a/headers/steam/steam_api_flat.h diff --git a/res/steamworks/158a/headers/steam_api_internal.h b/res/steamworks/158a/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/158a/headers/steam_api_internal.h rename to res/steamworks/158a/headers/steam/steam_api_internal.h diff --git a/res/steamworks/158a/headers/steam_gameserver.h b/res/steamworks/158a/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/158a/headers/steam_gameserver.h rename to res/steamworks/158a/headers/steam/steam_gameserver.h diff --git a/res/steamworks/158a/headers/steamclientpublic.h b/res/steamworks/158a/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/158a/headers/steamclientpublic.h rename to res/steamworks/158a/headers/steam/steamclientpublic.h diff --git a/res/steamworks/158a/headers/steamencryptedappticket.h b/res/steamworks/158a/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/158a/headers/steamencryptedappticket.h rename to res/steamworks/158a/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/158a/headers/steamhttpenums.h b/res/steamworks/158a/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/158a/headers/steamhttpenums.h rename to res/steamworks/158a/headers/steam/steamhttpenums.h diff --git a/res/steamworks/158a/headers/steamnetworkingfakeip.h b/res/steamworks/158a/headers/steam/steamnetworkingfakeip.h similarity index 100% rename from res/steamworks/158a/headers/steamnetworkingfakeip.h rename to res/steamworks/158a/headers/steam/steamnetworkingfakeip.h diff --git a/res/steamworks/158a/headers/steamnetworkingtypes.h b/res/steamworks/158a/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/158a/headers/steamnetworkingtypes.h rename to res/steamworks/158a/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/158a/headers/steamps3params.h b/res/steamworks/158a/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/158a/headers/steamps3params.h rename to res/steamworks/158a/headers/steam/steamps3params.h diff --git a/res/steamworks/158a/headers/steamtypes.h b/res/steamworks/158a/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/158a/headers/steamtypes.h rename to res/steamworks/158a/headers/steam/steamtypes.h diff --git a/res/steamworks/158a/headers/steamuniverse.h b/res/steamworks/158a/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/158a/headers/steamuniverse.h rename to res/steamworks/158a/headers/steam/steamuniverse.h diff --git a/res/steamworks/159/headers/isteamapps.h b/res/steamworks/159/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/159/headers/isteamapps.h rename to res/steamworks/159/headers/steam/isteamapps.h diff --git a/res/steamworks/159/headers/isteamappticket.h b/res/steamworks/159/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/159/headers/isteamappticket.h rename to res/steamworks/159/headers/steam/isteamappticket.h diff --git a/res/steamworks/159/headers/isteamclient.h b/res/steamworks/159/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/159/headers/isteamclient.h rename to res/steamworks/159/headers/steam/isteamclient.h diff --git a/res/steamworks/159/headers/isteamcontroller.h b/res/steamworks/159/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/159/headers/isteamcontroller.h rename to res/steamworks/159/headers/steam/isteamcontroller.h diff --git a/res/steamworks/159/headers/isteamdualsense.h b/res/steamworks/159/headers/steam/isteamdualsense.h similarity index 100% rename from res/steamworks/159/headers/isteamdualsense.h rename to res/steamworks/159/headers/steam/isteamdualsense.h diff --git a/res/steamworks/159/headers/isteamfriends.h b/res/steamworks/159/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/159/headers/isteamfriends.h rename to res/steamworks/159/headers/steam/isteamfriends.h diff --git a/res/steamworks/159/headers/isteamgamecoordinator.h b/res/steamworks/159/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/159/headers/isteamgamecoordinator.h rename to res/steamworks/159/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/159/headers/isteamgameserver.h b/res/steamworks/159/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/159/headers/isteamgameserver.h rename to res/steamworks/159/headers/steam/isteamgameserver.h diff --git a/res/steamworks/159/headers/isteamgameserverstats.h b/res/steamworks/159/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/159/headers/isteamgameserverstats.h rename to res/steamworks/159/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/159/headers/isteamhtmlsurface.h b/res/steamworks/159/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/159/headers/isteamhtmlsurface.h rename to res/steamworks/159/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/159/headers/isteamhttp.h b/res/steamworks/159/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/159/headers/isteamhttp.h rename to res/steamworks/159/headers/steam/isteamhttp.h diff --git a/res/steamworks/159/headers/isteaminput.h b/res/steamworks/159/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/159/headers/isteaminput.h rename to res/steamworks/159/headers/steam/isteaminput.h diff --git a/res/steamworks/159/headers/isteaminventory.h b/res/steamworks/159/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/159/headers/isteaminventory.h rename to res/steamworks/159/headers/steam/isteaminventory.h diff --git a/res/steamworks/159/headers/isteammatchmaking.h b/res/steamworks/159/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/159/headers/isteammatchmaking.h rename to res/steamworks/159/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/159/headers/isteammusic.h b/res/steamworks/159/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/159/headers/isteammusic.h rename to res/steamworks/159/headers/steam/isteammusic.h diff --git a/res/steamworks/159/headers/isteammusicremote.h b/res/steamworks/159/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/159/headers/isteammusicremote.h rename to res/steamworks/159/headers/steam/isteammusicremote.h diff --git a/res/steamworks/159/headers/isteamnetworking.h b/res/steamworks/159/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/159/headers/isteamnetworking.h rename to res/steamworks/159/headers/steam/isteamnetworking.h diff --git a/res/steamworks/159/headers/isteamnetworkingmessages.h b/res/steamworks/159/headers/steam/isteamnetworkingmessages.h similarity index 100% rename from res/steamworks/159/headers/isteamnetworkingmessages.h rename to res/steamworks/159/headers/steam/isteamnetworkingmessages.h diff --git a/res/steamworks/159/headers/isteamnetworkingsockets.h b/res/steamworks/159/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/159/headers/isteamnetworkingsockets.h rename to res/steamworks/159/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/159/headers/isteamnetworkingutils.h b/res/steamworks/159/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/159/headers/isteamnetworkingutils.h rename to res/steamworks/159/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/159/headers/isteamparentalsettings.h b/res/steamworks/159/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/159/headers/isteamparentalsettings.h rename to res/steamworks/159/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/159/headers/isteamps3overlayrenderer.h b/res/steamworks/159/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/159/headers/isteamps3overlayrenderer.h rename to res/steamworks/159/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/159/headers/isteamremoteplay.h b/res/steamworks/159/headers/steam/isteamremoteplay.h similarity index 100% rename from res/steamworks/159/headers/isteamremoteplay.h rename to res/steamworks/159/headers/steam/isteamremoteplay.h diff --git a/res/steamworks/159/headers/isteamremotestorage.h b/res/steamworks/159/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/159/headers/isteamremotestorage.h rename to res/steamworks/159/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/159/headers/isteamscreenshots.h b/res/steamworks/159/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/159/headers/isteamscreenshots.h rename to res/steamworks/159/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/159/headers/isteamugc.h b/res/steamworks/159/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/159/headers/isteamugc.h rename to res/steamworks/159/headers/steam/isteamugc.h diff --git a/res/steamworks/159/headers/isteamuser.h b/res/steamworks/159/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/159/headers/isteamuser.h rename to res/steamworks/159/headers/steam/isteamuser.h diff --git a/res/steamworks/159/headers/isteamuserstats.h b/res/steamworks/159/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/159/headers/isteamuserstats.h rename to res/steamworks/159/headers/steam/isteamuserstats.h diff --git a/res/steamworks/159/headers/isteamutils.h b/res/steamworks/159/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/159/headers/isteamutils.h rename to res/steamworks/159/headers/steam/isteamutils.h diff --git a/res/steamworks/159/headers/isteamvideo.h b/res/steamworks/159/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/159/headers/isteamvideo.h rename to res/steamworks/159/headers/steam/isteamvideo.h diff --git a/res/steamworks/159/headers/matchmakingtypes.h b/res/steamworks/159/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/159/headers/matchmakingtypes.h rename to res/steamworks/159/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/159/headers/steam_api.h b/res/steamworks/159/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/159/headers/steam_api.h rename to res/steamworks/159/headers/steam/steam_api.h diff --git a/res/steamworks/159/headers/steam_api_common.h b/res/steamworks/159/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/159/headers/steam_api_common.h rename to res/steamworks/159/headers/steam/steam_api_common.h diff --git a/res/steamworks/159/headers/steam_api_flat.h b/res/steamworks/159/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/159/headers/steam_api_flat.h rename to res/steamworks/159/headers/steam/steam_api_flat.h diff --git a/res/steamworks/159/headers/steam_api_internal.h b/res/steamworks/159/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/159/headers/steam_api_internal.h rename to res/steamworks/159/headers/steam/steam_api_internal.h diff --git a/res/steamworks/159/headers/steam_gameserver.h b/res/steamworks/159/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/159/headers/steam_gameserver.h rename to res/steamworks/159/headers/steam/steam_gameserver.h diff --git a/res/steamworks/159/headers/steamclientpublic.h b/res/steamworks/159/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/159/headers/steamclientpublic.h rename to res/steamworks/159/headers/steam/steamclientpublic.h diff --git a/res/steamworks/159/headers/steamencryptedappticket.h b/res/steamworks/159/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/159/headers/steamencryptedappticket.h rename to res/steamworks/159/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/159/headers/steamhttpenums.h b/res/steamworks/159/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/159/headers/steamhttpenums.h rename to res/steamworks/159/headers/steam/steamhttpenums.h diff --git a/res/steamworks/159/headers/steamnetworkingfakeip.h b/res/steamworks/159/headers/steam/steamnetworkingfakeip.h similarity index 100% rename from res/steamworks/159/headers/steamnetworkingfakeip.h rename to res/steamworks/159/headers/steam/steamnetworkingfakeip.h diff --git a/res/steamworks/159/headers/steamnetworkingtypes.h b/res/steamworks/159/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/159/headers/steamnetworkingtypes.h rename to res/steamworks/159/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/159/headers/steamps3params.h b/res/steamworks/159/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/159/headers/steamps3params.h rename to res/steamworks/159/headers/steam/steamps3params.h diff --git a/res/steamworks/159/headers/steamtypes.h b/res/steamworks/159/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/159/headers/steamtypes.h rename to res/steamworks/159/headers/steam/steamtypes.h diff --git a/res/steamworks/159/headers/steamuniverse.h b/res/steamworks/159/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/159/headers/steamuniverse.h rename to res/steamworks/159/headers/steam/steamuniverse.h diff --git a/res/steamworks/160/headers/isteamapps.h b/res/steamworks/160/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/160/headers/isteamapps.h rename to res/steamworks/160/headers/steam/isteamapps.h diff --git a/res/steamworks/160/headers/isteamappticket.h b/res/steamworks/160/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/160/headers/isteamappticket.h rename to res/steamworks/160/headers/steam/isteamappticket.h diff --git a/res/steamworks/160/headers/isteamclient.h b/res/steamworks/160/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/160/headers/isteamclient.h rename to res/steamworks/160/headers/steam/isteamclient.h diff --git a/res/steamworks/160/headers/isteamcontroller.h b/res/steamworks/160/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/160/headers/isteamcontroller.h rename to res/steamworks/160/headers/steam/isteamcontroller.h diff --git a/res/steamworks/160/headers/isteamdualsense.h b/res/steamworks/160/headers/steam/isteamdualsense.h similarity index 100% rename from res/steamworks/160/headers/isteamdualsense.h rename to res/steamworks/160/headers/steam/isteamdualsense.h diff --git a/res/steamworks/160/headers/isteamfriends.h b/res/steamworks/160/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/160/headers/isteamfriends.h rename to res/steamworks/160/headers/steam/isteamfriends.h diff --git a/res/steamworks/160/headers/isteamgamecoordinator.h b/res/steamworks/160/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/160/headers/isteamgamecoordinator.h rename to res/steamworks/160/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/160/headers/isteamgameserver.h b/res/steamworks/160/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/160/headers/isteamgameserver.h rename to res/steamworks/160/headers/steam/isteamgameserver.h diff --git a/res/steamworks/160/headers/isteamgameserverstats.h b/res/steamworks/160/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/160/headers/isteamgameserverstats.h rename to res/steamworks/160/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/160/headers/isteamhtmlsurface.h b/res/steamworks/160/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/160/headers/isteamhtmlsurface.h rename to res/steamworks/160/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/160/headers/isteamhttp.h b/res/steamworks/160/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/160/headers/isteamhttp.h rename to res/steamworks/160/headers/steam/isteamhttp.h diff --git a/res/steamworks/160/headers/isteaminput.h b/res/steamworks/160/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/160/headers/isteaminput.h rename to res/steamworks/160/headers/steam/isteaminput.h diff --git a/res/steamworks/160/headers/isteaminventory.h b/res/steamworks/160/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/160/headers/isteaminventory.h rename to res/steamworks/160/headers/steam/isteaminventory.h diff --git a/res/steamworks/160/headers/isteammatchmaking.h b/res/steamworks/160/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/160/headers/isteammatchmaking.h rename to res/steamworks/160/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/160/headers/isteammusic.h b/res/steamworks/160/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/160/headers/isteammusic.h rename to res/steamworks/160/headers/steam/isteammusic.h diff --git a/res/steamworks/160/headers/isteammusicremote.h b/res/steamworks/160/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/160/headers/isteammusicremote.h rename to res/steamworks/160/headers/steam/isteammusicremote.h diff --git a/res/steamworks/160/headers/isteamnetworking.h b/res/steamworks/160/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/160/headers/isteamnetworking.h rename to res/steamworks/160/headers/steam/isteamnetworking.h diff --git a/res/steamworks/160/headers/isteamnetworkingmessages.h b/res/steamworks/160/headers/steam/isteamnetworkingmessages.h similarity index 100% rename from res/steamworks/160/headers/isteamnetworkingmessages.h rename to res/steamworks/160/headers/steam/isteamnetworkingmessages.h diff --git a/res/steamworks/160/headers/isteamnetworkingsockets.h b/res/steamworks/160/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/160/headers/isteamnetworkingsockets.h rename to res/steamworks/160/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/160/headers/isteamnetworkingutils.h b/res/steamworks/160/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/160/headers/isteamnetworkingutils.h rename to res/steamworks/160/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/160/headers/isteamparentalsettings.h b/res/steamworks/160/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/160/headers/isteamparentalsettings.h rename to res/steamworks/160/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/160/headers/isteamps3overlayrenderer.h b/res/steamworks/160/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/160/headers/isteamps3overlayrenderer.h rename to res/steamworks/160/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/160/headers/isteamremoteplay.h b/res/steamworks/160/headers/steam/isteamremoteplay.h similarity index 100% rename from res/steamworks/160/headers/isteamremoteplay.h rename to res/steamworks/160/headers/steam/isteamremoteplay.h diff --git a/res/steamworks/160/headers/isteamremotestorage.h b/res/steamworks/160/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/160/headers/isteamremotestorage.h rename to res/steamworks/160/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/160/headers/isteamscreenshots.h b/res/steamworks/160/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/160/headers/isteamscreenshots.h rename to res/steamworks/160/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/160/headers/isteamtimeline.h b/res/steamworks/160/headers/steam/isteamtimeline.h similarity index 100% rename from res/steamworks/160/headers/isteamtimeline.h rename to res/steamworks/160/headers/steam/isteamtimeline.h diff --git a/res/steamworks/160/headers/isteamugc.h b/res/steamworks/160/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/160/headers/isteamugc.h rename to res/steamworks/160/headers/steam/isteamugc.h diff --git a/res/steamworks/160/headers/isteamuser.h b/res/steamworks/160/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/160/headers/isteamuser.h rename to res/steamworks/160/headers/steam/isteamuser.h diff --git a/res/steamworks/160/headers/isteamuserstats.h b/res/steamworks/160/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/160/headers/isteamuserstats.h rename to res/steamworks/160/headers/steam/isteamuserstats.h diff --git a/res/steamworks/160/headers/isteamutils.h b/res/steamworks/160/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/160/headers/isteamutils.h rename to res/steamworks/160/headers/steam/isteamutils.h diff --git a/res/steamworks/160/headers/isteamvideo.h b/res/steamworks/160/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/160/headers/isteamvideo.h rename to res/steamworks/160/headers/steam/isteamvideo.h diff --git a/res/steamworks/160/headers/matchmakingtypes.h b/res/steamworks/160/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/160/headers/matchmakingtypes.h rename to res/steamworks/160/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/160/headers/steam_api.h b/res/steamworks/160/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/160/headers/steam_api.h rename to res/steamworks/160/headers/steam/steam_api.h diff --git a/res/steamworks/160/headers/steam_api_common.h b/res/steamworks/160/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/160/headers/steam_api_common.h rename to res/steamworks/160/headers/steam/steam_api_common.h diff --git a/res/steamworks/160/headers/steam_api_flat.h b/res/steamworks/160/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/160/headers/steam_api_flat.h rename to res/steamworks/160/headers/steam/steam_api_flat.h diff --git a/res/steamworks/160/headers/steam_api_internal.h b/res/steamworks/160/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/160/headers/steam_api_internal.h rename to res/steamworks/160/headers/steam/steam_api_internal.h diff --git a/res/steamworks/160/headers/steam_gameserver.h b/res/steamworks/160/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/160/headers/steam_gameserver.h rename to res/steamworks/160/headers/steam/steam_gameserver.h diff --git a/res/steamworks/160/headers/steamclientpublic.h b/res/steamworks/160/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/160/headers/steamclientpublic.h rename to res/steamworks/160/headers/steam/steamclientpublic.h diff --git a/res/steamworks/160/headers/steamencryptedappticket.h b/res/steamworks/160/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/160/headers/steamencryptedappticket.h rename to res/steamworks/160/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/160/headers/steamhttpenums.h b/res/steamworks/160/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/160/headers/steamhttpenums.h rename to res/steamworks/160/headers/steam/steamhttpenums.h diff --git a/res/steamworks/160/headers/steamnetworkingfakeip.h b/res/steamworks/160/headers/steam/steamnetworkingfakeip.h similarity index 100% rename from res/steamworks/160/headers/steamnetworkingfakeip.h rename to res/steamworks/160/headers/steam/steamnetworkingfakeip.h diff --git a/res/steamworks/160/headers/steamnetworkingtypes.h b/res/steamworks/160/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/160/headers/steamnetworkingtypes.h rename to res/steamworks/160/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/160/headers/steamps3params.h b/res/steamworks/160/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/160/headers/steamps3params.h rename to res/steamworks/160/headers/steam/steamps3params.h diff --git a/res/steamworks/160/headers/steamtypes.h b/res/steamworks/160/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/160/headers/steamtypes.h rename to res/steamworks/160/headers/steam/steamtypes.h diff --git a/res/steamworks/160/headers/steamuniverse.h b/res/steamworks/160/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/160/headers/steamuniverse.h rename to res/steamworks/160/headers/steam/steamuniverse.h diff --git a/res/steamworks/161/headers/isteamapps.h b/res/steamworks/161/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/161/headers/isteamapps.h rename to res/steamworks/161/headers/steam/isteamapps.h diff --git a/res/steamworks/161/headers/isteamappticket.h b/res/steamworks/161/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/161/headers/isteamappticket.h rename to res/steamworks/161/headers/steam/isteamappticket.h diff --git a/res/steamworks/161/headers/isteamclient.h b/res/steamworks/161/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/161/headers/isteamclient.h rename to res/steamworks/161/headers/steam/isteamclient.h diff --git a/res/steamworks/161/headers/isteamcontroller.h b/res/steamworks/161/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/161/headers/isteamcontroller.h rename to res/steamworks/161/headers/steam/isteamcontroller.h diff --git a/res/steamworks/161/headers/isteamdualsense.h b/res/steamworks/161/headers/steam/isteamdualsense.h similarity index 100% rename from res/steamworks/161/headers/isteamdualsense.h rename to res/steamworks/161/headers/steam/isteamdualsense.h diff --git a/res/steamworks/161/headers/isteamfriends.h b/res/steamworks/161/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/161/headers/isteamfriends.h rename to res/steamworks/161/headers/steam/isteamfriends.h diff --git a/res/steamworks/161/headers/isteamgamecoordinator.h b/res/steamworks/161/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/161/headers/isteamgamecoordinator.h rename to res/steamworks/161/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/161/headers/isteamgameserver.h b/res/steamworks/161/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/161/headers/isteamgameserver.h rename to res/steamworks/161/headers/steam/isteamgameserver.h diff --git a/res/steamworks/161/headers/isteamgameserverstats.h b/res/steamworks/161/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/161/headers/isteamgameserverstats.h rename to res/steamworks/161/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/161/headers/isteamhtmlsurface.h b/res/steamworks/161/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/161/headers/isteamhtmlsurface.h rename to res/steamworks/161/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/161/headers/isteamhttp.h b/res/steamworks/161/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/161/headers/isteamhttp.h rename to res/steamworks/161/headers/steam/isteamhttp.h diff --git a/res/steamworks/161/headers/isteaminput.h b/res/steamworks/161/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/161/headers/isteaminput.h rename to res/steamworks/161/headers/steam/isteaminput.h diff --git a/res/steamworks/161/headers/isteaminventory.h b/res/steamworks/161/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/161/headers/isteaminventory.h rename to res/steamworks/161/headers/steam/isteaminventory.h diff --git a/res/steamworks/161/headers/isteammatchmaking.h b/res/steamworks/161/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/161/headers/isteammatchmaking.h rename to res/steamworks/161/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/161/headers/isteammusic.h b/res/steamworks/161/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/161/headers/isteammusic.h rename to res/steamworks/161/headers/steam/isteammusic.h diff --git a/res/steamworks/161/headers/isteammusicremote.h b/res/steamworks/161/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/161/headers/isteammusicremote.h rename to res/steamworks/161/headers/steam/isteammusicremote.h diff --git a/res/steamworks/161/headers/isteamnetworking.h b/res/steamworks/161/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/161/headers/isteamnetworking.h rename to res/steamworks/161/headers/steam/isteamnetworking.h diff --git a/res/steamworks/161/headers/isteamnetworkingmessages.h b/res/steamworks/161/headers/steam/isteamnetworkingmessages.h similarity index 100% rename from res/steamworks/161/headers/isteamnetworkingmessages.h rename to res/steamworks/161/headers/steam/isteamnetworkingmessages.h diff --git a/res/steamworks/161/headers/isteamnetworkingsockets.h b/res/steamworks/161/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/161/headers/isteamnetworkingsockets.h rename to res/steamworks/161/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/161/headers/isteamnetworkingutils.h b/res/steamworks/161/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/161/headers/isteamnetworkingutils.h rename to res/steamworks/161/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/161/headers/isteamparentalsettings.h b/res/steamworks/161/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/161/headers/isteamparentalsettings.h rename to res/steamworks/161/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/161/headers/isteamps3overlayrenderer.h b/res/steamworks/161/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/161/headers/isteamps3overlayrenderer.h rename to res/steamworks/161/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/161/headers/isteamremoteplay.h b/res/steamworks/161/headers/steam/isteamremoteplay.h similarity index 100% rename from res/steamworks/161/headers/isteamremoteplay.h rename to res/steamworks/161/headers/steam/isteamremoteplay.h diff --git a/res/steamworks/161/headers/isteamremotestorage.h b/res/steamworks/161/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/161/headers/isteamremotestorage.h rename to res/steamworks/161/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/161/headers/isteamscreenshots.h b/res/steamworks/161/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/161/headers/isteamscreenshots.h rename to res/steamworks/161/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/161/headers/isteamtimeline.h b/res/steamworks/161/headers/steam/isteamtimeline.h similarity index 100% rename from res/steamworks/161/headers/isteamtimeline.h rename to res/steamworks/161/headers/steam/isteamtimeline.h diff --git a/res/steamworks/161/headers/isteamugc.h b/res/steamworks/161/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/161/headers/isteamugc.h rename to res/steamworks/161/headers/steam/isteamugc.h diff --git a/res/steamworks/161/headers/isteamuser.h b/res/steamworks/161/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/161/headers/isteamuser.h rename to res/steamworks/161/headers/steam/isteamuser.h diff --git a/res/steamworks/161/headers/isteamuserstats.h b/res/steamworks/161/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/161/headers/isteamuserstats.h rename to res/steamworks/161/headers/steam/isteamuserstats.h diff --git a/res/steamworks/161/headers/isteamutils.h b/res/steamworks/161/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/161/headers/isteamutils.h rename to res/steamworks/161/headers/steam/isteamutils.h diff --git a/res/steamworks/161/headers/isteamvideo.h b/res/steamworks/161/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/161/headers/isteamvideo.h rename to res/steamworks/161/headers/steam/isteamvideo.h diff --git a/res/steamworks/161/headers/matchmakingtypes.h b/res/steamworks/161/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/161/headers/matchmakingtypes.h rename to res/steamworks/161/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/161/headers/steam_api.h b/res/steamworks/161/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/161/headers/steam_api.h rename to res/steamworks/161/headers/steam/steam_api.h diff --git a/res/steamworks/161/headers/steam_api_common.h b/res/steamworks/161/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/161/headers/steam_api_common.h rename to res/steamworks/161/headers/steam/steam_api_common.h diff --git a/res/steamworks/161/headers/steam_api_flat.h b/res/steamworks/161/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/161/headers/steam_api_flat.h rename to res/steamworks/161/headers/steam/steam_api_flat.h diff --git a/res/steamworks/161/headers/steam_api_internal.h b/res/steamworks/161/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/161/headers/steam_api_internal.h rename to res/steamworks/161/headers/steam/steam_api_internal.h diff --git a/res/steamworks/161/headers/steam_gameserver.h b/res/steamworks/161/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/161/headers/steam_gameserver.h rename to res/steamworks/161/headers/steam/steam_gameserver.h diff --git a/res/steamworks/161/headers/steamclientpublic.h b/res/steamworks/161/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/161/headers/steamclientpublic.h rename to res/steamworks/161/headers/steam/steamclientpublic.h diff --git a/res/steamworks/161/headers/steamencryptedappticket.h b/res/steamworks/161/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/161/headers/steamencryptedappticket.h rename to res/steamworks/161/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/161/headers/steamhttpenums.h b/res/steamworks/161/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/161/headers/steamhttpenums.h rename to res/steamworks/161/headers/steam/steamhttpenums.h diff --git a/res/steamworks/161/headers/steamnetworkingfakeip.h b/res/steamworks/161/headers/steam/steamnetworkingfakeip.h similarity index 100% rename from res/steamworks/161/headers/steamnetworkingfakeip.h rename to res/steamworks/161/headers/steam/steamnetworkingfakeip.h diff --git a/res/steamworks/161/headers/steamnetworkingtypes.h b/res/steamworks/161/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/161/headers/steamnetworkingtypes.h rename to res/steamworks/161/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/161/headers/steamps3params.h b/res/steamworks/161/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/161/headers/steamps3params.h rename to res/steamworks/161/headers/steam/steamps3params.h diff --git a/res/steamworks/161/headers/steamtypes.h b/res/steamworks/161/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/161/headers/steamtypes.h rename to res/steamworks/161/headers/steam/steamtypes.h diff --git a/res/steamworks/161/headers/steamuniverse.h b/res/steamworks/161/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/161/headers/steamuniverse.h rename to res/steamworks/161/headers/steam/steamuniverse.h diff --git a/res/steamworks/162/headers/isteamapps.h b/res/steamworks/162/headers/steam/isteamapps.h similarity index 100% rename from res/steamworks/162/headers/isteamapps.h rename to res/steamworks/162/headers/steam/isteamapps.h diff --git a/res/steamworks/162/headers/isteamappticket.h b/res/steamworks/162/headers/steam/isteamappticket.h similarity index 100% rename from res/steamworks/162/headers/isteamappticket.h rename to res/steamworks/162/headers/steam/isteamappticket.h diff --git a/res/steamworks/162/headers/isteamclient.h b/res/steamworks/162/headers/steam/isteamclient.h similarity index 100% rename from res/steamworks/162/headers/isteamclient.h rename to res/steamworks/162/headers/steam/isteamclient.h diff --git a/res/steamworks/162/headers/isteamcontroller.h b/res/steamworks/162/headers/steam/isteamcontroller.h similarity index 100% rename from res/steamworks/162/headers/isteamcontroller.h rename to res/steamworks/162/headers/steam/isteamcontroller.h diff --git a/res/steamworks/162/headers/isteamdualsense.h b/res/steamworks/162/headers/steam/isteamdualsense.h similarity index 100% rename from res/steamworks/162/headers/isteamdualsense.h rename to res/steamworks/162/headers/steam/isteamdualsense.h diff --git a/res/steamworks/162/headers/isteamfriends.h b/res/steamworks/162/headers/steam/isteamfriends.h similarity index 100% rename from res/steamworks/162/headers/isteamfriends.h rename to res/steamworks/162/headers/steam/isteamfriends.h diff --git a/res/steamworks/162/headers/isteamgamecoordinator.h b/res/steamworks/162/headers/steam/isteamgamecoordinator.h similarity index 100% rename from res/steamworks/162/headers/isteamgamecoordinator.h rename to res/steamworks/162/headers/steam/isteamgamecoordinator.h diff --git a/res/steamworks/162/headers/isteamgameserver.h b/res/steamworks/162/headers/steam/isteamgameserver.h similarity index 100% rename from res/steamworks/162/headers/isteamgameserver.h rename to res/steamworks/162/headers/steam/isteamgameserver.h diff --git a/res/steamworks/162/headers/isteamgameserverstats.h b/res/steamworks/162/headers/steam/isteamgameserverstats.h similarity index 100% rename from res/steamworks/162/headers/isteamgameserverstats.h rename to res/steamworks/162/headers/steam/isteamgameserverstats.h diff --git a/res/steamworks/162/headers/isteamhtmlsurface.h b/res/steamworks/162/headers/steam/isteamhtmlsurface.h similarity index 100% rename from res/steamworks/162/headers/isteamhtmlsurface.h rename to res/steamworks/162/headers/steam/isteamhtmlsurface.h diff --git a/res/steamworks/162/headers/isteamhttp.h b/res/steamworks/162/headers/steam/isteamhttp.h similarity index 100% rename from res/steamworks/162/headers/isteamhttp.h rename to res/steamworks/162/headers/steam/isteamhttp.h diff --git a/res/steamworks/162/headers/isteaminput.h b/res/steamworks/162/headers/steam/isteaminput.h similarity index 100% rename from res/steamworks/162/headers/isteaminput.h rename to res/steamworks/162/headers/steam/isteaminput.h diff --git a/res/steamworks/162/headers/isteaminventory.h b/res/steamworks/162/headers/steam/isteaminventory.h similarity index 100% rename from res/steamworks/162/headers/isteaminventory.h rename to res/steamworks/162/headers/steam/isteaminventory.h diff --git a/res/steamworks/162/headers/isteammatchmaking.h b/res/steamworks/162/headers/steam/isteammatchmaking.h similarity index 100% rename from res/steamworks/162/headers/isteammatchmaking.h rename to res/steamworks/162/headers/steam/isteammatchmaking.h diff --git a/res/steamworks/162/headers/isteammusic.h b/res/steamworks/162/headers/steam/isteammusic.h similarity index 100% rename from res/steamworks/162/headers/isteammusic.h rename to res/steamworks/162/headers/steam/isteammusic.h diff --git a/res/steamworks/162/headers/isteammusicremote.h b/res/steamworks/162/headers/steam/isteammusicremote.h similarity index 100% rename from res/steamworks/162/headers/isteammusicremote.h rename to res/steamworks/162/headers/steam/isteammusicremote.h diff --git a/res/steamworks/162/headers/isteamnetworking.h b/res/steamworks/162/headers/steam/isteamnetworking.h similarity index 100% rename from res/steamworks/162/headers/isteamnetworking.h rename to res/steamworks/162/headers/steam/isteamnetworking.h diff --git a/res/steamworks/162/headers/isteamnetworkingmessages.h b/res/steamworks/162/headers/steam/isteamnetworkingmessages.h similarity index 100% rename from res/steamworks/162/headers/isteamnetworkingmessages.h rename to res/steamworks/162/headers/steam/isteamnetworkingmessages.h diff --git a/res/steamworks/162/headers/isteamnetworkingsockets.h b/res/steamworks/162/headers/steam/isteamnetworkingsockets.h similarity index 100% rename from res/steamworks/162/headers/isteamnetworkingsockets.h rename to res/steamworks/162/headers/steam/isteamnetworkingsockets.h diff --git a/res/steamworks/162/headers/isteamnetworkingutils.h b/res/steamworks/162/headers/steam/isteamnetworkingutils.h similarity index 100% rename from res/steamworks/162/headers/isteamnetworkingutils.h rename to res/steamworks/162/headers/steam/isteamnetworkingutils.h diff --git a/res/steamworks/162/headers/isteamparentalsettings.h b/res/steamworks/162/headers/steam/isteamparentalsettings.h similarity index 100% rename from res/steamworks/162/headers/isteamparentalsettings.h rename to res/steamworks/162/headers/steam/isteamparentalsettings.h diff --git a/res/steamworks/162/headers/isteamps3overlayrenderer.h b/res/steamworks/162/headers/steam/isteamps3overlayrenderer.h similarity index 100% rename from res/steamworks/162/headers/isteamps3overlayrenderer.h rename to res/steamworks/162/headers/steam/isteamps3overlayrenderer.h diff --git a/res/steamworks/162/headers/isteamremoteplay.h b/res/steamworks/162/headers/steam/isteamremoteplay.h similarity index 100% rename from res/steamworks/162/headers/isteamremoteplay.h rename to res/steamworks/162/headers/steam/isteamremoteplay.h diff --git a/res/steamworks/162/headers/isteamremotestorage.h b/res/steamworks/162/headers/steam/isteamremotestorage.h similarity index 100% rename from res/steamworks/162/headers/isteamremotestorage.h rename to res/steamworks/162/headers/steam/isteamremotestorage.h diff --git a/res/steamworks/162/headers/isteamscreenshots.h b/res/steamworks/162/headers/steam/isteamscreenshots.h similarity index 100% rename from res/steamworks/162/headers/isteamscreenshots.h rename to res/steamworks/162/headers/steam/isteamscreenshots.h diff --git a/res/steamworks/162/headers/isteamtimeline.h b/res/steamworks/162/headers/steam/isteamtimeline.h similarity index 100% rename from res/steamworks/162/headers/isteamtimeline.h rename to res/steamworks/162/headers/steam/isteamtimeline.h diff --git a/res/steamworks/162/headers/isteamugc.h b/res/steamworks/162/headers/steam/isteamugc.h similarity index 100% rename from res/steamworks/162/headers/isteamugc.h rename to res/steamworks/162/headers/steam/isteamugc.h diff --git a/res/steamworks/162/headers/isteamuser.h b/res/steamworks/162/headers/steam/isteamuser.h similarity index 100% rename from res/steamworks/162/headers/isteamuser.h rename to res/steamworks/162/headers/steam/isteamuser.h diff --git a/res/steamworks/162/headers/isteamuserstats.h b/res/steamworks/162/headers/steam/isteamuserstats.h similarity index 100% rename from res/steamworks/162/headers/isteamuserstats.h rename to res/steamworks/162/headers/steam/isteamuserstats.h diff --git a/res/steamworks/162/headers/isteamutils.h b/res/steamworks/162/headers/steam/isteamutils.h similarity index 100% rename from res/steamworks/162/headers/isteamutils.h rename to res/steamworks/162/headers/steam/isteamutils.h diff --git a/res/steamworks/162/headers/isteamvideo.h b/res/steamworks/162/headers/steam/isteamvideo.h similarity index 100% rename from res/steamworks/162/headers/isteamvideo.h rename to res/steamworks/162/headers/steam/isteamvideo.h diff --git a/res/steamworks/162/headers/matchmakingtypes.h b/res/steamworks/162/headers/steam/matchmakingtypes.h similarity index 100% rename from res/steamworks/162/headers/matchmakingtypes.h rename to res/steamworks/162/headers/steam/matchmakingtypes.h diff --git a/res/steamworks/162/headers/steam_api.h b/res/steamworks/162/headers/steam/steam_api.h similarity index 100% rename from res/steamworks/162/headers/steam_api.h rename to res/steamworks/162/headers/steam/steam_api.h diff --git a/res/steamworks/162/headers/steam_api_common.h b/res/steamworks/162/headers/steam/steam_api_common.h similarity index 100% rename from res/steamworks/162/headers/steam_api_common.h rename to res/steamworks/162/headers/steam/steam_api_common.h diff --git a/res/steamworks/162/headers/steam_api_flat.h b/res/steamworks/162/headers/steam/steam_api_flat.h similarity index 100% rename from res/steamworks/162/headers/steam_api_flat.h rename to res/steamworks/162/headers/steam/steam_api_flat.h diff --git a/res/steamworks/162/headers/steam_api_internal.h b/res/steamworks/162/headers/steam/steam_api_internal.h similarity index 100% rename from res/steamworks/162/headers/steam_api_internal.h rename to res/steamworks/162/headers/steam/steam_api_internal.h diff --git a/res/steamworks/162/headers/steam_gameserver.h b/res/steamworks/162/headers/steam/steam_gameserver.h similarity index 100% rename from res/steamworks/162/headers/steam_gameserver.h rename to res/steamworks/162/headers/steam/steam_gameserver.h diff --git a/res/steamworks/162/headers/steamclientpublic.h b/res/steamworks/162/headers/steam/steamclientpublic.h similarity index 100% rename from res/steamworks/162/headers/steamclientpublic.h rename to res/steamworks/162/headers/steam/steamclientpublic.h diff --git a/res/steamworks/162/headers/steamencryptedappticket.h b/res/steamworks/162/headers/steam/steamencryptedappticket.h similarity index 100% rename from res/steamworks/162/headers/steamencryptedappticket.h rename to res/steamworks/162/headers/steam/steamencryptedappticket.h diff --git a/res/steamworks/162/headers/steamhttpenums.h b/res/steamworks/162/headers/steam/steamhttpenums.h similarity index 100% rename from res/steamworks/162/headers/steamhttpenums.h rename to res/steamworks/162/headers/steam/steamhttpenums.h diff --git a/res/steamworks/162/headers/steamnetworkingfakeip.h b/res/steamworks/162/headers/steam/steamnetworkingfakeip.h similarity index 100% rename from res/steamworks/162/headers/steamnetworkingfakeip.h rename to res/steamworks/162/headers/steam/steamnetworkingfakeip.h diff --git a/res/steamworks/162/headers/steamnetworkingtypes.h b/res/steamworks/162/headers/steam/steamnetworkingtypes.h similarity index 100% rename from res/steamworks/162/headers/steamnetworkingtypes.h rename to res/steamworks/162/headers/steam/steamnetworkingtypes.h diff --git a/res/steamworks/162/headers/steamps3params.h b/res/steamworks/162/headers/steam/steamps3params.h similarity index 100% rename from res/steamworks/162/headers/steamps3params.h rename to res/steamworks/162/headers/steam/steamps3params.h diff --git a/res/steamworks/162/headers/steamtypes.h b/res/steamworks/162/headers/steam/steamtypes.h similarity index 100% rename from res/steamworks/162/headers/steamtypes.h rename to res/steamworks/162/headers/steam/steamtypes.h diff --git a/res/steamworks/162/headers/steamuniverse.h b/res/steamworks/162/headers/steam/steamuniverse.h similarity index 100% rename from res/steamworks/162/headers/steamuniverse.h rename to res/steamworks/162/headers/steam/steamuniverse.h diff --git a/src/common/app_cache.cpp b/src/common/app_cache.cpp deleted file mode 100644 index 35a44c8..0000000 --- a/src/common/app_cache.cpp +++ /dev/null @@ -1,49 +0,0 @@ -#include -#include -#include -#include - -constexpr auto KEY_APPS = "apps"; - -AppDlcNameMap get_cached_apps() noexcept { - try { - return koalabox::cache::get(KEY_APPS).get(); - } catch (const Exception& e) { - LOG_WARN("Failed to get cached apps: {}", e.what()); - return {}; - } -} - -namespace smoke_api::app_cache { - - Vector get_dlcs(AppId_t app_id) noexcept { - try { - LOG_DEBUG("Reading cached DLC IDs for the app: {}", app_id); - - const auto apps = get_cached_apps(); - - return DLC::get_dlcs_from_apps(apps, app_id); - } catch (const Exception& e) { - LOG_ERROR("Error reading DLCs from disk cache: ", e.what()); - - return {}; - } - } - - bool save_dlcs(AppId_t app_id, const Vector& dlcs) noexcept { - try { - LOG_DEBUG("Caching DLC IDs for the app: {}", app_id); - - auto apps = get_cached_apps(); - - apps[std::to_string(app_id)] = App{.dlcs=DLC::get_dlc_map_from_vector(dlcs)}; - - return koalabox::cache::put(KEY_APPS, Json(apps)); - } catch (const Exception& e) { - LOG_ERROR("Error saving DLCs to disk cache: {}", e.what()); - - return false; - } - } - -} diff --git a/src/common/app_cache.hpp b/src/common/app_cache.hpp deleted file mode 100644 index 2c9fbf9..0000000 --- a/src/common/app_cache.hpp +++ /dev/null @@ -1,11 +0,0 @@ -#pragma once - -#include - -namespace smoke_api::app_cache { - - Vector get_dlcs(AppId_t app_id) noexcept; - - bool save_dlcs(AppId_t app_id, const Vector& dlcs) noexcept; - -} diff --git a/src/common/steamclient_exports.cpp b/src/common/steamclient_exports.cpp deleted file mode 100644 index d5fab59..0000000 --- a/src/common/steamclient_exports.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -#include - -DLL_EXPORT(void*) CreateInterface(const char* interface_string, int* out_result) { - return steam_client::GetGenericInterface( - __func__, interface_string, [&] { - GET_ORIGINAL_HOOKED_FUNCTION(CreateInterface) - - return CreateInterface_o(interface_string, out_result); - } - ); -} diff --git a/src/common/steamclient_exports.hpp b/src/common/steamclient_exports.hpp deleted file mode 100644 index d175fe0..0000000 --- a/src/common/steamclient_exports.hpp +++ /dev/null @@ -1,3 +0,0 @@ -#include - -DLL_EXPORT(void*) CreateInterface(const char* interface_string, int* out_result); diff --git a/src/core/api.hpp b/src/core/api.hpp deleted file mode 100644 index ca7d229..0000000 --- a/src/core/api.hpp +++ /dev/null @@ -1,11 +0,0 @@ -#pragma once - -#include - -namespace api { - - std::optional> fetch_dlcs_from_github(AppId_t app_id) noexcept; - - std::optional> fetch_dlcs_from_steam(AppId_t app_id) noexcept; - -} diff --git a/src/core/paths.cpp b/src/core/paths.cpp deleted file mode 100644 index f70564e..0000000 --- a/src/core/paths.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include -#include - -// TODO: Refactor to KoalaBox -namespace paths { - - Path get_self_path() { - static const auto path = koalabox::loader::get_module_dir(globals::smokeapi_handle); - return path; - } - - Path get_config_path() { - static const auto path = get_self_path() / "SmokeAPI.config.json"; - return path; - } - - Path get_cache_path() { - static const auto path = get_self_path() / "SmokeAPI.cache.json"; - return path; - } - - Path get_log_path() { - static const auto path = get_self_path() / "SmokeAPI.log.log"; - return path; - } - -} diff --git a/src/core/paths.hpp b/src/core/paths.hpp deleted file mode 100644 index 1a7a7d5..0000000 --- a/src/core/paths.hpp +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -namespace paths { - - /** - * @return An std::path instance representing the directory containing this DLL - */ - Path get_self_path(); - Path get_config_path(); - Path get_cache_path(); - Path get_log_path(); - -} diff --git a/src/game_mode/exports/steam_api.cpp b/src/exports/steam_api.cpp similarity index 55% rename from src/game_mode/exports/steam_api.cpp rename to src/exports/steam_api.cpp index 83e3ea3..175317a 100644 --- a/src/game_mode/exports/steam_api.cpp +++ b/src/exports/steam_api.cpp @@ -1,12 +1,13 @@ -#include -#include +#include +#include + +#include "smoke_api/config.hpp" +#include "smoke_api/globals.hpp" // TODO: Detour in hook mode -DLL_EXPORT(bool) SteamAPI_RestartAppIfNecessary( - [[maybe_unused]] const uint32_t unOwnAppID -) { +DLL_EXPORT(bool) SteamAPI_RestartAppIfNecessary(const uint32_t unOwnAppID) { if (smoke_api::config::instance.override_app_id != 0) { - LOG_DEBUG("{} -> Preventing app restart", __func__); + LOG_DEBUG("{} -> {}. Preventing app restart", unOwnAppID, __func__); return false; } diff --git a/src/game_mode/exports/steam_api_flat.cpp b/src/exports/steam_api_flat.cpp similarity index 84% rename from src/game_mode/exports/steam_api_flat.cpp rename to src/exports/steam_api_flat.cpp index fabe006..f66b480 100644 --- a/src/game_mode/exports/steam_api_flat.cpp +++ b/src/exports/steam_api_flat.cpp @@ -1,25 +1,27 @@ #include +#include -#include -#include -#include -#include -#include -#include +#include "smoke_api/types.hpp" +#include "smoke_api/globals.hpp" +#include "steam_interface/steam_apps.hpp" +#include "steam_interface/steam_client.hpp" +#include "steam_interface/steam_interface.hpp" +#include "steam_interface/steam_inventory.hpp" +#include "steam_interface/steam_user.hpp" // ISteamApps DLL_EXPORT(bool) SteamAPI_ISteamApps_BIsSubscribedApp(void* self, AppId_t dlcID) { try { - static const auto app_id = steam_impl::get_app_id_or_throw(); + static const auto app_id = steam_interface::get_app_id(); return steam_apps::IsDlcUnlocked( - __func__, app_id, dlcID, [&]() { + __func__, app_id, dlcID, [&] { GET_ORIGINAL_FUNCTION_STEAMAPI(SteamAPI_ISteamApps_BIsSubscribedApp) return SteamAPI_ISteamApps_BIsSubscribedApp_o(self, dlcID); } ); - } catch (const Exception& e) { + } catch (const std::exception& e) { LOG_ERROR("{} -> Error: {}", __func__, e.what()); return false; } @@ -27,15 +29,15 @@ DLL_EXPORT(bool) SteamAPI_ISteamApps_BIsSubscribedApp(void* self, AppId_t dlcID) DLL_EXPORT(bool) SteamAPI_ISteamApps_BIsDlcInstalled(void* self, AppId_t dlcID) { try { - static const auto app_id = steam_impl::get_app_id_or_throw(); + static const auto app_id = steam_interface::get_app_id(); return steam_apps::IsDlcUnlocked( - __func__, app_id, dlcID, [&]() { + __func__, app_id, dlcID, [&] { GET_ORIGINAL_FUNCTION_STEAMAPI(SteamAPI_ISteamApps_BIsDlcInstalled) return SteamAPI_ISteamApps_BIsDlcInstalled_o(self, dlcID); } ); - } catch (const Exception& e) { + } catch (const std::exception& e) { LOG_ERROR("{} -> Error: {}", __func__, e.what()); return false; } @@ -43,15 +45,15 @@ DLL_EXPORT(bool) SteamAPI_ISteamApps_BIsDlcInstalled(void* self, AppId_t dlcID) DLL_EXPORT(int) SteamAPI_ISteamApps_GetDLCCount(void* self) { try { - static const auto app_id = steam_impl::get_app_id_or_throw(); + static const auto app_id = steam_interface::get_app_id(); return steam_apps::GetDLCCount( - __func__, app_id, [&]() { + __func__, app_id, [&] { GET_ORIGINAL_FUNCTION_STEAMAPI(SteamAPI_ISteamApps_GetDLCCount) return SteamAPI_ISteamApps_GetDLCCount_o(self); } ); - } catch (const Exception& e) { + } catch (const std::exception& e) { LOG_ERROR("{} -> Error: {}", __func__, e.what()); return 0; } @@ -66,10 +68,10 @@ DLL_EXPORT(bool) SteamAPI_ISteamApps_BGetDLCDataByIndex( int cchNameBufferSize ) { try { - static const auto app_id = steam_impl::get_app_id_or_throw(); + static const auto app_id = steam_interface::get_app_id(); return steam_apps::GetDLCDataByIndex( __func__, app_id, iDLC, pDlcID, pbAvailable, pchName, cchNameBufferSize, - [&]() { + [&] { GET_ORIGINAL_FUNCTION_STEAMAPI(SteamAPI_ISteamApps_BGetDLCDataByIndex) return SteamAPI_ISteamApps_BGetDLCDataByIndex_o( self, iDLC, pDlcID, pbAvailable, pchName, cchNameBufferSize @@ -79,7 +81,7 @@ DLL_EXPORT(bool) SteamAPI_ISteamApps_BGetDLCDataByIndex( return SteamAPI_ISteamApps_BIsDlcInstalled(self, dlc_id); } ); - } catch (const Exception& e) { + } catch (const std::exception& e) { LOG_ERROR("{} -> Error: {}", __func__, e.what()); return false; } @@ -95,12 +97,12 @@ DLL_EXPORT(void*) SteamAPI_ISteamClient_GetISteamGenericInterface( ) { try { return steam_client::GetGenericInterface( - __func__, pchVersion, [&]() { + __func__, pchVersion, [&] { GET_ORIGINAL_FUNCTION_STEAMAPI(SteamAPI_ISteamClient_GetISteamGenericInterface) return SteamAPI_ISteamClient_GetISteamGenericInterface_o(self, hSteamUser, hSteamPipe, pchVersion); } ); - } catch (const Exception& e) { + } catch (const std::exception& e) { LOG_ERROR("{} -> Error: {}", __func__, e.what()); return nullptr; } @@ -113,7 +115,7 @@ DLL_EXPORT(EResult) SteamAPI_ISteamInventory_GetResultStatus( SteamInventoryResult_t resultHandle ) { return steam_inventory::GetResultStatus( - __func__, resultHandle, [&]() { + __func__, resultHandle, [&] { GET_ORIGINAL_FUNCTION_STEAMAPI(SteamAPI_ISteamInventory_GetResultStatus) return SteamAPI_ISteamInventory_GetResultStatus_o(self, resultHandle); @@ -127,7 +129,7 @@ DLL_EXPORT(bool) SteamAPI_ISteamInventory_GetItemDefinitionIDs( uint32_t* punItemDefIDsArraySize ) { return steam_inventory::GetItemDefinitionIDs( - __func__, pItemDefIDs, punItemDefIDsArraySize, [&]() { + __func__, pItemDefIDs, punItemDefIDsArraySize, [&] { GET_ORIGINAL_FUNCTION_STEAMAPI(SteamAPI_ISteamInventory_GetItemDefinitionIDs) return SteamAPI_ISteamInventory_GetItemDefinitionIDs_o(self, pItemDefIDs, punItemDefIDsArraySize); @@ -143,7 +145,7 @@ DLL_EXPORT(bool) SteamAPI_ISteamInventory_GetResultItems( ) { return steam_inventory::GetResultItems( __func__, resultHandle, pOutItemsArray, punOutItemsArraySize, - [&]() { + [&] { GET_ORIGINAL_FUNCTION_STEAMAPI(SteamAPI_ISteamInventory_GetResultItems) return SteamAPI_ISteamInventory_GetResultItems_o(self, resultHandle, pOutItemsArray, punOutItemsArraySize); @@ -165,7 +167,7 @@ DLL_EXPORT(bool) SteamAPI_ISteamInventory_GetResultItemProperty( uint32_t* punValueBufferSizeOut ) { return steam_inventory::GetResultItemProperty( - __func__, resultHandle, unItemIndex, pchPropertyName, pchValueBuffer, punValueBufferSizeOut, [&]() { + __func__, resultHandle, unItemIndex, pchPropertyName, pchValueBuffer, punValueBufferSizeOut, [&] { GET_ORIGINAL_FUNCTION_STEAMAPI(SteamAPI_ISteamInventory_GetResultItemProperty) return SteamAPI_ISteamInventory_GetResultItemProperty_o( @@ -181,7 +183,7 @@ DLL_EXPORT(bool) SteamAPI_ISteamInventory_CheckResultSteamID( CSteamID steamIDExpected ) { return steam_inventory::CheckResultSteamID( - __func__, resultHandle, steamIDExpected, [&]() { + __func__, resultHandle, steamIDExpected, [&] { GET_ORIGINAL_FUNCTION_STEAMAPI(SteamAPI_ISteamInventory_CheckResultSteamID) return SteamAPI_ISteamInventory_CheckResultSteamID_o(self, resultHandle, steamIDExpected); @@ -194,7 +196,7 @@ DLL_EXPORT(bool) SteamAPI_ISteamInventory_GetAllItems( SteamInventoryResult_t* pResultHandle ) { return steam_inventory::GetAllItems( - __func__, pResultHandle, [&]() { + __func__, pResultHandle, [&] { GET_ORIGINAL_FUNCTION_STEAMAPI(SteamAPI_ISteamInventory_GetAllItems) return SteamAPI_ISteamInventory_GetAllItems_o(self, pResultHandle); @@ -209,7 +211,7 @@ DLL_EXPORT(bool) SteamAPI_ISteamInventory_GetItemsByID( uint32_t unCountInstanceIDs ) { return steam_inventory::GetItemsByID( - __func__, pResultHandle, pInstanceIDs, unCountInstanceIDs, [&]() { + __func__, pResultHandle, pInstanceIDs, unCountInstanceIDs, [&] { GET_ORIGINAL_FUNCTION_STEAMAPI(SteamAPI_ISteamInventory_GetItemsByID) return SteamAPI_ISteamInventory_GetItemsByID_o(self, pResultHandle, pInstanceIDs, unCountInstanceIDs); @@ -224,7 +226,7 @@ DLL_EXPORT(bool) SteamAPI_ISteamInventory_SerializeResult( uint32_t* punOutBufferSize ) { return steam_inventory::SerializeResult( - __func__, resultHandle, pOutBuffer, punOutBufferSize, [&]() { + __func__, resultHandle, pOutBuffer, punOutBufferSize, [&] { GET_ORIGINAL_FUNCTION_STEAMAPI(SteamAPI_ISteamInventory_SerializeResult) return SteamAPI_ISteamInventory_SerializeResult_o(self, resultHandle, pOutBuffer, punOutBufferSize); @@ -240,15 +242,15 @@ DLL_EXPORT(EUserHasLicenseForAppResult) SteamAPI_ISteamUser_UserHasLicenseForApp AppId_t dlcID ) { try { - static const auto app_id = steam_impl::get_app_id_or_throw(); + static const auto app_id = steam_interface::get_app_id(); return steam_user::UserHasLicenseForApp( - __func__, app_id, dlcID, [&]() { + __func__, app_id, dlcID, [&] { GET_ORIGINAL_FUNCTION_STEAMAPI(SteamAPI_ISteamUser_UserHasLicenseForApp) return SteamAPI_ISteamUser_UserHasLicenseForApp_o(self, steamID, dlcID); } ); - } catch (const Exception& e) { + } catch (const std::exception& e) { LOG_ERROR("{} -> Error: {}", __func__, e.what()); return k_EUserHasLicenseResultDoesNotHaveLicense; } diff --git a/src/exports/steam_api_internal.cpp b/src/exports/steam_api_internal.cpp new file mode 100644 index 0000000..9847c75 --- /dev/null +++ b/src/exports/steam_api_internal.cpp @@ -0,0 +1,21 @@ +#include + +#include "smoke_api/globals.hpp" +#include "smoke_api/types.hpp" +#include "steam_interface/steam_client.hpp" + +DLL_EXPORT(void*) SteamInternal_FindOrCreateUserInterface(HSteamUser hSteamUser, const char* version) { + return steam_client::GetGenericInterface(__func__, version, [&] { + GET_ORIGINAL_FUNCTION_STEAMAPI(SteamInternal_FindOrCreateUserInterface) + + return SteamInternal_FindOrCreateUserInterface_o(hSteamUser, version); + }); +} + +DLL_EXPORT(void*) SteamInternal_CreateInterface(const char* version) { + return steam_client::GetGenericInterface(__func__, version, [&] { + GET_ORIGINAL_FUNCTION_STEAMAPI(SteamInternal_CreateInterface) + + return SteamInternal_CreateInterface_o(version); + }); +} diff --git a/src/exports/steam_api_unversioned.cpp b/src/exports/steam_api_unversioned.cpp new file mode 100644 index 0000000..d150b54 --- /dev/null +++ b/src/exports/steam_api_unversioned.cpp @@ -0,0 +1,90 @@ +#include + +#include +#include +#include +#include + +#include "smoke_api/globals.hpp" +#include "smoke_api/types.hpp" +#include "steam_interface/steam_client.hpp" + +namespace { + + /** + * Searches the `.rdata` section of the original dll for the full interface version string + * Results are cached for performance. + */ + std::string + get_versioned_interface(const std::string& version_prefix, const std::string& fallback) { + static std::map version_map; + + if (not version_map.contains(version_prefix)) { + try { + const std::string rdata = koalabox::win_util::get_pe_section_data_or_throw( + globals::steamapi_module, ".rdata" + ); + + const std::regex regex(version_prefix + "\\d{3}"); + std::smatch match; + if (std::regex_search(rdata, match, regex)) { + version_map[version_prefix] = match[0]; + return version_map[version_prefix]; + } + + throw koalabox::util::exception("No match found for '{}'", version_prefix); + } catch (const std::exception& ex) { + LOG_ERROR( + "Failed to get versioned interface: {}." + "Falling back to version {}", + ex.what(), + fallback + ); + + version_map[version_prefix] = version_prefix + fallback; + } + } + + return version_map[version_prefix]; + } +} + +DLL_EXPORT(void*) SteamClient() { + static auto version = get_versioned_interface(STEAM_CLIENT, "006"); + + return steam_client::GetGenericInterface(__func__, version, [&] { + GET_ORIGINAL_FUNCTION_STEAMAPI(SteamClient) + + return SteamClient_o(); + }); +} + +DLL_EXPORT(void*) SteamApps() { + static auto version = get_versioned_interface(STEAM_APPS, "002"); + + return steam_client::GetGenericInterface(__func__, version, [&]() { + GET_ORIGINAL_FUNCTION_STEAMAPI(SteamApps) + + return SteamApps_o(); + }); +} + +DLL_EXPORT(void*) SteamUser() { + static auto version = get_versioned_interface(STEAM_USER, "012"); + + return steam_client::GetGenericInterface(__func__, version, [&] { + GET_ORIGINAL_FUNCTION_STEAMAPI(SteamUser) + + return SteamUser_o(); + }); +} + +DLL_EXPORT(void*) SteamInventory() { + static auto version = get_versioned_interface(STEAM_INVENTORY, "001"); + + return steam_client::GetGenericInterface(__func__, version, [&] { + GET_ORIGINAL_FUNCTION_STEAMAPI(SteamInventory) + + return SteamInventory_o(); + }); +} diff --git a/src/exports/steamclient.cpp b/src/exports/steamclient.cpp new file mode 100644 index 0000000..2439abc --- /dev/null +++ b/src/exports/steamclient.cpp @@ -0,0 +1,13 @@ +#include + +#include "exports/steamclient.hpp" +#include "smoke_api/types.hpp" +#include "steam_interface/steam_client.hpp" + +C_DECL(void*) CreateInterface(const char* interface_string, int* out_result) { + return steam_client::GetGenericInterface(__func__, interface_string, [&] { + GET_ORIGINAL_HOOKED_FUNCTION(CreateInterface) + + return CreateInterface_o(interface_string, out_result); + }); +} diff --git a/src/exports/steamclient.hpp b/src/exports/steamclient.hpp new file mode 100644 index 0000000..81d8e43 --- /dev/null +++ b/src/exports/steamclient.hpp @@ -0,0 +1,5 @@ +#pragma once + +#include "smoke_api/types.hpp" + +C_DECL(void*) CreateInterface(const char* interface_string, int* out_result); diff --git a/src/game_mode/exports/steam_api_internal.cpp b/src/game_mode/exports/steam_api_internal.cpp deleted file mode 100644 index 9a58eb0..0000000 --- a/src/game_mode/exports/steam_api_internal.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -DLL_EXPORT(void*) SteamInternal_FindOrCreateUserInterface(HSteamUser hSteamUser, const char* version) { - return steam_client::GetGenericInterface( - __func__, version, [&]() { - GET_ORIGINAL_FUNCTION_STEAMAPI(SteamInternal_FindOrCreateUserInterface) - - return SteamInternal_FindOrCreateUserInterface_o(hSteamUser, version); - } - ); -} - -DLL_EXPORT(void*) SteamInternal_CreateInterface(const char* version) { - return steam_client::GetGenericInterface( - __func__, version, [&]() { - GET_ORIGINAL_FUNCTION_STEAMAPI(SteamInternal_CreateInterface) - - return SteamInternal_CreateInterface_o(version); - } - ); -} diff --git a/src/game_mode/exports/steam_api_unversioned.cpp b/src/game_mode/exports/steam_api_unversioned.cpp deleted file mode 100644 index e628c7d..0000000 --- a/src/game_mode/exports/steam_api_unversioned.cpp +++ /dev/null @@ -1,88 +0,0 @@ -#include - -#include -#include -#include - -#include -#include - -/** - * Searches the `.rdata` section of the original dll for the full interface version string - * Results are cached for performance. - */ -String get_versioned_interface(const String& version_prefix, const String& fallback) { - static Map version_map; - - if (not version_map.contains(version_prefix)) { - try { - const String rdata = koalabox::win_util::get_pe_section_data_or_throw(globals::steamapi_module, ".rdata"); - - const std::regex regex(version_prefix + "\\d{3}"); - std::smatch match; - if (std::regex_search(rdata, match, regex)) { - version_map[version_prefix] = match[0]; - return version_map[version_prefix]; - } - - throw koalabox::util::exception("No match found for '{}'", version_prefix); - } catch (const Exception& ex) { - LOG_ERROR( - "Failed to get versioned interface: {}." - "Falling back to version {}", ex.what(), fallback - ); - - version_map[version_prefix] = version_prefix + fallback; - } - } - - return version_map[version_prefix]; -} - -DLL_EXPORT(void*) SteamClient() { - static auto version = get_versioned_interface(STEAM_CLIENT, "006"); - - return steam_client::GetGenericInterface( - __func__, version, [&] { - GET_ORIGINAL_FUNCTION_STEAMAPI(SteamClient) - - return SteamClient_o(); - } - ); -} - -DLL_EXPORT(void*) SteamApps() { - static auto version = get_versioned_interface(STEAM_APPS, "002"); - - return steam_client::GetGenericInterface( - __func__, version, [&]() { - GET_ORIGINAL_FUNCTION_STEAMAPI(SteamApps) - - return SteamApps_o(); - } - ); -} - -DLL_EXPORT(void*) SteamUser() { - static auto version = get_versioned_interface(STEAM_USER, "012"); - - return steam_client::GetGenericInterface( - __func__, version, [&] { - GET_ORIGINAL_FUNCTION_STEAMAPI(SteamUser) - - return SteamUser_o(); - } - ); -} - -DLL_EXPORT(void*) SteamInventory() { - static auto version = get_versioned_interface(STEAM_INVENTORY, "001"); - - return steam_client::GetGenericInterface( - __func__, version, [&] { - GET_ORIGINAL_FUNCTION_STEAMAPI(SteamInventory) - - return SteamInventory_o(); - } - ); -} diff --git a/src/game_mode/virtuals/isteamapps.cpp b/src/game_mode/virtuals/isteamapps.cpp deleted file mode 100644 index 43a2134..0000000 --- a/src/game_mode/virtuals/isteamapps.cpp +++ /dev/null @@ -1,81 +0,0 @@ -#include -#include -#include -#include - -VIRTUAL(bool) ISteamApps_BIsSubscribedApp(PARAMS(AppId_t dlc_id)) { - try { - static const auto app_id = steam_impl::get_app_id_or_throw(); - return steam_apps::IsDlcUnlocked( - __func__, app_id, dlc_id, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamApps_BIsSubscribedApp) - return ISteamApps_BIsSubscribedApp_o(ARGS(dlc_id)); - } - ); - } catch (const Exception& e) { - LOG_ERROR("{} -> Error: {}", __func__, e.what()); - - return false; - } -} - -VIRTUAL(bool) ISteamApps_BIsDlcInstalled(PARAMS(AppId_t dlc_id)) { - try { - static const auto app_id = steam_impl::get_app_id_or_throw(); - return steam_apps::IsDlcUnlocked( - __func__, app_id, dlc_id, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamApps_BIsDlcInstalled) - return ISteamApps_BIsDlcInstalled_o(ARGS(dlc_id)); - } - ); - } catch (const Exception& e) { - LOG_ERROR("{} -> Error: {}", __func__, e.what()); - - return false; - } -} - -VIRTUAL(int) ISteamApps_GetDLCCount(PARAMS()) { - try { - static const auto app_id = steam_impl::get_app_id_or_throw(); - return steam_apps::GetDLCCount( - __func__, app_id, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamApps_GetDLCCount) - return ISteamApps_GetDLCCount_o(ARGS()); - } - ); - } catch (const Exception& e) { - LOG_ERROR("{} -> Error: {}", __func__, e.what()); - - return 0; - } -} - -VIRTUAL(bool) ISteamApps_BGetDLCDataByIndex( - PARAMS( - int iDLC, - AppId_t* p_dlc_id, - bool* pbAvailable, - char* pchName, - int cchNameBufferSize - ) -) { - try { - static const auto app_id = steam_impl::get_app_id_or_throw(); - return steam_apps::GetDLCDataByIndex( - __func__, app_id, iDLC, p_dlc_id, pbAvailable, pchName, cchNameBufferSize, - [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamApps_BGetDLCDataByIndex) - return ISteamApps_BGetDLCDataByIndex_o( - ARGS(iDLC, p_dlc_id, pbAvailable, pchName, cchNameBufferSize) - ); - }, - [&](AppId_t dlc_id) { - return ISteamApps_BIsDlcInstalled(ARGS(dlc_id)); - } - ); - } catch (const Exception& e) { - LOG_ERROR("{} -> Error: {}", __func__, e.what()); - return false; - } -} diff --git a/src/game_mode/virtuals/isteamclient.cpp b/src/game_mode/virtuals/isteamclient.cpp deleted file mode 100644 index d646973..0000000 --- a/src/game_mode/virtuals/isteamclient.cpp +++ /dev/null @@ -1,85 +0,0 @@ -#include -#include - -VIRTUAL(void*) ISteamClient_GetISteamApps( - PARAMS( - HSteamUser hSteamUser, - HSteamPipe hSteamPipe, - const char* version - ) -) { - try { - return steam_client::GetGenericInterface( - __func__, version, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamClient_GetISteamApps) - return ISteamClient_GetISteamApps_o(ARGS(hSteamUser, hSteamPipe, version)); - } - ); - } catch (const Exception& e) { - LOG_ERROR("{} -> Error: {}", __func__, e.what()); - return nullptr; - } -} - -VIRTUAL(void*) ISteamClient_GetISteamUser( - PARAMS( - HSteamUser hSteamUser, - HSteamPipe hSteamPipe, - const char* version - ) -) { - try { - return steam_client::GetGenericInterface( - __func__, version, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamClient_GetISteamUser) - - return ISteamClient_GetISteamUser_o(ARGS(hSteamUser, hSteamPipe, version)); - } - ); - } catch (const Exception& e) { - LOG_ERROR("{} -> Error: {}", __func__, e.what()); - return nullptr; - } -} - -VIRTUAL(void*) ISteamClient_GetISteamGenericInterface( - PARAMS( - HSteamUser hSteamUser, - HSteamPipe hSteamPipe, - const char* pchVersion - ) -) { - try { - return steam_client::GetGenericInterface( - __func__, pchVersion, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamClient_GetISteamGenericInterface) - - return ISteamClient_GetISteamGenericInterface_o(ARGS(hSteamUser, hSteamPipe, pchVersion)); - } - ); - } catch (const Exception& e) { - LOG_ERROR("{} -> Error: {}", __func__, e.what()); - return nullptr; - } -} - -VIRTUAL(void*) ISteamClient_GetISteamInventory( - PARAMS( - HSteamUser hSteamUser, - HSteamPipe hSteamPipe, - const char* pchVersion - ) -) { - try { - return steam_client::GetGenericInterface( - __func__, pchVersion, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamClient_GetISteamInventory) - - return ISteamClient_GetISteamInventory_o(ARGS(hSteamUser, hSteamPipe, pchVersion)); - } - ); - } catch (const Exception& e) { - LOG_ERROR("{} -> Error: {}", __func__, e.what()); - return nullptr; - } -} diff --git a/src/game_mode/virtuals/isteaminventory.cpp b/src/game_mode/virtuals/isteaminventory.cpp deleted file mode 100644 index fba78fa..0000000 --- a/src/game_mode/virtuals/isteaminventory.cpp +++ /dev/null @@ -1,126 +0,0 @@ -#include -#include - -VIRTUAL(EResult) ISteamInventory_GetResultStatus(PARAMS(SteamInventoryResult_t resultHandle)) { - return steam_inventory::GetResultStatus( - __func__, resultHandle, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_GetResultStatus) - - return ISteamInventory_GetResultStatus_o(ARGS(resultHandle)); - } - ); -} - -VIRTUAL(bool) ISteamInventory_GetResultItems( - PARAMS( - SteamInventoryResult_t resultHandle, - SteamItemDetails_t* pOutItemsArray, - uint32_t * punOutItemsArraySize - ) -) { - return steam_inventory::GetResultItems( - __func__, resultHandle, pOutItemsArray, punOutItemsArraySize, - [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_GetResultItems) - - return ISteamInventory_GetResultItems_o(ARGS(resultHandle, pOutItemsArray, punOutItemsArraySize)); - }, - [&](SteamItemDef_t* pItemDefIDs, uint32_t* punItemDefIDsArraySize) { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_GetItemDefinitionIDs) - - return ISteamInventory_GetItemDefinitionIDs_o(ARGS(pItemDefIDs, punItemDefIDsArraySize)); - } - ); -} - -VIRTUAL(bool) ISteamInventory_GetResultItemProperty( - PARAMS( - SteamInventoryResult_t resultHandle, - uint32_t unItemIndex, - const char* pchPropertyName, - char* pchValueBuffer, - uint32_t * punValueBufferSizeOut - ) -) { - return steam_inventory::GetResultItemProperty( - __func__, resultHandle, unItemIndex, pchPropertyName, pchValueBuffer, punValueBufferSizeOut, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_GetResultItemProperty) - - return ISteamInventory_GetResultItemProperty_o( - ARGS(resultHandle, unItemIndex, pchPropertyName, pchValueBuffer, punValueBufferSizeOut) - ); - } - ); -} - -VIRTUAL(bool) ISteamInventory_CheckResultSteamID( - PARAMS( - SteamInventoryResult_t resultHandle, - CSteamID steamIDExpected - ) -) { - return steam_inventory::CheckResultSteamID( - __func__, resultHandle, steamIDExpected, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_CheckResultSteamID) - - return ISteamInventory_CheckResultSteamID_o(ARGS(resultHandle, steamIDExpected)); - } - ); -} - -VIRTUAL(bool) ISteamInventory_GetAllItems(PARAMS(SteamInventoryResult_t* pResultHandle)) { - return steam_inventory::GetAllItems( - __func__, pResultHandle, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_GetAllItems) - - return ISteamInventory_GetAllItems_o(ARGS(pResultHandle)); - } - ); -} - -VIRTUAL(bool) ISteamInventory_GetItemsByID( - PARAMS( - SteamInventoryResult_t* pResultHandle, - const SteamItemInstanceID_t* pInstanceIDs, - uint32_t unCountInstanceIDs - ) -) { - return steam_inventory::GetItemsByID( - __func__, pResultHandle, pInstanceIDs, unCountInstanceIDs, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_GetItemsByID) - - return ISteamInventory_GetItemsByID_o(ARGS(pResultHandle, pInstanceIDs, unCountInstanceIDs)); - } - ); -} - -VIRTUAL(bool) ISteamInventory_SerializeResult( - PARAMS( - SteamInventoryResult_t resultHandle, - void* pOutBuffer, - uint32_t * punOutBufferSize - ) -) { - return steam_inventory::SerializeResult( - __func__, resultHandle, pOutBuffer, punOutBufferSize, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_SerializeResult) - - return ISteamInventory_SerializeResult_o(ARGS(resultHandle, pOutBuffer, punOutBufferSize)); - } - ); -} - -VIRTUAL(bool) ISteamInventory_GetItemDefinitionIDs( - PARAMS( - SteamItemDef_t* pItemDefIDs, - uint32_t * punItemDefIDsArraySize - ) -) { - return steam_inventory::GetItemDefinitionIDs( - __func__, pItemDefIDs, punItemDefIDsArraySize, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_GetItemDefinitionIDs) - - return ISteamInventory_GetItemDefinitionIDs_o(ARGS(pItemDefIDs, punItemDefIDsArraySize)); - } - ); -} diff --git a/src/game_mode/virtuals/isteamuser.cpp b/src/game_mode/virtuals/isteamuser.cpp deleted file mode 100644 index 027a062..0000000 --- a/src/game_mode/virtuals/isteamuser.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include -#include - -VIRTUAL(EUserHasLicenseForAppResult) ISteamUser_UserHasLicenseForApp(PARAMS(CSteamID steamID, AppId_t dlc_id)) { - try { - static const auto app_id = steam_impl::get_app_id_or_throw(); - return steam_user::UserHasLicenseForApp( - __func__, app_id, dlc_id, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(ISteamUser_UserHasLicenseForApp) - - return ISteamUser_UserHasLicenseForApp_o(ARGS(steamID, dlc_id)); - } - ); - } catch (const Exception& e) { - LOG_ERROR("{} -> Error: {}", __func__, e.what()); - return k_EUserHasLicenseResultDoesNotHaveLicense; - } -} diff --git a/src/main.cpp b/src/main.cpp index 369e70f..f444f12 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,8 +1,8 @@ -#include #include // This header will be populated at build time -#include +#include "linker_exports_for_steam_api.h" +#include "linker_exports_for_version.h" EXTERN_C [[maybe_unused]] BOOL WINAPI DllMain(const HMODULE module_handle, const DWORD reason, LPVOID) { diff --git a/src/core/api.cpp b/src/smoke_api/api.cpp similarity index 57% rename from src/core/api.cpp rename to src/smoke_api/api.cpp index 8716aa1..41ffdd5 100644 --- a/src/core/api.cpp +++ b/src/smoke_api/api.cpp @@ -1,35 +1,40 @@ -#include -#include #include +#include + +#include "smoke_api/types.hpp" +#include "smoke_api/api.hpp" namespace api { struct SteamResponse { uint32_t success = 0; - Vector dlcs; + std::vector dlcs; - NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(SteamResponse, success, dlcs) // NOLINT(misc-const-correctness) + NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT( + SteamResponse, success, dlcs + ) // NOLINT(misc-const-correctness) }; - std::optional> fetch_dlcs_from_github(AppId_t app_id) noexcept { + std::optional> fetch_dlcs_from_github(AppId_t app_id) noexcept { try { - const auto* url = - "https://raw.githubusercontent.com/acidicoala/public-entitlements/main/steam/v2/dlc.json"; + const auto* url = "https://raw.githubusercontent.com/acidicoala/public-entitlements/" + "main/steam/v2/dlc.json"; const auto json = koalabox::http_client::get_json(url); const auto response = json.get(); return DLC::get_dlcs_from_apps(response, app_id); - } catch (const Json::exception& e) { + } catch (const nlohmann::json::exception& e) { LOG_ERROR("Failed to fetch dlc list from GitHub: {}", e.what()); return std::nullopt; } } - std::optional> fetch_dlcs_from_steam(AppId_t app_id) noexcept { + std::optional> fetch_dlcs_from_steam(AppId_t app_id) noexcept { try { // TODO: Communicate directly with Steam servers. // ref.: https://github.com/SteamRE/SteamKit - const auto url = fmt::format("https://store.steampowered.com/dlc/{}/ajaxgetdlclist", app_id); + const auto url = + fmt::format("https://store.steampowered.com/dlc/{}/ajaxgetdlclist", app_id); const auto json = koalabox::http_client::get_json(url); const auto response = json.get(); @@ -39,7 +44,7 @@ namespace api { } return response.dlcs; - } catch (const Exception& e) { + } catch (const std::exception& e) { LOG_ERROR("Failed to fetch dlc list from Steam: {}", e.what()); return std::nullopt; } diff --git a/src/smoke_api/api.hpp b/src/smoke_api/api.hpp new file mode 100644 index 0000000..deb201d --- /dev/null +++ b/src/smoke_api/api.hpp @@ -0,0 +1,11 @@ +#pragma once + +#include "smoke_api/types.hpp" + +namespace api { + + std::optional> fetch_dlcs_from_github(AppId_t app_id) noexcept; + + std::optional> fetch_dlcs_from_steam(AppId_t app_id) noexcept; + +} diff --git a/src/smoke_api/cache.cpp b/src/smoke_api/cache.cpp new file mode 100644 index 0000000..7b1a785 --- /dev/null +++ b/src/smoke_api/cache.cpp @@ -0,0 +1,53 @@ +#include +#include + +#include "smoke_api/cache.hpp" + +constexpr auto KEY_APPS = "apps"; + +namespace { + + AppDlcNameMap get_cached_apps() noexcept { + try { + return koalabox::cache::get(KEY_APPS).get(); + } catch (const std::exception& e) { + LOG_WARN("Failed to get cached apps: {}", e.what()); + return {}; + } + } + +} + +namespace smoke_api::cache { + + std::vector get_dlcs(AppId_t app_id) noexcept { + try { + LOG_DEBUG("Reading cached DLC IDs for the app: {}", app_id); + + const auto apps = get_cached_apps(); + + return DLC::get_dlcs_from_apps(apps, app_id); + } catch (const std::exception& e) { + LOG_ERROR("Error reading DLCs from disk cache: ", e.what()); + + return {}; + } + } + + bool save_dlcs(AppId_t app_id, const std::vector& dlcs) noexcept { + try { + LOG_DEBUG("Caching DLC IDs for the app: {}", app_id); + + auto apps = get_cached_apps(); + + apps[std::to_string(app_id)] = App{.dlcs = DLC::get_dlc_map_from_vector(dlcs)}; + + return koalabox::cache::put(KEY_APPS, nlohmann::json(apps)); + } catch (const std::exception& e) { + LOG_ERROR("Error saving DLCs to disk cache: {}", e.what()); + + return false; + } + } + +} diff --git a/src/smoke_api/cache.hpp b/src/smoke_api/cache.hpp new file mode 100644 index 0000000..e1ffc5f --- /dev/null +++ b/src/smoke_api/cache.hpp @@ -0,0 +1,11 @@ +#pragma once + +#include "types.hpp" + +namespace smoke_api::cache { + + std::vector get_dlcs(AppId_t app_id) noexcept; + + bool save_dlcs(AppId_t app_id, const std::vector& dlcs) noexcept; + +} diff --git a/src/smoke_api/config.cpp b/src/smoke_api/config.cpp index f84799e..d0b34d6 100644 --- a/src/smoke_api/config.cpp +++ b/src/smoke_api/config.cpp @@ -1,35 +1,23 @@ -#include -#include -#include +#include #include #include +#include + +#include "smoke_api/config.hpp" namespace smoke_api::config { + namespace kb = koalabox; + namespace fs = std::filesystem; + Config instance; // NOLINT(cert-err58-cpp) - // TODO: Refactor to Koalabox - void init_config() { - const auto path = paths::get_config_path(); - - if (exists(path)) { - try { - const auto config_str = koalabox::io::read_file(path); - - instance = Json::parse(config_str).get(); - - LOG_DEBUG("Parsed config:\n{}", Json(instance).dump(2)); - } catch (const Exception& e) { - const auto message = fmt::format("Error parsing config file: {}", e.what()); - koalabox::util::error_box("SmokeAPI Error", message); - } - } - } - - Vector get_extra_dlcs(AppId_t app_id) { + std::vector get_extra_dlcs(const AppId_t app_id) { return DLC::get_dlcs_from_apps(instance.extra_dlcs, app_id); } - bool is_dlc_unlocked(AppId_t app_id, AppId_t dlc_id, const Function& original_function) { + bool is_dlc_unlocked( + AppId_t app_id, AppId_t dlc_id, const std::function& original_function + ) { auto status = instance.default_app_status; const auto app_id_str = std::to_string(app_id); @@ -44,21 +32,25 @@ namespace smoke_api::config { bool is_unlocked; switch (status) { - case AppStatus::UNLOCKED: - is_unlocked = true; - break; - case AppStatus::LOCKED: - is_unlocked = false; - break; - case AppStatus::ORIGINAL: - case AppStatus::UNDEFINED: - is_unlocked = original_function(); - break; + case AppStatus::UNLOCKED: + is_unlocked = true; + break; + case AppStatus::LOCKED: + is_unlocked = false; + break; + case AppStatus::ORIGINAL: + case AppStatus::UNDEFINED: + is_unlocked = original_function(); + break; } LOG_TRACE( "App ID: {}, DLC ID: {}, Status: {}, Original: {}, Unlocked: {}", - app_id_str, dlc_id_str, Json(status).dump(), original_function(), is_unlocked + app_id_str, + dlc_id_str, + nlohmann::json(status).dump(), + original_function(), + is_unlocked ); return is_unlocked; @@ -67,6 +59,6 @@ namespace smoke_api::config { DLL_EXPORT(void) ReloadConfig() { LOG_INFO("Reloading config"); - init_config(); + instance = kb::config::parse(); } } diff --git a/src/smoke_api/config.hpp b/src/smoke_api/config.hpp index 8da2d7c..051c53a 100644 --- a/src/smoke_api/config.hpp +++ b/src/smoke_api/config.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include "smoke_api/types.hpp" namespace smoke_api::config { @@ -21,40 +21,33 @@ namespace smoke_api::config { struct Config { uint32_t $version = 2; bool logging = false; - bool unlock_family_sharing = true; AppStatus default_app_status = AppStatus::UNLOCKED; uint32_t override_app_id = 0; - Map override_app_status; - Map override_dlc_status; + std::map override_app_status; + std::map override_dlc_status; AppDlcNameMap extra_dlcs; bool auto_inject_inventory = true; - Vector extra_inventory_items; - // We have to use general json type here since the library doesn't support std::optional - Json store_config; + std::vector extra_inventory_items; NLOHMANN_DEFINE_TYPE_INTRUSIVE( Config, // NOLINT(misc-const-correctness) $version, logging, - unlock_family_sharing, default_app_status, override_app_id, override_app_status, override_dlc_status, extra_dlcs, auto_inject_inventory, - extra_inventory_items, - store_config + extra_inventory_items ) }; extern Config instance; - void init_config(); + std::vector get_extra_dlcs(AppId_t app_id); - Vector get_extra_dlcs(AppId_t app_id); - - bool is_dlc_unlocked(uint32_t app_id, uint32_t dlc_id, const Function& original_function); + bool is_dlc_unlocked(uint32_t app_id, uint32_t dlc_id, const std::function& original_function); DLL_EXPORT(void) ReloadConfig(); } diff --git a/src/core/globals.cpp b/src/smoke_api/globals.cpp similarity index 57% rename from src/core/globals.cpp rename to src/smoke_api/globals.cpp index b774471..e02770a 100644 --- a/src/core/globals.cpp +++ b/src/smoke_api/globals.cpp @@ -1,8 +1,6 @@ namespace globals { - HMODULE smokeapi_handle = nullptr; HMODULE steamapi_module = nullptr; - HMODULE vstdlib_module = nullptr; HMODULE steamclient_module = nullptr; } diff --git a/src/core/globals.hpp b/src/smoke_api/globals.hpp similarity index 52% rename from src/core/globals.hpp rename to src/smoke_api/globals.hpp index b0a21aa..fb605ec 100644 --- a/src/core/globals.hpp +++ b/src/smoke_api/globals.hpp @@ -1,12 +1,8 @@ #pragma once -#include - namespace globals { - extern HMODULE smokeapi_handle; extern HMODULE steamclient_module; extern HMODULE steamapi_module; - extern HMODULE vstdlib_module; } diff --git a/src/smoke_api/smoke_api.cpp b/src/smoke_api/smoke_api.cpp index 1373c41..8778f1f 100644 --- a/src/smoke_api/smoke_api.cpp +++ b/src/smoke_api/smoke_api.cpp @@ -1,24 +1,19 @@ -#include "koalabox/paths.hpp" - +#include #include #include #include #include #include -#include +#include #include #include -#include -#include -#include -#include -#include -#include +#include "build_config.h" -#if COMPILE_STORE_MODE -#include -#endif +#include "exports/steamclient.hpp" +#include "smoke_api/config.hpp" +#include "smoke_api/globals.hpp" +#include "smoke_api/smoke_api.hpp" // Hooking steam_api has shown itself to be less desirable than steamclient // for the reasons outlined below: @@ -39,6 +34,12 @@ // the support for it has been dropped from this project. namespace { + namespace kb = koalabox; + namespace fs = std::filesystem; + +#define DETOUR_STEAMCLIENT(FUNC) \ + kb::hook::detour_or_warn(globals::steamclient_module, #FUNC, reinterpret_cast(FUNC)); + void override_app_id() { const auto override_app_id = smoke_api::config::instance.override_app_id; if (override_app_id == 0) { @@ -54,107 +55,72 @@ namespace { void init_proxy_mode() { LOG_INFO("Detected proxy mode"); - override_app_id(); - - globals::steamapi_module = - koalabox::loader::load_original_library(paths::get_self_path(), STEAMAPI_DLL); + const auto self_path = kb::paths::get_self_path(); + globals::steamapi_module = kb::loader::load_original_library(self_path, STEAMAPI_DLL); } void init_hook_mode() { - LOG_INFO("🪝 Detected hook mode"); + LOG_INFO("Detected hook mode"); - override_app_id(); + kb::hook::init(true); - koalabox::dll_monitor::init_listener(STEAMCLIENT_DLL, [](const HMODULE& library) { + kb::dll_monitor::init_listener(STEAMCLIENT_DLL, [](const HMODULE& library) { globals::steamclient_module = library; DETOUR_STEAMCLIENT(CreateInterface) - koalabox::dll_monitor::shutdown_listener(); + kb::dll_monitor::shutdown_listener(); }); } - - bool is_valve_steam(const String& exe_name) noexcept { - try { - if (not koalabox::str::eq(exe_name, "steam.exe")) { - return false; - } - - // Verify that it's steam from valve, - // and not some other executable coincidentally named steam - - const HMODULE steam_handle = koalabox::win_util::get_module_handle_or_throw(nullptr); - const auto manifest = koalabox::win_util::get_module_manifest(steam_handle); - - // Steam.exe manifest is expected to contain this string - return manifest.contains("valvesoftware.steam.steam"); - } catch (const Exception& e) { - LOG_ERROR("{} -> {}", __func__, e.what()); - - return false; - } - } } namespace smoke_api { void init(const HMODULE module_handle) { // FIXME: IMPORTANT! Non ascii paths in directories will result in init errors try { - DisableThreadLibraryCalls(module_handle); + kb::globals::init_globals(module_handle, PROJECT_NAME); - koalabox::globals::init_globals(module_handle, PROJECT_NAME); - - globals::smokeapi_handle = module_handle; - - config::init_config(); + config::instance = kb::config::parse(); if (config::instance.logging) { - koalabox::logger::init_file_logger(koalabox::paths::get_log_path()); + kb::logger::init_file_logger(kb::paths::get_log_path()); } // This kind of timestamp is reliable only for CI builds, as it will reflect the // compilation time stamp only when this file gets recompiled. LOG_INFO("{} v{} | Compiled at '{}'", PROJECT_NAME, PROJECT_VERSION, __TIMESTAMP__); - const Path exe_path = koalabox::win_util::get_module_file_name_or_throw(nullptr); + const fs::path exe_path = kb::win_util::get_module_file_name_or_throw(nullptr); const auto exe_name = exe_path.filename().string(); - LOG_DEBUG("Process name: '{}' [{}-bit]", exe_name, BITNESS); + LOG_DEBUG("Process name: '{}' [{}-bit]", exe_name, kb::util::BITNESS); - const bool is_hook_mode = - koalabox::hook::is_hook_mode(globals::smokeapi_handle, STEAMAPI_DLL); + override_app_id(); - if (is_hook_mode) { - koalabox::hook::init(true); - - if (is_valve_steam(exe_name)) { -#if COMPILE_STORE_MODE - LOG_INFO("Detected Store mode"); - store::init_store_mode(); -#endif - } else { - init_hook_mode(); - } + if (kb::hook::is_hook_mode(module_handle, STEAMAPI_DLL)) { + init_hook_mode(); } else { init_proxy_mode(); } LOG_INFO("Initialization complete"); - } catch (const Exception& ex) { - koalabox::util::panic(fmt::format("Initialization error: {}", ex.what())); + } catch (const std::exception& ex) { + kb::util::panic(fmt::format("Initialization error: {}", ex.what())); } } void shutdown() { try { if (globals::steamapi_module != nullptr) { - koalabox::win_util::free_library(globals::steamapi_module); + kb::win_util::free_library(globals::steamapi_module); + globals::steamapi_module = nullptr; } LOG_INFO("Shutdown complete"); - } catch (const Exception& ex) { - LOG_ERROR("Shutdown error: {}", ex.what()); + } catch (const std::exception& e) { + const auto msg = std::format("Shutdown error: {}", e.what()); + LOG_ERROR(msg); } - koalabox::logger::shutdown(); + kb::logger::shutdown(); } } \ No newline at end of file diff --git a/src/core/types.cpp b/src/smoke_api/types.cpp similarity index 50% rename from src/core/types.cpp rename to src/smoke_api/types.cpp index d3e8115..359868d 100644 --- a/src/core/types.cpp +++ b/src/smoke_api/types.cpp @@ -1,13 +1,13 @@ -#include +#include "smoke_api/types.hpp" -Vector DLC::get_dlcs_from_apps(const AppDlcNameMap& apps, AppId_t app_id) { - Vector dlcs; +std::vector DLC::get_dlcs_from_apps(const AppDlcNameMap& apps, AppId_t app_id) { + std::vector dlcs; const auto app_id_str = std::to_string(app_id); if (apps.contains(app_id_str)) { const auto& app = apps.at(app_id_str); - for (auto const& [id, name]: app.dlcs) { + for (auto const& [id, name] : app.dlcs) { dlcs.emplace_back(id, name); } } @@ -15,10 +15,10 @@ Vector DLC::get_dlcs_from_apps(const AppDlcNameMap& apps, AppId_t app_id) { return dlcs; } -DlcNameMap DLC::get_dlc_map_from_vector(const Vector& dlcs) { +DlcNameMap DLC::get_dlc_map_from_vector(const std::vector& dlcs) { DlcNameMap map; - for (const auto& dlc: dlcs) { + for (const auto& dlc : dlcs) { map[dlc.get_id_str()] = dlc.get_name(); } diff --git a/src/core/types.hpp b/src/smoke_api/types.hpp similarity index 78% rename from src/core/types.hpp rename to src/smoke_api/types.hpp index 0217a4e..5f72479 100644 --- a/src/core/types.hpp +++ b/src/smoke_api/types.hpp @@ -1,9 +1,9 @@ #pragma once -#include -// ReSharper disable once CppUnusedIncludeDirective -#include // Used by several macros -#include +#include +#include +#include + #include /** @@ -24,7 +24,7 @@ * * In x86-64 however, there is only one calling convention, * so __fastcall is simply ignored. However, RDX in this case - * will store_mode the 1st actual argument to the function, so we + * will store the 1st actual argument to the function, so we * have to omit it from the function signature. * * The macros below implement the above-mentioned considerations. @@ -47,6 +47,7 @@ #define DLL_EXPORT(TYPE) extern "C" [[maybe_unused]] __declspec(dllexport) TYPE __cdecl #define VIRTUAL(TYPE) __declspec(noinline) TYPE __fastcall +#define C_DECL(TYPE) extern "C" __declspec(noinline) TYPE __cdecl // TODO: Replace with direct call #define GET_ORIGINAL_HOOKED_FUNCTION(FUNC) \ @@ -62,22 +63,15 @@ #define DETOUR_ADDRESS(FUNC, ADDRESS) \ koalabox::hook::detour_or_warn(ADDRESS, #FUNC, reinterpret_cast(FUNC)); -#define $DETOUR(FUNC, NAME, MODULE_HANDLE) \ +#define _DETOUR(FUNC, NAME, MODULE_HANDLE) \ koalabox::hook::detour_or_warn(MODULE_HANDLE, NAME, reinterpret_cast(FUNC)); -#define DETOUR_STEAMCLIENT(FUNC) $DETOUR(FUNC, #FUNC, globals::steamclient_module) -#define DETOUR_VSTDLIB(FUNC) $DETOUR(vstdlib::FUNC, #FUNC, globals::vstdlib_module) - -#ifdef _WIN64 -#define COMPILE_STORE_MODE 0 -#else -#define COMPILE_STORE_MODE 1 -#endif - constexpr auto STEAM_APPS = "STEAMAPPS_INTERFACE_VERSION"; constexpr auto STEAM_CLIENT = "SteamClient"; constexpr auto STEAM_USER = "SteamUser"; constexpr auto STEAM_INVENTORY = "STEAMINVENTORY_INTERFACE_V"; + +// TODO: Delete constexpr auto CLIENT_ENGINE = "CLIENTENGINE_INTERFACE_VERSION"; using AppId_t = uint32_t; @@ -106,10 +100,10 @@ enum EUserHasLicenseForAppResult { // These aliases exist solely to increase code readability -using AppIdKey = String; -using DlcIdKey = String; -using DlcNameValue = String; -using DlcNameMap = Map; +using AppIdKey = std::string; +using DlcIdKey = std::string; +using DlcNameValue = std::string; +using DlcNameMap = std::map; struct App { DlcNameMap dlcs; @@ -117,34 +111,34 @@ struct App { NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(App, dlcs) // NOLINT(misc-const-correctness) }; -using AppDlcNameMap = Map; +using AppDlcNameMap = std::map; class DLC { - private: // These 2 names must match the property names from Steam API - String appid; - String name; + std::string appid; + std::string name; public: explicit DLC() = default; - explicit DLC(String appid, String name) : appid{std::move(appid)}, name{std::move(name)} {} + explicit DLC(std::string appid, std::string name) + : appid{std::move(appid)}, name{std::move(name)} {} - [[nodiscard]] String get_id_str() const { + [[nodiscard]] std::string get_id_str() const { return appid; - }; + } [[nodiscard]] uint32_t get_id() const { return std::stoi(appid); - }; + } - [[nodiscard]] String get_name() const { + [[nodiscard]] std::string get_name() const { return name; - }; + } NLOHMANN_DEFINE_TYPE_INTRUSIVE(DLC, appid, name) - static Vector get_dlcs_from_apps(const AppDlcNameMap& apps, AppId_t app_id); + static std::vector get_dlcs_from_apps(const AppDlcNameMap& apps, AppId_t app_id); - static DlcNameMap get_dlc_map_from_vector(const Vector& vector); + static DlcNameMap get_dlc_map_from_vector(const std::vector& vector); }; \ No newline at end of file diff --git a/src/steam_impl/steam_apps.hpp b/src/steam_impl/steam_apps.hpp deleted file mode 100644 index 8203afa..0000000 --- a/src/steam_impl/steam_apps.hpp +++ /dev/null @@ -1,32 +0,0 @@ -#pragma once - -#include - -namespace steam_apps { - - bool IsDlcUnlocked( - const String& function_name, - AppId_t app_id, - AppId_t dlc_id, - const Function& original_function - ); - - int GetDLCCount( - const String& function_name, - AppId_t app_id, - const Function& original_function - ); - - bool GetDLCDataByIndex( - const String& function_name, - AppId_t app_id, - int iDLC, - AppId_t* pDlcId, - bool* pbAvailable, - char* pchName, - int cchNameBufferSize, - const Function& original_function, - const Function& is_originally_unlocked // Aux function to resolve original dlc status - ); - -} diff --git a/src/steam_impl/steam_client.cpp b/src/steam_impl/steam_client.cpp deleted file mode 100644 index 152d3bc..0000000 --- a/src/steam_impl/steam_client.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include - -namespace steam_client { - - void* GetGenericInterface( - const String& function_name, - const String& interface_version, - const Function& original_function - ) { - auto* const interface = original_function(); - - LOG_DEBUG("{} -> '{}' @ {}", function_name, interface_version, interface); - - steam_impl::hook_virtuals(interface, interface_version); - - return interface; - } - -} diff --git a/src/steam_impl/steam_client.hpp b/src/steam_impl/steam_client.hpp deleted file mode 100644 index 210a62b..0000000 --- a/src/steam_impl/steam_client.hpp +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once - -#include - -namespace steam_client { - - void* GetGenericInterface( - const String& function_name, - const String& interface_version, - const Function& original_function - ); - -} diff --git a/src/steam_impl/steam_impl.cpp b/src/steam_impl/steam_impl.cpp deleted file mode 100644 index 74c09e3..0000000 --- a/src/steam_impl/steam_impl.cpp +++ /dev/null @@ -1,301 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if COMPILE_STORE_MODE -#include -#endif - -namespace steam_impl { - - typedef Map> FunctionOrdinalMap; - - FunctionOrdinalMap steam_client_ordinal_map = { // NOLINT(cert-err58-cpp) - {"ISteamClient_GetISteamUser", - { - {6, 6}, - {7, 5}, - } - }, - {"ISteamClient_GetISteamUtils", - { - {6, 12}, - {7, 9}, - } - }, - {"ISteamClient_GetISteamGenericInterface", - { - {7, 14}, - {8, 13}, - {12, 12}, - } - }, - {"ISteamClient_GetISteamApps", - { - {6, 16}, - {7, 18}, - {8, 15}, - {9, 16}, - {12, 15}, - } - }, - {"ISteamClient_GetISteamInventory", - { - {17, 34}, - {18, 35}, - {21, 33}, - } - } - }; - - FunctionOrdinalMap steam_apps_ordinal_map = { // NOLINT(cert-err58-cpp) - {"ISteamApps_BIsSubscribedApp", {{2, 6}}}, - {"ISteamApps_BIsDlcInstalled", {{2, 7}}}, - {"ISteamApps_GetDLCCount", {{2, 10}}}, - {"ISteamApps_BGetDLCDataByIndex", {{2, 11}}}, - }; - - FunctionOrdinalMap steam_user_ordinal_map = { // NOLINT(cert-err58-cpp) - {"ISteamUser_UserHasLicenseForApp", { - {12, 15}, - {13, 16}, - {15, 17}, - {23, 18}, - }} - }; - - FunctionOrdinalMap steam_utils_ordinal_map = { // NOLINT(cert-err58-cpp) - {"ISteamUtils_GetAppID", {{2, 9}}} - }; - - FunctionOrdinalMap steam_inventory_ordinal_map = { // NOLINT(cert-err58-cpp) - {"ISteamInventory_GetResultStatus", {{1, 0}}}, - {"ISteamInventory_GetResultItems", {{1, 1}}}, - {"ISteamInventory_GetResultItemProperty", {{2, 2}}}, - {"ISteamInventory_CheckResultSteamID", {{1, 3}, {2, 4}}}, - {"ISteamInventory_GetAllItems", {{1, 5}, {2, 6}}}, - {"ISteamInventory_GetItemsByID", {{1, 6}, {2, 7}}}, - {"ISteamInventory_SerializeResult", {{1, 7}, {2, 8}}}, - {"ISteamInventory_GetItemDefinitionIDs", {{1, 20}, {2, 21}}}, - }; - - int extract_version_number( - const String& version_string, - const String& prefix, - const int min_version, - const int max_version - ) { - LOG_DEBUG("Hooking interface '{}'", version_string); - - try { - const auto version_number = stoi(version_string.substr(prefix.length())); - - if (version_number < min_version) { - LOG_WARN("Legacy version of {}: {}", version_string, version_number); - } - - if (version_number > max_version) { - LOG_WARN( - "Unsupported new version of {}: {}. Fallback version {} will be used", - version_string, version_number, max_version - ); - } - - return version_number; - } catch ([[maybe_unused]] const std::exception& ex) { - koalabox::util::panic( - "Failed to extract version number from: '{}'. Reason: {}", - version_string, ex.what() - ); - } - } - - int get_ordinal( - const FunctionOrdinalMap& ordinal_map, - const String& function_name, - int interface_version - ) { - const auto& map = ordinal_map.at(function_name); - - for (auto [version, ordinal] : std::ranges::reverse_view(map)) { - if (interface_version >= version) { - return ordinal; - } - } - - koalabox::util::panic( - "Invalid interface version ({}) for function {}", - interface_version, function_name - ); - } - -#define HOOK_VIRTUALS(MAP, FUNC) \ - koalabox::hook::swap_virtual_func( \ - interface, \ - #FUNC, \ - get_ordinal(MAP, #FUNC, version_number), \ - reinterpret_cast(FUNC) \ - ); - -#define HOOK_STEAM_CLIENT(FUNC) HOOK_VIRTUALS(steam_client_ordinal_map, FUNC) -#define HOOK_STEAM_APPS(FUNC) HOOK_VIRTUALS(steam_apps_ordinal_map, FUNC) -#define HOOK_STEAM_USER(FUNC) HOOK_VIRTUALS(steam_user_ordinal_map, FUNC) -#define HOOK_STEAM_INVENTORY(FUNC) HOOK_VIRTUALS(steam_inventory_ordinal_map, FUNC) - - void hook_virtuals(void* interface, const String& version_string) { - if (interface == nullptr) { - // Game has tried to use an interface before initializing steam api - return; - } - - static Set hooked_interfaces; - - if (hooked_interfaces.contains(interface)) { - LOG_DEBUG("Interface {} at {} has already been hooked.", version_string, interface); - } - - static Mutex section; - const MutexLockGuard guard(section); - - if (version_string.starts_with(STEAM_CLIENT)) { - const auto version_number = extract_version_number(version_string, STEAM_CLIENT, 6, 21); - - HOOK_STEAM_CLIENT(ISteamClient_GetISteamApps) - HOOK_STEAM_CLIENT(ISteamClient_GetISteamUser) - if (version_number >= 7) { - HOOK_STEAM_CLIENT(ISteamClient_GetISteamGenericInterface) - } - if (version_number >= 17) { - HOOK_STEAM_CLIENT(ISteamClient_GetISteamInventory) - } - } else if (version_string.starts_with(STEAM_APPS)) { - const auto version_number = extract_version_number(version_string, STEAM_APPS, 2, 8); - - HOOK_STEAM_APPS(ISteamApps_BIsSubscribedApp) - - if (version_number >= 3) { - HOOK_STEAM_APPS(ISteamApps_BIsDlcInstalled) - } - - if (version_number >= 4) { - HOOK_STEAM_APPS(ISteamApps_GetDLCCount) - HOOK_STEAM_APPS(ISteamApps_BGetDLCDataByIndex) - } - } else if (version_string.starts_with(STEAM_USER)) { - const auto version_number = extract_version_number(version_string, STEAM_USER, 9, 23); - - if (version_number >= 12) { - HOOK_STEAM_USER(ISteamUser_UserHasLicenseForApp) - } - } else if (version_string.starts_with(STEAM_INVENTORY)) { - const auto version_number = extract_version_number( - version_string, STEAM_INVENTORY, 1, 3 - ); - - HOOK_STEAM_INVENTORY(ISteamInventory_GetResultStatus) - HOOK_STEAM_INVENTORY(ISteamInventory_GetResultItems) - HOOK_STEAM_INVENTORY(ISteamInventory_CheckResultSteamID) - HOOK_STEAM_INVENTORY(ISteamInventory_GetAllItems) - HOOK_STEAM_INVENTORY(ISteamInventory_GetItemsByID) - HOOK_STEAM_INVENTORY(ISteamInventory_SerializeResult) - HOOK_STEAM_INVENTORY(ISteamInventory_GetItemDefinitionIDs) - - if (version_number >= 2) { - HOOK_STEAM_INVENTORY(ISteamInventory_GetResultItemProperty) - } - } else if ( - version_string.starts_with(CLIENT_ENGINE) && - !hooked_interfaces.contains(interface) - ) { -#if COMPILE_STORE_MODE - store::steamclient::process_client_engine(reinterpret_cast(interface)); -#endif - } else { - return; - } - - hooked_interfaces.insert(interface); - } - - HSteamPipe get_steam_pipe_or_throw() { - const auto& steam_api_module = koalabox::win_util::get_module_handle_or_throw(STEAMAPI_DLL); - void* GetHSteamPipe_address; - try { - GetHSteamPipe_address = (void*)koalabox::win_util::get_proc_address_or_throw( - steam_api_module, "SteamAPI_GetHSteamPipe" - ); - } catch (...) { - GetHSteamPipe_address = (void*)koalabox::win_util::get_proc_address_or_throw( - steam_api_module, "GetHSteamPipe" - ); - } - typedef HSteamPipe (__cdecl*GetHSteamPipe_t)(); - const auto GetHSteamPipe_o = (GetHSteamPipe_t)GetHSteamPipe_address; - return GetHSteamPipe_o(); - } - - template - F get_virtual_function(void* interface, int ordinal) { - auto* v_table = (void***)interface; - return (F)(*v_table)[ordinal]; - } - - template - auto call_virtual_function(void* interface, F function, Args... args) { -#ifdef _WIN64 - void* RCX = interface; -#else - void* ECX = interface; - void* EDX = nullptr; -#endif - - return function(ARGS(args...)); - } - - AppId_t get_app_id_or_throw() { - // Get CreateInterface - const auto& steam_client_module = - koalabox::win_util::get_module_handle_or_throw(STEAMCLIENT_DLL); - auto* CreateInterface_address = (void*)koalabox::win_util::get_proc_address_or_throw( - steam_client_module, "CreateInterface" - ); - auto* CreateInterface_o = PLH::FnCast(CreateInterface_address, CreateInterface); - - // Get ISteamClient - int result; - auto* i_steam_client = CreateInterface_o("SteamClient006", &result); - if (i_steam_client == nullptr) { - throw koalabox::util::exception( - "Failed to obtain SteamClient006 interface. Result: {}", - result - ); - } - - // Get GetISteamUtils - typedef void*** (__fastcall*GetISteamUtils_t)( - PARAMS(HSteamPipe hSteamPipe, const char* version) - ); - const auto steam_utils_ordinal = steam_client_ordinal_map["ISteamClient_GetISteamUtils"][6]; - const auto GetISteamUtils_o = get_virtual_function( - i_steam_client, steam_utils_ordinal); - - // Get ISteamUtils - const auto steam_pipe = get_steam_pipe_or_throw(); - auto* i_steam_utils = call_virtual_function( - i_steam_client, GetISteamUtils_o, steam_pipe, "SteamUtils002" - ); - - // Get GetAppID - typedef uint32_t (__fastcall*GetAppID_t)(PARAMS()); - const auto get_app_id_ordinal = steam_utils_ordinal_map["ISteamUtils_GetAppID"][2]; - const auto GetAppID_o = get_virtual_function(i_steam_utils, get_app_id_ordinal); - - return call_virtual_function(i_steam_utils, GetAppID_o); - } -} \ No newline at end of file diff --git a/src/steam_impl/steam_impl.hpp b/src/steam_impl/steam_impl.hpp deleted file mode 100644 index 79d3899..0000000 --- a/src/steam_impl/steam_impl.hpp +++ /dev/null @@ -1,11 +0,0 @@ -#pragma once - -#include - -namespace steam_impl { - - void hook_virtuals(void* interface, const String& version_string); - - uint32_t get_app_id_or_throw(); - -} diff --git a/src/steam_impl/steam_user.hpp b/src/steam_impl/steam_user.hpp deleted file mode 100644 index 12c33cc..0000000 --- a/src/steam_impl/steam_user.hpp +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once - -#include - -namespace steam_user { - - EUserHasLicenseForAppResult UserHasLicenseForApp( - const String& function_name, - AppId_t appId, - AppId_t dlcId, - const Function& original_function - ); - -} diff --git a/src/steam_impl/steam_apps.cpp b/src/steam_interface/steam_apps.cpp similarity index 80% rename from src/steam_impl/steam_apps.cpp rename to src/steam_interface/steam_apps.cpp index 209d3fc..0f0966d 100644 --- a/src/steam_impl/steam_apps.cpp +++ b/src/steam_interface/steam_apps.cpp @@ -1,10 +1,13 @@ -#include -#include -#include +#include + #include #include -#include -#include + +#include "smoke_api/api.hpp" +#include "smoke_api/cache.hpp" +#include "smoke_api/config.hpp" +#include "smoke_api/types.hpp" +#include "steam_interface/steam_apps.hpp" namespace { /// Steamworks may max GetDLCCount value at 64, depending on how much unowned DLCs the user has. @@ -12,10 +15,10 @@ namespace { /// This means we have to get extra DLC IDs from local config, remote config, or cache. constexpr auto MAX_DLC = 64; - Map> app_dlcs; // NOLINT(cert-err58-cpp) - Set fully_fetched; // NOLINT(cert-err58-cpp) + std::map> app_dlcs; // NOLINT(cert-err58-cpp) + std::set fully_fetched; // NOLINT(cert-err58-cpp) - String get_app_id_log(const AppId_t app_id) { + std::string get_app_id_log(const AppId_t app_id) { return app_id ? fmt::format("App ID: {:>8}, ", app_id) : ""; } @@ -24,8 +27,8 @@ namespace { * @return boolean indicating if the function was able to successfully fetch DLC IDs from all sources. */ void fetch_and_cache_dlcs(AppId_t app_id) { - static Mutex mutex; - const MutexLockGuard guard(mutex); + static std::mutex section; + const std::lock_guard lock(section); if (app_id == 0) { LOG_ERROR("{} -> App ID is 0", __func__); @@ -41,9 +44,9 @@ namespace { // Any of the sources might fail, so we try to get optimal result // by aggregating results from all the sources into a single set. - Vector aggregated_dlcs; + std::vector aggregated_dlcs; - const auto append_dlcs = [&](const Vector& dlc_list, const String& source_name) { + const auto append_dlcs = [&](const std::vector& dlc_list, const std::string& source_name) { LOG_DEBUG("App ID {} has {} DLCs defined in {}", app_id, dlc_list.size(), source_name); // Append DLCs to aggregated DLCs std::ranges::copy(dlc_list, std::back_inserter(aggregated_dlcs)); @@ -64,23 +67,23 @@ namespace { if (github_dlcs_opt && steam_dlcs_opt) { fully_fetched.insert(app_id); } else { - append_dlcs(smoke_api::app_cache::get_dlcs(app_id), "disk cache"); + append_dlcs(smoke_api::cache::get_dlcs(app_id), "disk cache"); } // Cache DLCs in memory and cache for future use app_dlcs[app_id] = aggregated_dlcs; - smoke_api::app_cache::save_dlcs(app_id, aggregated_dlcs); + smoke_api::cache::save_dlcs(app_id, aggregated_dlcs); } } namespace steam_apps { bool IsDlcUnlocked( - const String& function_name, + const std::string& function_name, AppId_t app_id, AppId_t dlc_id, - const Function& original_function + const std::function& original_function ) { try { const auto unlocked = smoke_api::config::is_dlc_unlocked(app_id, dlc_id, original_function); @@ -88,13 +91,13 @@ namespace steam_apps { LOG_INFO("{} -> {}DLC ID: {:>8}, Unlocked: {}", function_name, get_app_id_log(app_id), dlc_id, unlocked); return unlocked; - } catch (const Exception& e) { + } catch (const std::exception& e) { LOG_ERROR("Uncaught exception: {}", e.what()); return false; } } - int GetDLCCount(const String& function_name, const AppId_t app_id, const Function& original_function) { + int GetDLCCount(const std::string& function_name, const AppId_t app_id, const std::function& original_function) { try { const auto total_count = [&](int count) { LOG_INFO("{} -> Responding with DLC count: {}", function_name, count); @@ -117,27 +120,27 @@ namespace steam_apps { fetch_and_cache_dlcs(app_id); return total_count(static_cast(app_dlcs[app_id].size())); - } catch (const Exception& e) { + } catch (const std::exception& e) { LOG_ERROR("Uncaught exception: {}", function_name, e.what()); return 0; } } bool GetDLCDataByIndex( - const String& function_name, + const std::string& function_name, AppId_t app_id, int iDLC, AppId_t* pDlcId, bool* pbAvailable, char* pchName, int cchNameBufferSize, - const Function& original_function, - const Function& is_originally_unlocked + const std::function& original_function, + const std::function& is_originally_unlocked ) { try { LOG_DEBUG("{} -> {}index: {:>3}", function_name, get_app_id_log(app_id), iDLC); - const auto print_dlc_info = [&](const String& tag) { + const auto print_dlc_info = [&](const std::string& tag) { LOG_INFO( R"({} -> [{:^12}] {}index: {:>3}, DLC ID: {:>8}, available: {:5}, name: "{}")", function_name, tag, get_app_id_log(app_id), iDLC, *pDlcId, *pbAvailable, pchName @@ -183,7 +186,7 @@ namespace steam_apps { } return success; - } catch (const Exception& e) { + } catch (const std::exception& e) { LOG_ERROR("{} -> Uncaught exception: {}", function_name, e.what()); return false; } diff --git a/src/steam_interface/steam_apps.hpp b/src/steam_interface/steam_apps.hpp new file mode 100644 index 0000000..581caa0 --- /dev/null +++ b/src/steam_interface/steam_apps.hpp @@ -0,0 +1,32 @@ +#pragma once + +#include "smoke_api/types.hpp" + +namespace steam_apps { + + bool IsDlcUnlocked( + const std::string& function_name, + AppId_t app_id, + AppId_t dlc_id, + const std::function& original_function + ); + + int GetDLCCount( + const std::string& function_name, + AppId_t app_id, + const std::function& original_function + ); + + bool GetDLCDataByIndex( + const std::string& function_name, + AppId_t app_id, + int iDLC, + AppId_t* pDlcId, + bool* pbAvailable, + char* pchName, + int cchNameBufferSize, + const std::function& original_function, + const std::function& is_originally_unlocked // Aux function to resolve original dlc status + ); + +} diff --git a/src/steam_interface/steam_client.cpp b/src/steam_interface/steam_client.cpp new file mode 100644 index 0000000..1b70f74 --- /dev/null +++ b/src/steam_interface/steam_client.cpp @@ -0,0 +1,22 @@ +#include + +#include "steam_interface/steam_client.hpp" +#include "steam_interface/steam_interface.hpp" + +namespace steam_client { + + void* GetGenericInterface( + const std::string& function_name, + const std::string& interface_version, + const std::function& original_function + ) { + auto* const interface = original_function(); + + LOG_DEBUG("{} -> '{}' @ {}", function_name, interface_version, interface); + + steam_interface::hook_virtuals(interface, interface_version); + + return interface; + } + +} diff --git a/src/steam_interface/steam_client.hpp b/src/steam_interface/steam_client.hpp new file mode 100644 index 0000000..e8158ba --- /dev/null +++ b/src/steam_interface/steam_client.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include "smoke_api/types.hpp" + +namespace steam_client { + + void* GetGenericInterface( + const std::string& function_name, + const std::string& interface_version, + const std::function& original_function + ); + +} diff --git a/src/steam_interface/steam_interface.cpp b/src/steam_interface/steam_interface.cpp new file mode 100644 index 0000000..d87e84e --- /dev/null +++ b/src/steam_interface/steam_interface.cpp @@ -0,0 +1,241 @@ +#include +#include + +#include +#include + +#include +#include +#include +#include + +#include "build_config.h" + +#include "steam_interface/steam_interface.hpp" +#include "virtuals/steam_api_virtuals.hpp" + +namespace { + + struct interface_entry { + // function_name must match the function identifier to be able to call original functions + std::string function_name; // e.g. "ISteamClient_GetISteamApps" + uintptr_t function_address; // e.g. ISteamClient_GetISteamApps + }; + + struct interface_data { + std::string fallback_version; // e.g. "SteamClient021" + std::map entry_map; + // e.g. {ENTRY(ISteamClient, GetISteamApps), ...} + }; + + std::map get_virtual_hook_map() { + +#define ENTRY(INTERFACE, FUNC) \ + { \ + #FUNC, { \ + #INTERFACE "_" #FUNC, reinterpret_cast(INTERFACE##_##FUNC) \ + } \ + } + + return { + {STEAM_CLIENT, + interface_data{ + .fallback_version = "SteamClient021", + .entry_map = + { + ENTRY(ISteamClient, GetISteamApps), + ENTRY(ISteamClient, GetISteamUser), + ENTRY(ISteamClient, GetISteamGenericInterface), + ENTRY(ISteamClient, GetISteamInventory), + } + }}, + {STEAM_APPS, + interface_data{ + .fallback_version = "STEAMAPPS_INTERFACE_VERSION008", + .entry_map = + { + ENTRY(ISteamApps, BIsSubscribedApp), + ENTRY(ISteamApps, BIsDlcInstalled), + ENTRY(ISteamApps, GetDLCCount), + ENTRY(ISteamApps, BGetDLCDataByIndex), + } + }}, + {STEAM_USER, + interface_data{ + .fallback_version = "SteamUser023", + .entry_map = + { + ENTRY(ISteamUser, UserHasLicenseForApp), + } + }}, + {STEAM_INVENTORY, + interface_data{ + .fallback_version = "STEAMINVENTORY_INTERFACE_V003", + .entry_map = + { + ENTRY(ISteamInventory, GetResultStatus), + ENTRY(ISteamInventory, GetResultItems), + ENTRY(ISteamInventory, CheckResultSteamID), + ENTRY(ISteamInventory, GetAllItems), + ENTRY(ISteamInventory, GetItemsByID), + ENTRY(ISteamInventory, SerializeResult), + ENTRY(ISteamInventory, GetItemDefinitionIDs), + } + }}, + }; + } + + nlohmann::json read_interface_lookup() { + const auto lookup_str = b::embed<"res/interface_lookup.json">().str(); + return nlohmann::json::parse(lookup_str); + } + + const nlohmann::json& find_lookup( + const std::string& interface_version, // + const std::string& fallback_version + ) { + static const auto lookup = read_interface_lookup(); + + if (lookup.contains(interface_version)) { + return lookup[interface_version]; + } + + LOG_WARN( + "Interface version '{}' not found in lookup map. Using fallback: '{}'", + interface_version, + fallback_version + ); + + return lookup[fallback_version]; + } +} + +namespace steam_interface { + namespace kb = koalabox; + + void hook_virtuals(void* interface, const std::string& version_string) { + if (interface == nullptr) { + // Game has tried to use an interface before initializing steam api + return; + } + + static std::set processed_interfaces; + + if (processed_interfaces.contains(interface)) { + LOG_DEBUG("Interface {} at {} has already been processed.", version_string, interface); + return; + } + + static std::mutex section; + const std::lock_guard guard(section); + + static const auto virtual_hook_map = get_virtual_hook_map(); + for (const auto& [prefix, data] : virtual_hook_map) { + if (version_string.starts_with(prefix)) { + const auto& lookup = find_lookup(version_string, data.fallback_version); + + for (const auto& [function, entry] : data.entry_map) { + if (lookup.contains(function)) { + kb::hook::swap_virtual_func( + interface, entry.function_name, lookup[function], entry.function_address + ); + } + } + + break; + } + } + + processed_interfaces.insert(interface); + } + + HSteamPipe get_steam_pipe_or_throw() { + // TODO: Is there a more elegant way of getting steam pipe? + + const auto& steam_api_module = koalabox::win_util::get_module_handle_or_throw(STEAMAPI_DLL); + void* GetHSteamPipe_address; + try { + GetHSteamPipe_address = (void*)koalabox::win_util::get_proc_address_or_throw( + steam_api_module, "SteamAPI_GetHSteamPipe" + ); + } catch (...) { + GetHSteamPipe_address = (void*)koalabox::win_util::get_proc_address_or_throw( + steam_api_module, "GetHSteamPipe" + ); + } + typedef HSteamPipe(__cdecl * GetHSteamPipe_t)(); + const auto GetHSteamPipe_o = (GetHSteamPipe_t)GetHSteamPipe_address; + return GetHSteamPipe_o(); + } + + template F get_virtual_function(void* interface, int ordinal) { + auto* v_table = (void***)interface; + return (F)(*v_table)[ordinal]; + } + + template + auto call_virtual_function(void* interface, F function, Args... args) { +#ifdef _WIN64 + void* RCX = interface; +#else + void* ECX = interface; + void* EDX = nullptr; +#endif + + return function(ARGS(args...)); + } + + // TODO: Test if this actually works!!! + AppId_t get_app_id_or_throw() { + TCHAR buffer[32]; + GetEnvironmentVariable(TEXT("SteamAppId"), buffer, sizeof(buffer)); + + return std::stoi(buffer); + } + + AppId_t get_app_id() { + try { + return get_app_id_or_throw(); + } catch (...) { + LOG_ERROR("Failed to get app id"); + return 0; + } + + /*// Get CreateInterface + const auto& steam_client_module = + koalabox::win_util::get_module_handle_or_throw(STEAMCLIENT_DLL); + auto* CreateInterface_address = (void*)koalabox::win_util::get_proc_address_or_throw( + steam_client_module, "CreateInterface" + ); + auto* CreateInterface_o = PLH::FnCast(CreateInterface_address, CreateInterface); + + // Get ISteamClient + int result; + auto* i_steam_client = CreateInterface_o("SteamClient006", &result); + if (i_steam_client == nullptr) { + throw koalabox::util::exception( + "Failed to obtain SteamClient006 interface. Result: {}", result + ); + } + + // Get GetISteamUtils + typedef void***(__fastcall * GetISteamUtils_t)( + PARAMS(HSteamPipe hSteamPipe, const char* version) + ); + const auto steam_utils_ordinal = steam_client_ordinal_map["ISteamClient_GetISteamUtils"][6]; + const auto GetISteamUtils_o = + get_virtual_function(i_steam_client, steam_utils_ordinal); + + // Get ISteamUtils + const auto steam_pipe = get_steam_pipe_or_throw(); + auto* i_steam_utils = + call_virtual_function(i_steam_client, GetISteamUtils_o, steam_pipe, "SteamUtils002"); + + // Get GetAppID + typedef uint32_t(__fastcall * GetAppID_t)(PARAMS()); + const auto get_app_id_ordinal = steam_utils_ordinal_map["ISteamUtils_GetAppID"][2]; + const auto GetAppID_o = get_virtual_function(i_steam_utils, get_app_id_ordinal); + + return call_virtual_function(i_steam_utils, GetAppID_o);*/ + } +} \ No newline at end of file diff --git a/src/steam_interface/steam_interface.hpp b/src/steam_interface/steam_interface.hpp new file mode 100644 index 0000000..2c9c55c --- /dev/null +++ b/src/steam_interface/steam_interface.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include "smoke_api/types.hpp" + +namespace steam_interface { + + void hook_virtuals(void* interface, const std::string& version_string); + + AppId_t get_app_id_or_throw(); + + AppId_t get_app_id(); + +} diff --git a/src/steam_impl/steam_inventory.cpp b/src/steam_interface/steam_inventory.cpp similarity index 69% rename from src/steam_impl/steam_inventory.cpp rename to src/steam_interface/steam_inventory.cpp index 0eef805..2b5723a 100644 --- a/src/steam_impl/steam_inventory.cpp +++ b/src/steam_interface/steam_inventory.cpp @@ -1,38 +1,45 @@ -#include -#include #include +#include "smoke_api/config.hpp" +#include "steam_interface/steam_inventory.hpp" + namespace steam_inventory { EResult GetResultStatus( - const String& function_name, + const std::string& function_name, const SteamInventoryResult_t resultHandle, - const Function& original_function + const std::function& original_function ) { const auto status = original_function(); - LOG_DEBUG("{} -> handle: {}, status: {}", function_name, resultHandle, (int) status); + LOG_DEBUG( + "{} -> handle: {}, status: {}", function_name, resultHandle, static_cast(status) + ); return status; } bool GetResultItems( - const String& function_name, + const std::string& function_name, const SteamInventoryResult_t resultHandle, SteamItemDetails_t* pOutItemsArray, uint32_t* punOutItemsArraySize, - const Function& original_function, - const Function& get_item_definition_ids + const std::function& original_function, + const std::function& get_item_definition_ids ) { static std::mutex section; const std::lock_guard guard(section); const auto success = original_function(); - auto print_item = [](const String& tag, const SteamItemDetails_t& item) { + auto print_item = [](const std::string& tag, const SteamItemDetails_t& item) { LOG_DEBUG( " [{}] definitionId: {}, itemId: {}, quantity: {}, flags: {}", - tag, item.m_iDefinition, item.m_itemId, item.m_unQuantity, item.m_unFlags + tag, + item.m_iDefinition, + item.m_itemId, + item.m_unQuantity, + item.m_unFlags ); }; @@ -48,22 +55,26 @@ namespace steam_inventory { LOG_DEBUG( "{} -> handle: {}, pOutItemsArray: {}, arraySize: {}", - function_name, resultHandle, fmt::ptr(pOutItemsArray), *punOutItemsArraySize + function_name, + resultHandle, + fmt::ptr(pOutItemsArray), + *punOutItemsArraySize ); static uint32_t original_count = 0; const auto injected_count = smoke_api::config::instance.extra_inventory_items.size(); // Automatically get inventory items from steam - static Vector auto_inventory_items; + static std::vector auto_inventory_items; if (smoke_api::config::instance.auto_inject_inventory) { - CALL_ONCE({ + static std::once_flag inventory_inject_flag; + std::call_once(inventory_inject_flag, [&] { uint32_t count = 0; if (get_item_definition_ids(nullptr, &count)) { auto_inventory_items.resize(count); get_item_definition_ids(auto_inventory_items.data(), &count); } - }) + }); } const auto auto_injected_count = auto_inventory_items.size(); @@ -74,7 +85,9 @@ namespace steam_inventory { *punOutItemsArraySize += auto_injected_count + injected_count; LOG_DEBUG( "{} -> Original count: {}, Total count: {}", - function_name, original_count, *punOutItemsArraySize + function_name, + original_count, + *punOutItemsArraySize ); } else { // Otherwise, we modify the array @@ -84,10 +97,10 @@ namespace steam_inventory { static auto new_item = [](SteamItemDef_t id) { return SteamItemDetails_t{ - .m_itemId=id, - .m_iDefinition=id, - .m_unQuantity=1, - .m_unFlags=0, + .m_itemId = id, + .m_iDefinition = id, + .m_unQuantity = 1, + .m_unFlags = 0, }; }; @@ -114,16 +127,20 @@ namespace steam_inventory { } bool GetResultItemProperty( - const String& function_name, + const std::string& function_name, SteamInventoryResult_t resultHandle, uint32_t unItemIndex, const char* pchPropertyName, char* pchValueBuffer, const uint32_t* punValueBufferSizeOut, - const Function& original_function + const std::function& original_function ) { const auto common_info = fmt::format( - "{} -> Handle: {}, Index: {}, Name: '{}'", function_name, resultHandle, unItemIndex, pchPropertyName + "{} -> Handle: {}, Index: {}, Name: '{}'", + function_name, + resultHandle, + unItemIndex, + pchPropertyName ); const auto success = original_function(); @@ -133,15 +150,17 @@ namespace steam_inventory { return false; } - LOG_DEBUG("{}, Buffer: '{}'", common_info, String(pchValueBuffer, *punValueBufferSizeOut - 1)); + LOG_DEBUG( + "{}, Buffer: '{}'", common_info, std::string(pchValueBuffer, *punValueBufferSizeOut - 1) + ); return success; } bool GetAllItems( - const String& function_name, + const std::string& function_name, const SteamInventoryResult_t* pResultHandle, - const Function& original_function + const std::function& original_function ) { const auto success = original_function(); @@ -150,13 +169,12 @@ namespace steam_inventory { return success; } - bool GetItemsByID( - const String& function_name, + const std::string& function_name, SteamInventoryResult_t* pResultHandle, const SteamItemInstanceID_t* pInstanceIDs, const uint32_t unCountInstanceIDs, - const Function& original_function + const std::function& original_function ) { const auto success = original_function(); @@ -172,29 +190,31 @@ namespace steam_inventory { } bool SerializeResult( - const String& function_name, + const std::string& function_name, SteamInventoryResult_t resultHandle, void* pOutBuffer, uint32_t* punOutBufferSize, - const Function& original_function + const std::function& original_function ) { const auto success = original_function(); if (pOutBuffer != nullptr) { - String buffer((char*) pOutBuffer, *punOutBufferSize); + std::string buffer((char*)pOutBuffer, *punOutBufferSize); LOG_DEBUG("{} -> Handle: {}, Buffer: '{}'", function_name, resultHandle, buffer); } else { - LOG_DEBUG("{} -> Handle: {}, Size: '{}'", function_name, resultHandle, *punOutBufferSize); + LOG_DEBUG( + "{} -> Handle: {}, Size: '{}'", function_name, resultHandle, *punOutBufferSize + ); } return success; } bool GetItemDefinitionIDs( - const String& function_name, + const std::string& function_name, const SteamItemDef_t* pItemDefIDs, uint32_t* punItemDefIDsArraySize, - const Function& original_function + const std::function& original_function ) { const auto success = original_function(); @@ -205,6 +225,8 @@ namespace steam_inventory { if (punItemDefIDsArraySize) { LOG_DEBUG("{} -> Size: {}", function_name, *punItemDefIDsArraySize); + } else { + return success; } if (pItemDefIDs) { // Definitions were copied @@ -218,16 +240,19 @@ namespace steam_inventory { } bool CheckResultSteamID( - const String& function_name, + const std::string& function_name, SteamInventoryResult_t resultHandle, CSteamID steamIDExpected, - const Function& original_function + const std::function& original_function ) { const auto result = original_function(); LOG_DEBUG( "{} -> handle: {}, steamID: {}, original result: {}", - function_name, resultHandle, steamIDExpected, result + function_name, + resultHandle, + steamIDExpected, + result ); return true; diff --git a/src/steam_impl/steam_inventory.hpp b/src/steam_interface/steam_inventory.hpp similarity index 56% rename from src/steam_impl/steam_inventory.hpp rename to src/steam_interface/steam_inventory.hpp index 7258fe1..f648f34 100644 --- a/src/steam_impl/steam_inventory.hpp +++ b/src/steam_interface/steam_inventory.hpp @@ -1,68 +1,67 @@ #pragma once -#include +#include "smoke_api/types.hpp" namespace steam_inventory { EResult GetResultStatus( - const String& function_name, + const std::string& function_name, SteamInventoryResult_t resultHandle, - const Function& original_function + const std::function& original_function ); bool GetResultItems( - const String& function_name, + const std::string& function_name, SteamInventoryResult_t resultHandle, SteamItemDetails_t* pOutItemsArray, uint32_t* punOutItemsArraySize, - const Function& original_function, - const Function& get_item_definition_ids + const std::function& original_function, + const std::function& get_item_definition_ids ); bool GetResultItemProperty( - const String& function_name, + const std::string& function_name, SteamInventoryResult_t resultHandle, uint32_t unItemIndex, const char* pchPropertyName, char* pchValueBuffer, const uint32_t* punValueBufferSizeOut, - const Function& original_function + const std::function& original_function ); bool GetAllItems( - const String& function_name, + const std::string& function_name, const SteamInventoryResult_t* pResultHandle, - const Function& original_function + const std::function& original_function ); bool GetItemsByID( - const String& function_name, + const std::string& function_name, SteamInventoryResult_t* pResultHandle, const SteamItemInstanceID_t* pInstanceIDs, uint32_t unCountInstanceIDs, - const Function& original_function + const std::function& original_function ); bool SerializeResult( - const String& function_name, + const std::string& function_name, SteamInventoryResult_t resultHandle, void* pOutBuffer, uint32_t* punOutBufferSize, - const Function& original_function + const std::function& original_function ); bool GetItemDefinitionIDs( - const String& function_name, + const std::string& function_name, const SteamItemDef_t* pItemDefIDs, uint32_t* punItemDefIDsArraySize, - const Function& original_function + const std::function& original_function ); - bool CheckResultSteamID( - const String& function_name, + const std::string& function_name, SteamInventoryResult_t resultHandle, CSteamID steamIDExpected, - const Function& original_function + const std::function& original_function ); } diff --git a/src/steam_impl/steam_user.cpp b/src/steam_interface/steam_user.cpp similarity index 55% rename from src/steam_impl/steam_user.cpp rename to src/steam_interface/steam_user.cpp index e47fa64..197255b 100644 --- a/src/steam_impl/steam_user.cpp +++ b/src/steam_interface/steam_user.cpp @@ -1,14 +1,15 @@ -#include -#include #include +#include "smoke_api/config.hpp" +#include "steam_interface/steam_user.hpp" + namespace steam_user { EUserHasLicenseForAppResult UserHasLicenseForApp( - const String& function_name, + const std::string& function_name, AppId_t appId, AppId_t dlcId, - const Function& original_function + const std::function& original_function ) { const auto result = original_function(); @@ -17,17 +18,14 @@ namespace steam_user { return result; } - const auto has_license = smoke_api::config::is_dlc_unlocked( - appId, dlcId, [&]() { - return result == k_EUserHasLicenseResultHasLicense; - } - ); + const auto has_license = smoke_api::config::is_dlc_unlocked(appId, dlcId, [&]() { + return result == k_EUserHasLicenseResultHasLicense; + }); LOG_INFO("{} -> App ID: {:>8}, HasLicense: {}", function_name, dlcId, has_license); - return has_license - ? k_EUserHasLicenseResultHasLicense - : k_EUserHasLicenseResultDoesNotHaveLicense; + return has_license ? k_EUserHasLicenseResultHasLicense + : k_EUserHasLicenseResultDoesNotHaveLicense; } } diff --git a/src/steam_interface/steam_user.hpp b/src/steam_interface/steam_user.hpp new file mode 100644 index 0000000..8568c6e --- /dev/null +++ b/src/steam_interface/steam_user.hpp @@ -0,0 +1,14 @@ +#pragma once + +#include "smoke_api/types.hpp" + +namespace steam_user { + + EUserHasLicenseForAppResult UserHasLicenseForApp( + const std::string& function_name, + AppId_t appId, + AppId_t dlcId, + const std::function& original_function + ); + +} diff --git a/src/store_mode/steamclient/client_app_manager.cpp b/src/store_mode/steamclient/client_app_manager.cpp deleted file mode 100644 index ed2fc8e..0000000 --- a/src/store_mode/steamclient/client_app_manager.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -VIRTUAL(bool) IClientAppManager_IsAppDlcInstalled(PARAMS(AppId_t app_id, AppId_t dlc_id)) { - try { - return steam_apps::IsDlcUnlocked( - __func__, app_id, dlc_id, [&] { - GET_ORIGINAL_HOOKED_FUNCTION(IClientAppManager_IsAppDlcInstalled) - - return IClientAppManager_IsAppDlcInstalled_o(ARGS(app_id, dlc_id)); - } - ); - } catch (const Exception& e) { - LOG_ERROR("{} -> Error: {}", __func__, e.what()); - return false; - } -} diff --git a/src/store_mode/steamclient/client_apps.cpp b/src/store_mode/steamclient/client_apps.cpp deleted file mode 100644 index 3791abb..0000000 --- a/src/store_mode/steamclient/client_apps.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include - -VIRTUAL(int) IClientApps_GetDLCCount(PARAMS(AppId_t appId)) { - try { - return steam_apps::GetDLCCount( - __func__, appId, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(IClientApps_GetDLCCount) - - return IClientApps_GetDLCCount_o(ARGS(appId)); - } - ); - } catch (const Exception& e) { - LOG_ERROR("{} -> Error: {}", __func__, e.what()); - return 0; - } -} - -VIRTUAL(bool) IClientApps_BGetDLCDataByIndex( - PARAMS( - AppId_t appID, - int iDLC, - AppId_t* pDlcID, - bool* pbAvailable, - char* pchName, - int cchNameBufferSize - ) -) { - try { - return steam_apps::GetDLCDataByIndex( - __func__, appID, iDLC, pDlcID, pbAvailable, pchName, cchNameBufferSize, - [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(IClientApps_BGetDLCDataByIndex) - - return IClientApps_BGetDLCDataByIndex_o( - ARGS(appID, iDLC, pDlcID, pbAvailable, pchName, cchNameBufferSize) - ); - }, - [&](const AppId_t dlc_id) { - const auto* app_manager_interface = store::steamclient::interface_name_to_address_map["IClientAppManager"]; - if (app_manager_interface) { - IClientAppManager_IsAppDlcInstalled(app_manager_interface, EDX, appID, dlc_id); - return true; - } - - // Would never happen in practice, as the interfaces would be instantiated almost simultaneously - return false; - } - ); - } catch (const Exception& e) { - LOG_ERROR("{} -> Error: {}", __func__, e.what()); - return false; - } -} diff --git a/src/store_mode/steamclient/client_inventory.cpp b/src/store_mode/steamclient/client_inventory.cpp deleted file mode 100644 index 865bee3..0000000 --- a/src/store_mode/steamclient/client_inventory.cpp +++ /dev/null @@ -1,128 +0,0 @@ -#include -#include - -VIRTUAL(EResult) IClientInventory_GetResultStatus(PARAMS(SteamInventoryResult_t resultHandle)) { - return steam_inventory::GetResultStatus( - __func__, resultHandle, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(IClientInventory_GetResultStatus) - - return IClientInventory_GetResultStatus_o(ARGS(resultHandle)); - } - ); -} - -VIRTUAL(bool) IClientInventory_GetResultItems( - PARAMS( - SteamInventoryResult_t resultHandle, - SteamItemDetails_t* pOutItemsArray, // 1st pass: null, 2nd pass: ptr to out array - uint32_t item_count, // 1st pass: 0, 2nd pass: array size - uint32_t * punOutItemsArraySize // 1st pass: ptr to out array size, 2nd pass: ptr to 0 - ) -) { - return steam_inventory::GetResultItems( - __func__, resultHandle, pOutItemsArray, punOutItemsArraySize, - [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(IClientInventory_GetResultItems) - - *punOutItemsArraySize = item_count; - return IClientInventory_GetResultItems_o( - ARGS(resultHandle, pOutItemsArray, item_count, punOutItemsArraySize) - ); - }, - [&](SteamItemDef_t* pItemDefIDs, uint32_t* punItemDefIDsArraySize) { - GET_ORIGINAL_HOOKED_FUNCTION(IClientInventory_GetItemDefinitionIDs) - - return IClientInventory_GetItemDefinitionIDs_o( - ARGS(pItemDefIDs, *punItemDefIDsArraySize, punItemDefIDsArraySize) - ); - } - ); -} - -VIRTUAL(bool) IClientInventory_GetResultItemProperty( - PARAMS( - SteamInventoryResult_t resultHandle, - uint32_t unItemIndex, - const char* pchPropertyName, - char* pchValueBuffer, - uint32_t item_count, - uint32_t * punValueBufferSizeOut - ) -) { - return steam_inventory::GetResultItemProperty( - __func__, resultHandle, unItemIndex, pchPropertyName, pchValueBuffer, punValueBufferSizeOut, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(IClientInventory_GetResultItemProperty) - - *punValueBufferSizeOut = item_count; - return IClientInventory_GetResultItemProperty_o( - ARGS(resultHandle, unItemIndex, pchPropertyName, pchValueBuffer, item_count, punValueBufferSizeOut) - ); - } - ); -} - -VIRTUAL(bool) IClientInventory_CheckResultSteamID( - PARAMS( - SteamInventoryResult_t resultHandle, - CSteamID steamIDExpected - ) -) { - return steam_inventory::CheckResultSteamID(__func__, resultHandle, steamIDExpected, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(IClientInventory_CheckResultSteamID) - - return IClientInventory_CheckResultSteamID_o(ARGS(resultHandle, steamIDExpected)); - }); -} - -VIRTUAL(bool) IClientInventory_GetAllItems(PARAMS(SteamInventoryResult_t* pResultHandle)) { - return steam_inventory::GetAllItems(__func__, pResultHandle, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(IClientInventory_GetAllItems) - - return IClientInventory_GetAllItems_o(ARGS(pResultHandle)); - }); -} - -VIRTUAL(bool) IClientInventory_GetItemsByID( - PARAMS( - SteamInventoryResult_t* pResultHandle, - const SteamItemInstanceID_t* pInstanceIDs, - uint32_t unCountInstanceIDs - ) -) { - return steam_inventory::GetItemsByID(__func__, pResultHandle, pInstanceIDs, unCountInstanceIDs, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(IClientInventory_GetItemsByID) - - return IClientInventory_GetItemsByID_o(ARGS(pResultHandle, pInstanceIDs, unCountInstanceIDs)); - }); -} - -VIRTUAL(bool) IClientInventory_SerializeResult( - PARAMS( - SteamInventoryResult_t resultHandle, - void* pOutBuffer, - uint32_t buffer_size, - uint32_t * punOutBufferSize - ) -) { - return steam_inventory::SerializeResult(__func__, resultHandle, pOutBuffer, punOutBufferSize, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(IClientInventory_SerializeResult) - - *punOutBufferSize = buffer_size; - return IClientInventory_SerializeResult_o(ARGS(resultHandle, pOutBuffer, buffer_size, punOutBufferSize)); - }); -} - -VIRTUAL(bool) IClientInventory_GetItemDefinitionIDs( - PARAMS( - SteamItemDef_t* pItemDefIDs, // 1st pass: null, 2nd pass: ptr to out array - uint32_t item_count, // 1st pass: 0, 2nd pass: array size - uint32_t * p_array_size // 1st pass: ptr to out array size, 2nd pass: ptr to 0 - ) -) { - return steam_inventory::GetItemDefinitionIDs(__func__, pItemDefIDs, p_array_size, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(IClientInventory_GetItemDefinitionIDs) - - *p_array_size = item_count; - return IClientInventory_GetItemDefinitionIDs_o(ARGS(pItemDefIDs, item_count, p_array_size)); - }); -} diff --git a/src/store_mode/steamclient/client_user.cpp b/src/store_mode/steamclient/client_user.cpp deleted file mode 100644 index 8adfa65..0000000 --- a/src/store_mode/steamclient/client_user.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -VIRTUAL(bool) IClientUser_BIsSubscribedApp(PARAMS(AppId_t dlc_id)) { - try { - const auto* utils_interface = store::steamclient::interface_name_to_address_map["IClientUtils"]; - - const auto app_id = utils_interface ? IClientUtils_GetAppID(utils_interface, EDX) : 0; - - return steam_apps::IsDlcUnlocked(__func__, app_id, dlc_id, [&]() { - GET_ORIGINAL_HOOKED_FUNCTION(IClientUser_BIsSubscribedApp) - - return IClientUser_BIsSubscribedApp_o(ARGS(dlc_id)); - }); - } catch (const Exception& e) { - LOG_ERROR("{} -> Error: {}", __func__, e.what()); - return false; - } -} diff --git a/src/store_mode/steamclient/client_utils.cpp b/src/store_mode/steamclient/client_utils.cpp deleted file mode 100644 index 4978eec..0000000 --- a/src/store_mode/steamclient/client_utils.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include - -VIRTUAL(AppId_t) IClientUtils_GetAppID(PARAMS()) { - GET_ORIGINAL_HOOKED_FUNCTION(IClientUtils_GetAppID) - - return IClientUtils_GetAppID_o(ARGS()); -} diff --git a/src/store_mode/steamclient/steamclient.cpp b/src/store_mode/steamclient/steamclient.cpp deleted file mode 100644 index 5b5e563..0000000 --- a/src/store_mode/steamclient/steamclient.cpp +++ /dev/null @@ -1,506 +0,0 @@ -#include -#include -#include -#include -#include - -#include -#include - -namespace store::steamclient { - using namespace koalabox; - - Map interface_name_to_address_map; // NOLINT(cert-err58-cpp) - - struct InstructionContext { - std::optional base_register; - std::optional function_name; - }; - - // map> - Map> ordinal_map; // NOLINT(cert-err58-cpp) - - const auto MAX_INSTRUCTION_SIZE = 15; - - ZydisDecoder decoder = {}; - ZydisFormatter formatter = {}; - - void construct_ordinal_map( // NOLINT(misc-no-recursion) - const String& target_interface, - Map& function_name_to_ordinal_map, - uintptr_t start_address - ); - - // clang-format off -#define CONSTRUCT_ORDINAL_MAP(INTERFACE) \ - construct_ordinal_map(#INTERFACE, ordinal_map[#INTERFACE], function_selector_address); - -#define HOOK_FUNCTION(INTERFACE, FUNC) hook::swap_virtual_func_or_throw( \ - interface, \ - #INTERFACE"_"#FUNC, \ - ordinal_map[#INTERFACE][#FUNC], \ - reinterpret_cast(INTERFACE## _## FUNC) \ -); - -#define SELECTOR_IMPLEMENTATION(INTERFACE, FUNC_BODY) \ - DLL_EXPORT(void) INTERFACE## _Selector( \ - void* interface, \ - void* arg2, \ - void* arg3, \ - void* arg4 \ - ) { \ - CALL_ONCE({ \ - interface_name_to_address_map[#INTERFACE] = interface; \ - [&]()FUNC_BODY(); \ - }) \ - GET_ORIGINAL_HOOKED_FUNCTION(INTERFACE## _Selector) \ - INTERFACE## _Selector_o(interface, arg2, arg3, arg4); \ - } - - SELECTOR_IMPLEMENTATION(IClientAppManager, { - HOOK_FUNCTION(IClientAppManager, IsAppDlcInstalled) - }) - - SELECTOR_IMPLEMENTATION(IClientApps, { - HOOK_FUNCTION(IClientApps, GetDLCCount) - HOOK_FUNCTION(IClientApps, BGetDLCDataByIndex) - }) - - SELECTOR_IMPLEMENTATION(IClientInventory, { - HOOK_FUNCTION(IClientInventory, GetResultStatus) - HOOK_FUNCTION(IClientInventory, GetResultItems) - HOOK_FUNCTION(IClientInventory, GetResultItemProperty) - HOOK_FUNCTION(IClientInventory, CheckResultSteamID) - HOOK_FUNCTION(IClientInventory, GetAllItems) - HOOK_FUNCTION(IClientInventory, GetItemsByID) - HOOK_FUNCTION(IClientInventory, SerializeResult) - HOOK_FUNCTION(IClientInventory, GetItemDefinitionIDs) - }) - - SELECTOR_IMPLEMENTATION(IClientUser, { - HOOK_FUNCTION(IClientUser, BIsSubscribedApp) - }) - - SELECTOR_IMPLEMENTATION(IClientUtils, { - HOOK_FUNCTION(IClientUtils, GetAppID) - }) - -#define DETOUR_SELECTOR(INTERFACE) \ - if(interface_name == #INTERFACE){ \ - CONSTRUCT_ORDINAL_MAP(INTERFACE) \ - DETOUR_ADDRESS(INTERFACE## _Selector, function_selector_address) \ - } - // clang-format on - - void - detour_interface_selector(const String& interface_name, uintptr_t function_selector_address) { - LOG_DEBUG("Detected interface: '{}'", interface_name); - - DETOUR_SELECTOR(IClientAppManager) - DETOUR_SELECTOR(IClientApps) - DETOUR_SELECTOR(IClientInventory) - DETOUR_SELECTOR(IClientUser) - DETOUR_SELECTOR(IClientUtils) - } - - uintptr_t get_absolute_address( - const ZydisDecodedInstruction instruction, // - const ZydisDecodedOperand operands[], // - const uintptr_t address - ) { - const auto operand = operands[0]; - - if (operand.imm.is_relative) { - ZyanU64 absolute_address; - ZydisCalcAbsoluteAddress(&instruction, &operand, address, &absolute_address); - - return absolute_address; - } - - return (uintptr_t)operand.imm.value.u; - } - - bool is_push_immediate( - const ZydisDecodedInstruction& instruction, // - const ZydisDecodedOperand operands[] - ) { - const auto& operand = operands[0]; - - return instruction.mnemonic == ZYDIS_MNEMONIC_PUSH && - operand.type == ZYDIS_OPERAND_TYPE_IMMEDIATE && - operand.visibility == ZYDIS_OPERAND_VISIBILITY_EXPLICIT && - operand.encoding == ZYDIS_OPERAND_ENCODING_SIMM16_32_32; - } - - std::optional get_string_argument( - const ZydisDecodedInstruction& instruction, // - const ZydisDecodedOperand operands[] - ) { - const auto* name_address = reinterpret_cast(operands[0].imm.value.u); - if (util::is_valid_pointer(name_address)) { - return name_address; - } - return std::nullopt; - } - - std::optional get_instruction_string( - const ZydisDecodedInstruction& instruction, - const ZydisDecodedOperand operands[], - const uintptr_t address - ) { - const auto buffer_size = 64; - char buffer[buffer_size] = {}; - - if (ZYAN_SUCCESS(ZydisFormatterFormatInstruction( - &formatter, - &instruction, - operands, - instruction.operand_count, - buffer, - buffer_size, - address, - ZYAN_NULL - ))) { - return buffer; - } - - return std::nullopt; - } - - std::optional find_interface_name(uintptr_t selector_address) { - auto current_address = selector_address; - ZydisDecodedInstruction instruction{}; - ZydisDecodedOperand operands[ZYDIS_MAX_OPERAND_COUNT]; - while (ZYAN_SUCCESS(ZydisDecoderDecodeFull( - &decoder, // decoder - reinterpret_cast(current_address), // buffer - MAX_INSTRUCTION_SIZE, // length - &instruction, // instruction - operands // operands - ))) { - // const auto debug_str = get_instruction_string(instruction, current_address); - - if (is_push_immediate(instruction, operands)) { - auto string_opt = get_string_argument(instruction, operands); - - if (string_opt && string_opt->starts_with("IClient")) { - return string_opt; - } - } else if (instruction.mnemonic == ZYDIS_MNEMONIC_RET) { - break; - } - - current_address += instruction.length; - } - - // LOG_WARN("Failed to find any interface names at {}", (void*) selector_address); - - return std::nullopt; - } - - struct full_instruction { - const ZydisDecodedInstruction instruction; - const std::vector operands; - }; - - /** - * Recursively walks through the code, until a return instruction is reached. - * Recursion occurs whenever a jump/branch is encountered. - */ - template - void visit_code( // NOLINT(misc-no-recursion) - std::set& visited_addresses, - uintptr_t start_address, - T context, - const std::function& instruction_list - )>& callback - ) { - LOG_TRACE("{} -> start_address: {}", __func__, reinterpret_cast(start_address)); - - if (visited_addresses.contains(start_address)) { - LOG_TRACE("Breaking recursion due to visited address"); - return; - } - - auto current_address = start_address; - std::list instruction_list; - - ZydisDecodedInstruction instruction{}; - ZydisDecodedOperand operands[ZYDIS_MAX_OPERAND_COUNT]; - while (ZYAN_SUCCESS(ZydisDecoderDecodeFull( - &decoder, // decoder - (void*)current_address, // buffer - MAX_INSTRUCTION_SIZE, // length - &instruction, // instructions - operands // operands - ))) { - visited_addresses.insert(current_address); - - LOG_TRACE( - "{} -> visiting {} │ {}", - __func__, - reinterpret_cast(current_address), - *get_instruction_string(instruction, operands, current_address) - ); - - const auto should_return = - callback(instruction, operands, current_address, context, instruction_list); - - if (should_return) { - return; - } - - if (instruction.meta.category == ZYDIS_CATEGORY_COND_BR) { - const auto jump_taken_destination = - get_absolute_address(instruction, operands, current_address); - const auto jump_not_taken_destination = current_address + instruction.length; - - visit_code(visited_addresses, jump_taken_destination, context, callback); - visit_code(visited_addresses, jump_not_taken_destination, context, callback); - - LOG_TRACE("{} -> Breaking recursion due to a conditional branch", __func__); - return; - } - - const auto& operand = operands[0]; - - if (instruction.mnemonic == ZYDIS_MNEMONIC_JMP && - operand.type == ZYDIS_OPERAND_TYPE_IMMEDIATE) { - const auto jump_destination = - get_absolute_address(instruction, operands, current_address); - - visit_code(visited_addresses, jump_destination, context, callback); - - LOG_TRACE("{} -> Breaking recursion due to an unconditional jump", __func__); - return; - } - - if (instruction.mnemonic == ZYDIS_MNEMONIC_JMP && - operand.type == ZYDIS_OPERAND_TYPE_MEMORY && - operand.mem.scale == sizeof(uintptr_t) && operand.mem.disp.has_displacement) { - // Special handling for jump tables. Guaranteed to be present in the interface - // selector. - const auto* table = (uintptr_t*)operand.mem.disp.value; - - const auto* table_entry = table; - while (util::is_valid_pointer((void*)*table_entry)) { - visit_code(visited_addresses, *table_entry, context, callback); - - table_entry++; - } - - LOG_TRACE("{} -> Breaking recursion due to a jump table", __func__); - return; - } - - if (instruction.mnemonic == ZYDIS_MNEMONIC_RET) { - LOG_TRACE("{} -> Breaking recursion due to return instruction", __func__); - return; - } - - // We push items to the front so that it becomes easy to iterate over instructions - // in reverse order of addition. - - std::vector operand_list; - for (auto i = 0U; i < instruction.operand_count; i++) { - operand_list.emplace_back(operands[i]); - } - instruction_list.push_front( - {.instruction = instruction, .operands = std::move(operand_list)} - ); - current_address += instruction.length; - } - } - - void construct_ordinal_map( // NOLINT(misc-no-recursion) - const String& target_interface, - Map& function_name_to_ordinal_map, - uintptr_t start_address - ) { - Set visited_addresses; - visit_code( - visited_addresses, - start_address, - {}, - [&](const ZydisDecodedInstruction& instruction, - const ZydisDecodedOperand operands[], - const auto&, - InstructionContext& context, - const std::list& instruction_list) { - if (context.function_name && - function_name_to_ordinal_map.contains(*context.function_name)) { - // Avoid duplicate work - return true; - } - - const auto& last = instruction_list.front(); - - const auto is_mov_base_esp = instruction.mnemonic == ZYDIS_MNEMONIC_MOV && - instruction.operand_count == 2 && - operands[0].type == ZYDIS_OPERAND_TYPE_REGISTER && - operands[1].reg.value == ZYDIS_REGISTER_ESP; - - if (!context.base_register && is_mov_base_esp) { - // Save base register - context.base_register = operands[0].reg.value; - } else if ( // - is_push_immediate( last.instruction, last.operands.data() ) && - is_push_immediate(instruction, operands) && !context.function_name) { - // The very first 2 consecutive pushes indicate interface and function names. - // However, subsequent pushes may contain irrelevant strings. - const auto push_string_1 = - get_string_argument(last.instruction, last.operands.data()); - const auto push_string_2 = get_string_argument(instruction, operands); - - if (push_string_1 && push_string_2) { - if (*push_string_1 == target_interface) { - context.function_name = push_string_2; - } else if (*push_string_2 == target_interface) { - context.function_name = push_string_1; - } - - if (context.function_name && - function_name_to_ordinal_map.contains(*context.function_name)) { - // Bail early to avoid duplicate work - return true; - } - } - } else if (instruction.mnemonic == ZYDIS_MNEMONIC_CALL) { - // On call instructions we should extract the ordinal - - if (context.base_register && context.function_name) { - const auto& base_register = *(context.base_register); - const auto& function_name = *(context.function_name); - - std::optional offset; - - auto last_destination_reg = ZYDIS_REGISTER_NONE; - bool is_derived_from_base_reg = false; - - const auto& operand = operands[0]; - - // Sometimes the offset is present in the call instruction itself, - // hence we can immediately obtain it. - if (operand.type == ZYDIS_OPERAND_TYPE_MEMORY && - operand.mem.base != ZYDIS_REGISTER_NONE) { - offset = static_cast(operand.mem.disp.value); - last_destination_reg = operand.mem.base; - } else if (operand.type == ZYDIS_OPERAND_TYPE_REGISTER) { - last_destination_reg = operand.reg.value; - } - - for (const auto& previous : instruction_list) { - const auto& destination_operand = previous.operands[0]; - const auto& source_operand = previous.operands[1]; - - // Extract offset if necessary - if (previous.instruction.mnemonic == ZYDIS_MNEMONIC_MOV && - previous.instruction.operand_count == 2 && - destination_operand.reg.value == last_destination_reg && - source_operand.type == ZYDIS_OPERAND_TYPE_MEMORY) { - - const auto source_mem = source_operand.mem; - if (source_mem.base == base_register && - source_mem.disp.has_displacement && - source_mem.disp.value == 8) { - // We have verified that the chain eventually leads up to the - // base register. Hence, we can conclude that the offset is - // valid. - is_derived_from_base_reg = true; - break; - } - - // Otherwise, keep going through the chain - last_destination_reg = source_mem.base; - - if (!offset) { - offset = static_cast(source_mem.disp.value); - } - } - } - - if (offset && is_derived_from_base_reg) { - const auto ordinal = *offset / sizeof(uintptr_t); - - LOG_DEBUG( - "Found function ordinal {}::{}@{}", - target_interface, - function_name, - ordinal - ); - - function_name_to_ordinal_map[function_name] = ordinal; - return true; - } - } - } - - return false; - } - ); - } - - void process_interface_selector( // NOLINT(misc-no-recursion) - const uintptr_t start_address, - Set& visited_addresses - ) { - visit_code( - visited_addresses, - start_address, - nullptr, - [](const ZydisDecodedInstruction& instruction, - const ZydisDecodedOperand operands[], - const auto& current_address, - auto, - const auto&) { - if (instruction.mnemonic == ZYDIS_MNEMONIC_CALL && - operands[0].type == ZYDIS_OPERAND_TYPE_IMMEDIATE) { - LOG_TRACE("Found call instruction at {}", (void*)current_address); - - const auto function_selector_address = - get_absolute_address(instruction, operands, current_address); - - const auto interface_name_opt = find_interface_name(function_selector_address); - - if (interface_name_opt) { - const auto& interface_name = *interface_name_opt; - - detour_interface_selector(interface_name, function_selector_address); - } - } - - return false; - } - ); - } - - void process_client_engine(uintptr_t interface) { - const auto* steam_client_internal = - ((uintptr_t***)interface)[store::config.client_engine_steam_client_internal_ordinal]; - const auto interface_selector_address = (*steam_client_internal - )[store::config.steam_client_internal_interface_selector_ordinal]; - - LOG_DEBUG("Found interface selector at: {}", (void*)interface_selector_address); - - if (ZYAN_FAILED( - ZydisDecoderInit(&decoder, ZYDIS_MACHINE_MODE_LEGACY_32, ZYDIS_STACK_WIDTH_32) - )) { - LOG_ERROR("Failed to initialize zydis decoder"); - return; - } - - if (ZYAN_FAILED(ZydisFormatterInit(&formatter, ZYDIS_FORMATTER_STYLE_INTEL))) { - LOG_ERROR("Failed to initialize zydis formatter"); - return; - } - - Set visited_addresses; - process_interface_selector(interface_selector_address, visited_addresses); - } - -} diff --git a/src/store_mode/steamclient/steamclient.hpp b/src/store_mode/steamclient/steamclient.hpp deleted file mode 100644 index 56029f3..0000000 --- a/src/store_mode/steamclient/steamclient.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#pragma once - -#include - -// IClientAppManager -VIRTUAL(bool) IClientAppManager_IsAppDlcInstalled(PARAMS(AppId_t, AppId_t)); - -// IClientApps -VIRTUAL(int) IClientApps_GetDLCCount(PARAMS(AppId_t)); -VIRTUAL(bool) IClientApps_BGetDLCDataByIndex(PARAMS(AppId_t, int, AppId_t*, bool*, char*, int)); - -// IClientInventory -VIRTUAL(EResult) IClientInventory_GetResultStatus(PARAMS(SteamInventoryResult_t)); -VIRTUAL(bool) IClientInventory_GetResultItems( - PARAMS(SteamInventoryResult_t, SteamItemDetails_t*, uint32_t, uint32_t *) -); -VIRTUAL(bool) IClientInventory_GetResultItemProperty( - PARAMS(SteamInventoryResult_t, uint32_t, const char*, char*, uint32_t, uint32_t*) -); -VIRTUAL(bool) IClientInventory_CheckResultSteamID(PARAMS(SteamInventoryResult_t, CSteamID)); -VIRTUAL(bool) IClientInventory_GetAllItems(PARAMS(SteamInventoryResult_t*)); -VIRTUAL(bool) IClientInventory_GetItemsByID(PARAMS(SteamInventoryResult_t*, const SteamItemInstanceID_t*, uint32_t)); -VIRTUAL(bool) IClientInventory_SerializeResult(PARAMS(SteamInventoryResult_t, void*, uint32_t, uint32_t *)); -VIRTUAL(bool) IClientInventory_GetItemDefinitionIDs(PARAMS(SteamItemDef_t*, uint32_t, uint32_t *)); - -// IClientUser -VIRTUAL(bool) IClientUser_BIsSubscribedApp(PARAMS(AppId_t)); - -// IClientUtils -VIRTUAL(AppId_t) IClientUtils_GetAppID(PARAMS()); - -namespace store::steamclient { - - /// We need this interface in other IClient* functions in order to call other functions - extern Map interface_name_to_address_map; - - void process_client_engine(uintptr_t interface); - -} diff --git a/src/store_mode/store.cpp b/src/store_mode/store.cpp deleted file mode 100644 index fc69f47..0000000 --- a/src/store_mode/store.cpp +++ /dev/null @@ -1,157 +0,0 @@ -#include "koalabox/str.hpp" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace { - using namespace store; - - /** - * @return A string representing the source of the config. - */ - void init_store_config() { - const auto print_source = [](const String& source) { - LOG_INFO("Loaded Store config from the {}", source); - }; - - // First try to read a local config override - const auto& kg_config = smoke_api::config::instance.store_config; - if (!kg_config.is_null()) { - try { - config = kg_config.get(); - - print_source("local config override"); - return; - } catch (const Exception& ex) { - LOG_ERROR("Failed to get local store_mode config: {}", ex.what()); - } - } - - // Then try to get a cached copy of a previously fetched config. - try { - config = store_cache::get_store_config().value(); - - print_source("disk cache"); - } catch (const Exception& ex) { - LOG_ERROR("Failed to get cached store_mode config: {}", ex.what()); - - print_source("default config bundled in the binary"); - - // Fallback on the default config, to continue execution immediately. - config = {}; - } - - // Finally, fetch the remote config from GitHub, and inform user about the need to restart - // Steam, if a new config has been fetched - std::thread([] { - try { - const auto github_config_opt = api::fetch_store_config(); - if (!github_config_opt) { - return; - } - const auto github_config = *github_config_opt; - store_cache::save_store_config(github_config); - if (github_config == config) { - (spdlog::default_logger_raw()) - ->log( - spdlog::source_loc{ - "store.cpp", 66, static_cast(__FUNCTION__) - }, - spdlog::level::debug, - "Fetched Store config is equal to existing config" - ); - return; - } - (spdlog::default_logger_raw()) - ->log( - spdlog::source_loc{"store.cpp", 66, static_cast(__FUNCTION__)}, - spdlog::level::debug, - "Fetched a new Store config" - ); - MessageBoxW( - nullptr, - L"SmokeAPI has downloaded an updated config for Store mode. " - "Please restart Steam in order to apply the new Store config. ", - L"SmokeAPI - Store", - 0x00010000L | 0x00000040L | 0x00000000L - ); - } catch (const Exception& ex) { - (spdlog::default_logger_raw()) - ->log( - spdlog::source_loc{"store.cpp", 66, static_cast(__FUNCTION__)}, - spdlog::level::err, - "Failed to get remote store_mode config: {}", - ex.what() - ); - } - }).detach(); - } -} - -namespace store { - StoreConfig config; // NOLINT(cert-err58-cpp) - - void init_store_mode() { - init_store_config(); - - koalabox::dll_monitor::init_listener( - {VSTDLIB_DLL, STEAMCLIENT_DLL}, - [](const HMODULE& module_handle, const String& name) { - try { - if (koalabox::str::eq(name, VSTDLIB_DLL)) { - // VStdLib DLL handles Family Sharing functions - - globals::vstdlib_module = module_handle; - - if (smoke_api::config::instance.unlock_family_sharing) { - DETOUR_VSTDLIB(Coroutine_Create) - } - } else if (koalabox::str::eq(name, STEAMCLIENT_DLL)) { - // SteamClient DLL handles unlocking functions - - globals::steamclient_module = module_handle; - - DETOUR_STEAMCLIENT(CreateInterface) - } - - if (globals::vstdlib_module != nullptr && - globals::steamclient_module != nullptr) { - koalabox::dll_monitor::shutdown_listener(); - } - } catch (const Exception& ex) { - LOG_ERROR( - "Error listening to DLL load events. Module: '{}', Message: {}", - name, - ex.what() - ); - } - } - ); - - std::thread([=] { - koalabox::ipc::init_pipe_server( - "smokeapi.store.steam", - [](const koalabox::ipc::Request& request) { - koalabox::ipc::Response response; - if (koalabox::str::eq(request.name, "config::reload")) { - smoke_api::config::ReloadConfig(); - response.success = true; - } else { - response.success = false; - response.data["error_message"] = "Invalid request name: " + request.name; - } - return response; - } - ); - }).detach(); - } -} diff --git a/src/store_mode/store.hpp b/src/store_mode/store.hpp deleted file mode 100644 index 229fbd2..0000000 --- a/src/store_mode/store.hpp +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once - -#include - -namespace store { - // Offset values are interpreted according to pointer arithmetic rules, i.e. - // 1 unit offset represents 4 and 8 bytes in 32-bit and 64-bit architectures respectively. - class StoreConfig { - public: - uint32_t client_engine_steam_client_internal_ordinal = 12; - uint32_t steam_client_internal_interface_selector_ordinal = 18; - uint32_t vstdlib_callback_address_offset = 20; - uint32_t vstdlib_callback_data_offset = 0; - uint32_t vstdlib_callback_interceptor_address_offset = 1; - uint32_t vstdlib_callback_name_offset = 4; - - // We do not use *_WITH_DEFAULT macro to ensure that overriding - // the store_mode config requires definition of all keys - NLOHMANN_DEFINE_TYPE_INTRUSIVE( - StoreConfig, // NOLINT(misc-const-correctness) - client_engine_steam_client_internal_ordinal, - steam_client_internal_interface_selector_ordinal, - vstdlib_callback_address_offset, - vstdlib_callback_data_offset, - vstdlib_callback_interceptor_address_offset, - vstdlib_callback_name_offset - ) - - bool operator==(const StoreConfig& other) const = default; - }; - - extern StoreConfig config; - - void init_store_mode(); - -} diff --git a/src/store_mode/store_api.cpp b/src/store_mode/store_api.cpp deleted file mode 100644 index 8da1f81..0000000 --- a/src/store_mode/store_api.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -namespace store::api { - - std::optional fetch_store_config() noexcept { - try { - const String url = - "https://raw.githubusercontent.com/acidicoala/public-entitlements/main/steam/v2/store_config.json"; - const auto kg_config_json = koalabox::http_client::get_json(url); - - return kg_config_json.get(); - } catch (const Exception& e) { - LOG_ERROR("Failed to fetch Store config from GitHub: {}", e.what()); - return std::nullopt; - } - } - -} \ No newline at end of file diff --git a/src/store_mode/store_api.hpp b/src/store_mode/store_api.hpp deleted file mode 100644 index 9fe8e4f..0000000 --- a/src/store_mode/store_api.hpp +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once - -#include -#include - -namespace store::api { - - std::optional fetch_store_config() noexcept; - -} \ No newline at end of file diff --git a/src/store_mode/store_cache.cpp b/src/store_mode/store_cache.cpp deleted file mode 100644 index 7a935dc..0000000 --- a/src/store_mode/store_cache.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -constexpr auto KEY_KG_CONFIG = "store_config"; - -namespace store::store_cache { - - std::optional get_store_config() { - try { - return koalabox::cache::get(KEY_KG_CONFIG, Json(nullptr)).get(); - } catch (const Exception& e) { - LOG_ERROR("Failed to get cached store_mode config: {}", e.what()); - - return std::nullopt; - } - } - - bool save_store_config(const StoreConfig& config) { - try { - LOG_DEBUG("Caching store_mode config"); - - return koalabox::cache::put(KEY_KG_CONFIG, Json(config)); - } catch (const Exception& e) { - LOG_ERROR("Failed to cache store_mode config: {}", e.what()); - - return false; - } - } - -} diff --git a/src/store_mode/store_cache.hpp b/src/store_mode/store_cache.hpp deleted file mode 100644 index cf33634..0000000 --- a/src/store_mode/store_cache.hpp +++ /dev/null @@ -1,11 +0,0 @@ -#pragma once - -#include - -namespace store::store_cache { - - std::optional get_store_config(); - - bool save_store_config(const StoreConfig& config); - -} diff --git a/src/store_mode/vstdlib/vstdlib.cpp b/src/store_mode/vstdlib/vstdlib.cpp deleted file mode 100644 index 27bb158..0000000 --- a/src/store_mode/vstdlib/vstdlib.cpp +++ /dev/null @@ -1,64 +0,0 @@ -#include - -namespace store::vstdlib { - VIRTUAL(bool) SharedLicensesLockStatus(PARAMS(void* arg)) { - LOG_DEBUG("{}(this={}, arg={})", __func__, THIS, arg); - ARGS(); - return true; - } - - VIRTUAL(bool) SharedLibraryStopPlaying(PARAMS(void* arg)) { - LOG_DEBUG("{}(this={}, arg={})", __func__, THIS, arg); - ARGS(); - return true; - } - - VIRTUAL(void) VStdLib_Callback_Interceptor(PARAMS(const char** name_ptr)) { - GET_ORIGINAL_HOOKED_FUNCTION(VStdLib_Callback_Interceptor) - VStdLib_Callback_Interceptor_o(ARGS(name_ptr)); - - static auto lock_status_hooked = false; - static auto stop_playing_hooked = false; - - if (lock_status_hooked && stop_playing_hooked) { - return; - } - - auto* const data = (CoroutineData*) THIS; - - if (data && data->get_callback_name()) { - const auto name = String(data->get_callback_name()); - LOG_TRACE("{}(ecx={}, edx={}, name='{}')", __func__, ARGS(), name); - if (name == "SharedLicensesLockStatus" && !lock_status_hooked) { - DETOUR_ADDRESS(SharedLicensesLockStatus, data->get_callback_data()->get_callback_address()) - lock_status_hooked = true; - } else if (name == "SharedLibraryStopPlaying" && !stop_playing_hooked) { - DETOUR_ADDRESS(SharedLibraryStopPlaying, data->get_callback_data()->get_callback_address()) - stop_playing_hooked = true; - } - } - } - - /** - * Initially, callback data passed into this function is not complete, - * hence we must hook an interface method that sets the callback name. - */ - DLL_EXPORT(HCoroutine) Coroutine_Create(void* callback_address, CoroutineData* data) { - GET_ORIGINAL_HOOKED_FUNCTION(Coroutine_Create) - - const auto result = Coroutine_Create_o(callback_address, data); - - // Coroutine callback appears to be always the same - CALL_ONCE({ - LOG_DEBUG("Coroutine_Create -> callback: {}, data: {}", callback_address, fmt::ptr(data)); - - DETOUR_ADDRESS( - VStdLib_Callback_Interceptor, - data->get_callback_data()->get_callback_intercept_address() - ) - }) - - return result; - } - -} diff --git a/src/store_mode/vstdlib/vstdlib.hpp b/src/store_mode/vstdlib/vstdlib.hpp deleted file mode 100644 index 5f45d9a..0000000 --- a/src/store_mode/vstdlib/vstdlib.hpp +++ /dev/null @@ -1,27 +0,0 @@ -#include - -namespace store::vstdlib { - - struct CallbackData { - uintptr_t get_callback_intercept_address() { - return reinterpret_cast(this)[store::config.vstdlib_callback_interceptor_address_offset]; - } - - uintptr_t get_callback_address() { - return reinterpret_cast(this)[store::config.vstdlib_callback_address_offset]; - } - }; - - struct CoroutineData { - CallbackData* get_callback_data() { - return reinterpret_cast(this)[store::config.vstdlib_callback_data_offset]; - } - - const char* get_callback_name() { - return reinterpret_cast(this)[store::config.vstdlib_callback_name_offset]; - } - }; - - typedef uint32_t HCoroutine; - DLL_EXPORT(HCoroutine) Coroutine_Create(void* callback_address, CoroutineData* data); -} diff --git a/src/virtuals/isteamapps.cpp b/src/virtuals/isteamapps.cpp new file mode 100644 index 0000000..1086747 --- /dev/null +++ b/src/virtuals/isteamapps.cpp @@ -0,0 +1,77 @@ +#include +#include +#include + +#include "steam_interface/steam_apps.hpp" +#include "steam_interface/steam_interface.hpp" +#include "virtuals/steam_api_virtuals.hpp" + +VIRTUAL(bool) ISteamApps_BIsSubscribedApp(PARAMS(AppId_t dlc_id)) { + try { + static const auto app_id = steam_interface::get_app_id(); + return steam_apps::IsDlcUnlocked(__func__, app_id, dlc_id, [&] { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamApps_BIsSubscribedApp) + return ISteamApps_BIsSubscribedApp_o(ARGS(dlc_id)); + }); + } catch (const std::exception& e) { + LOG_ERROR("{} -> Error: {}", __func__, e.what()); + + return false; + } +} + +VIRTUAL(bool) ISteamApps_BIsDlcInstalled(PARAMS(AppId_t dlc_id)) { + try { + static const auto app_id = steam_interface::get_app_id(); + return steam_apps::IsDlcUnlocked(__func__, app_id, dlc_id, [&] { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamApps_BIsDlcInstalled) + return ISteamApps_BIsDlcInstalled_o(ARGS(dlc_id)); + }); + } catch (const std::exception& e) { + LOG_ERROR("{} -> Error: {}", __func__, e.what()); + + return false; + } +} + +VIRTUAL(int) ISteamApps_GetDLCCount(PARAMS()) { + try { + static const auto app_id = steam_interface::get_app_id(); + return steam_apps::GetDLCCount(__func__, app_id, [&] { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamApps_GetDLCCount) + return ISteamApps_GetDLCCount_o(ARGS()); + }); + } catch (const std::exception& e) { + LOG_ERROR("{} -> Error: {}", __func__, e.what()); + + return 0; + } +} + +VIRTUAL(bool) +ISteamApps_BGetDLCDataByIndex( + PARAMS(int iDLC, AppId_t* p_dlc_id, bool* pbAvailable, char* pchName, int cchNameBufferSize) +) { + try { + static const auto app_id = steam_interface::get_app_id(); + return steam_apps::GetDLCDataByIndex( + __func__, + app_id, + iDLC, + p_dlc_id, + pbAvailable, + pchName, + cchNameBufferSize, + [&] { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamApps_BGetDLCDataByIndex) + return ISteamApps_BGetDLCDataByIndex_o( + ARGS(iDLC, p_dlc_id, pbAvailable, pchName, cchNameBufferSize) + ); + }, + [&](AppId_t dlc_id) { return ISteamApps_BIsDlcInstalled(ARGS(dlc_id)); } + ); + } catch (const std::exception& e) { + LOG_ERROR("{} -> Error: {}", __func__, e.what()); + return false; + } +} diff --git a/src/virtuals/isteamclient.cpp b/src/virtuals/isteamclient.cpp new file mode 100644 index 0000000..b665c16 --- /dev/null +++ b/src/virtuals/isteamclient.cpp @@ -0,0 +1,67 @@ +#include +#include + +#include "steam_interface/steam_client.hpp" +#include "virtuals/steam_api_virtuals.hpp" + +VIRTUAL(void*) +ISteamClient_GetISteamApps(PARAMS(HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char* version) +) { + try { + return steam_client::GetGenericInterface(__func__, version, [&] { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamClient_GetISteamApps) + return ISteamClient_GetISteamApps_o(ARGS(hSteamUser, hSteamPipe, version)); + }); + } catch (const std::exception& e) { + LOG_ERROR("{} -> Error: {}", __func__, e.what()); + return nullptr; + } +} + +VIRTUAL(void*) +ISteamClient_GetISteamUser(PARAMS(HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char* version) +) { + try { + return steam_client::GetGenericInterface(__func__, version, [&] { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamClient_GetISteamUser) + + return ISteamClient_GetISteamUser_o(ARGS(hSteamUser, hSteamPipe, version)); + }); + } catch (const std::exception& e) { + LOG_ERROR("{} -> Error: {}", __func__, e.what()); + return nullptr; + } +} + +VIRTUAL(void*) +ISteamClient_GetISteamGenericInterface( + PARAMS(HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char* pchVersion) +) { + try { + return steam_client::GetGenericInterface(__func__, pchVersion, [&] { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamClient_GetISteamGenericInterface) + + return ISteamClient_GetISteamGenericInterface_o(ARGS(hSteamUser, hSteamPipe, pchVersion) + ); + }); + } catch (const std::exception& e) { + LOG_ERROR("{} -> Error: {}", __func__, e.what()); + return nullptr; + } +} + +VIRTUAL(void*) +ISteamClient_GetISteamInventory( + PARAMS(HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char* pchVersion) +) { + try { + return steam_client::GetGenericInterface(__func__, pchVersion, [&] { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamClient_GetISteamInventory) + + return ISteamClient_GetISteamInventory_o(ARGS(hSteamUser, hSteamPipe, pchVersion)); + }); + } catch (const std::exception& e) { + LOG_ERROR("{} -> Error: {}", __func__, e.what()); + return nullptr; + } +} diff --git a/src/virtuals/isteaminventory.cpp b/src/virtuals/isteaminventory.cpp new file mode 100644 index 0000000..ac54165 --- /dev/null +++ b/src/virtuals/isteaminventory.cpp @@ -0,0 +1,140 @@ +#include + +#include "steam_interface/steam_inventory.hpp" +#include "virtuals/steam_api_virtuals.hpp" + +VIRTUAL(EResult) ISteamInventory_GetResultStatus(PARAMS(SteamInventoryResult_t resultHandle)) { + return steam_inventory::GetResultStatus(__func__, resultHandle, [&] { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_GetResultStatus) + + return ISteamInventory_GetResultStatus_o(ARGS(resultHandle)); + }); +} + +VIRTUAL(bool) +ISteamInventory_GetResultItems(PARAMS( + SteamInventoryResult_t resultHandle, + SteamItemDetails_t* pOutItemsArray, + uint32_t* punOutItemsArraySize +)) { + return steam_inventory::GetResultItems( + __func__, + resultHandle, + pOutItemsArray, + punOutItemsArraySize, + [&] { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_GetResultItems) + + return ISteamInventory_GetResultItems_o( + ARGS(resultHandle, pOutItemsArray, punOutItemsArraySize) + ); + }, + [&](SteamItemDef_t* pItemDefIDs, uint32_t* punItemDefIDsArraySize) { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_GetItemDefinitionIDs) + + return ISteamInventory_GetItemDefinitionIDs_o(ARGS(pItemDefIDs, punItemDefIDsArraySize) + ); + } + ); +} + +VIRTUAL(bool) +ISteamInventory_GetResultItemProperty(PARAMS( + SteamInventoryResult_t resultHandle, + uint32_t unItemIndex, + const char* pchPropertyName, + char* pchValueBuffer, + uint32_t* punValueBufferSizeOut +)) { + return steam_inventory::GetResultItemProperty( + __func__, + resultHandle, + unItemIndex, + pchPropertyName, + pchValueBuffer, + punValueBufferSizeOut, + [&] { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_GetResultItemProperty) + + return ISteamInventory_GetResultItemProperty_o(ARGS( + resultHandle, unItemIndex, pchPropertyName, pchValueBuffer, punValueBufferSizeOut + )); + } + ); +} + +VIRTUAL(bool) +ISteamInventory_CheckResultSteamID( + PARAMS(SteamInventoryResult_t resultHandle, CSteamID steamIDExpected) +) { + return steam_inventory::CheckResultSteamID(__func__, resultHandle, steamIDExpected, [&] { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_CheckResultSteamID) + + return ISteamInventory_CheckResultSteamID_o(ARGS(resultHandle, steamIDExpected)); + }); +} + +VIRTUAL(bool) ISteamInventory_GetAllItems(PARAMS(SteamInventoryResult_t* pResultHandle)) { + return steam_inventory::GetAllItems(__func__, pResultHandle, [&] { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_GetAllItems) + + return ISteamInventory_GetAllItems_o(ARGS(pResultHandle)); + }); +} + +VIRTUAL(bool) +ISteamInventory_GetItemsByID(PARAMS( + SteamInventoryResult_t* pResultHandle, + const SteamItemInstanceID_t* pInstanceIDs, + uint32_t unCountInstanceIDs +)) { + return steam_inventory::GetItemsByID( + __func__, + pResultHandle, + pInstanceIDs, + unCountInstanceIDs, + [&] { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_GetItemsByID) + + return ISteamInventory_GetItemsByID_o( + ARGS(pResultHandle, pInstanceIDs, unCountInstanceIDs) + ); + } + ); +} + +VIRTUAL(bool) +ISteamInventory_SerializeResult( + PARAMS(SteamInventoryResult_t resultHandle, void* pOutBuffer, uint32_t* punOutBufferSize) +) { + return steam_inventory::SerializeResult( + __func__, + resultHandle, + pOutBuffer, + punOutBufferSize, + [&] { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_SerializeResult) + + return ISteamInventory_SerializeResult_o( + ARGS(resultHandle, pOutBuffer, punOutBufferSize) + ); + } + ); +} + +VIRTUAL(bool) +ISteamInventory_GetItemDefinitionIDs( + PARAMS(SteamItemDef_t* pItemDefIDs, uint32_t* punItemDefIDsArraySize) +) { + return steam_inventory::GetItemDefinitionIDs( + __func__, + pItemDefIDs, + punItemDefIDsArraySize, + [&] { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamInventory_GetItemDefinitionIDs) + + return ISteamInventory_GetItemDefinitionIDs_o(ARGS(pItemDefIDs, punItemDefIDsArraySize) + ); + } + ); +} diff --git a/src/virtuals/isteamuser.cpp b/src/virtuals/isteamuser.cpp new file mode 100644 index 0000000..048cc2a --- /dev/null +++ b/src/virtuals/isteamuser.cpp @@ -0,0 +1,21 @@ +#include +#include + +#include "steam_interface/steam_interface.hpp" +#include "steam_interface/steam_user.hpp" +#include "virtuals/steam_api_virtuals.hpp" + +VIRTUAL(EUserHasLicenseForAppResult) +ISteamUser_UserHasLicenseForApp(PARAMS(CSteamID steamID, AppId_t dlc_id)) { + try { + static const auto app_id = steam_interface::get_app_id(); + return steam_user::UserHasLicenseForApp(__func__, app_id, dlc_id, [&]() { + GET_ORIGINAL_HOOKED_FUNCTION(ISteamUser_UserHasLicenseForApp) + + return ISteamUser_UserHasLicenseForApp_o(ARGS(steamID, dlc_id)); + }); + } catch (const std::exception& e) { + LOG_ERROR("{} -> Error: {}", __func__, e.what()); + return k_EUserHasLicenseResultDoesNotHaveLicense; + } +} diff --git a/src/game_mode/virtuals/steam_api_virtuals.hpp b/src/virtuals/steam_api_virtuals.hpp similarity index 80% rename from src/game_mode/virtuals/steam_api_virtuals.hpp rename to src/virtuals/steam_api_virtuals.hpp index fe52c8f..270b403 100644 --- a/src/game_mode/virtuals/steam_api_virtuals.hpp +++ b/src/virtuals/steam_api_virtuals.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include "smoke_api/types.hpp" // ISteamApps VIRTUAL(bool) ISteamApps_BIsSubscribedApp(PARAMS(AppId_t)); @@ -14,15 +14,18 @@ VIRTUAL(void*) ISteamClient_GetISteamUser(PARAMS(HSteamUser, HSteamPipe, const c VIRTUAL(void*) ISteamClient_GetISteamGenericInterface(PARAMS(HSteamUser, HSteamPipe, const char*)); VIRTUAL(void*) ISteamClient_GetISteamInventory(PARAMS(HSteamUser, HSteamPipe, const char*)); - // ISteamInventory VIRTUAL(EResult) ISteamInventory_GetResultStatus(PARAMS(SteamInventoryResult_t)); -VIRTUAL(bool) ISteamInventory_GetResultItems(PARAMS(SteamInventoryResult_t, SteamItemDetails_t*, uint32_t*)); -VIRTUAL(bool) ISteamInventory_GetResultItemProperty( +VIRTUAL(bool) +ISteamInventory_GetResultItems(PARAMS(SteamInventoryResult_t, SteamItemDetails_t*, uint32_t*)); +VIRTUAL(bool) +ISteamInventory_GetResultItemProperty( PARAMS(SteamInventoryResult_t, uint32_t, const char*, char*, uint32_t*) ); VIRTUAL(bool) ISteamInventory_GetAllItems(PARAMS(SteamInventoryResult_t*)); -VIRTUAL(bool) ISteamInventory_GetItemsByID(PARAMS(SteamInventoryResult_t*, const SteamItemInstanceID_t*, uint32_t)); +VIRTUAL(bool) +ISteamInventory_GetItemsByID(PARAMS(SteamInventoryResult_t*, const SteamItemInstanceID_t*, uint32_t) +); VIRTUAL(bool) ISteamInventory_SerializeResult(PARAMS(SteamInventoryResult_t, void*, uint32_t*)); VIRTUAL(bool) ISteamInventory_GetItemDefinitionIDs(PARAMS(SteamItemDef_t*, uint32_t*)); VIRTUAL(bool) ISteamInventory_CheckResultSteamID(PARAMS(SteamInventoryResult_t, CSteamID)); diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index b85c0fd..a13f04d 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -2,42 +2,12 @@ cmake_minimum_required(VERSION 3.24) project(smoke-api-tools LANGUAGES CXX) -### Install parser library +### C++ preprocessor library -CPMAddPackage( - NAME cpp-tree-sitter - GIT_REPOSITORY https://github.com/nsumner/cpp-tree-sitter.git - # The latest commit includes a fix for MSVC, which is not present in the latest release - GIT_TAG 9cd7f3c9de9fc6d19bc982c6772fcd7a39e5797a -) +CPMAddPackage("gh:danmar/simplecpp#1.5.2") +target_include_directories(simplecpp_obj INTERFACE ${simplecpp_SOURCE_DIR}) -# Downloads a tree-sitter grammar from github -# and makes it available as a cmake library target. -add_grammar_from_repo(tree-sitter-cpp # Library name - https://github.com/tree-sitter/tree-sitter-cpp.git # Repository URL - 0.23.4 # Version tag -) - -### Install JSON library - -#CPMAddPackage( -# NAME nlohmann_json -# GIT_REPOSITORY https://github.com/nlohmann/json.git -# GIT_TAG v3.12.0 -#) - -### Install HTTP client library - -set(CURL_USE_LIBPSL OFF) -set(CPR_USE_SYSTEM_LIB_PSL ON) -set(ENABLE_CURL_MANUAL OFF) -set(BUILD_LIBCURL_DOCS OFF) -set(BUILD_EXAMPLES OFF) -CPMAddPackage( - NAME cpr - GIT_REPOSITORY https://github.com/libcpr/cpr.git - GIT_TAG 1.12.0 -) +### Thread pool library CPMAddPackage( NAME BS_thread_pool @@ -64,7 +34,5 @@ add_executable(steamworks_parser steamworks_parser.cpp) target_link_libraries(steamworks_parser PRIVATE KoalaBox BS_thread_pool -# nlohmann_json # JSON parser -# tree-sitter-cpp # C++ grammar -# cpp-tree-sitter # C++ bindings for tree-sitter + simplecpp_obj ) diff --git a/tools/steamworks_downloader.cpp b/tools/steamworks_downloader.cpp index f05e587..2599dd0 100644 --- a/tools/steamworks_downloader.cpp +++ b/tools/steamworks_downloader.cpp @@ -1,16 +1,17 @@ #include #include #include +#include #include -#include - -#include +#include +#include +#include #include namespace { namespace fs = std::filesystem; - namespace zip = koalabox::zip; + namespace kb = koalabox; std::string generate_random_string() { static constexpr char charset[] = "0123456789" @@ -34,14 +35,15 @@ namespace { std::cout << "Steamworks SDK downloader for SmokeAPI v1.0" << std::endl << "Usage: steamworks_downloader version1 version2 ... versionN" << std::endl << "Example: steamworks_downloader 100 158a 162" << std::endl + << "Alternative usage: steamworks_downloader C:/path/to/downloaded_sdk/" << "SDK version list available at: " << "https://partner.steamgames.com/downloads/list" << std::endl; } void unzip_sdk(const fs::path& zip_file_path, const fs::path& unzip_dir) { - zip::extract_files(zip_file_path, [&](const std::string& name, const bool) { + kb::zip::extract_files(zip_file_path, [&](const std::string& name, const bool) { if (name.starts_with("sdk/public/steam/") && name.ends_with(".h")) { - return unzip_dir / "headers" / fs::path(name).filename(); + return unzip_dir / "headers/steam" / fs::path(name).filename(); } if (name.starts_with("sdk/redistributable_bin/") && name.ends_with(".dll") && @@ -59,18 +61,9 @@ namespace { version ); - const auto zip_file_path = - fs::temp_directory_path() / (generate_random_string() + ".zip"); + const auto zip_file_path = fs::temp_directory_path() / (generate_random_string() + ".zip"); - std::cout << "Downloading " << download_url << " to " << zip_file_path << std::endl; - - std::ofstream of(zip_file_path, std::ios::binary); - if (const auto res = cpr::Download(of, cpr::Url{download_url}); - res.error.code != cpr::ErrorCode::OK) { - std::cerr << "Download error: " << res.error.message << std::endl; - return; - } - of.close(); + kb::http_client::download_file(download_url, zip_file_path); try { const auto unzip_dir = steamworks_dir / version; @@ -88,20 +81,39 @@ namespace { * A tool for downloading Steamworks SDK and unpacking its headers and binaries * for further processing by other tools. */ -int main(const int argc, const char** argv) { // NOLINT(*-exception-escape) +int wmain(const int argc, const wchar_t** argv) { // NOLINT(*-use-internal-linkage) if (argc == 1) { print_help(); return 0; } - const auto streamworks_dir = std::filesystem::current_path() / "steamworks"; + const auto steamworks_dir = std::filesystem::current_path() / "steamworks"; + + if (argc == 2) { + if (const auto cdn_dir = kb::str::to_str(argv[1]); fs::is_directory(cdn_dir)) { + for (const auto& entry : fs::directory_iterator(cdn_dir)) { + const auto filename = entry.path().filename().string(); + const std::regex re(R"(steamworks_sdk_(.+)\.zip)"); + + if (std::smatch match; std::regex_match(filename, match, re)) { + if (match.size() > 1) { + const auto& version = match[1].str(); + unzip_sdk(entry.path(), steamworks_dir / version); + } + } + } + + return 0; + } + } for (auto i = 1; i < argc; i++) { + const auto version = kb::str::to_str(argv[i]); + try { - download_sdk(streamworks_dir, argv[i]); + download_sdk(steamworks_dir, version); } catch (const std::exception& e) { - std::cerr << std::format("Error downloading SDK '{}'. Reason: {}", argv[i], e.what()) - << std::endl; + LOG_ERROR("Error downloading SDK '{}'. Reason: {}", version, e.what()); } } } \ No newline at end of file diff --git a/tools/steamworks_parser.cpp b/tools/steamworks_parser.cpp index 136cfef..6b54412 100644 --- a/tools/steamworks_parser.cpp +++ b/tools/steamworks_parser.cpp @@ -1,7 +1,3 @@ -#include "koalabox/crypto.hpp" -#include "koalabox/io.hpp" -#include "koalabox/util.hpp" - #include #include #include @@ -10,16 +6,18 @@ #include #include -#include +#undef ERROR // Workaround for the ERROR enum defined in simplecpp +#include +#include #include #include #include +#include namespace { - using json = nlohmann::json; namespace fs = std::filesystem; - namespace parser = koalabox::parser; + namespace kb = koalabox; std::string_view unquote_if_quoted(const std::string_view& s) { if (s.size() >= 2 && s.front() == '"' && s.back() == '"') { @@ -30,20 +28,23 @@ namespace { return s; } - void parse_header(const std::string_view& source, json& lookup) { - const auto tree = parser::parse_source(source); + void parse_header(const std::string_view& source, nlohmann::ordered_json& lookup) { + const auto tree = kb::parser::parse_source(source); const auto root = tree.getRootNode(); - json current_lookup = {}; + nlohmann::ordered_json current_lookup = {}; std::string interface_version; - parser::walk(root, [&](const auto& current_node) { + kb::parser::walk(root, [&](const auto& current_node) { const auto current_type = current_node.getType(); + const auto current_value = current_node.getSourceRange(source); + const auto current_sexpr = current_node.getSExpr(); + if (current_type == "class_specifier") { std::string interface_name; [[maybe_unused]] int vt_idx = 0; - koalabox::parser::walk(current_node, [&](const ts::Node& class_node) { + kb::parser::walk(current_node, [&](const ts::Node& class_node) { const auto type = class_node.getType(); const auto value = class_node.getSourceRange(source); @@ -51,35 +52,39 @@ namespace { interface_name = value; LOG_DEBUG("Found interface: {}", interface_name); - return parser::visit_result::Continue; + return kb::parser::visit_result::Continue; } if (type == "field_declaration" && value.starts_with("virtual ")) { if (value.starts_with("virtual ")) { - koalabox::parser::walk(class_node, [&](const ts::Node& decl_node) { + kb::parser::walk(class_node, [&](const ts::Node& decl_node) { if (decl_node.getType() == "field_identifier") { const auto function_name = decl_node.getSourceRange(source); + // Note: This doesn't take into account overloaded functions. + // However, so far this project hasn't had any need to hook such + // functions. Hence, no fixes have been implemented so far. + current_lookup[function_name] = vt_idx++; - return parser::visit_result::Stop; + return kb::parser::visit_result::Stop; } - return parser::visit_result::Continue; + return kb::parser::visit_result::Continue; }); } - return parser::visit_result::SkipChildren; + return kb::parser::visit_result::SkipChildren; } - return parser::visit_result::Continue; + return kb::parser::visit_result::Continue; }); } else if (current_type == "preproc_def") { - koalabox::parser::walk(current_node, [&](const ts::Node& preproc_node) { + kb::parser::walk(current_node, [&](const ts::Node& preproc_node) { if (preproc_node.getType() == "identifier") { const auto identifier = preproc_node.getSourceRange(source); return identifier.ends_with("INTERFACE_VERSION") - ? parser::visit_result::Continue - : parser::visit_result::Stop; + ? kb::parser::visit_result::Continue + : kb::parser::visit_result::Stop; } if (preproc_node.getType() == "preproc_arg") { @@ -88,16 +93,16 @@ namespace { interface_version = unquote_if_quoted(trimmed_version); LOG_DEBUG("Interface version: {}", interface_version); - return parser::visit_result::Stop; + return kb::parser::visit_result::Stop; } - return parser::visit_result::Continue; + return kb::parser::visit_result::Continue; }); } else if (current_type == "translation_unit" || current_type == "preproc_ifdef") { - return parser::visit_result::Continue; + return kb::parser::visit_result::Continue; } - return parser::visit_result::SkipChildren; + return kb::parser::visit_result::SkipChildren; }); // Save the findings @@ -108,8 +113,71 @@ namespace { } } - void parse_sdk(const fs::path& sdk_path, json& lookup, BS::thread_pool<>& pool) { - const auto headers_dir = sdk_path / "headers"; + /** + * Turns out that preprocessing headers using a proper C++ preprocessor + * significantly complicates AST parsing down the line. + * To make matters worse, it also removes macro definitions with interface version string. + * Hence, this function should not be used in practice. + * It remains here for reference purposes only. + */ + [[maybe_unused]] std::string preprocess_header(const fs::path& header_path) { + auto files = std::vector(); + + static simplecpp::DUI dui{}; + dui.removeComments = true; + // For stdlib headers + dui.includePaths.emplace_back("dummy/"); + // For headers includes via "steam/*" path + dui.includePaths.emplace_back(header_path.parent_path().parent_path().string()); + dui.defines.emplace_back("VALVE_CALLBACK_PACK_LARGE"); + + simplecpp::OutputList output_list; + simplecpp::TokenList raw_token_list(header_path.string(), files, &output_list); + raw_token_list.removeComments(); + + simplecpp::FileDataCache cache; + simplecpp::TokenList output_token_list(files); + simplecpp::preprocess(output_token_list, raw_token_list, files, cache, dui, &output_list); + simplecpp::cleanup(cache); + + for (const simplecpp::Output& output : output_list) { + if (output.type == simplecpp::Output::MISSING_HEADER) { + LOG_WARN( + "Place missing empty header at: " + fs::absolute(fs::path("dummy")).string() + ); + } + + const auto msg = std::format( + "msg = {}, line={}, col={}, type = {}", + output.msg, + output.location.line, + output.location.col, + static_cast(output.type) + ); + + throw std::runtime_error(msg); + } + + return output_token_list.stringify(); + } + + /** + * Certain Steam macros break C++ AST parser, if left unprocessed. + * This function does that in a very naive manner. Stupid, but works. + */ + std::string manually_preprocess_header(const fs::path& header_path) { + const auto header_contents = kb::io::read_file(header_path); + + // language=RegExp + const std::regex re(R"(STEAM_PRIVATE_API\s*\(\s*([^)]+)\s*\))"); + const auto processed_contents = std::regex_replace(header_contents, re, "$1"); + + return processed_contents; + } + + void + parse_sdk(const fs::path& sdk_path, nlohmann::ordered_json& lookup, BS::thread_pool<>& pool) { + const auto headers_dir = sdk_path / "headers\\steam"; if (not fs::exists(headers_dir)) { LOG_WARN("Warning: SDK missing 'headers' directory: {}", headers_dir.string()); @@ -125,23 +193,26 @@ namespace { try { LOG_DEBUG("Parsing header: {}", header_path.string()); - // Read file as text - const auto header_contents = koalabox::io::read_file(header_path); - - parse_header(header_contents, lookup); + const auto processed_header = manually_preprocess_header(header_path); + parse_header(processed_header, lookup); } catch (std::exception& e) { - koalabox::util::panic(std::format("Error parsing header: {}", e.what())); + LOG_CRITICAL(e.what()); + exit(-1); } }); } } } - void generate_lookup_json(const fs::path& steamworks_dir) { - json lookup; + void generate_lookup_json( + const fs::path& steamworks_dir, // + const std::set& sdk_filter + ) { + nlohmann::ordered_json lookup; - // Create the thread pool - const auto thread_count = std::max(2U, std::thread::hardware_concurrency() / 2); + // The thread pool noticeably speeds up the overall parsing. + // Thread count of 4 seems to yield most optimal performance benefits. + constexpr auto thread_count = 4; LOG_INFO("Creating task pool with {} threads", thread_count); BS::thread_pool pool(thread_count); @@ -151,24 +222,43 @@ namespace { continue; } + if (not sdk_filter.empty() and + not sdk_filter.contains(entry.path().filename().string())) { + continue; + } + parse_sdk(entry.path(), lookup, pool); } // Wait for all tasks to finish pool.wait(); - std::ofstream lookup_output("interface_lookup.json"); - lookup_output << std::setw(4) << lookup << std::endl; + const auto interface_lookup_path = fs::path("interface_lookup.json"); + + std::ofstream lookup_output(interface_lookup_path); + lookup_output << std::setw(4) << lookup; + + LOG_INFO("Interface lookup generated at: {}", fs::absolute(interface_lookup_path).string()); } } /** * A tool for parsing Steamworks headers and generating a lookup map of its interfaces. + * Optionally accepts a list of folder names that filters which sdk versions will be parsed. + * No list means all versions will be parsed. */ -int main() { +int wmain(const int argc, const wchar_t* argv[]) { // NOLINT(*-use-internal-linkage) try { koalabox::logger::init_console_logger(); + std::set sdk_filter; + if (argc > 1) { + for (auto i = 1; i < argc; i++) { + const auto version = koalabox::str::to_str(argv[i]); + sdk_filter.insert(version); + } + } + const auto steamworks_dir = fs::path("steamworks"); if (!fs::exists(steamworks_dir)) { @@ -176,7 +266,7 @@ int main() { } const auto start = std::chrono::steady_clock::now(); - generate_lookup_json(steamworks_dir); + generate_lookup_json(steamworks_dir, sdk_filter); const auto end = std::chrono::steady_clock::now(); const auto elapsed = duration_cast(end - start);