mirror of
https://github.com/rlabrecque/SteamworksSDK.git
synced 2026-10-10 09:33:04 +08:00
v1.51
This commit is contained in:
+19
@@ -9,6 +9,25 @@ Welcome to the Steamworks SDK. For documentation please see our partner
|
||||
website at: http://partner.steamgames.com
|
||||
|
||||
|
||||
----------------------------------------------------------------
|
||||
v1.51 8th January 2021
|
||||
----------------------------------------------------------------
|
||||
ISteamUGC
|
||||
* Added GetQueryUGCNumTags(), GetQueryUGCTag(), and GetQueryUGCTagDisplayName() for access to an item's tags and the display names (e.g. localized versions) of those tags
|
||||
* A previous SDK update added (but failed to call out) AddRequiredTagGroup() which allows for matching at least one tag from the group (logical "or")
|
||||
|
||||
ISteamInput & ISteamController
|
||||
* Added PS5 Action Origins
|
||||
|
||||
ISteamFriends
|
||||
* Added ActivateGameOverlayInviteDialogConnectString - Activates the game overlay to open an invite dialog that will send the provided Rich Presence connect string to selected friends
|
||||
|
||||
Steamworks Example
|
||||
* Updated to use latest SteamNetworkingSockets API
|
||||
|
||||
Content Builder
|
||||
* Updated upload example to use a single script file to upload a simple depot
|
||||
|
||||
----------------------------------------------------------------
|
||||
v1.50 29th August 2020
|
||||
----------------------------------------------------------------
|
||||
|
||||
@@ -26,10 +26,8 @@ enum EMessage
|
||||
|
||||
// Client messages
|
||||
k_EMsgClientBegin = 500,
|
||||
k_EMsgClientInitiateConnection = k_EMsgClientBegin+1,
|
||||
k_EMsgClientBeginAuthentication = k_EMsgClientBegin+2,
|
||||
k_EMsgClientSendLocalUpdate = k_EMsgClientBegin+3,
|
||||
k_EMsgClientLeavingServer = k_EMsgClientBegin+4,
|
||||
|
||||
// P2P authentication messages
|
||||
k_EMsgP2PBegin = 600,
|
||||
@@ -126,16 +124,6 @@ private:
|
||||
const DWORD m_dwMessageType;
|
||||
};
|
||||
|
||||
// Msg from client to server when trying to connect
|
||||
struct MsgClientInitiateConnection_t
|
||||
{
|
||||
MsgClientInitiateConnection_t() : m_dwMessageType( LittleDWord( k_EMsgClientInitiateConnection ) ) {}
|
||||
DWORD GetMessageType() { return LittleDWord( m_dwMessageType ); }
|
||||
|
||||
private:
|
||||
const DWORD m_dwMessageType;
|
||||
};
|
||||
|
||||
// Msg from client to server when initiating authentication
|
||||
struct MsgClientBeginAuthentication_t
|
||||
{
|
||||
@@ -175,16 +163,6 @@ private:
|
||||
ClientSpaceWarUpdateData_t m_ClientUpdateData;
|
||||
};
|
||||
|
||||
// Msg from the client telling the server it is about to leave
|
||||
struct MsgClientLeavingServer_t
|
||||
{
|
||||
MsgClientLeavingServer_t() : m_dwMessageType( LittleDWord( k_EMsgClientLeavingServer ) ) {}
|
||||
DWORD GetMessageType() { return LittleDWord( m_dwMessageType ); }
|
||||
|
||||
private:
|
||||
const DWORD m_dwMessageType;
|
||||
};
|
||||
|
||||
// Message sent from one peer to another, so peers authenticate directly with each other.
|
||||
// (In this example, the server is responsible for relaying the messages, but peers
|
||||
// are directly authenticating each other.)
|
||||
|
||||
@@ -32,9 +32,6 @@
|
||||
// Current game server version
|
||||
#define SPACEWAR_SERVER_VERSION "1.0.0.0"
|
||||
|
||||
// UDP port for the spacewar server to do authentication on (ie, talk to Steam on)
|
||||
#define SPACEWAR_AUTHENTICATION_PORT 8766
|
||||
|
||||
// UDP port for the spacewar server to listen on
|
||||
#define SPACEWAR_SERVER_PORT 27015
|
||||
|
||||
|
||||
@@ -253,9 +253,6 @@ void CSpaceWarClient::DisconnectFromServer()
|
||||
SteamUser()->AdvertiseGame( k_steamIDNil, 0, 0 );
|
||||
#endif
|
||||
|
||||
MsgClientLeavingServer_t msg;
|
||||
BSendServerData( &msg, sizeof(msg) );
|
||||
|
||||
// tell steam china duration control system that we are no longer in a match
|
||||
SteamUser()->BSetDurationControlOnlineState( k_EDurationControlOnlineState_Offline );
|
||||
|
||||
@@ -315,7 +312,7 @@ void CSpaceWarClient::OnReceiveServerInfo( CSteamID steamIDGameServer, bool bVAC
|
||||
if ( msg.GetTokenLen() < 1 )
|
||||
OutputDebugString( "Warning: Looks like GetAuthSessionTicket didn't give us a good ticket\n" );
|
||||
|
||||
BSendServerData( &msg, sizeof(msg) );
|
||||
BSendServerData( &msg, sizeof(msg), k_nSteamNetworkingSend_Reliable );
|
||||
}
|
||||
|
||||
|
||||
@@ -554,9 +551,9 @@ void CSpaceWarClient::SetConnectionFailureText( const char *pchErrorText )
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Send data to the current server
|
||||
//-----------------------------------------------------------------------------
|
||||
bool CSpaceWarClient::BSendServerData( const void *pData, uint32 nSizeOfData )
|
||||
bool CSpaceWarClient::BSendServerData( const void *pData, uint32 nSizeOfData, int nSendFlags )
|
||||
{
|
||||
EResult res = SteamNetworkingSockets()->SendMessageToConnection( m_hConnServer, pData, nSizeOfData, k_nSteamNetworkingSend_UnreliableNoDelay, nullptr );
|
||||
EResult res = SteamNetworkingSockets()->SendMessageToConnection( m_hConnServer, pData, nSizeOfData, nSendFlags, nullptr );
|
||||
switch (res)
|
||||
{
|
||||
case k_EResultOK:
|
||||
@@ -636,10 +633,6 @@ void CSpaceWarClient::InitiateServerConnection( CSteamID steamIDGameServer )
|
||||
// Update when we last retried the connection, as well as the last packet received time so we won't timeout too soon,
|
||||
// and so we will retry at appropriate intervals if packets drop
|
||||
m_ulLastNetworkDataReceivedTime = m_ulLastConnectionAttemptRetryTime = m_pGameEngine->GetGameTickCount();
|
||||
|
||||
// send the packet to the server
|
||||
MsgClientInitiateConnection_t msg;
|
||||
BSendServerData( &msg, sizeof( msg ) );
|
||||
}
|
||||
|
||||
|
||||
@@ -1760,9 +1753,12 @@ void CSpaceWarClient::RunFrame()
|
||||
MsgClientSendLocalUpdate_t msg;
|
||||
msg.SetShipPosition( m_uPlayerShipIndex );
|
||||
|
||||
// If this fails, it probably just means its not time to send an update yet
|
||||
// Send update as unreliable message. This means that if network packets drop,
|
||||
// the networking system will not attempt retransmission, and our message may not arrive.
|
||||
// That's OK, because we would rather just send a new, update message, instead of
|
||||
// retransmitting the old one.
|
||||
if ( m_rgpShips[ m_uPlayerShipIndex ]->BGetClientUpdateData( msg.AccessUpdateData() ) )
|
||||
BSendServerData( &msg, sizeof( msg ) );
|
||||
BSendServerData( &msg, sizeof( msg ), k_nSteamNetworkingSend_Unreliable );
|
||||
}
|
||||
|
||||
if ( m_pP2PAuthedGame )
|
||||
|
||||
@@ -156,7 +156,7 @@ public:
|
||||
void InitiateServerConnection( uint32 unServerAddress, const int32 nPort );
|
||||
|
||||
// Send data to a client at the given ship index
|
||||
bool BSendServerData( const void *pData, uint32 nSizeOfData );
|
||||
bool BSendServerData( const void *pData, uint32 nSizeOfData, int nSendFlags );
|
||||
|
||||
// Menu callback handler (handles a bunch of menus that just change state with no extra data)
|
||||
void OnMenuSelection( EClientGameState eState ) { SetGameState( eState ); }
|
||||
|
||||
@@ -37,7 +37,7 @@ CSpaceWarServer::CSpaceWarServer( IGameEngine *pGameEngine )
|
||||
|
||||
// !FIXME! We need a way to pass the dedicated server flag here!
|
||||
|
||||
if ( !SteamGameServer_Init( unIP, SPACEWAR_AUTHENTICATION_PORT, SPACEWAR_SERVER_PORT, usMasterServerUpdaterPort, eMode, SPACEWAR_SERVER_VERSION ) )
|
||||
if ( !SteamGameServer_Init( unIP, SPACEWAR_SERVER_PORT, usMasterServerUpdaterPort, eMode, SPACEWAR_SERVER_VERSION ) )
|
||||
{
|
||||
OutputDebugString( "SteamGameServer_Init call failed\n" );
|
||||
}
|
||||
@@ -158,47 +158,65 @@ CSpaceWarServer::~CSpaceWarServer()
|
||||
void CSpaceWarServer::OnNetConnectionStatusChanged(SteamNetConnectionStatusChangedCallback_t* pCallback)
|
||||
{
|
||||
/// Connection handle
|
||||
HSteamNetConnection m_hConn = pCallback->m_hConn;
|
||||
HSteamNetConnection hConn = pCallback->m_hConn;
|
||||
|
||||
/// Full connection info
|
||||
SteamNetConnectionInfo_t m_info = pCallback->m_info;
|
||||
SteamNetConnectionInfo_t info = pCallback->m_info;
|
||||
|
||||
/// Previous state. (Current state is in m_info.m_eState)
|
||||
ESteamNetworkingConnectionState m_eOldState = pCallback->m_eOldState;
|
||||
ESteamNetworkingConnectionState eOldState = pCallback->m_eOldState;
|
||||
|
||||
// Parse information to know what was changed
|
||||
|
||||
// Check if a client has connected
|
||||
if (m_info.m_hListenSocket &&
|
||||
m_eOldState == k_ESteamNetworkingConnectionState_None &&
|
||||
m_info.m_eState == k_ESteamNetworkingConnectionState_Connecting)
|
||||
if (info.m_hListenSocket &&
|
||||
eOldState == k_ESteamNetworkingConnectionState_None &&
|
||||
info.m_eState == k_ESteamNetworkingConnectionState_Connecting)
|
||||
{
|
||||
// Handle connecting a client
|
||||
// We always accept connectiosn from clients, without even checking for room on the server,
|
||||
// since we reserve that for the authentication phase of the connection which comes next.
|
||||
// In production code you probably ned to remember the connection and not let it hang
|
||||
// around indefinitely
|
||||
EResult res = SteamGameServerNetworkingSockets()->AcceptConnection(m_hConn);
|
||||
// Connection from a new client
|
||||
// Search for an available slot
|
||||
for (uint32 i = 0; i < MAX_PLAYERS_PER_SERVER; ++i)
|
||||
{
|
||||
if (!m_rgClientData[i].m_bActive && !m_rgPendingClientData[i].m_hConn)
|
||||
{
|
||||
m_rgPendingClientData[i].m_hConn = m_hConn;
|
||||
|
||||
// Found one. "Accept" the connection.
|
||||
EResult res = SteamGameServerNetworkingSockets()->AcceptConnection( hConn );
|
||||
if ( res != k_EResultOK )
|
||||
{
|
||||
char msg[ 256 ];
|
||||
sprintf( msg, "AcceptConnection returned %d", res );
|
||||
OutputDebugString( msg );
|
||||
SteamGameServerNetworkingSockets()->CloseConnection( hConn, k_ESteamNetConnectionEnd_AppException_Generic, "Failed to accept connection", false );
|
||||
return;
|
||||
}
|
||||
|
||||
m_rgPendingClientData[i].m_hConn = hConn;
|
||||
|
||||
// add the user to the poll group
|
||||
SteamGameServerNetworkingSockets()->SetConnectionPollGroup(m_hConn, m_hNetPollGroup);
|
||||
break;
|
||||
SteamGameServerNetworkingSockets()->SetConnectionPollGroup(hConn, m_hNetPollGroup);
|
||||
|
||||
// Send them the server info as a reliable message
|
||||
MsgServerSendInfo_t msg;
|
||||
msg.SetSteamIDServer(SteamGameServer()->GetSteamID().ConvertToUint64());
|
||||
#ifdef USE_GS_AUTH_API
|
||||
// You can only make use of VAC when using the Steam authentication system
|
||||
msg.SetSecure(SteamGameServer()->BSecure());
|
||||
#endif
|
||||
msg.SetServerName(m_sServerName.c_str());
|
||||
SteamGameServerNetworkingSockets()->SendMessageToConnection( hConn, &msg, sizeof(MsgServerSendInfo_t), k_nSteamNetworkingSend_Reliable, nullptr );
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ( res != k_EResultOK )
|
||||
{
|
||||
char msg[ 256 ];
|
||||
sprintf( msg, "AcceptConnection returned %d", res );
|
||||
OutputDebugString("Connection failed: Invalid Param");
|
||||
}
|
||||
|
||||
// No empty slots. Server full!
|
||||
OutputDebugString("Rejecting connection; server full");
|
||||
SteamGameServerNetworkingSockets()->CloseConnection( hConn, k_ESteamNetConnectionEnd_AppException_Generic, "Server full!", false );
|
||||
}
|
||||
// Check if a client has disconnected
|
||||
else if ((m_eOldState == k_ESteamNetworkingConnectionState_Connecting || m_eOldState == k_ESteamNetworkingConnectionState_Connected) &&
|
||||
m_info.m_eState == k_ESteamNetworkingConnectionState_ClosedByPeer)
|
||||
else if ((eOldState == k_ESteamNetworkingConnectionState_Connecting || eOldState == k_ESteamNetworkingConnectionState_Connected) &&
|
||||
info.m_eState == k_ESteamNetworkingConnectionState_ClosedByPeer)
|
||||
{
|
||||
// Handle disconnecting a client
|
||||
for (uint32 i = 0; i < MAX_PLAYERS_PER_SERVER; ++i)
|
||||
@@ -207,7 +225,7 @@ void CSpaceWarServer::OnNetConnectionStatusChanged(SteamNetConnectionStatusChang
|
||||
if (!m_rgClientData[i].m_bActive)
|
||||
continue;
|
||||
|
||||
if (m_rgClientData[i].m_SteamIDUser == m_info.m_identityRemote.GetSteamID())//pCallback->m_steamIDRemote)
|
||||
if (m_rgClientData[i].m_SteamIDUser == info.m_identityRemote.GetSteamID())//pCallback->m_steamIDRemote)
|
||||
{
|
||||
OutputDebugString("Disconnected dropped user\n");
|
||||
RemovePlayerFromServer(i, EDisconnectReason::k_EDRClientDisconnect);
|
||||
@@ -554,21 +572,6 @@ void CSpaceWarServer::ReceiveNetworkData()
|
||||
|
||||
switch (eMsg)
|
||||
{
|
||||
case k_EMsgClientInitiateConnection:
|
||||
{
|
||||
// We always let clients do this without even checking for room on the server since we reserve that for
|
||||
// the authentication phase of the connection which comes next
|
||||
MsgServerSendInfo_t msg;
|
||||
msg.SetSteamIDServer(SteamGameServer()->GetSteamID().ConvertToUint64());
|
||||
#ifdef USE_GS_AUTH_API
|
||||
// You can only make use of VAC when using the Steam authentication system
|
||||
msg.SetSecure(SteamGameServer()->BSecure());
|
||||
#endif
|
||||
msg.SetServerName(m_sServerName.c_str());
|
||||
int64 messageOut;
|
||||
SteamGameServerNetworkingSockets()->SendMessageToConnection(connection, &msg, sizeof(MsgServerSendInfo_t), k_nSteamNetworkingSend_Reliable, &messageOut);
|
||||
}
|
||||
break;
|
||||
case k_EMsgClientBeginAuthentication:
|
||||
{
|
||||
if (message->GetSize() != sizeof(MsgClientBeginAuthentication_t))
|
||||
@@ -612,41 +615,6 @@ void CSpaceWarServer::ReceiveNetworkData()
|
||||
OutputDebugString("Got a client data update, but couldn't find a matching client\n");
|
||||
}
|
||||
break;
|
||||
case k_EMsgClientLeavingServer:
|
||||
{
|
||||
if (message->GetSize() != sizeof(MsgClientLeavingServer_t))
|
||||
{
|
||||
OutputDebugString("Bad leaving server msg\n");
|
||||
message->Release();
|
||||
message = nullptr;
|
||||
continue;
|
||||
}
|
||||
// Find the connection that should exist for this users address
|
||||
bool bFound = false;
|
||||
for (uint32 i = 0; i < MAX_PLAYERS_PER_SERVER; ++i)
|
||||
{
|
||||
if (m_rgClientData[i].m_SteamIDUser == steamIDRemote)
|
||||
{
|
||||
bFound = true;
|
||||
RemovePlayerFromServer(i, EDisconnectReason::k_EDRClientDisconnect);
|
||||
break;
|
||||
}
|
||||
|
||||
// Also check for pending connections that may match
|
||||
if (m_rgPendingClientData[i].m_SteamIDUser == steamIDRemote)
|
||||
{
|
||||
#ifdef USE_GS_AUTH_API
|
||||
// Tell the GS the user is leaving the server
|
||||
SteamGameServer()->SendUserDisconnect(m_rgPendingClientData[i].m_SteamIDUser);
|
||||
#endif
|
||||
// Clear our data on the user
|
||||
memset(&m_rgPendingClientData[i], 0, sizeof(ClientConnectionData_t));
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!bFound)
|
||||
OutputDebugString("Got a client leaving server msg, but couldn't find a matching client\n");
|
||||
}
|
||||
|
||||
case k_EMsgVoiceChatData:
|
||||
{
|
||||
|
||||
@@ -50,7 +50,7 @@ STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamAppList *, SteamAppList, STEAMAPPLIS
|
||||
//---------------------------------------------------------------------------------
|
||||
// Purpose: Sent when a new app is installed
|
||||
//---------------------------------------------------------------------------------
|
||||
STEAM_CALLBACK_BEGIN( SteamAppInstalled_t, k_iSteamAppListCallbacks + 1 );
|
||||
STEAM_CALLBACK_BEGIN( SteamAppInstalled_t, k_iSteamAppListCallbacks + 1 )
|
||||
STEAM_CALLBACK_MEMBER( 0, AppId_t, m_nAppID ) // ID of the app that installs
|
||||
STEAM_CALLBACK_END(1)
|
||||
|
||||
@@ -58,7 +58,7 @@ STEAM_CALLBACK_END(1)
|
||||
//---------------------------------------------------------------------------------
|
||||
// Purpose: Sent when an app is uninstalled
|
||||
//---------------------------------------------------------------------------------
|
||||
STEAM_CALLBACK_BEGIN( SteamAppUninstalled_t, k_iSteamAppListCallbacks + 2 );
|
||||
STEAM_CALLBACK_BEGIN( SteamAppUninstalled_t, k_iSteamAppListCallbacks + 2 )
|
||||
STEAM_CALLBACK_MEMBER( 0, AppId_t, m_nAppID ) // ID of the app that installs
|
||||
STEAM_CALLBACK_END(1)
|
||||
|
||||
|
||||
@@ -310,6 +310,64 @@ enum EControllerActionOrigin
|
||||
k_EControllerActionOrigin_XBox360_DPad_Move,
|
||||
k_EControllerActionOrigin_Switch_DPad_Move,
|
||||
|
||||
// Added in SDK 1.51
|
||||
k_EControllerActionOrigin_PS5_X,
|
||||
k_EControllerActionOrigin_PS5_Circle,
|
||||
k_EControllerActionOrigin_PS5_Triangle,
|
||||
k_EControllerActionOrigin_PS5_Square,
|
||||
k_EControllerActionOrigin_PS5_LeftBumper,
|
||||
k_EControllerActionOrigin_PS5_RightBumper,
|
||||
k_EControllerActionOrigin_PS5_Option, //Start
|
||||
k_EControllerActionOrigin_PS5_Create, //Back
|
||||
k_EControllerActionOrigin_PS5_Mute,
|
||||
k_EControllerActionOrigin_PS5_LeftPad_Touch,
|
||||
k_EControllerActionOrigin_PS5_LeftPad_Swipe,
|
||||
k_EControllerActionOrigin_PS5_LeftPad_Click,
|
||||
k_EControllerActionOrigin_PS5_LeftPad_DPadNorth,
|
||||
k_EControllerActionOrigin_PS5_LeftPad_DPadSouth,
|
||||
k_EControllerActionOrigin_PS5_LeftPad_DPadWest,
|
||||
k_EControllerActionOrigin_PS5_LeftPad_DPadEast,
|
||||
k_EControllerActionOrigin_PS5_RightPad_Touch,
|
||||
k_EControllerActionOrigin_PS5_RightPad_Swipe,
|
||||
k_EControllerActionOrigin_PS5_RightPad_Click,
|
||||
k_EControllerActionOrigin_PS5_RightPad_DPadNorth,
|
||||
k_EControllerActionOrigin_PS5_RightPad_DPadSouth,
|
||||
k_EControllerActionOrigin_PS5_RightPad_DPadWest,
|
||||
k_EControllerActionOrigin_PS5_RightPad_DPadEast,
|
||||
k_EControllerActionOrigin_PS5_CenterPad_Touch,
|
||||
k_EControllerActionOrigin_PS5_CenterPad_Swipe,
|
||||
k_EControllerActionOrigin_PS5_CenterPad_Click,
|
||||
k_EControllerActionOrigin_PS5_CenterPad_DPadNorth,
|
||||
k_EControllerActionOrigin_PS5_CenterPad_DPadSouth,
|
||||
k_EControllerActionOrigin_PS5_CenterPad_DPadWest,
|
||||
k_EControllerActionOrigin_PS5_CenterPad_DPadEast,
|
||||
k_EControllerActionOrigin_PS5_LeftTrigger_Pull,
|
||||
k_EControllerActionOrigin_PS5_LeftTrigger_Click,
|
||||
k_EControllerActionOrigin_PS5_RightTrigger_Pull,
|
||||
k_EControllerActionOrigin_PS5_RightTrigger_Click,
|
||||
k_EControllerActionOrigin_PS5_LeftStick_Move,
|
||||
k_EControllerActionOrigin_PS5_LeftStick_Click,
|
||||
k_EControllerActionOrigin_PS5_LeftStick_DPadNorth,
|
||||
k_EControllerActionOrigin_PS5_LeftStick_DPadSouth,
|
||||
k_EControllerActionOrigin_PS5_LeftStick_DPadWest,
|
||||
k_EControllerActionOrigin_PS5_LeftStick_DPadEast,
|
||||
k_EControllerActionOrigin_PS5_RightStick_Move,
|
||||
k_EControllerActionOrigin_PS5_RightStick_Click,
|
||||
k_EControllerActionOrigin_PS5_RightStick_DPadNorth,
|
||||
k_EControllerActionOrigin_PS5_RightStick_DPadSouth,
|
||||
k_EControllerActionOrigin_PS5_RightStick_DPadWest,
|
||||
k_EControllerActionOrigin_PS5_RightStick_DPadEast,
|
||||
k_EControllerActionOrigin_PS5_DPad_Move,
|
||||
k_EControllerActionOrigin_PS5_DPad_North,
|
||||
k_EControllerActionOrigin_PS5_DPad_South,
|
||||
k_EControllerActionOrigin_PS5_DPad_West,
|
||||
k_EControllerActionOrigin_PS5_DPad_East,
|
||||
k_EControllerActionOrigin_PS5_Gyro_Move,
|
||||
k_EControllerActionOrigin_PS5_Gyro_Pitch,
|
||||
k_EControllerActionOrigin_PS5_Gyro_Yaw,
|
||||
k_EControllerActionOrigin_PS5_Gyro_Roll,
|
||||
|
||||
|
||||
k_EControllerActionOrigin_Count, // If Steam has added support for new controllers origins will go here.
|
||||
k_EControllerActionOrigin_MaximumPossibleValue = 32767, // Origins are currently a maximum of 16 bits.
|
||||
};
|
||||
@@ -362,6 +420,7 @@ enum ESteamInputType
|
||||
k_ESteamInputType_SwitchProController,
|
||||
k_ESteamInputType_MobileTouch, // Steam Link App On-screen Virtual Controller
|
||||
k_ESteamInputType_PS3Controller, // Currently uses PS4 Origins
|
||||
k_ESteamInputType_PS5Controller, // Added in SDK 151
|
||||
k_ESteamInputType_Count,
|
||||
k_ESteamInputType_MaximumPossibleValue = 255,
|
||||
};
|
||||
@@ -540,7 +599,8 @@ public:
|
||||
// If the user is not in Big Picture Mode it will open up the binding in a new window
|
||||
virtual bool ShowBindingPanel( ControllerHandle_t controllerHandle ) = 0;
|
||||
|
||||
// Returns the input type for a particular handle
|
||||
// Returns the input type for a particular handle - unlike EControllerActionOrigin which update with Steam and may return unrecognized values
|
||||
// ESteamInputType will remain static and only return valid values from your SDK version
|
||||
virtual ESteamInputType GetInputTypeForHandle( ControllerHandle_t controllerHandle ) = 0;
|
||||
|
||||
// Returns the associated controller handle for the specified emulated gamepad - can be used with the above 2 functions
|
||||
@@ -567,7 +627,7 @@ public:
|
||||
virtual bool GetControllerBindingRevision( ControllerHandle_t controllerHandle, int *pMajor, int *pMinor ) = 0;
|
||||
};
|
||||
|
||||
#define STEAMCONTROLLER_INTERFACE_VERSION "SteamController007"
|
||||
#define STEAMCONTROLLER_INTERFACE_VERSION "SteamController008"
|
||||
|
||||
// Global interface accessor
|
||||
inline ISteamController *SteamController();
|
||||
|
||||
@@ -358,7 +358,7 @@ public:
|
||||
|
||||
// Rich invite support.
|
||||
// If the target accepts the invite, a GameRichPresenceJoinRequested_t callback is posted containing the connect string.
|
||||
// (Or you can configure yout game so that it is passed on the command line instead. This is a deprecated path; ask us if you really need this.)
|
||||
// (Or you can configure your game so that it is passed on the command line instead. This is a deprecated path; ask us if you really need this.)
|
||||
virtual bool InviteUserToGame( CSteamID steamIDFriend, const char *pchConnectString ) = 0;
|
||||
|
||||
// recently-played-with friends iteration
|
||||
@@ -419,6 +419,9 @@ public:
|
||||
// to your specified protocol (scheme) uris and instead dispatch a OverlayBrowserProtocolNavigation_t callback to your game.
|
||||
// ActivateGameOverlayToWebPage() must have been called with k_EActivateGameOverlayToWebPageMode_Modal
|
||||
virtual bool RegisterProtocolInOverlayBrowser( const char *pchProtocol ) = 0;
|
||||
|
||||
// Activates the game overlay to open an invite dialog that will send the provided Rich Presence connect string to selected friends
|
||||
virtual void ActivateGameOverlayInviteDialogConnectString( const char *pchConnectString ) = 0;
|
||||
};
|
||||
|
||||
#define STEAMFRIENDS_INTERFACE_VERSION "SteamFriends017"
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
|
||||
#include "steam_api_common.h"
|
||||
|
||||
#define MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE ((uint16)-1)
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Functions for authenticating users via Steam to play on a game server
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -256,19 +254,6 @@ public:
|
||||
inline ISteamGameServer *SteamGameServer();
|
||||
STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamGameServer *, SteamGameServer, STEAMGAMESERVER_INTERFACE_VERSION );
|
||||
|
||||
// game server flags
|
||||
const uint32 k_unServerFlagNone = 0x00;
|
||||
const uint32 k_unServerFlagActive = 0x01; // server has users playing
|
||||
const uint32 k_unServerFlagSecure = 0x02; // server wants to be secure
|
||||
const uint32 k_unServerFlagDedicated = 0x04; // server is dedicated
|
||||
const uint32 k_unServerFlagLinux = 0x08; // linux build
|
||||
const uint32 k_unServerFlagPassworded = 0x10; // password protected
|
||||
const uint32 k_unServerFlagPrivate = 0x20; // server shouldn't list on master server and
|
||||
// won't enforce authentication of users that connect to the server.
|
||||
// Useful when you run a server where the clients may not
|
||||
// be connected to the internet but you want them to play (i.e LANs)
|
||||
|
||||
|
||||
// callbacks
|
||||
#if defined( VALVE_CALLBACK_PACK_SMALL )
|
||||
#pragma pack( push, 4 )
|
||||
|
||||
@@ -329,6 +329,83 @@ enum EInputActionOrigin
|
||||
k_EInputActionOrigin_Switch_Reserved18,
|
||||
k_EInputActionOrigin_Switch_Reserved19,
|
||||
k_EInputActionOrigin_Switch_Reserved20,
|
||||
|
||||
// Added in SDK 1.51
|
||||
k_EInputActionOrigin_PS5_X,
|
||||
k_EInputActionOrigin_PS5_Circle,
|
||||
k_EInputActionOrigin_PS5_Triangle,
|
||||
k_EInputActionOrigin_PS5_Square,
|
||||
k_EInputActionOrigin_PS5_LeftBumper,
|
||||
k_EInputActionOrigin_PS5_RightBumper,
|
||||
k_EInputActionOrigin_PS5_Option, //Start
|
||||
k_EInputActionOrigin_PS5_Create, //Back
|
||||
k_EInputActionOrigin_PS5_Mute,
|
||||
k_EInputActionOrigin_PS5_LeftPad_Touch,
|
||||
k_EInputActionOrigin_PS5_LeftPad_Swipe,
|
||||
k_EInputActionOrigin_PS5_LeftPad_Click,
|
||||
k_EInputActionOrigin_PS5_LeftPad_DPadNorth,
|
||||
k_EInputActionOrigin_PS5_LeftPad_DPadSouth,
|
||||
k_EInputActionOrigin_PS5_LeftPad_DPadWest,
|
||||
k_EInputActionOrigin_PS5_LeftPad_DPadEast,
|
||||
k_EInputActionOrigin_PS5_RightPad_Touch,
|
||||
k_EInputActionOrigin_PS5_RightPad_Swipe,
|
||||
k_EInputActionOrigin_PS5_RightPad_Click,
|
||||
k_EInputActionOrigin_PS5_RightPad_DPadNorth,
|
||||
k_EInputActionOrigin_PS5_RightPad_DPadSouth,
|
||||
k_EInputActionOrigin_PS5_RightPad_DPadWest,
|
||||
k_EInputActionOrigin_PS5_RightPad_DPadEast,
|
||||
k_EInputActionOrigin_PS5_CenterPad_Touch,
|
||||
k_EInputActionOrigin_PS5_CenterPad_Swipe,
|
||||
k_EInputActionOrigin_PS5_CenterPad_Click,
|
||||
k_EInputActionOrigin_PS5_CenterPad_DPadNorth,
|
||||
k_EInputActionOrigin_PS5_CenterPad_DPadSouth,
|
||||
k_EInputActionOrigin_PS5_CenterPad_DPadWest,
|
||||
k_EInputActionOrigin_PS5_CenterPad_DPadEast,
|
||||
k_EInputActionOrigin_PS5_LeftTrigger_Pull,
|
||||
k_EInputActionOrigin_PS5_LeftTrigger_Click,
|
||||
k_EInputActionOrigin_PS5_RightTrigger_Pull,
|
||||
k_EInputActionOrigin_PS5_RightTrigger_Click,
|
||||
k_EInputActionOrigin_PS5_LeftStick_Move,
|
||||
k_EInputActionOrigin_PS5_LeftStick_Click,
|
||||
k_EInputActionOrigin_PS5_LeftStick_DPadNorth,
|
||||
k_EInputActionOrigin_PS5_LeftStick_DPadSouth,
|
||||
k_EInputActionOrigin_PS5_LeftStick_DPadWest,
|
||||
k_EInputActionOrigin_PS5_LeftStick_DPadEast,
|
||||
k_EInputActionOrigin_PS5_RightStick_Move,
|
||||
k_EInputActionOrigin_PS5_RightStick_Click,
|
||||
k_EInputActionOrigin_PS5_RightStick_DPadNorth,
|
||||
k_EInputActionOrigin_PS5_RightStick_DPadSouth,
|
||||
k_EInputActionOrigin_PS5_RightStick_DPadWest,
|
||||
k_EInputActionOrigin_PS5_RightStick_DPadEast,
|
||||
k_EInputActionOrigin_PS5_DPad_North,
|
||||
k_EInputActionOrigin_PS5_DPad_South,
|
||||
k_EInputActionOrigin_PS5_DPad_West,
|
||||
k_EInputActionOrigin_PS5_DPad_East,
|
||||
k_EInputActionOrigin_PS5_Gyro_Move,
|
||||
k_EInputActionOrigin_PS5_Gyro_Pitch,
|
||||
k_EInputActionOrigin_PS5_Gyro_Yaw,
|
||||
k_EInputActionOrigin_PS5_Gyro_Roll,
|
||||
k_EInputActionOrigin_PS5_DPad_Move,
|
||||
k_EInputActionOrigin_PS5_Reserved1,
|
||||
k_EInputActionOrigin_PS5_Reserved2,
|
||||
k_EInputActionOrigin_PS5_Reserved3,
|
||||
k_EInputActionOrigin_PS5_Reserved4,
|
||||
k_EInputActionOrigin_PS5_Reserved5,
|
||||
k_EInputActionOrigin_PS5_Reserved6,
|
||||
k_EInputActionOrigin_PS5_Reserved7,
|
||||
k_EInputActionOrigin_PS5_Reserved8,
|
||||
k_EInputActionOrigin_PS5_Reserved9,
|
||||
k_EInputActionOrigin_PS5_Reserved10,
|
||||
k_EInputActionOrigin_PS5_Reserved11,
|
||||
k_EInputActionOrigin_PS5_Reserved12,
|
||||
k_EInputActionOrigin_PS5_Reserved13,
|
||||
k_EInputActionOrigin_PS5_Reserved14,
|
||||
k_EInputActionOrigin_PS5_Reserved15,
|
||||
k_EInputActionOrigin_PS5_Reserved16,
|
||||
k_EInputActionOrigin_PS5_Reserved17,
|
||||
k_EInputActionOrigin_PS5_Reserved18,
|
||||
k_EInputActionOrigin_PS5_Reserved19,
|
||||
k_EInputActionOrigin_PS5_Reserved20,
|
||||
|
||||
k_EInputActionOrigin_Count, // If Steam has added support for new controllers origins will go here.
|
||||
k_EInputActionOrigin_MaximumPossibleValue = 32767, // Origins are currently a maximum of 16 bits.
|
||||
@@ -388,6 +465,7 @@ enum ESteamInputType
|
||||
k_ESteamInputType_SwitchProController,
|
||||
k_ESteamInputType_MobileTouch, // Steam Link App On-screen Virtual Controller
|
||||
k_ESteamInputType_PS3Controller, // Currently uses PS4 Origins
|
||||
k_ESteamInputType_PS5Controller, // Added in SDK 151
|
||||
k_ESteamInputType_Count,
|
||||
k_ESteamInputType_MaximumPossibleValue = 255,
|
||||
};
|
||||
@@ -567,7 +645,8 @@ public:
|
||||
// If the user is not in Big Picture Mode it will open up the binding in a new window
|
||||
virtual bool ShowBindingPanel( InputHandle_t inputHandle ) = 0;
|
||||
|
||||
// Returns the input type for a particular handle
|
||||
// Returns the input type for a particular handle - unlike EInputActionOrigin which update with Steam and may return unrecognized values
|
||||
// ESteamInputType will remain static and only return valid values from your SDK version
|
||||
virtual ESteamInputType GetInputTypeForHandle( InputHandle_t inputHandle ) = 0;
|
||||
|
||||
// Returns the associated controller handle for the specified emulated gamepad - can be used with the above 2 functions
|
||||
@@ -600,10 +679,10 @@ public:
|
||||
virtual uint32 GetRemotePlaySessionID( InputHandle_t inputHandle ) = 0;
|
||||
};
|
||||
|
||||
#define STEAMINPUT_INTERFACE_VERSION "SteamInput001"
|
||||
#define STEAMINPUT_INTERFACE_VERSION "SteamInput002"
|
||||
|
||||
// Global interface accessor
|
||||
inline ISteamInput *SteamInput();
|
||||
STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamInput *, SteamInput, STEAMINPUT_INTERFACE_VERSION );
|
||||
|
||||
#endif // ISTEAMINPUT_H
|
||||
#endif // ISTEAMINPUT_H
|
||||
@@ -17,12 +17,16 @@
|
||||
enum EP2PSessionError
|
||||
{
|
||||
k_EP2PSessionErrorNone = 0,
|
||||
k_EP2PSessionErrorNotRunningApp = 1, // target is not running the same game
|
||||
k_EP2PSessionErrorNoRightsToApp = 2, // local user doesn't own the app that is running
|
||||
k_EP2PSessionErrorDestinationNotLoggedIn = 3, // target user isn't connected to Steam
|
||||
k_EP2PSessionErrorTimeout = 4, // target isn't responding, perhaps not calling AcceptP2PSessionWithUser()
|
||||
// corporate firewalls can also block this (NAT traversal is not firewall traversal)
|
||||
// make sure that UDP ports 3478, 4379, and 4380 are open in an outbound direction
|
||||
|
||||
// The following error codes were removed and will never be sent.
|
||||
// For privacy reasons, there is no reply if the user is offline or playing another game.
|
||||
k_EP2PSessionErrorNotRunningApp_DELETED = 1,
|
||||
k_EP2PSessionErrorDestinationNotLoggedIn_DELETED = 3,
|
||||
|
||||
k_EP2PSessionErrorMax = 5
|
||||
};
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "steamnetworkingtypes.h"
|
||||
#include "steam_api_common.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
/// The non-connection-oriented interface to send and receive messages
|
||||
@@ -56,7 +57,7 @@ public:
|
||||
///
|
||||
/// It is guaranteed that reliable messages to the same host on the same channel
|
||||
/// will be be received by the remote host (if they are received at all) exactly once,
|
||||
/// and in the same order that they were send.
|
||||
/// and in the same order that they were sent.
|
||||
///
|
||||
/// NO other order guarantees exist! In particular, unreliable messages may be dropped,
|
||||
/// received out of order with respect to each other and with respect to reliable data,
|
||||
@@ -73,52 +74,55 @@ public:
|
||||
/// Returns:
|
||||
/// - k_EREsultOK on success.
|
||||
/// - k_EResultNoConnection will be returned if the session has failed or was closed by the peer,
|
||||
/// and k_nSteamNetworkingSend_AutoRestartBrokwnSession is not used. (You can use
|
||||
/// and k_nSteamNetworkingSend_AutoRestartBrokenSession is not used. (You can use
|
||||
/// GetSessionConnectionInfo to get the details.) In order to acknowledge the broken session
|
||||
/// and start a new one, you must call CloseSessionWithUser
|
||||
/// - See SendMessageToConnection::SendMessageToConnection for more
|
||||
/// - See ISteamNetworkingSockets::SendMessageToConnection for more possible return values
|
||||
virtual EResult SendMessageToUser( const SteamNetworkingIdentity &identityRemote, const void *pubData, uint32 cubData, int nSendFlags, int nRemoteChannel ) = 0;
|
||||
|
||||
/// Reads the next message that has been sent from another user via SendMessageToUser() on the given channel.
|
||||
/// Returns number of messages returned into your list. (0 if no message are available on that channel.)
|
||||
///
|
||||
/// When you're done with the message object(s), make sure and call Release()!
|
||||
/// When you're done with the message object(s), make sure and call SteamNetworkingMessage_t::Release()!
|
||||
virtual int ReceiveMessagesOnChannel( int nLocalChannel, SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0;
|
||||
|
||||
/// AcceptSessionWithUser() should only be called in response to a SteamP2PSessionRequest_t callback
|
||||
/// SteamP2PSessionRequest_t will be posted if another user tries to send you a message, and you haven't
|
||||
/// tried to talk to them. If you don't want to talk to them, just ignore the request.
|
||||
/// If the user continues to send you messages, SteamP2PSessionRequest_t callbacks will continue to
|
||||
/// be posted periodically. This may be called multiple times for a single user.
|
||||
/// Call this in response to a SteamNetworkingMessagesSessionRequest_t callback.
|
||||
/// SteamNetworkingMessagesSessionRequest_t are posted when a user tries to send you a message,
|
||||
/// and you haven't tried to talk to them first. If you don't want to talk to them, just ignore
|
||||
/// the request. If the user continues to send you messages, SteamNetworkingMessagesSessionRequest_t
|
||||
/// callbacks will continue to be posted periodically.
|
||||
///
|
||||
/// Calling SendMessage() on the other user, this implicitly accepts any pending session request.
|
||||
/// Returns false if there is no session with the user pending or otherwise. If there is an
|
||||
/// existing active session, this function will return true, even if it is not pending.
|
||||
///
|
||||
/// Calling SendMessageToUser() will implicitly accepts any pending session request to that user.
|
||||
virtual bool AcceptSessionWithUser( const SteamNetworkingIdentity &identityRemote ) = 0;
|
||||
|
||||
/// Call this when you're done talking to a user to immediately free up resources under-the-hood.
|
||||
/// If the remote user tries to send data to you again, another P2PSessionRequest_t callback will
|
||||
/// be posted.
|
||||
/// If the remote user tries to send data to you again, another SteamNetworkingMessagesSessionRequest_t
|
||||
/// callback will be posted.
|
||||
///
|
||||
/// Note that sessions that go unused for a few minutes are automatically timed out.
|
||||
virtual bool CloseSessionWithUser( const SteamNetworkingIdentity &identityRemote ) = 0;
|
||||
|
||||
/// Call this when you're done talking to a user on a specific channel. Once all
|
||||
/// open channels to a user have been closed, the open session to the user will be
|
||||
/// closed, and any new data from this user will trigger a SteamP2PSessionRequest_t
|
||||
/// callback
|
||||
/// closed, and any new data from this user will trigger a
|
||||
/// SteamSteamNetworkingMessagesSessionRequest_t callback
|
||||
virtual bool CloseChannelWithUser( const SteamNetworkingIdentity &identityRemote, int nLocalChannel ) = 0;
|
||||
|
||||
/// Returns information about the latest state of a connection, if any, with the given peer.
|
||||
/// Primarily intended for debugging purposes, but can also be used to get more detailed
|
||||
/// failure information. (See SendMessageToUser and k_nSteamNetworkingSend_AutoRestartBrokwnSession.)
|
||||
/// failure information. (See SendMessageToUser and k_nSteamNetworkingSend_AutoRestartBrokenSession.)
|
||||
///
|
||||
/// Returns the value of SteamNetConnectionInfo_t::m_eState, or k_ESteamNetworkingConnectionState_None
|
||||
/// if no connection exists with specified peer. You may pass nullptr for either parameter if
|
||||
/// you do not need the corresponding details. Note that sessions time out after a while,
|
||||
/// so if a connection fails, or SendMessageToUser returns SendMessageToUser, you cannot wait
|
||||
/// so if a connection fails, or SendMessageToUser returns k_EResultNoConnection, you cannot wait
|
||||
/// indefinitely to obtain the reason for failure.
|
||||
virtual ESteamNetworkingConnectionState GetSessionConnectionInfo( const SteamNetworkingIdentity &identityRemote, SteamNetConnectionInfo_t *pConnectionInfo, SteamNetworkingQuickConnectionStatus *pQuickStatus ) = 0;
|
||||
};
|
||||
#define STEAMNETWORKINGMESSAGES_VERSION "SteamNetworkingMessages002"
|
||||
#define STEAMNETWORKINGMESSAGES_INTERFACE_VERSION "SteamNetworkingMessages002"
|
||||
|
||||
//
|
||||
// Callbacks
|
||||
@@ -139,7 +143,7 @@ struct SteamNetworkingMessagesSessionRequest_t
|
||||
/// SteamNetworkingMessages is primarily intended to make porting UDP code easy.)
|
||||
///
|
||||
/// Remember: callbacks are asynchronous. See notes on SendMessageToUser,
|
||||
/// and k_nSteamNetworkingSend_AutoRestartBrokwnSession in particular.
|
||||
/// and k_nSteamNetworkingSend_AutoRestartBrokenSession in particular.
|
||||
///
|
||||
/// Also, if a session times out due to inactivity, no callbacks will be posted. The only
|
||||
/// way to detect that this is happening is that querying the session state may return
|
||||
@@ -148,37 +152,48 @@ struct SteamNetworkingMessagesSessionFailed_t
|
||||
{
|
||||
enum { k_iCallback = k_iSteamNetworkingMessagesCallbacks + 2 };
|
||||
|
||||
/// Detailed info about the connection. This will include the
|
||||
/// Detailed info about the session that failed.
|
||||
/// SteamNetConnectionInfo_t::m_identityRemote indicates who this session
|
||||
/// was with.
|
||||
SteamNetConnectionInfo_t m_info;
|
||||
};
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
//
|
||||
// Global accessor
|
||||
//
|
||||
// Global accessors
|
||||
// Using standalone lib
|
||||
#ifdef STEAMNETWORKINGSOCKETS_STANDALONELIB
|
||||
|
||||
#if defined( STEAMNETWORKINGSOCKETS_PARTNER )
|
||||
// Standalone lib.
|
||||
static_assert( STEAMNETWORKINGMESSAGES_INTERFACE_VERSION[25] == '2', "Version mismatch" );
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingMessages *SteamNetworkingMessages_LibV2();
|
||||
inline ISteamNetworkingMessages *SteamNetworkingMessages_Lib() { return SteamNetworkingMessages_LibV2(); }
|
||||
|
||||
// Standalone lib. Use different symbol name, so that we can dynamically switch between steamclient.dll
|
||||
// and the standalone lib
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingMessages *SteamNetworkingMessages_Lib();
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingMessages *SteamGameServerNetworkingMessages_Lib();
|
||||
inline ISteamNetworkingMessages *SteamNetworkingMessages() { return SteamNetworkingMessages_Lib(); }
|
||||
inline ISteamNetworkingMessages *SteamGameServerNetworkingMessages() { return SteamGameServerNetworkingMessages_Lib(); }
|
||||
// If running in context of steam, we also define a gameserver instance.
|
||||
#ifdef STEAMNETWORKINGSOCKETS_STEAM
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingMessages *SteamGameServerNetworkingMessages_LibV2();
|
||||
inline ISteamNetworkingMessages *SteamGameServerNetworkingMessages_Lib() { return SteamGameServerNetworkingMessages_LibV2(); }
|
||||
#endif
|
||||
|
||||
#elif defined( STEAMNETWORKINGSOCKETS_OPENSOURCE )
|
||||
#ifndef STEAMNETWORKINGSOCKETS_STEAMAPI
|
||||
inline ISteamNetworkingMessages *SteamNetworkingMessages() { return SteamNetworkingMessages_LibV2(); }
|
||||
#ifdef STEAMNETWORKINGSOCKETS_STEAM
|
||||
inline ISteamNetworkingMessages *SteamGameServerNetworkingMessages() { return SteamGameServerNetworkingMessages_LibV2(); }
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Opensource GameNetworkingSockets
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingMessages *SteamNetworkingMessages();
|
||||
|
||||
#else
|
||||
// Using Steamworks SDK
|
||||
#ifdef STEAMNETWORKINGSOCKETS_STEAMAPI
|
||||
|
||||
// Steamworks SDK
|
||||
inline ISteamNetworkingMessages *SteamNetworkingMessages();
|
||||
STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamNetworkingMessages *, SteamNetworkingMessages, STEAMNETWORKINGMESSAGES_VERSION );
|
||||
inline ISteamNetworkingMessages *SteamGameServerNetworkingMessages();
|
||||
STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworkingMessages *, SteamGameServerNetworkingMessages, STEAMNETWORKINGMESSAGES_VERSION );
|
||||
STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamNetworkingMessages *, SteamNetworkingMessages_SteamAPI, STEAMNETWORKINGMESSAGES_INTERFACE_VERSION );
|
||||
STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworkingMessages *, SteamGameServerNetworkingMessages_SteamAPI, STEAMNETWORKINGMESSAGES_INTERFACE_VERSION );
|
||||
|
||||
#ifndef STEAMNETWORKINGSOCKETS_STANDALONELIB
|
||||
inline ISteamNetworkingMessages *SteamNetworkingMessages() { return SteamNetworkingMessages_SteamAPI(); }
|
||||
inline ISteamNetworkingMessages *SteamGameServerNetworkingMessages() { return SteamGameServerNetworkingMessages_SteamAPI(); }
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // ISTEAMNETWORKINGMESSAGES
|
||||
|
||||
@@ -2,15 +2,14 @@
|
||||
|
||||
#ifndef ISTEAMNETWORKINGSOCKETS
|
||||
#define ISTEAMNETWORKINGSOCKETS
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "steamnetworkingtypes.h"
|
||||
#include "steam_api_common.h"
|
||||
|
||||
struct SteamNetAuthenticationStatus_t;
|
||||
class ISteamNetworkingConnectionCustomSignaling;
|
||||
class ISteamNetworkingCustomSignalingRecvContext;
|
||||
class ISteamNetworkingConnectionSignaling;
|
||||
class ISteamNetworkingSignalingRecvContext;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
/// Lower level networking API.
|
||||
@@ -84,7 +83,7 @@ public:
|
||||
/// setting the options "immediately" after creation.
|
||||
virtual HSteamNetConnection ConnectByIPAddress( const SteamNetworkingIPAddr &address, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0;
|
||||
|
||||
/// Like CreateListenSocketIP, but clients will connect using ConnectP2P
|
||||
/// Like CreateListenSocketIP, but clients will connect using ConnectP2P.
|
||||
///
|
||||
/// nLocalVirtualPort specifies how clients can connect to this socket using
|
||||
/// ConnectP2P. It's very common for applications to only have one listening socket;
|
||||
@@ -93,7 +92,16 @@ public:
|
||||
/// integer (<1000) unique to each listen socket you create.
|
||||
///
|
||||
/// If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess()
|
||||
/// when your app initializes
|
||||
/// when your app initializes.
|
||||
///
|
||||
/// If you are listening on a dedicated servers in known data center,
|
||||
/// then you can listen using this function instead of CreateHostedDedicatedServerListenSocket,
|
||||
/// to allow clients to connect without a ticket. Any user that owns
|
||||
/// the app and is signed into Steam will be able to attempt to connect to
|
||||
/// your server. Also, a connection attempt may require the client to
|
||||
/// be connected to Steam, which is one more moving part that may fail. When
|
||||
/// tickets are used, then once a ticket is obtained, a client can connect to
|
||||
/// your server even if they got disconnected from Steam or Steam is offline.
|
||||
///
|
||||
/// If you need to set any initial config options, pass them here. See
|
||||
/// SteamNetworkingConfigValue_t for more about why this is preferable to
|
||||
@@ -107,6 +115,10 @@ public:
|
||||
/// If you need to set any initial config options, pass them here. See
|
||||
/// SteamNetworkingConfigValue_t for more about why this is preferable to
|
||||
/// setting the options "immediately" after creation.
|
||||
///
|
||||
/// To use your own signaling service, see:
|
||||
/// - ConnectP2PCustomSignaling
|
||||
/// - k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling
|
||||
virtual HSteamNetConnection ConnectP2P( const SteamNetworkingIdentity &identityRemote, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0;
|
||||
|
||||
/// Accept an incoming connection that has been received on a listen socket.
|
||||
@@ -437,11 +449,11 @@ public:
|
||||
/// other connections.)
|
||||
virtual int ReceiveMessagesOnPollGroup( HSteamNetPollGroup hPollGroup, SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0;
|
||||
|
||||
#ifdef STEAMNETWORKINGSOCKETS_ENABLE_SDR
|
||||
|
||||
//
|
||||
// Clients connecting to dedicated servers hosted in a data center,
|
||||
// using central-authority-granted tickets.
|
||||
// using tickets issued by your game coordinator. If you are not
|
||||
// issuing your own tickets to restrict who can attempt to connect
|
||||
// to your server, then you won't use these functions.
|
||||
//
|
||||
|
||||
/// Call this when you receive a ticket from your backend / matchmaking system. Puts the
|
||||
@@ -459,7 +471,10 @@ public:
|
||||
virtual int FindRelayAuthTicketForServer( const SteamNetworkingIdentity &identityGameServer, int nRemoteVirtualPort, SteamDatagramRelayAuthTicket *pOutParsedTicket ) = 0;
|
||||
|
||||
/// Client call to connect to a server hosted in a Valve data center, on the specified virtual
|
||||
/// port. You must have placed a ticket for this server into the cache, or else this connect attempt will fail!
|
||||
/// port. You must have placed a ticket for this server into the cache, or else this connect
|
||||
/// attempt will fail! If you are not issuing your own tickets, then to connect to a dedicated
|
||||
/// server via SDR in auto-ticket mode, use ConnectP2P. (The server must be configured to allow
|
||||
/// this type of connection by listening using CreateListenSocketP2P.)
|
||||
///
|
||||
/// You may wonder why tickets are stored in a cache, instead of simply being passed as an argument
|
||||
/// here. The reason is to make reconnection to a gameserver robust, even if the client computer loses
|
||||
@@ -522,7 +537,11 @@ public:
|
||||
/// will be determined by the SDR_LISTEN_PORT environment variable. If a UDP port is not
|
||||
/// configured, this call will fail.
|
||||
///
|
||||
/// Note that this call MUST be made through the SteamGameServerNetworkingSockets() interface
|
||||
/// This call MUST be made through the SteamGameServerNetworkingSockets() interface.
|
||||
///
|
||||
/// This function should be used when you are using the ticket generator library
|
||||
/// to issue your own tickets. Clients connecting to the server on this virtual
|
||||
/// port will need a ticket, and they must connect using ConnectToHostedDedicatedServer.
|
||||
///
|
||||
/// If you need to set any initial config options, pass them here. See
|
||||
/// SteamNetworkingConfigValue_t for more about why this is preferable to
|
||||
@@ -560,7 +579,6 @@ public:
|
||||
/// NOTE: The routing blob returned here is not encrypted. Send it to your backend
|
||||
/// and don't share it directly with clients.
|
||||
virtual EResult GetGameCoordinatorServerLogin( SteamDatagramGameCoordinatorServerLogin *pLoginInfo, int *pcbSignedBlob, void *pBlob ) = 0;
|
||||
#endif // #ifndef STEAMNETWORKINGSOCKETS_ENABLE_SDR
|
||||
|
||||
|
||||
//
|
||||
@@ -585,10 +603,10 @@ public:
|
||||
/// This function will immediately construct a connection in the "connecting"
|
||||
/// state. Soon after (perhaps before this function returns, perhaps in another thread),
|
||||
/// the connection will begin sending signaling messages by calling
|
||||
/// ISteamNetworkingConnectionCustomSignaling::SendSignal.
|
||||
/// ISteamNetworkingConnectionSignaling::SendSignal.
|
||||
///
|
||||
/// When the remote peer accepts the connection (See
|
||||
/// ISteamNetworkingCustomSignalingRecvContext::OnConnectRequest),
|
||||
/// ISteamNetworkingSignalingRecvContext::OnConnectRequest),
|
||||
/// it will begin sending signaling messages. When these messages are received,
|
||||
/// you can pass them to the connection using ReceivedP2PCustomSignal.
|
||||
///
|
||||
@@ -603,7 +621,7 @@ public:
|
||||
/// If you need to set any initial config options, pass them here. See
|
||||
/// SteamNetworkingConfigValue_t for more about why this is preferable to
|
||||
/// setting the options "immediately" after creation.
|
||||
virtual HSteamNetConnection ConnectP2PCustomSignaling( ISteamNetworkingConnectionCustomSignaling *pSignaling, const SteamNetworkingIdentity *pPeerIdentity, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0;
|
||||
virtual HSteamNetConnection ConnectP2PCustomSignaling( ISteamNetworkingConnectionSignaling *pSignaling, const SteamNetworkingIdentity *pPeerIdentity, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0;
|
||||
|
||||
/// Called when custom signaling has received a message. When your
|
||||
/// signaling channel receives a message, it should save off whatever
|
||||
@@ -614,7 +632,7 @@ public:
|
||||
///
|
||||
/// - If the signal is associated with existing connection, it is dealt
|
||||
/// with immediately. If any replies need to be sent, they will be
|
||||
/// dispatched using the ISteamNetworkingConnectionCustomSignaling
|
||||
/// dispatched using the ISteamNetworkingConnectionSignaling
|
||||
/// associated with the connection.
|
||||
/// - If the message represents a connection request (and the request
|
||||
/// is not redundant for an existing connection), a new connection
|
||||
@@ -634,7 +652,7 @@ public:
|
||||
///
|
||||
/// If you expect to be using relayed connections, then you probably want
|
||||
/// to call ISteamNetworkingUtils::InitRelayNetworkAccess() when your app initializes
|
||||
virtual bool ReceivedP2PCustomSignal( const void *pMsg, int cbMsg, ISteamNetworkingCustomSignalingRecvContext *pContext ) = 0;
|
||||
virtual bool ReceivedP2PCustomSignal( const void *pMsg, int cbMsg, ISteamNetworkingSignalingRecvContext *pContext ) = 0;
|
||||
|
||||
//
|
||||
// Certificate provision by the application. On Steam, we normally handle all this automatically
|
||||
@@ -664,28 +682,40 @@ protected:
|
||||
};
|
||||
#define STEAMNETWORKINGSOCKETS_INTERFACE_VERSION "SteamNetworkingSockets009"
|
||||
|
||||
// Global accessor.
|
||||
#if defined( STEAMNETWORKINGSOCKETS_PARTNER )
|
||||
// Global accessors
|
||||
// Using standalone lib
|
||||
#ifdef STEAMNETWORKINGSOCKETS_STANDALONELIB
|
||||
|
||||
// Standalone lib. Use different symbol name, so that we can dynamically switch between steamclient.dll
|
||||
// and the standalone lib
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingSockets *SteamNetworkingSockets_Lib();
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingSockets *SteamGameServerNetworkingSockets_Lib();
|
||||
inline ISteamNetworkingSockets *SteamNetworkingSockets() { return SteamNetworkingSockets_Lib(); }
|
||||
inline ISteamNetworkingSockets *SteamGameServerNetworkingSockets() { return SteamGameServerNetworkingSockets_Lib(); }
|
||||
// Standalone lib.
|
||||
static_assert( STEAMNETWORKINGSOCKETS_INTERFACE_VERSION[24] == '9', "Version mismatch" );
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingSockets *SteamNetworkingSockets_LibV9();
|
||||
inline ISteamNetworkingSockets *SteamNetworkingSockets_Lib() { return SteamNetworkingSockets_LibV9(); }
|
||||
|
||||
#elif defined( STEAMNETWORKINGSOCKETS_OPENSOURCE ) || defined( STEAMNETWORKINGSOCKETS_STREAMINGCLIENT )
|
||||
// If running in context of steam, we also define a gameserver instance.
|
||||
#ifdef STEAMNETWORKINGSOCKETS_STEAM
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingSockets *SteamGameServerNetworkingSockets_LibV9();
|
||||
inline ISteamNetworkingSockets *SteamGameServerNetworkingSockets_Lib() { return SteamGameServerNetworkingSockets_LibV9(); }
|
||||
#endif
|
||||
|
||||
// Opensource GameNetworkingSockets
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingSockets *SteamNetworkingSockets();
|
||||
#ifndef STEAMNETWORKINGSOCKETS_STEAMAPI
|
||||
inline ISteamNetworkingSockets *SteamNetworkingSockets() { return SteamNetworkingSockets_LibV9(); }
|
||||
#ifdef STEAMNETWORKINGSOCKETS_STEAM
|
||||
inline ISteamNetworkingSockets *SteamGameServerNetworkingSockets() { return SteamGameServerNetworkingSockets_LibV9(); }
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#else
|
||||
// Using Steamworks SDK
|
||||
#ifdef STEAMNETWORKINGSOCKETS_STEAMAPI
|
||||
|
||||
// Steamworks SDK
|
||||
inline ISteamNetworkingSockets *SteamNetworkingSockets();
|
||||
STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamNetworkingSockets *, SteamNetworkingSockets, STEAMNETWORKINGSOCKETS_INTERFACE_VERSION );
|
||||
inline ISteamNetworkingSockets *SteamGameServerNetworkingSockets();
|
||||
STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworkingSockets *, SteamGameServerNetworkingSockets, STEAMNETWORKINGSOCKETS_INTERFACE_VERSION );
|
||||
STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamNetworkingSockets *, SteamNetworkingSockets_SteamAPI, STEAMNETWORKINGSOCKETS_INTERFACE_VERSION );
|
||||
STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworkingSockets *, SteamGameServerNetworkingSockets_SteamAPI, STEAMNETWORKINGSOCKETS_INTERFACE_VERSION );
|
||||
|
||||
#ifndef STEAMNETWORKINGSOCKETS_STANDALONELIB
|
||||
inline ISteamNetworkingSockets *SteamNetworkingSockets() { return SteamNetworkingSockets_SteamAPI(); }
|
||||
inline ISteamNetworkingSockets *SteamGameServerNetworkingSockets() { return SteamGameServerNetworkingSockets_SteamAPI(); }
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/// Callback struct used to notify when a connection has changed state
|
||||
|
||||
@@ -6,13 +6,11 @@
|
||||
|
||||
#ifndef ISTEAMNETWORKINGUTILS
|
||||
#define ISTEAMNETWORKINGUTILS
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "steamnetworkingtypes.h"
|
||||
#include "steam_api_common.h"
|
||||
|
||||
struct SteamDatagramRelayAuthTicket;
|
||||
struct SteamRelayNetworkStatus_t;
|
||||
|
||||
@@ -46,8 +44,6 @@ public:
|
||||
// Access to Steam Datagram Relay (SDR) network
|
||||
//
|
||||
|
||||
#ifdef STEAMNETWORKINGSOCKETS_ENABLE_SDR
|
||||
|
||||
//
|
||||
// Initialization and status check
|
||||
//
|
||||
@@ -196,7 +192,6 @@ public:
|
||||
/// Get list of all POP IDs. Returns the number of entries that were filled into
|
||||
/// your list.
|
||||
virtual int GetPOPList( SteamNetworkingPOPID *list, int nListSz ) = 0;
|
||||
#endif // #ifdef STEAMNETWORKINGSOCKETS_ENABLE_SDR
|
||||
|
||||
//
|
||||
// Misc
|
||||
@@ -324,18 +319,23 @@ protected:
|
||||
};
|
||||
#define STEAMNETWORKINGUTILS_INTERFACE_VERSION "SteamNetworkingUtils003"
|
||||
|
||||
// Global accessor.
|
||||
// Global accessors
|
||||
// Using standalone lib
|
||||
#ifdef STEAMNETWORKINGSOCKETS_STANDALONELIB
|
||||
|
||||
// Standalone lib
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingUtils *SteamNetworkingUtils_Lib();
|
||||
inline ISteamNetworkingUtils *SteamNetworkingUtils() { return SteamNetworkingUtils_Lib(); }
|
||||
static_assert( STEAMNETWORKINGUTILS_INTERFACE_VERSION[22] == '3', "Version mismatch" );
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingUtils *SteamNetworkingUtils_LibV3();
|
||||
inline ISteamNetworkingUtils *SteamNetworkingUtils_Lib() { return SteamNetworkingUtils_LibV3(); }
|
||||
|
||||
#else
|
||||
#ifndef STEAMNETWORKINGSOCKETS_STEAMAPI
|
||||
inline ISteamNetworkingUtils *SteamNetworkingUtils() { return SteamNetworkingUtils_LibV3(); }
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Steamworks SDK
|
||||
inline ISteamNetworkingUtils *SteamNetworkingUtils();
|
||||
STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamNetworkingUtils *, SteamNetworkingUtils,
|
||||
// Using Steamworks SDK
|
||||
#ifdef STEAMNETWORKINGSOCKETS_STEAMAPI
|
||||
STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamNetworkingUtils *, SteamNetworkingUtils_SteamAPI,
|
||||
/* Prefer user version of the interface. But if it isn't found, then use
|
||||
gameserver one. Yes, this is a completely terrible hack */
|
||||
SteamInternal_FindOrCreateUserInterface( 0, STEAMNETWORKINGUTILS_INTERFACE_VERSION ) ?
|
||||
@@ -344,6 +344,10 @@ protected:
|
||||
"global",
|
||||
STEAMNETWORKINGUTILS_INTERFACE_VERSION
|
||||
)
|
||||
|
||||
#ifndef STEAMNETWORKINGSOCKETS_STANDALONELIB
|
||||
inline ISteamNetworkingUtils *SteamNetworkingUtils() { return SteamNetworkingUtils_SteamAPI(); }
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/// A struct used to describe our readiness to use the relay network.
|
||||
@@ -404,10 +408,7 @@ private:
|
||||
//
|
||||
// Internal stuff
|
||||
|
||||
#ifdef STEAMNETWORKINGSOCKETS_ENABLE_SDR
|
||||
inline void ISteamNetworkingUtils::InitRelayNetworkAccess() { CheckPingDataUpToDate( 1e10f ); }
|
||||
#endif
|
||||
|
||||
inline bool ISteamNetworkingUtils::SetGlobalConfigValueInt32( ESteamNetworkingConfigValue eValue, int32 val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Int32, &val ); }
|
||||
inline bool ISteamNetworkingUtils::SetGlobalConfigValueFloat( ESteamNetworkingConfigValue eValue, float val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Float, &val ); }
|
||||
inline bool ISteamNetworkingUtils::SetGlobalConfigValueString( ESteamNetworkingConfigValue eValue, const char *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_String, val ); }
|
||||
@@ -431,11 +432,27 @@ inline bool ISteamNetworkingUtils::SetConfigValueStruct( const SteamNetworkingCo
|
||||
return SetConfigValue( opt.m_eValue, eScopeType, scopeObj, opt.m_eDataType, pVal );
|
||||
}
|
||||
|
||||
#if !defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) && defined( STEAMNETWORKINGSOCKETS_STEAMCLIENT )
|
||||
inline void SteamNetworkingIPAddr::ToString( char *buf, size_t cbBuf, bool bWithPort ) const { SteamNetworkingUtils()->SteamNetworkingIPAddr_ToString( *this, buf, cbBuf, bWithPort ); }
|
||||
inline bool SteamNetworkingIPAddr::ParseString( const char *pszStr ) { return SteamNetworkingUtils()->SteamNetworkingIPAddr_ParseString( this, pszStr ); }
|
||||
inline void SteamNetworkingIdentity::ToString( char *buf, size_t cbBuf ) const { SteamNetworkingUtils()->SteamNetworkingIdentity_ToString( *this, buf, cbBuf ); }
|
||||
inline bool SteamNetworkingIdentity::ParseString( const char *pszStr ) { return SteamNetworkingUtils()->SteamNetworkingIdentity_ParseString( this, pszStr ); }
|
||||
// How to get helper functions.
|
||||
#if defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) || defined( STEAMNETWORKINGSOCKETS_STANDALONELIB )
|
||||
|
||||
// Call direct to static functions
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE void SteamNetworkingIPAddr_ToString( const SteamNetworkingIPAddr *pAddr, char *buf, size_t cbBuf, bool bWithPort );
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE bool SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr *pAddr, const char *pszStr );
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE void SteamNetworkingIdentity_ToString( const SteamNetworkingIdentity *pIdentity, char *buf, size_t cbBuf );
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE bool SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity *pIdentity, size_t sizeofIdentity, const char *pszStr );
|
||||
inline void SteamNetworkingIPAddr::ToString( char *buf, size_t cbBuf, bool bWithPort ) const { SteamNetworkingIPAddr_ToString( this, buf, cbBuf, bWithPort ); }
|
||||
inline bool SteamNetworkingIPAddr::ParseString( const char *pszStr ) { return SteamNetworkingIPAddr_ParseString( this, pszStr ); }
|
||||
inline void SteamNetworkingIdentity::ToString( char *buf, size_t cbBuf ) const { SteamNetworkingIdentity_ToString( this, buf, cbBuf ); }
|
||||
inline bool SteamNetworkingIdentity::ParseString( const char *pszStr ) { return SteamNetworkingIdentity_ParseString( this, sizeof(*this), pszStr ); }
|
||||
|
||||
#elif defined( STEAMNETWORKINGSOCKETS_STEAMAPI )
|
||||
// Using steamworks SDK - go through SteamNetworkingUtils()
|
||||
inline void SteamNetworkingIPAddr::ToString( char *buf, size_t cbBuf, bool bWithPort ) const { SteamNetworkingUtils()->SteamNetworkingIPAddr_ToString( *this, buf, cbBuf, bWithPort ); }
|
||||
inline bool SteamNetworkingIPAddr::ParseString( const char *pszStr ) { return SteamNetworkingUtils()->SteamNetworkingIPAddr_ParseString( this, pszStr ); }
|
||||
inline void SteamNetworkingIdentity::ToString( char *buf, size_t cbBuf ) const { SteamNetworkingUtils()->SteamNetworkingIdentity_ToString( *this, buf, cbBuf ); }
|
||||
inline bool SteamNetworkingIdentity::ParseString( const char *pszStr ) { return SteamNetworkingUtils()->SteamNetworkingIdentity_ParseString( this, pszStr ); }
|
||||
#else
|
||||
#error "Invalid config"
|
||||
#endif
|
||||
|
||||
#endif // ISTEAMNETWORKINGUTILS
|
||||
|
||||
@@ -241,7 +241,7 @@ class ISteamRemoteStorage
|
||||
// The following functions are only necessary on the Playstation 3. On PC & Mac, the Steam client will handle these operations for you
|
||||
// On Playstation 3, the game controls which files are stored in the cloud, via FilePersist, FileFetch, and FileForget.
|
||||
|
||||
#if defined(_PS3) || defined(_SERVER)
|
||||
#if defined(_SERVER)
|
||||
// Connect to Steam and get a list of files in the Cloud - results in a RemoteStorageAppSyncStatusCheck_t callback
|
||||
virtual void GetFileListFromServer() = 0;
|
||||
// Indicate this file should be downloaded in the next sync
|
||||
|
||||
@@ -220,6 +220,9 @@ public:
|
||||
|
||||
// Retrieve an individual result after receiving the callback for querying UGC
|
||||
virtual bool GetQueryUGCResult( UGCQueryHandle_t handle, uint32 index, SteamUGCDetails_t *pDetails ) = 0;
|
||||
virtual uint32 GetQueryUGCNumTags( UGCQueryHandle_t handle, uint32 index ) = 0;
|
||||
virtual bool GetQueryUGCTag( UGCQueryHandle_t handle, uint32 index, uint32 indexTag, STEAM_OUT_STRING_COUNT( cchValueSize ) char* pchValue, uint32 cchValueSize ) = 0;
|
||||
virtual bool GetQueryUGCTagDisplayName( UGCQueryHandle_t handle, uint32 index, uint32 indexTag, STEAM_OUT_STRING_COUNT( cchValueSize ) char* pchValue, uint32 cchValueSize ) = 0;
|
||||
virtual bool GetQueryUGCPreviewURL( UGCQueryHandle_t handle, uint32 index, STEAM_OUT_STRING_COUNT(cchURLSize) char *pchURL, uint32 cchURLSize ) = 0;
|
||||
virtual bool GetQueryUGCMetadata( UGCQueryHandle_t handle, uint32 index, STEAM_OUT_STRING_COUNT(cchMetadatasize) char *pchMetadata, uint32 cchMetadatasize ) = 0;
|
||||
virtual bool GetQueryUGCChildren( UGCQueryHandle_t handle, uint32 index, PublishedFileId_t* pvecPublishedFileID, uint32 cMaxEntries ) = 0;
|
||||
@@ -227,7 +230,6 @@ public:
|
||||
virtual uint32 GetQueryUGCNumAdditionalPreviews( UGCQueryHandle_t handle, uint32 index ) = 0;
|
||||
virtual bool GetQueryUGCAdditionalPreview( UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, STEAM_OUT_STRING_COUNT(cchURLSize) char *pchURLOrVideoID, uint32 cchURLSize, STEAM_OUT_STRING_COUNT(cchURLSize) char *pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType *pPreviewType ) = 0;
|
||||
virtual uint32 GetQueryUGCNumKeyValueTags( UGCQueryHandle_t handle, uint32 index ) = 0;
|
||||
|
||||
virtual bool GetQueryUGCKeyValueTag( UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, STEAM_OUT_STRING_COUNT(cchKeySize) char *pchKey, uint32 cchKeySize, STEAM_OUT_STRING_COUNT(cchValueSize) char *pchValue, uint32 cchValueSize ) = 0;
|
||||
|
||||
// Return the first value matching the pchKey. Note that a key may map to multiple values. Returns false if there was an error or no matching value was found.
|
||||
@@ -360,7 +362,7 @@ public:
|
||||
virtual SteamAPICall_t DeleteItem( PublishedFileId_t nPublishedFileID ) = 0;
|
||||
};
|
||||
|
||||
#define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION014"
|
||||
#define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION015"
|
||||
|
||||
// Global interface accessor
|
||||
inline ISteamUGC *SteamUGC();
|
||||
|
||||
@@ -86,8 +86,8 @@ public:
|
||||
// the destination buffer size should be 4 * height * width * sizeof(char)
|
||||
virtual bool GetImageRGBA( int iImage, uint8 *pubDest, int nDestBufferSize ) = 0;
|
||||
|
||||
// returns the IP of the reporting server for valve - currently only used in Source engine games
|
||||
virtual bool GetCSERIPPort( uint32 *unIP, uint16 *usPort ) = 0;
|
||||
// Deprecated. Do not call this.
|
||||
STEAM_PRIVATE_API( virtual bool GetCSERIPPort( uint32 *unIP, uint16 *usPort ) = 0; )
|
||||
|
||||
// return the amount of battery power left in the current system in % [0..100], 255 for being on AC power
|
||||
virtual uint8 GetCurrentBatteryPower() = 0;
|
||||
@@ -183,9 +183,12 @@ public:
|
||||
// Returns whether this steam client is a Steam China specific client, vs the global client.
|
||||
virtual bool IsSteamChinaLauncher() = 0;
|
||||
|
||||
// Initializes text filtering.
|
||||
// Initializes text filtering, loading dictionaries for the language the game is running in.
|
||||
// unFilterOptions are reserved for future use and should be set to 0
|
||||
// Returns false if filtering is unavailable for the language the user is currently running in.
|
||||
// Returns false if filtering is unavailable for the game's language, in which case FilterText() will act as a passthrough.
|
||||
//
|
||||
// Users can customize the text filter behavior in their Steam Account preferences:
|
||||
// https://store.steampowered.com/account/preferences#CommunityContentPreferences
|
||||
virtual bool InitFilterText( uint32 unFilterOptions = 0 ) = 0;
|
||||
|
||||
// Filters the provided input message and places the filtered result into pchOutFilteredText, using legally required filtering and additional filtering based on the context and user settings
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+241
-42
@@ -1891,13 +1891,6 @@
|
||||
{ "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Public", "consttype":"int", "constval":"4" },
|
||||
{ "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_All", "consttype":"int", "constval":"0x7fffffff" },
|
||||
{ "constname":"k_SteamDatagramPOPID_dev", "consttype":"SteamNetworkingPOPID", "constval":"( ( uint32 ) 'd' << 16U ) | ( ( uint32 ) 'e' << 8U ) | ( uint32 ) 'v'" },
|
||||
{ "constname":"k_unServerFlagNone", "consttype":"uint32", "constval":"0x00" },
|
||||
{ "constname":"k_unServerFlagActive", "consttype":"uint32", "constval":"0x01" },
|
||||
{ "constname":"k_unServerFlagSecure", "consttype":"uint32", "constval":"0x02" },
|
||||
{ "constname":"k_unServerFlagDedicated", "consttype":"uint32", "constval":"0x04" },
|
||||
{ "constname":"k_unServerFlagLinux", "consttype":"uint32", "constval":"0x08" },
|
||||
{ "constname":"k_unServerFlagPassworded", "consttype":"uint32", "constval":"0x10" },
|
||||
{ "constname":"k_unServerFlagPrivate", "consttype":"uint32", "constval":"0x20" },
|
||||
{ "constname":"k_cbSteamDatagramMaxSerializedTicket", "consttype":"uint32", "constval":"512" },
|
||||
{ "constname":"k_cbMaxSteamDatagramGameCoordinatorServerLoginAppData", "consttype":"uint32", "constval":"2048" },
|
||||
{ "constname":"k_cbMaxSteamDatagramGameCoordinatorServerLoginSerialized", "consttype":"uint32", "constval":"4096" }
|
||||
@@ -2039,7 +2032,10 @@
|
||||
{ "name":"k_EResultCantRemoveItem", "value":"113" },
|
||||
{ "name":"k_EResultAccountDeleted", "value":"114" },
|
||||
{ "name":"k_EResultExistingUserCancelledLicense", "value":"115" },
|
||||
{ "name":"k_EResultCommunityCooldown", "value":"116" }
|
||||
{ "name":"k_EResultCommunityCooldown", "value":"116" },
|
||||
{ "name":"k_EResultNoLauncherSpecified", "value":"117" },
|
||||
{ "name":"k_EResultMustAgreeToSSA", "value":"118" },
|
||||
{ "name":"k_EResultLauncherMigrated", "value":"119" }
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -2189,7 +2185,7 @@
|
||||
{ "name":"k_EAppType_Comic_UNUSED", "value":"32768" },
|
||||
{ "name":"k_EAppType_Beta", "value":"65536" },
|
||||
{ "name":"k_EAppType_Shortcut", "value":"1073741824" },
|
||||
{ "name":"k_EAppType_DepotOnly", "value":"-2147483648" }
|
||||
{ "name":"k_EAppType_DepotOnly_DEPRECATED", "value":"-2147483648" }
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -2344,6 +2340,7 @@
|
||||
{ "name":"k_eEVRHMDType_HP_Unknown", "value":"80" },
|
||||
{ "name":"k_eEVRHMDType_HP_WindowsMR", "value":"81" },
|
||||
{ "name":"k_eEVRHMDType_HP_Reverb", "value":"82" },
|
||||
{ "name":"k_eEVRHMDType_HP_ReverbG2", "value":"1463" },
|
||||
{ "name":"k_eEVRHMDType_Samsung_Unknown", "value":"90" },
|
||||
{ "name":"k_eEVRHMDType_Samsung_Odyssey", "value":"91" },
|
||||
{ "name":"k_eEVRHMDType_Unannounced_Unknown", "value":"100" },
|
||||
@@ -2790,10 +2787,10 @@
|
||||
"enumname": "EP2PSessionError",
|
||||
"values": [
|
||||
{ "name":"k_EP2PSessionErrorNone", "value":"0" },
|
||||
{ "name":"k_EP2PSessionErrorNotRunningApp", "value":"1" },
|
||||
{ "name":"k_EP2PSessionErrorNoRightsToApp", "value":"2" },
|
||||
{ "name":"k_EP2PSessionErrorDestinationNotLoggedIn", "value":"3" },
|
||||
{ "name":"k_EP2PSessionErrorTimeout", "value":"4" },
|
||||
{ "name":"k_EP2PSessionErrorNotRunningApp_DELETED", "value":"1" },
|
||||
{ "name":"k_EP2PSessionErrorDestinationNotLoggedIn_DELETED", "value":"3" },
|
||||
{ "name":"k_EP2PSessionErrorMax", "value":"5" }
|
||||
]
|
||||
},
|
||||
@@ -3196,7 +3193,82 @@
|
||||
{ "name":"k_EInputActionOrigin_Switch_Reserved18", "value":"255" },
|
||||
{ "name":"k_EInputActionOrigin_Switch_Reserved19", "value":"256" },
|
||||
{ "name":"k_EInputActionOrigin_Switch_Reserved20", "value":"257" },
|
||||
{ "name":"k_EInputActionOrigin_Count", "value":"258" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_X", "value":"258" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Circle", "value":"259" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Triangle", "value":"260" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Square", "value":"261" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_LeftBumper", "value":"262" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_RightBumper", "value":"263" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Option", "value":"264" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Create", "value":"265" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Mute", "value":"266" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_LeftPad_Touch", "value":"267" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_LeftPad_Swipe", "value":"268" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_LeftPad_Click", "value":"269" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_LeftPad_DPadNorth", "value":"270" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_LeftPad_DPadSouth", "value":"271" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_LeftPad_DPadWest", "value":"272" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_LeftPad_DPadEast", "value":"273" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_RightPad_Touch", "value":"274" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_RightPad_Swipe", "value":"275" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_RightPad_Click", "value":"276" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_RightPad_DPadNorth", "value":"277" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_RightPad_DPadSouth", "value":"278" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_RightPad_DPadWest", "value":"279" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_RightPad_DPadEast", "value":"280" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_CenterPad_Touch", "value":"281" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_CenterPad_Swipe", "value":"282" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_CenterPad_Click", "value":"283" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_CenterPad_DPadNorth", "value":"284" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_CenterPad_DPadSouth", "value":"285" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_CenterPad_DPadWest", "value":"286" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_CenterPad_DPadEast", "value":"287" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_LeftTrigger_Pull", "value":"288" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_LeftTrigger_Click", "value":"289" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_RightTrigger_Pull", "value":"290" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_RightTrigger_Click", "value":"291" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_LeftStick_Move", "value":"292" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_LeftStick_Click", "value":"293" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_LeftStick_DPadNorth", "value":"294" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_LeftStick_DPadSouth", "value":"295" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_LeftStick_DPadWest", "value":"296" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_LeftStick_DPadEast", "value":"297" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_RightStick_Move", "value":"298" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_RightStick_Click", "value":"299" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_RightStick_DPadNorth", "value":"300" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_RightStick_DPadSouth", "value":"301" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_RightStick_DPadWest", "value":"302" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_RightStick_DPadEast", "value":"303" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_DPad_North", "value":"304" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_DPad_South", "value":"305" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_DPad_West", "value":"306" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_DPad_East", "value":"307" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Gyro_Move", "value":"308" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Gyro_Pitch", "value":"309" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Gyro_Yaw", "value":"310" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Gyro_Roll", "value":"311" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_DPad_Move", "value":"312" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved1", "value":"313" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved2", "value":"314" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved3", "value":"315" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved4", "value":"316" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved5", "value":"317" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved6", "value":"318" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved7", "value":"319" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved8", "value":"320" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved9", "value":"321" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved10", "value":"322" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved11", "value":"323" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved12", "value":"324" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved13", "value":"325" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved14", "value":"326" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved15", "value":"327" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved16", "value":"328" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved17", "value":"329" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved18", "value":"330" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved19", "value":"331" },
|
||||
{ "name":"k_EInputActionOrigin_PS5_Reserved20", "value":"332" },
|
||||
{ "name":"k_EInputActionOrigin_Count", "value":"333" },
|
||||
{ "name":"k_EInputActionOrigin_MaximumPossibleValue", "value":"32767" }
|
||||
]
|
||||
},
|
||||
@@ -3257,7 +3329,8 @@
|
||||
{ "name":"k_ESteamInputType_SwitchProController", "value":"10" },
|
||||
{ "name":"k_ESteamInputType_MobileTouch", "value":"11" },
|
||||
{ "name":"k_ESteamInputType_PS3Controller", "value":"12" },
|
||||
{ "name":"k_ESteamInputType_Count", "value":"13" },
|
||||
{ "name":"k_ESteamInputType_PS5Controller", "value":"13" },
|
||||
{ "name":"k_ESteamInputType_Count", "value":"14" },
|
||||
{ "name":"k_ESteamInputType_MaximumPossibleValue", "value":"255" }
|
||||
]
|
||||
},
|
||||
@@ -3516,7 +3589,62 @@
|
||||
{ "name":"k_EControllerActionOrigin_XBoxOne_DPad_Move", "value":"242" },
|
||||
{ "name":"k_EControllerActionOrigin_XBox360_DPad_Move", "value":"243" },
|
||||
{ "name":"k_EControllerActionOrigin_Switch_DPad_Move", "value":"244" },
|
||||
{ "name":"k_EControllerActionOrigin_Count", "value":"245" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_X", "value":"245" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_Circle", "value":"246" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_Triangle", "value":"247" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_Square", "value":"248" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_LeftBumper", "value":"249" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_RightBumper", "value":"250" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_Option", "value":"251" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_Create", "value":"252" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_Mute", "value":"253" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_LeftPad_Touch", "value":"254" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_LeftPad_Swipe", "value":"255" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_LeftPad_Click", "value":"256" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_LeftPad_DPadNorth", "value":"257" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_LeftPad_DPadSouth", "value":"258" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_LeftPad_DPadWest", "value":"259" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_LeftPad_DPadEast", "value":"260" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_RightPad_Touch", "value":"261" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_RightPad_Swipe", "value":"262" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_RightPad_Click", "value":"263" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_RightPad_DPadNorth", "value":"264" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_RightPad_DPadSouth", "value":"265" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_RightPad_DPadWest", "value":"266" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_RightPad_DPadEast", "value":"267" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_CenterPad_Touch", "value":"268" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_CenterPad_Swipe", "value":"269" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_CenterPad_Click", "value":"270" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_CenterPad_DPadNorth", "value":"271" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_CenterPad_DPadSouth", "value":"272" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_CenterPad_DPadWest", "value":"273" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_CenterPad_DPadEast", "value":"274" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_LeftTrigger_Pull", "value":"275" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_LeftTrigger_Click", "value":"276" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_RightTrigger_Pull", "value":"277" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_RightTrigger_Click", "value":"278" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_LeftStick_Move", "value":"279" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_LeftStick_Click", "value":"280" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_LeftStick_DPadNorth", "value":"281" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_LeftStick_DPadSouth", "value":"282" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_LeftStick_DPadWest", "value":"283" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_LeftStick_DPadEast", "value":"284" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_RightStick_Move", "value":"285" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_RightStick_Click", "value":"286" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_RightStick_DPadNorth", "value":"287" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_RightStick_DPadSouth", "value":"288" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_RightStick_DPadWest", "value":"289" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_RightStick_DPadEast", "value":"290" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_DPad_Move", "value":"291" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_DPad_North", "value":"292" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_DPad_South", "value":"293" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_DPad_West", "value":"294" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_DPad_East", "value":"295" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_Gyro_Move", "value":"296" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_Gyro_Pitch", "value":"297" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_Gyro_Yaw", "value":"298" },
|
||||
{ "name":"k_EControllerActionOrigin_PS5_Gyro_Roll", "value":"299" },
|
||||
{ "name":"k_EControllerActionOrigin_Count", "value":"300" },
|
||||
{ "name":"k_EControllerActionOrigin_MaximumPossibleValue", "value":"32767" }
|
||||
]
|
||||
},
|
||||
@@ -3707,6 +3835,8 @@
|
||||
{ "name":"k_ESteamNetworkingIdentityType_Invalid", "value":"0" },
|
||||
{ "name":"k_ESteamNetworkingIdentityType_SteamID", "value":"16" },
|
||||
{ "name":"k_ESteamNetworkingIdentityType_XboxPairwiseID", "value":"17" },
|
||||
{ "name":"k_ESteamNetworkingIdentityType_SonyPSN", "value":"18" },
|
||||
{ "name":"k_ESteamNetworkingIdentityType_GoogleStadia", "value":"19" },
|
||||
{ "name":"k_ESteamNetworkingIdentityType_IPAddress", "value":"1" },
|
||||
{ "name":"k_ESteamNetworkingIdentityType_GenericString", "value":"2" },
|
||||
{ "name":"k_ESteamNetworkingIdentityType_GenericBytes", "value":"3" },
|
||||
@@ -3837,6 +3967,7 @@
|
||||
{ "name":"k_ESteamNetworkingConfig_Callback_RelayNetworkStatusChanged", "value":"203" },
|
||||
{ "name":"k_ESteamNetworkingConfig_Callback_MessagesSessionRequest", "value":"204" },
|
||||
{ "name":"k_ESteamNetworkingConfig_Callback_MessagesSessionFailed", "value":"205" },
|
||||
{ "name":"k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling", "value":"206" },
|
||||
{ "name":"k_ESteamNetworkingConfig_P2P_STUN_ServerList", "value":"103" },
|
||||
{ "name":"k_ESteamNetworkingConfig_P2P_Transport_ICE_Enable", "value":"104" },
|
||||
{ "name":"k_ESteamNetworkingConfig_P2P_Transport_ICE_Penalty", "value":"105" },
|
||||
@@ -5180,6 +5311,14 @@
|
||||
{ "paramname":"pchProtocol", "paramtype":"const char *" }
|
||||
],
|
||||
"returntype": "bool"
|
||||
},
|
||||
{
|
||||
"methodname": "ActivateGameOverlayInviteDialogConnectString",
|
||||
"methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialogConnectString",
|
||||
"params": [
|
||||
{ "paramname":"pchConnectString", "paramtype":"const char *" }
|
||||
],
|
||||
"returntype": "void"
|
||||
}
|
||||
],
|
||||
"version_string": "SteamFriends017"
|
||||
@@ -5250,15 +5389,6 @@
|
||||
],
|
||||
"returntype": "bool"
|
||||
},
|
||||
{
|
||||
"methodname": "GetCSERIPPort",
|
||||
"methodname_flat": "SteamAPI_ISteamUtils_GetCSERIPPort",
|
||||
"params": [
|
||||
{ "paramname":"unIP", "paramtype":"uint32 *" },
|
||||
{ "paramname":"usPort", "paramtype":"uint16 *" }
|
||||
],
|
||||
"returntype": "bool"
|
||||
},
|
||||
{
|
||||
"methodname": "GetCurrentBatteryPower",
|
||||
"methodname_flat": "SteamAPI_ISteamUtils_GetCurrentBatteryPower",
|
||||
@@ -8538,7 +8668,7 @@
|
||||
{
|
||||
"kind": "user",
|
||||
"name": "SteamInput",
|
||||
"name_flat": "SteamAPI_SteamInput_v001"
|
||||
"name_flat": "SteamAPI_SteamInput_v002"
|
||||
}
|
||||
],
|
||||
"classname": "ISteamInput",
|
||||
@@ -8869,14 +8999,14 @@
|
||||
"returntype": "uint32"
|
||||
}
|
||||
],
|
||||
"version_string": "SteamInput001"
|
||||
"version_string": "SteamInput002"
|
||||
},
|
||||
{
|
||||
"accessors": [
|
||||
{
|
||||
"kind": "user",
|
||||
"name": "SteamController",
|
||||
"name_flat": "SteamAPI_SteamController_v007"
|
||||
"name_flat": "SteamAPI_SteamController_v008"
|
||||
}
|
||||
],
|
||||
"classname": "ISteamController",
|
||||
@@ -9199,19 +9329,19 @@
|
||||
"returntype": "bool"
|
||||
}
|
||||
],
|
||||
"version_string": "SteamController007"
|
||||
"version_string": "SteamController008"
|
||||
},
|
||||
{
|
||||
"accessors": [
|
||||
{
|
||||
"kind": "user",
|
||||
"name": "SteamUGC",
|
||||
"name_flat": "SteamAPI_SteamUGC_v014"
|
||||
"name_flat": "SteamAPI_SteamUGC_v015"
|
||||
},
|
||||
{
|
||||
"kind": "gameserver",
|
||||
"name": "SteamGameServerUGC",
|
||||
"name_flat": "SteamAPI_SteamGameServerUGC_v014"
|
||||
"name_flat": "SteamAPI_SteamGameServerUGC_v015"
|
||||
}
|
||||
],
|
||||
"classname": "ISteamUGC",
|
||||
@@ -9283,6 +9413,47 @@
|
||||
],
|
||||
"returntype": "bool"
|
||||
},
|
||||
{
|
||||
"methodname": "GetQueryUGCNumTags",
|
||||
"methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCNumTags",
|
||||
"params": [
|
||||
{ "paramname":"handle", "paramtype":"UGCQueryHandle_t" },
|
||||
{ "paramname":"index", "paramtype":"uint32" }
|
||||
],
|
||||
"returntype": "uint32"
|
||||
},
|
||||
{
|
||||
"methodname": "GetQueryUGCTag",
|
||||
"methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCTag",
|
||||
"params": [
|
||||
{ "paramname":"handle", "paramtype":"UGCQueryHandle_t" },
|
||||
{ "paramname":"index", "paramtype":"uint32" },
|
||||
{ "paramname":"indexTag", "paramtype":"uint32" },
|
||||
{
|
||||
"out_string_count": "cchValueSize",
|
||||
"paramname": "pchValue",
|
||||
"paramtype": "char *"
|
||||
},
|
||||
{ "paramname":"cchValueSize", "paramtype":"uint32" }
|
||||
],
|
||||
"returntype": "bool"
|
||||
},
|
||||
{
|
||||
"methodname": "GetQueryUGCTagDisplayName",
|
||||
"methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCTagDisplayName",
|
||||
"params": [
|
||||
{ "paramname":"handle", "paramtype":"UGCQueryHandle_t" },
|
||||
{ "paramname":"index", "paramtype":"uint32" },
|
||||
{ "paramname":"indexTag", "paramtype":"uint32" },
|
||||
{
|
||||
"out_string_count": "cchValueSize",
|
||||
"paramname": "pchValue",
|
||||
"paramtype": "char *"
|
||||
},
|
||||
{ "paramname":"cchValueSize", "paramtype":"uint32" }
|
||||
],
|
||||
"returntype": "bool"
|
||||
},
|
||||
{
|
||||
"methodname": "GetQueryUGCPreviewURL",
|
||||
"methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCPreviewURL",
|
||||
@@ -10008,7 +10179,7 @@
|
||||
"returntype": "SteamAPICall_t"
|
||||
}
|
||||
],
|
||||
"version_string": "STEAMUGC_INTERFACE_VERSION014"
|
||||
"version_string": "STEAMUGC_INTERFACE_VERSION015"
|
||||
},
|
||||
{
|
||||
"accessors": [
|
||||
@@ -11183,13 +11354,13 @@
|
||||
"accessors": [
|
||||
{
|
||||
"kind": "user",
|
||||
"name": "SteamNetworkingMessages",
|
||||
"name_flat": "SteamAPI_SteamNetworkingMessages_v002"
|
||||
"name": "SteamNetworkingMessages_SteamAPI",
|
||||
"name_flat": "SteamAPI_SteamNetworkingMessages_SteamAPI_v002"
|
||||
},
|
||||
{
|
||||
"kind": "gameserver",
|
||||
"name": "SteamGameServerNetworkingMessages",
|
||||
"name_flat": "SteamAPI_SteamGameServerNetworkingMessages_v002"
|
||||
"name": "SteamGameServerNetworkingMessages_SteamAPI",
|
||||
"name_flat": "SteamAPI_SteamGameServerNetworkingMessages_SteamAPI_v002"
|
||||
}
|
||||
],
|
||||
"classname": "ISteamNetworkingMessages",
|
||||
@@ -11259,13 +11430,13 @@
|
||||
"accessors": [
|
||||
{
|
||||
"kind": "user",
|
||||
"name": "SteamNetworkingSockets",
|
||||
"name_flat": "SteamAPI_SteamNetworkingSockets_v009"
|
||||
"name": "SteamNetworkingSockets_SteamAPI",
|
||||
"name_flat": "SteamAPI_SteamNetworkingSockets_SteamAPI_v009"
|
||||
},
|
||||
{
|
||||
"kind": "gameserver",
|
||||
"name": "SteamGameServerNetworkingSockets",
|
||||
"name_flat": "SteamAPI_SteamGameServerNetworkingSockets_v009"
|
||||
"name": "SteamGameServerNetworkingSockets_SteamAPI",
|
||||
"name_flat": "SteamAPI_SteamGameServerNetworkingSockets_SteamAPI_v009"
|
||||
}
|
||||
],
|
||||
"classname": "ISteamNetworkingSockets",
|
||||
@@ -11594,7 +11765,7 @@
|
||||
"methodname": "ConnectP2PCustomSignaling",
|
||||
"methodname_flat": "SteamAPI_ISteamNetworkingSockets_ConnectP2PCustomSignaling",
|
||||
"params": [
|
||||
{ "paramname":"pSignaling", "paramtype":"ISteamNetworkingConnectionCustomSignaling *" },
|
||||
{ "paramname":"pSignaling", "paramtype":"ISteamNetworkingConnectionSignaling *" },
|
||||
{ "paramname":"pPeerIdentity", "paramtype":"const SteamNetworkingIdentity *" },
|
||||
{ "paramname":"nRemoteVirtualPort", "paramtype":"int" },
|
||||
{ "paramname":"nOptions", "paramtype":"int" },
|
||||
@@ -11608,7 +11779,7 @@
|
||||
"params": [
|
||||
{ "paramname":"pMsg", "paramtype":"const void *" },
|
||||
{ "paramname":"cbMsg", "paramtype":"int" },
|
||||
{ "paramname":"pContext", "paramtype":"ISteamNetworkingCustomSignalingRecvContext *" }
|
||||
{ "paramname":"pContext", "paramtype":"ISteamNetworkingSignalingRecvContext *" }
|
||||
],
|
||||
"returntype": "bool"
|
||||
},
|
||||
@@ -11645,8 +11816,8 @@
|
||||
"accessors": [
|
||||
{
|
||||
"kind": "global",
|
||||
"name": "SteamNetworkingUtils",
|
||||
"name_flat": "SteamAPI_SteamNetworkingUtils_v003"
|
||||
"name": "SteamNetworkingUtils_SteamAPI",
|
||||
"name_flat": "SteamAPI_SteamNetworkingUtils_SteamAPI_v003"
|
||||
}
|
||||
],
|
||||
"classname": "ISteamNetworkingUtils",
|
||||
@@ -12911,6 +13082,34 @@
|
||||
"params": [],
|
||||
"returntype": "const char *"
|
||||
},
|
||||
{
|
||||
"methodname": "SetPSNID",
|
||||
"methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetPSNID",
|
||||
"params": [
|
||||
{ "paramname":"id", "paramtype":"uint64" }
|
||||
],
|
||||
"returntype": "void"
|
||||
},
|
||||
{
|
||||
"methodname": "GetPSNID",
|
||||
"methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetPSNID",
|
||||
"params": [],
|
||||
"returntype": "uint64"
|
||||
},
|
||||
{
|
||||
"methodname": "SetStadiaID",
|
||||
"methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetStadiaID",
|
||||
"params": [
|
||||
{ "paramname":"id", "paramtype":"uint64" }
|
||||
],
|
||||
"returntype": "void"
|
||||
},
|
||||
{
|
||||
"methodname": "GetStadiaID",
|
||||
"methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetStadiaID",
|
||||
"params": [],
|
||||
"returntype": "uint64"
|
||||
},
|
||||
{
|
||||
"methodname": "SetIPAddr",
|
||||
"methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetIPAddr",
|
||||
|
||||
@@ -167,6 +167,7 @@ S_API bool SteamAPI_ISteamFriends_IsClanOfficialGameGroup( ISteamFriends* self,
|
||||
S_API int SteamAPI_ISteamFriends_GetNumChatsWithUnreadPriorityMessages( ISteamFriends* self );
|
||||
S_API void SteamAPI_ISteamFriends_ActivateGameOverlayRemotePlayTogetherInviteDialog( ISteamFriends* self, uint64_steamid steamIDLobby );
|
||||
S_API bool SteamAPI_ISteamFriends_RegisterProtocolInOverlayBrowser( ISteamFriends* self, const char * pchProtocol );
|
||||
S_API void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialogConnectString( ISteamFriends* self, const char * pchConnectString );
|
||||
|
||||
// ISteamUtils
|
||||
S_API ISteamUtils *SteamAPI_SteamUtils_v010();
|
||||
@@ -178,7 +179,6 @@ S_API uint32 SteamAPI_ISteamUtils_GetServerRealTime( ISteamUtils* self );
|
||||
S_API const char * SteamAPI_ISteamUtils_GetIPCountry( ISteamUtils* self );
|
||||
S_API bool SteamAPI_ISteamUtils_GetImageSize( ISteamUtils* self, int iImage, uint32 * pnWidth, uint32 * pnHeight );
|
||||
S_API bool SteamAPI_ISteamUtils_GetImageRGBA( ISteamUtils* self, int iImage, uint8 * pubDest, int nDestBufferSize );
|
||||
S_API bool SteamAPI_ISteamUtils_GetCSERIPPort( ISteamUtils* self, uint32 * unIP, uint16 * usPort );
|
||||
S_API uint8 SteamAPI_ISteamUtils_GetCurrentBatteryPower( ISteamUtils* self );
|
||||
S_API uint32 SteamAPI_ISteamUtils_GetAppID( ISteamUtils* self );
|
||||
S_API void SteamAPI_ISteamUtils_SetOverlayNotificationPosition( ISteamUtils* self, ENotificationPosition eNotificationPosition );
|
||||
@@ -571,7 +571,7 @@ S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS( ISteamHTTP* self
|
||||
S_API bool SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut( ISteamHTTP* self, HTTPRequestHandle hRequest, bool * pbWasTimedOut );
|
||||
|
||||
// ISteamInput
|
||||
S_API ISteamInput *SteamAPI_SteamInput_v001();
|
||||
S_API ISteamInput *SteamAPI_SteamInput_v002();
|
||||
S_API bool SteamAPI_ISteamInput_Init( ISteamInput* self );
|
||||
S_API bool SteamAPI_ISteamInput_Shutdown( ISteamInput* self );
|
||||
S_API void SteamAPI_ISteamInput_RunFrame( ISteamInput* self );
|
||||
@@ -609,7 +609,7 @@ S_API bool SteamAPI_ISteamInput_GetDeviceBindingRevision( ISteamInput* self, Inp
|
||||
S_API uint32 SteamAPI_ISteamInput_GetRemotePlaySessionID( ISteamInput* self, InputHandle_t inputHandle );
|
||||
|
||||
// ISteamController
|
||||
S_API ISteamController *SteamAPI_SteamController_v007();
|
||||
S_API ISteamController *SteamAPI_SteamController_v008();
|
||||
S_API bool SteamAPI_ISteamController_Init( ISteamController* self );
|
||||
S_API bool SteamAPI_ISteamController_Shutdown( ISteamController* self );
|
||||
S_API void SteamAPI_ISteamController_RunFrame( ISteamController* self );
|
||||
@@ -646,14 +646,17 @@ S_API EControllerActionOrigin SteamAPI_ISteamController_TranslateActionOrigin( I
|
||||
S_API bool SteamAPI_ISteamController_GetControllerBindingRevision( ISteamController* self, ControllerHandle_t controllerHandle, int * pMajor, int * pMinor );
|
||||
|
||||
// ISteamUGC
|
||||
S_API ISteamUGC *SteamAPI_SteamUGC_v014();
|
||||
S_API ISteamUGC *SteamAPI_SteamGameServerUGC_v014();
|
||||
S_API ISteamUGC *SteamAPI_SteamUGC_v015();
|
||||
S_API ISteamUGC *SteamAPI_SteamGameServerUGC_v015();
|
||||
S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUserUGCRequest( ISteamUGC* self, AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage );
|
||||
S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryAllUGCRequestPage( ISteamUGC* self, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage );
|
||||
S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryAllUGCRequestCursor( ISteamUGC* self, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, const char * pchCursor );
|
||||
S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs );
|
||||
S_API SteamAPICall_t SteamAPI_ISteamUGC_SendQueryUGCRequest( ISteamUGC* self, UGCQueryHandle_t handle );
|
||||
S_API bool SteamAPI_ISteamUGC_GetQueryUGCResult( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, SteamUGCDetails_t * pDetails );
|
||||
S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumTags( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index );
|
||||
S_API bool SteamAPI_ISteamUGC_GetQueryUGCTag( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 indexTag, char * pchValue, uint32 cchValueSize );
|
||||
S_API bool SteamAPI_ISteamUGC_GetQueryUGCTagDisplayName( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 indexTag, char * pchValue, uint32 cchValueSize );
|
||||
S_API bool SteamAPI_ISteamUGC_GetQueryUGCPreviewURL( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, char * pchURL, uint32 cchURLSize );
|
||||
S_API bool SteamAPI_ISteamUGC_GetQueryUGCMetadata( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, char * pchMetadata, uint32 cchMetadatasize );
|
||||
S_API bool SteamAPI_ISteamUGC_GetQueryUGCChildren( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, PublishedFileId_t * pvecPublishedFileID, uint32 cMaxEntries );
|
||||
@@ -845,8 +848,8 @@ S_API bool SteamAPI_ISteamRemotePlay_BGetSessionClientResolution( ISteamRemotePl
|
||||
S_API bool SteamAPI_ISteamRemotePlay_BSendRemotePlayTogetherInvite( ISteamRemotePlay* self, uint64_steamid steamIDFriend );
|
||||
|
||||
// ISteamNetworkingMessages
|
||||
S_API ISteamNetworkingMessages *SteamAPI_SteamNetworkingMessages_v002();
|
||||
S_API ISteamNetworkingMessages *SteamAPI_SteamGameServerNetworkingMessages_v002();
|
||||
S_API ISteamNetworkingMessages *SteamAPI_SteamNetworkingMessages_SteamAPI_v002();
|
||||
S_API ISteamNetworkingMessages *SteamAPI_SteamGameServerNetworkingMessages_SteamAPI_v002();
|
||||
S_API EResult SteamAPI_ISteamNetworkingMessages_SendMessageToUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote, const void * pubData, uint32 cubData, int nSendFlags, int nRemoteChannel );
|
||||
S_API int SteamAPI_ISteamNetworkingMessages_ReceiveMessagesOnChannel( ISteamNetworkingMessages* self, int nLocalChannel, SteamNetworkingMessage_t ** ppOutMessages, int nMaxMessages );
|
||||
S_API bool SteamAPI_ISteamNetworkingMessages_AcceptSessionWithUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote );
|
||||
@@ -855,8 +858,8 @@ S_API bool SteamAPI_ISteamNetworkingMessages_CloseChannelWithUser( ISteamNetwork
|
||||
S_API ESteamNetworkingConnectionState SteamAPI_ISteamNetworkingMessages_GetSessionConnectionInfo( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote, SteamNetConnectionInfo_t * pConnectionInfo, SteamNetworkingQuickConnectionStatus * pQuickStatus );
|
||||
|
||||
// ISteamNetworkingSockets
|
||||
S_API ISteamNetworkingSockets *SteamAPI_SteamNetworkingSockets_v009();
|
||||
S_API ISteamNetworkingSockets *SteamAPI_SteamGameServerNetworkingSockets_v009();
|
||||
S_API ISteamNetworkingSockets *SteamAPI_SteamNetworkingSockets_SteamAPI_v009();
|
||||
S_API ISteamNetworkingSockets *SteamAPI_SteamGameServerNetworkingSockets_SteamAPI_v009();
|
||||
S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateListenSocketIP( ISteamNetworkingSockets* self, const SteamNetworkingIPAddr & localAddress, int nOptions, const SteamNetworkingConfigValue_t * pOptions );
|
||||
S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectByIPAddress( ISteamNetworkingSockets* self, const SteamNetworkingIPAddr & address, int nOptions, const SteamNetworkingConfigValue_t * pOptions );
|
||||
S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2P( ISteamNetworkingSockets* self, int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions );
|
||||
@@ -892,14 +895,14 @@ S_API SteamNetworkingPOPID SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedSe
|
||||
S_API EResult SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerAddress( ISteamNetworkingSockets* self, SteamDatagramHostedAddress * pRouting );
|
||||
S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateHostedDedicatedServerListenSocket( ISteamNetworkingSockets* self, int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions );
|
||||
S_API EResult SteamAPI_ISteamNetworkingSockets_GetGameCoordinatorServerLogin( ISteamNetworkingSockets* self, SteamDatagramGameCoordinatorServerLogin * pLoginInfo, int * pcbSignedBlob, void * pBlob );
|
||||
S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectP2PCustomSignaling( ISteamNetworkingSockets* self, ISteamNetworkingConnectionCustomSignaling * pSignaling, const SteamNetworkingIdentity * pPeerIdentity, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions );
|
||||
S_API bool SteamAPI_ISteamNetworkingSockets_ReceivedP2PCustomSignal( ISteamNetworkingSockets* self, const void * pMsg, int cbMsg, ISteamNetworkingCustomSignalingRecvContext * pContext );
|
||||
S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectP2PCustomSignaling( ISteamNetworkingSockets* self, ISteamNetworkingConnectionSignaling * pSignaling, const SteamNetworkingIdentity * pPeerIdentity, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions );
|
||||
S_API bool SteamAPI_ISteamNetworkingSockets_ReceivedP2PCustomSignal( ISteamNetworkingSockets* self, const void * pMsg, int cbMsg, ISteamNetworkingSignalingRecvContext * pContext );
|
||||
S_API bool SteamAPI_ISteamNetworkingSockets_GetCertificateRequest( ISteamNetworkingSockets* self, int * pcbBlob, void * pBlob, SteamNetworkingErrMsg & errMsg );
|
||||
S_API bool SteamAPI_ISteamNetworkingSockets_SetCertificate( ISteamNetworkingSockets* self, const void * pCertificate, int cbCertificate, SteamNetworkingErrMsg & errMsg );
|
||||
S_API void SteamAPI_ISteamNetworkingSockets_RunCallbacks( ISteamNetworkingSockets* self );
|
||||
|
||||
// ISteamNetworkingUtils
|
||||
S_API ISteamNetworkingUtils *SteamAPI_SteamNetworkingUtils_v003();
|
||||
S_API ISteamNetworkingUtils *SteamAPI_SteamNetworkingUtils_SteamAPI_v003();
|
||||
S_API SteamNetworkingMessage_t * SteamAPI_ISteamNetworkingUtils_AllocateMessage( ISteamNetworkingUtils* self, int cbAllocateBuffer );
|
||||
S_API void SteamAPI_ISteamNetworkingUtils_InitRelayNetworkAccess( ISteamNetworkingUtils* self );
|
||||
S_API ESteamNetworkingAvailability SteamAPI_ISteamNetworkingUtils_GetRelayNetworkStatus( ISteamNetworkingUtils* self, SteamRelayNetworkStatus_t * pDetails );
|
||||
@@ -1043,6 +1046,10 @@ S_API void SteamAPI_SteamNetworkingIdentity_SetSteamID64( SteamNetworkingIdentit
|
||||
S_API uint64 SteamAPI_SteamNetworkingIdentity_GetSteamID64( SteamNetworkingIdentity* self );
|
||||
S_API bool SteamAPI_SteamNetworkingIdentity_SetXboxPairwiseID( SteamNetworkingIdentity* self, const char * pszString );
|
||||
S_API const char * SteamAPI_SteamNetworkingIdentity_GetXboxPairwiseID( SteamNetworkingIdentity* self );
|
||||
S_API void SteamAPI_SteamNetworkingIdentity_SetPSNID( SteamNetworkingIdentity* self, uint64 id );
|
||||
S_API uint64 SteamAPI_SteamNetworkingIdentity_GetPSNID( SteamNetworkingIdentity* self );
|
||||
S_API void SteamAPI_SteamNetworkingIdentity_SetStadiaID( SteamNetworkingIdentity* self, uint64 id );
|
||||
S_API uint64 SteamAPI_SteamNetworkingIdentity_GetStadiaID( SteamNetworkingIdentity* self );
|
||||
S_API void SteamAPI_SteamNetworkingIdentity_SetIPAddr( SteamNetworkingIdentity* self, const SteamNetworkingIPAddr & addr );
|
||||
S_API const SteamNetworkingIPAddr * SteamAPI_SteamNetworkingIdentity_GetIPAddr( SteamNetworkingIdentity* self );
|
||||
S_API void SteamAPI_SteamNetworkingIdentity_SetLocalHost( SteamNetworkingIdentity* self );
|
||||
|
||||
@@ -22,25 +22,29 @@ enum EServerMode
|
||||
eServerModeAuthenticationAndSecure = 3, // Authenticate users, list on the server list and VAC protect clients
|
||||
};
|
||||
|
||||
/// Pass to SteamGameServer_Init to indicate that the same UDP port will be used for game traffic
|
||||
/// UDP queries. In this case, Steam will not open up a socket to handle server browser queries,
|
||||
/// and you must use ISteamGameServer::HandleIncomingPacket and ISteamGameServer::GetNextOutgoingPacket
|
||||
/// to handle packets related to server discovery on your socket.
|
||||
#define MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE ((uint16)-1)
|
||||
|
||||
// Initialize SteamGameServer client and interface objects, and set server properties which may not be changed.
|
||||
//
|
||||
// After calling this function, you should set any additional server parameters, and then
|
||||
// call ISteamGameServer::LogOnAnonymous() or ISteamGameServer::LogOn()
|
||||
//
|
||||
// - usSteamPort is the local port used to communicate with the steam servers.
|
||||
// NOTE: unless you are using ver old Steam client binaries, this parameter is ignored, and
|
||||
// you should pass 0. Gameservers now always use WebSockets to talk to Steam.
|
||||
// This protocol is TCP-based and thus always uses an ephemeral local port.
|
||||
// Older steam client binaries used UDP to talk to Steam, and this argument was useful.
|
||||
// A future version of the SDK will remove this argument.
|
||||
// - usGamePort is the port that clients will connect to for gameplay.
|
||||
// - unIP will usually be zero. If you are on a machine with multiple IP addresses, you can pass a non-zero
|
||||
// value here and the relevant sockets will be bound to that IP. This can be used to ensure that
|
||||
// the IP you desire is the one used in the server browser.
|
||||
// - usGamePort is the port that clients will connect to for gameplay. You will usually open up your
|
||||
// own socket bound to this port.
|
||||
// - usQueryPort is the port that will manage server browser related duties and info
|
||||
// pings from clients. If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE for usQueryPort, then it
|
||||
// will use "GameSocketShare" mode, which means that the game is responsible for sending and receiving
|
||||
// UDP packets for the master server updater. See references to GameSocketShare in isteamgameserver.h.
|
||||
// - The version string is usually in the form x.x.x.x, and is used by the master server to detect when the
|
||||
// - The version string should be in the form x.x.x.x, and is used by the master server to detect when the
|
||||
// server is out of date. (Only servers with the latest version will be listed.)
|
||||
inline bool SteamGameServer_Init( uint32 unIP, uint16 usSteamPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString );
|
||||
inline bool SteamGameServer_Init( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString );
|
||||
|
||||
// Shutdown SteamGameSeverXxx interfaces, log out, and free resources.
|
||||
S_API void SteamGameServer_Shutdown();
|
||||
@@ -94,10 +98,10 @@ inline bool CSteamGameServerAPIContext::Init()
|
||||
}
|
||||
#endif
|
||||
|
||||
S_API bool S_CALLTYPE SteamInternal_GameServer_Init( uint32 unIP, uint16 usPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString );
|
||||
inline bool SteamGameServer_Init( uint32 unIP, uint16 usSteamPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString )
|
||||
S_API bool S_CALLTYPE SteamInternal_GameServer_Init( uint32 unIP, uint16 usLegacySteamPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString );
|
||||
inline bool SteamGameServer_Init( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString )
|
||||
{
|
||||
if ( !SteamInternal_GameServer_Init( unIP, usSteamPort, usGamePort, usQueryPort, eServerMode, pchVersionString ) )
|
||||
if ( !SteamInternal_GameServer_Init( unIP, 0, usGamePort, usQueryPort, eServerMode, pchVersionString ) )
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -142,6 +142,9 @@ enum EResult
|
||||
k_EResultAccountDeleted = 114, // account has been deleted
|
||||
k_EResultExistingUserCancelledLicense = 115, // A license for this already exists, but cancelled
|
||||
k_EResultCommunityCooldown = 116, // access is denied because of a community cooldown (probably from support profile data resets)
|
||||
k_EResultNoLauncherSpecified = 117, // No launcher was specified, but a launcher was needed to choose correct realm for operation.
|
||||
k_EResultMustAgreeToSSA = 118, // User must agree to china SSA or global SSA before login
|
||||
k_EResultLauncherMigrated = 119, // The specified launcher type is no longer supported; the user should be directed elsewhere
|
||||
};
|
||||
|
||||
// Error codes for use with the voice functions
|
||||
@@ -311,7 +314,7 @@ enum EAppType
|
||||
k_EAppType_Beta = 0x10000, // this is a beta version of a game
|
||||
|
||||
k_EAppType_Shortcut = 0x40000000, // just a shortcut, client side only
|
||||
k_EAppType_DepotOnly = 0x80000000, // placeholder since depots and apps share the same namespace
|
||||
k_EAppType_DepotOnly_DEPRECATED = 0x80000000, // there shouldn't be any appinfo for depots
|
||||
};
|
||||
|
||||
|
||||
@@ -556,6 +559,7 @@ enum EVRHMDType
|
||||
k_eEVRHMDType_HP_Unknown = 80, // HP unknown HMD
|
||||
k_eEVRHMDType_HP_WindowsMR = 81, // HP Windows MR headset
|
||||
k_eEVRHMDType_HP_Reverb = 82, // HP Reverb Windows MR headset
|
||||
k_eEVRHMDType_HP_ReverbG2 = 1463, // HP Reverb G2 Windows MR headset
|
||||
|
||||
k_eEVRHMDType_Samsung_Unknown = 90, // Samsung unknown HMD
|
||||
k_eEVRHMDType_Samsung_Odyssey = 91, // Samsung Odyssey Windows MR headset
|
||||
|
||||
@@ -6,26 +6,40 @@
|
||||
|
||||
#ifndef STEAMNETWORKINGTYPES
|
||||
#define STEAMNETWORKINGTYPES
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include "steamtypes.h"
|
||||
#include "steamclientpublic.h"
|
||||
|
||||
//----------------------------------------
|
||||
// SteamNetworkingSockets library config
|
||||
// Compiling in Steam public branch.
|
||||
#define STEAMNETWORKINGSOCKETS_STEAM
|
||||
#ifdef STEAMNETWORKINGSOCKETS_STATIC_LINK
|
||||
#define STEAMNETWORKINGSOCKETS_INTERFACE extern
|
||||
//-----------------------------------------------------------------------------
|
||||
// SteamNetworkingSockets config.
|
||||
//#define STEAMNETWORKINGSOCKETS_STANDALONELIB // Comment this in to support compiling/linking with the standalone library / gamenetworkingsockets opensource
|
||||
#define STEAMNETWORKINGSOCKETS_STEAMAPI // Compiling/link with steam_api.h and Steamworks SDK
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#if !defined( STEAMNETWORKINGSOCKETS_OPENSOURCE ) && !defined( STEAMNETWORKINGSOCKETS_STREAMINGCLIENT )
|
||||
#define STEAMNETWORKINGSOCKETS_STEAM
|
||||
#endif
|
||||
#ifdef NN_NINTENDO_SDK // We always static link on Nintendo
|
||||
#define STEAMNETWORKINGSOCKETS_STATIC_LINK
|
||||
#endif
|
||||
#if defined( STEAMNETWORKINGSOCKETS_STATIC_LINK )
|
||||
#define STEAMNETWORKINGSOCKETS_INTERFACE extern "C"
|
||||
#elif defined( STEAMNETWORKINGSOCKETS_FOREXPORT )
|
||||
#ifdef _WIN32
|
||||
#define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" __declspec( dllexport )
|
||||
#else
|
||||
#define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" __attribute__((visibility("default")))
|
||||
#endif
|
||||
#else
|
||||
#ifdef _WIN32
|
||||
#define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" __declspec( dllimport )
|
||||
#else
|
||||
#define STEAMNETWORKINGSOCKETS_INTERFACE extern "C"
|
||||
#endif
|
||||
#endif
|
||||
#define STEAMNETWORKINGSOCKETS_STEAMCLIENT
|
||||
#define STEAMNETWORKINGSOCKETS_ENABLE_SDR
|
||||
#include "steam_api_common.h"
|
||||
//
|
||||
//----------------------------------------
|
||||
|
||||
|
||||
#if defined( VALVE_CALLBACK_PACK_SMALL )
|
||||
#pragma pack( push, 4 )
|
||||
@@ -195,18 +209,18 @@ struct SteamNetworkingIPAddr
|
||||
/// (This means that you cannot tell if a zero port was explicitly specified.)
|
||||
inline bool ParseString( const char *pszStr );
|
||||
|
||||
/// RFC4038, section 4.2
|
||||
struct IPv4MappedAddress {
|
||||
uint64 m_8zeros;
|
||||
uint16 m_0000;
|
||||
uint16 m_ffff;
|
||||
uint8 m_ip[ 4 ]; // NOTE: As bytes, i.e. network byte order
|
||||
};
|
||||
|
||||
union
|
||||
{
|
||||
uint8 m_ipv6[ 16 ];
|
||||
#ifndef API_GEN // API generator doesn't understand this. The bindings will just use the accessors
|
||||
struct // IPv4 "mapped address" (rfc4038 section 4.2)
|
||||
{
|
||||
uint64 m_8zeros;
|
||||
uint16 m_0000;
|
||||
uint16 m_ffff;
|
||||
uint8 m_ip[ 4 ]; // NOTE: As bytes, i.e. network byte order
|
||||
} m_ipv4;
|
||||
#endif
|
||||
IPv4MappedAddress m_ipv4;
|
||||
};
|
||||
uint16 m_port; // Host byte order
|
||||
|
||||
@@ -659,6 +673,9 @@ struct SteamNetConnectionInfo_t
|
||||
/// connection type (and peer information), and any name
|
||||
/// given to the connection by the app. This string is used in various
|
||||
/// internal logging messages.
|
||||
///
|
||||
/// Note that the connection ID *usually* matches the HSteamNetConnection
|
||||
/// handle, but in certain cases with symmetric connections it might not.
|
||||
char m_szConnectionDescription[ k_cchSteamNetworkingMaxConnectionDescription ];
|
||||
|
||||
/// Internal stuff, room to change API easily
|
||||
@@ -1297,6 +1314,12 @@ enum ESteamNetworkingConfigValue
|
||||
/// See: ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionFailed
|
||||
k_ESteamNetworkingConfig_Callback_MessagesSessionFailed = 205,
|
||||
|
||||
/// [global FnSteamNetworkingSocketsCreateConnectionSignaling] Callback that will
|
||||
/// be invoked when we need to create a signaling object for a connection
|
||||
/// initiated locally. See: ISteamNetworkingSockets::ConnectP2P,
|
||||
/// ISteamNetworkingMessages.
|
||||
k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling = 206,
|
||||
|
||||
//
|
||||
// P2P settings
|
||||
//
|
||||
@@ -1600,17 +1623,6 @@ inline const uint8 *SteamNetworkingIdentity::GetGenericBytes( int &cbLen ) const
|
||||
inline bool SteamNetworkingIdentity::operator==(const SteamNetworkingIdentity &x ) const { return m_eType == x.m_eType && m_cbSize == x.m_cbSize && memcmp( m_genericBytes, x.m_genericBytes, m_cbSize ) == 0; }
|
||||
inline void SteamNetworkingMessage_t::Release() { (*m_pfnRelease)( this ); }
|
||||
|
||||
#if defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) || !defined( STEAMNETWORKINGSOCKETS_STEAMCLIENT )
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE void SteamNetworkingIPAddr_ToString( const SteamNetworkingIPAddr *pAddr, char *buf, size_t cbBuf, bool bWithPort );
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE bool SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr *pAddr, const char *pszStr );
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE void SteamNetworkingIdentity_ToString( const SteamNetworkingIdentity *pIdentity, char *buf, size_t cbBuf );
|
||||
STEAMNETWORKINGSOCKETS_INTERFACE bool SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity *pIdentity, size_t sizeofIdentity, const char *pszStr );
|
||||
inline void SteamNetworkingIPAddr::ToString( char *buf, size_t cbBuf, bool bWithPort ) const { SteamNetworkingIPAddr_ToString( this, buf, cbBuf, bWithPort ); }
|
||||
inline bool SteamNetworkingIPAddr::ParseString( const char *pszStr ) { return SteamNetworkingIPAddr_ParseString( this, pszStr ); }
|
||||
inline void SteamNetworkingIdentity::ToString( char *buf, size_t cbBuf ) const { SteamNetworkingIdentity_ToString( this, buf, cbBuf ); }
|
||||
inline bool SteamNetworkingIdentity::ParseString( const char *pszStr ) { return SteamNetworkingIdentity_ParseString( this, sizeof(*this), pszStr ); }
|
||||
#endif
|
||||
|
||||
#endif // #ifndef API_GEN
|
||||
|
||||
#endif // #ifndef STEAMNETWORKINGTYPES
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
builder\steamcmd.exe +login account password +run_app_build_http ..\scripts\app_build_1000.vdf +quit
|
||||
builder\steamcmd.exe +login account password +run_app_build ..\scripts\simple_app_build.vdf +quit
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
"appbuild"
|
||||
"AppBuild"
|
||||
{
|
||||
"appid" "1000"
|
||||
"desc" "Your build description here" // description for this build
|
||||
"buildoutput" "..\output\" // build output folder for .log, .csm & .csd files, relative to location of this file
|
||||
"contentroot" "..\content\" // root content folder, relative to location of this file
|
||||
"setlive" "" // branch to set live after successful build, non if empty
|
||||
"preview" "0" // to enable preview builds
|
||||
"local" "" // set to flie path of local content server
|
||||
|
||||
"depots"
|
||||
"AppID" "1000" // Your AppID
|
||||
"Desc" "Your build description here" // internal description for this build
|
||||
"Preview" "1" // make this a preview build only, nothing is uploaded
|
||||
"Local" "..\..\ContentServer\htdocs" // put content on local content server instead of uploading to Steam
|
||||
"SetLive" "AlphaTest" // set this build live on beta branch AlphaTest
|
||||
"ContentRoot" "..\content\" // content root folder relative to this script file
|
||||
"BuildOutput" "D:\build_output\" // put build cache and log files on different drive for better performance
|
||||
"Depots"
|
||||
{
|
||||
// file mapping instructions for each depot are in separate script files
|
||||
"1001" "depot_build_1001.vdf"
|
||||
"1002" "depot_build_1002.vdf"
|
||||
}
|
||||
}
|
||||
@@ -1,31 +1,20 @@
|
||||
"DepotBuildConfig"
|
||||
"DepotBuild"
|
||||
{
|
||||
// Set your assigned depot ID here
|
||||
"DepotID" "1001"
|
||||
|
||||
// Set a root for all content.
|
||||
// All relative paths specified below (LocalPath in FileMapping entries, and FileExclusion paths)
|
||||
// will be resolved relative to this root.
|
||||
// If you don't define ContentRoot, then it will be assumed to be
|
||||
// the location of this script file, which probably isn't what you want
|
||||
"ContentRoot" "D:\MyGame\rel\master\"
|
||||
|
||||
// include all files recursivley
|
||||
"FileMapping"
|
||||
{
|
||||
// This can be a full path, or a path relative to ContentRoot
|
||||
"LocalPath" "*"
|
||||
|
||||
// This is a path relative to the install folder of your game
|
||||
"DepotPath" "."
|
||||
|
||||
// If LocalPath contains wildcards, setting this means that all
|
||||
// matching files within subdirectories of LocalPath will also
|
||||
// be included.
|
||||
"recursive" "1"
|
||||
}
|
||||
"FileMapping"
|
||||
{
|
||||
// This can be a full path, or a path relative to ContentRoot
|
||||
"LocalPath" "*"
|
||||
|
||||
// but exclude all symbol files
|
||||
// This can be a full path, or a path relative to ContentRoot
|
||||
"FileExclusion" "*.pdb"
|
||||
// This is a path relative to the install folder of your game
|
||||
"DepotPath" "."
|
||||
|
||||
// If LocalPath contains wildcards, setting this means that all
|
||||
// matching files within subdirectories of LocalPath will also
|
||||
// be included.
|
||||
"Recursive" "1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
"DepotBuild"
|
||||
{
|
||||
"DepotID" "1002"
|
||||
|
||||
"ContentRoot" "D:\content\depot1002" // override ContentRoot from app build script
|
||||
|
||||
"FileMapping"
|
||||
{
|
||||
// all source files and folders in ".\bin" will be mapped into folder ".\executables" in depot
|
||||
"LocalPath" "bin\*"
|
||||
"DepotPath" "executables\"
|
||||
"Recursive" "1" // include all subfolders
|
||||
}
|
||||
|
||||
"FileMapping"
|
||||
{
|
||||
// override audio files in \\audio with German versions
|
||||
"LocalPath" "localization\german\audio\*"
|
||||
"DepotPath" "audio\"
|
||||
}
|
||||
|
||||
"FileMapping"
|
||||
{
|
||||
// copy install script for german version into depot root folder
|
||||
"LocalPath" "localization\german\german_installscript.vdf"
|
||||
"DepotPath" "."
|
||||
}
|
||||
|
||||
"FileExclusion" "bin\server.exe" // exclude this file
|
||||
"FileExclusion" "*.pdb" // exclude all .PDB files everywhere
|
||||
"FileExclusion" "bin\tools*" // exclude all files under bin/tools/
|
||||
|
||||
"InstallScript" "localization\german\german_installscript.vdf"
|
||||
|
||||
"FileProperties"
|
||||
{
|
||||
"LocalPath" "bin\setup.cfg"
|
||||
"Attributes" "userconfig" // this file will be modified during runtime
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
"AppBuild"
|
||||
{
|
||||
"AppID" "1000" // your AppID
|
||||
"Desc" "This is a simple build script" // internal description for this build
|
||||
|
||||
"ContentRoot" "..\content\" // root content folder, relative to location of this file
|
||||
"BuildOutput" "..\output\" // build output folder for build logs and build cache files
|
||||
|
||||
"Depots"
|
||||
{
|
||||
"1001" // your DepotID
|
||||
{
|
||||
"FileMapping"
|
||||
{
|
||||
"LocalPath" "*" // all files from contentroot folder
|
||||
"DepotPath" "." // mapped into the root of the depot
|
||||
"recursive" "1" // include all subfolders
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user