source-engine/public/gcsdk/gcsystemmsgs.h
FluorescentCIAAfricanAmerican 3bf9df6b27 1
2020-04-22 12:56:21 -04:00

217 lines
4.7 KiB
C++

//========= 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