You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
216 lines
4.7 KiB
216 lines
4.7 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: This file defines all of our over-the-wire net protocols for the |
|
// global system messages used by the GC. These are usually sent by |
|
// the GC Host so be very careful of versioning issues when you consider |
|
// changing them. Note that we never use types with undefined length |
|
// (like int). Always use an explicit type (like int32). |
|
// |
|
//============================================================================= |
|
|
|
#ifndef GCSYSTEMMSGS_H |
|
#define GCSYSTEMMSGS_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
// Protobuf headers interfere with the valve min/max/malloc overrides. so we need to do all |
|
// this funky wrapping to make the include happy. |
|
#include <tier0/valve_minmax_off.h> |
|
#include "gcsystemmsgs.pb.h" |
|
#include <tier0/valve_minmax_on.h> |
|
|
|
namespace GCSDK |
|
{ |
|
|
|
|
|
#pragma pack( push, 8 ) // this is a 8 instead of a 1 to maintain backward compatibility with Steam |
|
|
|
|
|
// generic zero-length message struct |
|
struct MsgGCEmpty_t |
|
{ |
|
|
|
}; |
|
|
|
// k_EGCMsgAchievementAwarded |
|
struct MsgGCAchievementAwarded_t |
|
{ |
|
uint16 m_usStatID; |
|
uint8 m_ubBit; |
|
// var data: |
|
// string data: name of achievement earned |
|
}; |
|
|
|
// k_EGCMsgConCommand |
|
struct MsgGCConCommand_t |
|
{ |
|
// var data: |
|
// string: the command as typed into the console |
|
}; |
|
|
|
|
|
// k_EGCMsgStartPlaying |
|
struct MsgGCStartPlaying_t |
|
{ |
|
CSteamID m_steamID; |
|
CSteamID m_steamIDGS; |
|
uint32 m_unServerAddr; |
|
uint16 m_usServerPort; |
|
}; |
|
|
|
|
|
// k_EGCMsgStartPlaying |
|
// k_EGCMsgStopGameserver |
|
struct MsgGCStopSession_t |
|
{ |
|
CSteamID m_steamID; |
|
}; |
|
|
|
|
|
// k_EGCMsgStartGameserver |
|
struct MsgGCStartGameserver_t |
|
{ |
|
CSteamID m_steamID; |
|
uint32 m_unServerAddr; |
|
uint16 m_usServerPort; |
|
}; |
|
|
|
// k_EGCMsgWGRequest |
|
struct MsgGCWGRequest_t |
|
{ |
|
uint64 m_ulSteamID; //SteamID of auth'd WG user |
|
uint32 m_unPrivilege; // The EGCWebApiPrivilege value that the request was made with |
|
uint32 m_cubKeyValues; // length of the key values data blob in message (starts after string request name data) |
|
// var data - |
|
// request name |
|
// binary key values of web request |
|
}; |
|
|
|
// k_EGCMsgWGResponse |
|
struct MsgGCWGResponse_t |
|
{ |
|
bool m_bResult; // True if the request was successful |
|
uint32 m_cubKeyValues; // length of the key values data blob in message |
|
// var data - |
|
// binary key values of web response |
|
}; |
|
|
|
|
|
// k_EGCMsgGetUserGameStatsSchemaResponse |
|
struct MsgGetUserGameStatsSchemaResponse_t |
|
{ |
|
bool m_bSuccess; // True is the request was successful |
|
// var data - |
|
// binary key values containing the User Game Stats schema |
|
}; |
|
|
|
|
|
// k_EGCMsgGetUserStats |
|
struct MsgGetUserStats_t |
|
{ |
|
uint64 m_ulSteamID; // SteamID the stats are requested for |
|
uint16 m_cStatIDs; // A count of the number of statIDs requested |
|
// var data - |
|
// Array of m_cStatIDs 16-bit StatIDs |
|
}; |
|
|
|
|
|
// k_EGCMsgGetUserStatsResponse |
|
struct MsgGetUserStatsResponse_t |
|
{ |
|
uint64 m_ulSteamID; // SteamID the stats were requested for |
|
bool m_bSuccess; // True is the request was successful |
|
uint16 m_cStats; // Number of stats returned in the message |
|
// var data - |
|
// m_cStats instances of: |
|
// uint16 usStatID - Stat ID |
|
// uint32 unData - Stat value |
|
}; |
|
|
|
// k_EGCMsgValidateSession |
|
struct MsgGCValidateSession_t |
|
{ |
|
uint64 m_ulSteamID; // SteamID to validate |
|
}; |
|
|
|
// k_EGCMsgValidateSessionResponse |
|
struct MsgGCValidateSessionResponse_t |
|
{ |
|
uint64 m_ulSteamID; |
|
uint64 m_ulSteamIDGS; |
|
uint32 m_unServerAddr; |
|
uint16 m_usServerPort; |
|
bool m_bOnline; |
|
}; |
|
|
|
// response to k_EGCMsgLookupAccountFromInput |
|
struct MsgGCLookupAccountResponse |
|
{ |
|
uint64 m_ulSteamID; |
|
}; |
|
|
|
// k_EGCMsgSendHTTPRequest |
|
struct MsgGCSendHTTPRequest_t |
|
{ |
|
// Variable data: |
|
// - Serialized CHTTPRequest |
|
}; |
|
|
|
// k_EGCMsgSendHTTPRequestResponse |
|
struct MsgGCSendHTTPRequestResponse_t |
|
{ |
|
bool m_bCompleted; |
|
// Variable data: |
|
// - if m_bCompleted is true, Serialized CHTTPResponse |
|
}; |
|
|
|
|
|
// k_EGCMsgRecordSupportAction |
|
struct MsgGCRecordSupportAction_t |
|
{ |
|
uint32 m_unAccountID; // which account is affected (object) |
|
uint32 m_unActorID; // who made the change (subject) |
|
// Variable data: |
|
// - string - Custom data for the event |
|
// - string - A note with the reason for the change |
|
}; |
|
|
|
|
|
// k_EGCMsgWebAPIRegisterInterfaces |
|
struct MsgGCWebAPIRegisterInterfaces_t |
|
{ |
|
uint32 m_cInterfaces; |
|
// Variable data: |
|
// - KeyValues for interface - one per interface |
|
}; |
|
|
|
// k_EGCMsgGetAccountDetails |
|
struct MsgGCGetAccountDetails_t |
|
{ |
|
uint64 m_ulSteamID; // SteamID to validate |
|
}; |
|
|
|
|
|
// Used by k_EGCMsgFindAccounts |
|
enum EAccountFindType |
|
{ |
|
k_EFindAccountTypeInvalid = 0, |
|
k_EFindAccountTypeAccountName = 1, |
|
k_EFindAccountTypeEmail, |
|
k_EFindAccountTypePersonaName, |
|
k_EFindAccountTypeURL, |
|
k_EFindAccountTypeAllOnline, |
|
k_EFindAccountTypeAll, |
|
k_EFindClanTypeClanName, |
|
k_EFindClanTypeURL, |
|
k_EFindClanTypeOfficialURL, |
|
k_EFindClanTypeAppID, |
|
}; |
|
|
|
|
|
} // namespace GCSDK |
|
|
|
#pragma pack( pop ) |
|
|
|
#endif // GCSYSTEMMSGS_H
|
|
|