lsteamclient: Fixup gameID parameter for SteamUser008_InitiateGameConnection().

CW-Bug-Id: #20195
This commit is contained in:
Paul Gofman 2022-03-31 17:48:31 +03:00 committed by Arkadiusz Hiler
parent e03828cdc3
commit cd60b70756
3 changed files with 46 additions and 5 deletions

View File

@ -25,11 +25,6 @@ CSteamID cppISteamUser_SteamUser008_GetSteamID(void *linux_side)
return ((ISteamUser*)linux_side)->GetSteamID();
}
int cppISteamUser_SteamUser008_InitiateGameConnection(void *linux_side, void * pBlob, int cbMaxBlob, CSteamID steamID, CGameID gameID, uint32 unIPServer, uint16 usPortServer, bool bSecure, void * pvSteam2GetEncryptionKey, int cbSteam2GetEncryptionKey)
{
return ((ISteamUser*)linux_side)->InitiateGameConnection((void *)pBlob, (int)cbMaxBlob, (CSteamID)steamID, (CGameID)gameID, (uint32)unIPServer, (uint16)usPortServer, (bool)bSecure, (void *)pvSteam2GetEncryptionKey, (int)cbSteam2GetEncryptionKey);
}
void cppISteamUser_SteamUser008_TerminateGameConnection(void *linux_side, uint32 unIPServer, uint16 usPortServer)
{
((ISteamUser*)linux_side)->TerminateGameConnection((uint32)unIPServer, (uint16)usPortServer);

View File

@ -266,6 +266,9 @@ manually_handled_methods = {
"DestroyFakeUDPPort",
"ReceiveMessages"
],
"cppISteamUser_SteamUser008": [
"InitiateGameConnection"
],
}
# manual converters for simple types (function pointers)

View File

@ -0,0 +1,43 @@
extern "C" {
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(steamclient);
}
#include "steam_defs.h"
#pragma push_macro("__cdecl")
#undef __cdecl
#include "steamworks_sdk_099y/steam_api.h"
#pragma pop_macro("__cdecl")
#include "steamclient_private.h"
class ISteamUser_linux
{
public:
virtual HSteamUser GetHSteamUser() = 0;
virtual bool BLoggedOn() = 0;
virtual CSteamID GetSteamID() = 0;
/* CGameID -> CGameID &.
* Windows side follows the prototype in the header while Linux
* steamclient treats gameID parameter as pointer. */
virtual int InitiateGameConnection( void *pBlob, int cbMaxBlob, CSteamID steamID, CGameID &gameID, uint32 unIPServer, uint16 usPortServer, bool bSecure, void *pvSteam2GetEncryptionKey, int cbSteam2GetEncryptionKey ) = 0;
virtual void TerminateGameConnection( uint32 unIPServer, uint16 usPortServer ) = 0;
virtual void TrackAppUsageEvent( CGameID gameID, int eAppUsageEvent, const char *pchExtraInfo = "" ) = 0;
virtual void RefreshSteam2Login() = 0;
};
extern "C" {
int cppISteamUser_SteamUser008_InitiateGameConnection(void *linux_side, void * pBlob, int cbMaxBlob, CSteamID steamID, CGameID gameID, uint32 unIPServer, uint16 usPortServer,
bool bSecure, void * pvSteam2GetEncryptionKey, int cbSteam2GetEncryptionKey)
{
WARN("Manual call fixup.\n");
return ((ISteamUser_linux *)linux_side)->InitiateGameConnection(pBlob, cbMaxBlob, steamID, gameID, unIPServer, usPortServer,
bSecure, pvSteam2GetEncryptionKey, cbSteam2GetEncryptionKey);
}
}