* based on cvsR4U1 by ce20fdf2 from viewtopic.php?p=2936697#p2936697
* apply the fix for the Linux build (due to newer glibc) from this pull request by Randy Li: https://gitlab.com/Mr_Goldberg/goldberg_emulator/-/merge_requests/42/
* add updated translation of Spanish + Latin American to the overlay by dragonslayer609 from viewtopic.php?p=2936892#p2936892
* add updated translation of Russian to the overlay by GogoVan from viewtopic.php?p=2939565#p2939565
* add more interfaces to look for in the original steam_api by alex47exe from viewtopic.php?p=2935557#p2935557
* add fix for glyphs icons for xbox 360 controller by 0x0315 from viewtopic.php?p=2949498#p2949498
* bare minimum implementation for SDK 1.58a
+ backup the current version of the interface 'steam ugc'
- create new file: isteamugc017.h
> copy the current version of the interface to this file
> don't copy enums, structs, constants, etc..., just copy the pure virtual (abstract) class of the interface
> rename the abstract class to include the current version number in its name, i.e. 'class ISteamUGC017'
> create a file header guard containing the interface version in its name, i.e. 'ISTEAMUGC017_H'
> if the file has '#pragma once', then guard this line with '#ifdef STEAM_WIN32' ... '#endif', I don't know why
+ isteamugc.h (this always contains the declaration of latest interface version)
- declare the new API: GetUserContentDescriptorPreferences()
- update the API: SetItemTags() to use the new argument
- update the interface version to STEAMUGC_INTERFACE_VERSION018
+ steam_ugc.h (this always contains the implementation of ALL interfaces versions)
- add the backed-up abstract class to the list of inheritance, i.e. 'public ISteamUGC017'
- (needs revise) implement the new API: GetUserContentDescriptorPreferences()
- add a new overload of the API: SetItemTags() which takes the new additional argument
+ backup the current version of the interface 'steam remote play'
- create new file: isteamremoteplay001.h
> copy the current version of the interface to this file
> don't copy enums, structs, constants, etc..., just copy the pure virtual (abstract) class of the interface
> rename the abstract class to include the current version number in its name, i.e. 'class ISteamRemotePlay001'
> create a file header guard containing the interface version in its name, i.e. 'ISTEAMREMOTEPLAY001_H'
> if the file has '#pragma once', then guard this line with '#ifdef STEAM_WIN32' ... '#endif', I don't know why
+ isteamremoteplay.h (this always contains the declaration of latest interface version)
- declare the new API: BStartRemotePlayTogether()
- update the interface version to STEAMREMOTEPLAY_INTERFACE_VERSION002
- fix file header guard from _WIN32 to STEAM_WIN32
+ steam_remoteplay.h (this always contains the implementation of ALL interfaces versions)
- add the backed-up abstract class to the list of inheritance, i.e. 'public ISteamRemotePlay001'
- (needs revise) implement the new API: BStartRemotePlayTogether()
+ steam_api.h
-#include the backed-up interface files:
> #include "isteamugc017.h"
> #include "isteamremoteplay001.h"
- declare the new API: SteamInternal_SteamAPI_Init()
- add a new enum ESteamAPIInitResult
- fix return type of SteamAPI_InitSafe() from bool to steam_bool (some stupid games read the whole EAX register)
- add a useless inline implementation for the API: SteamAPI_InitEx(), not exported yet but just in case for the future
+ steam_gameserver.h
- declare the new API: SteamInternal_GameServer_Init_V2()
- fix return type of SteamGameServer_Init() from bool to steam_bool (some stupid games read the whole EAX register)
- add a useless inline implementation for the API: SteamGameServer_InitEx(), not exported yet but just in case for the future
+ steam_api_common.h
- declare a new type: SteamErrMsg
+ dll.cpp (this has the implementation of whatever inside steam_api.h + steam_gameserver.h)
- (needs revise) implement the new API: SteamInternal_SteamAPI_Init()
- (needs revise) implement the new API: SteamInternal_GameServer_Init_V2()
- read some missing interfaces versions when parsing steam_interfaces.txt
- initialize all interfaces versions with the latest ones available, instead of hardcoding them
+ steam_client.cpp
- add a new version string for the interface getter GetISteamUGC()
- add a new version string for the interface getter GetISteamRemotePlay()
+ isteamnetworkingsockets.h
- fix the signatures of the APIs: (ISteamNetworkingConnectionCustomSignaling vs ISteamNetworkingConnectionSignaling)
> ConnectP2PCustomSignaling()
> ReceivedP2PCustomSignal()
+ isteamnetworkingsockets009.h
- fix the signatures of the APIs: (ISteamNetworkingConnectionCustomSignaling vs ISteamNetworkingConnectionSignaling)
> ConnectP2PCustomSignaling()
> ReceivedP2PCustomSignal()
+ steam_networking_sockets.h
- implement the missing overloads of the APIs: (ISteamNetworkingConnectionCustomSignaling vs ISteamNetworkingConnectionSignaling)
> ConnectP2PCustomSignaling()
> ReceivedP2PCustomSignal()
+ steam_api_flat.h
////////////////////
- declare new interfaces getters:
> SteamAPI_SteamUGC_v018()
> SteamAPI_SteamGameServerUGC_v018()
- declare the new API: SteamAPI_ISteamUGC_GetUserContentDescriptorPreferences()
- (needs revise) update signature of the API: SteamAPI_ISteamUGC_SetItemTags() to add the new argument
this will potentially break compatibility with older version of the flat API
////////////////////
- declare new interface getter: SteamAPI_SteamRemotePlay_v002()
- declare the new API: SteamAPI_ISteamRemotePlay_BStartRemotePlayTogether()
////////////////////
- fix the signatures of the APIs: (ISteamNetworkingConnectionCustomSignaling vs ISteamNetworkingConnectionSignaling)