diff options
Diffstat (limited to 'public/gcsdk/gcsystemmsgs.h')
| -rw-r--r-- | public/gcsdk/gcsystemmsgs.h | 216 |
1 files changed, 216 insertions, 0 deletions
diff --git a/public/gcsdk/gcsystemmsgs.h b/public/gcsdk/gcsystemmsgs.h new file mode 100644 index 0000000..a6304cd --- /dev/null +++ b/public/gcsdk/gcsystemmsgs.h @@ -0,0 +1,216 @@ +//========= 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 |