9#include <steamclient/utilities/msg_utils.hpp>
10#include <steamclient/utilities/stream.hpp>
14#include "steammessages_base.pb.h"
16namespace Steam::Internal {
22 static constexpr int ACCOUNT_ID_SHIFT = 0;
23 static constexpr int INSTANCE_SHIFT = 32;
24 static constexpr int ACCOUNT_TYPE_SHIFT = 52;
25 static constexpr int UNIVERSE_SHIFT = 56;
27 static constexpr uint64_t ACCOUNT_ID_MASK = 0xFFFFFFFFULL;
28 static constexpr uint64_t INSTANCE_MASK = 0xFFFFFULL;
29 static constexpr uint64_t ACCOUNT_TYPE_MASK = 0xFULL;
30 static constexpr uint64_t UNIVERSE_MASK = 0xFFULL;
35 SteamID(uint32_t accountID, uint32_t instance,
36 Steam::Internal::Enums::EUniverse universe,
37 Steam::Internal::Enums::EAccountType accountType) {
38 value = ((uint64_t)accountID << ACCOUNT_ID_SHIFT) |
39 ((uint64_t)instance << INSTANCE_SHIFT) |
40 ((uint64_t)accountType << ACCOUNT_TYPE_SHIFT) |
41 ((uint64_t)universe << UNIVERSE_SHIFT);
44 SteamID(uint64_t val) { value = val; }
46 uint64_t ConvertToUInt64()
const {
return value; }
54 GameID() : value(0) {}
55 explicit GameID(uint64_t v) : value(v) {}
57 uint64_t ConvertToUInt64()
const {
return value; }
60struct ISteamSerializable {
61 virtual void Serialize(Steam::Utils::Stream& stream)
const = 0;
62 virtual void Deserialize(Steam::Utils::Stream& stream) = 0;
63 virtual ~ISteamSerializable() =
default;
66struct ISteamSerializableHeader :
public ISteamSerializable {
67 virtual void SetEMsg(Steam::Internal::Enums::EMsg msg) = 0;
70struct ISteamSerializableMessage :
public ISteamSerializable {
71 virtual Steam::Internal::Enums::EMsg GetEMsg()
const = 0;
74struct IGCSerializableHeader :
public ISteamSerializable {
75 virtual void SetEMsg(uint32_t msg) = 0;
78struct IGCSerializableMessage :
public ISteamSerializable {
79 virtual uint32_t GetEMsg() = 0;
80 virtual bool IsProto()
const = 0;
83struct UdpHeader :
public ISteamSerializable {
84 static const uint32_t MAGIC = 0x31305356;
90 Steam::Internal::Enums::EUdpPacketType packetType;
94 uint32_t sourceConnID;
102 uint32_t packetsInMsg;
104 uint32_t msgStartSeq;
109 magic = UdpHeader::MAGIC;
111 packetType = Steam::Internal::Enums::EUdpPacketType::Invalid;
122 void Serialize(Steam::Utils::Stream& stream)
const {
124 stream.Write(payloadSize);
125 stream.Write((
byte)packetType);
127 stream.Write(sourceConnID);
128 stream.Write(destConnID);
129 stream.Write(seqThis);
130 stream.Write(seqAck);
131 stream.Write(packetsInMsg);
132 stream.Write(msgStartSeq);
133 stream.Write(msgSize);
136 void Deserialize(Steam::Utils::Stream& stream) {
137 magic = (uint32_t)stream.Read<int32_t>();
138 payloadSize = (uint16_t)stream.Read<int16_t>();
140 (Steam::Internal::Enums::EUdpPacketType)stream.Read<
unsigned char>();
141 flags = (
unsigned char)stream.Read<
unsigned char>();
142 sourceConnID = (uint32_t)stream.Read<int32_t>();
143 destConnID = (uint32_t)stream.Read<int32_t>();
144 seqThis = (uint32_t)stream.Read<int32_t>();
145 seqAck = (uint32_t)stream.Read<int32_t>();
146 packetsInMsg = (uint32_t)stream.Read<int32_t>();
147 msgStartSeq = (uint32_t)stream.Read<int32_t>();
148 msgSize = (uint32_t)stream.Read<int32_t>();
152struct ChallengeData :
public ISteamSerializable {
153 static const uint32_t CHALLENGE_MASK = 0xA426DF2B;
155 uint32_t challengeValue;
164 void Serialize(Steam::Utils::Stream& stream)
const {
165 stream.Write(challengeValue);
166 stream.Write(serverLoad);
169 void Deserialize(Steam::Utils::Stream& stream) {
170 challengeValue = (uint32_t)stream.Read<int32_t>();
171 serverLoad = (uint32_t)stream.Read<int32_t>();
175struct ConnectData :
public ISteamSerializable {
176 static const uint32_t CHALLENGE_MASK = ChallengeData::CHALLENGE_MASK;
178 uint32_t challengeValue;
180 ConnectData() { challengeValue = 0; }
182 void Serialize(Steam::Utils::Stream& stream)
const {
183 stream.Write(challengeValue);
186 void Deserialize(Steam::Utils::Stream& stream) {
187 challengeValue = (uint32_t)stream.Read<int32_t>();
191struct Accept :
public ISteamSerializable {
194 void Serialize(Steam::Utils::Stream& stream)
const {}
196 void Deserialize(Steam::Utils::Stream& stream) {}
199struct Datagram :
public ISteamSerializable {
202 void Serialize(Steam::Utils::Stream& stream)
const {}
204 void Deserialize(Steam::Utils::Stream& stream) {}
207struct Disconnect :
public ISteamSerializable {
210 void Serialize(Steam::Utils::Stream& stream)
const {}
212 void Deserialize(Steam::Utils::Stream& stream) {}
216struct MsgHdr :
public ISteamSerializableHeader {
217 void SetEMsg(Steam::Internal::Enums::EMsg msg) { Msg = msg; }
220 Steam::Internal::Enums::EMsg Msg;
222 uint64_t targetJobID;
224 uint64_t sourceJobID;
227 Msg = Steam::Internal::Enums::EMsg::Invalid;
228 targetJobID = UINT64_MAX;
229 sourceJobID = UINT64_MAX;
232 void Serialize(Steam::Utils::Stream& stream)
const {
233 stream.Write((
int)Msg);
234 stream.Write(targetJobID);
235 stream.Write(sourceJobID);
238 void Deserialize(Steam::Utils::Stream& stream) {
239 Msg = (Steam::Internal::Enums::EMsg)stream.Read<int32_t>();
240 targetJobID = (uint64_t)stream.Read<int64_t>();
241 sourceJobID = (uint64_t)stream.Read<int64_t>();
246struct ExtendedClientMsgHdr :
public ISteamSerializableHeader {
247 void SetEMsg(Steam::Internal::Enums::EMsg msg) { Msg = msg; }
250 Steam::Internal::Enums::EMsg Msg;
252 unsigned char headerSize;
254 uint16_t headerVersion;
256 uint64_t targetJobID;
258 uint64_t sourceJobID;
260 unsigned char headerCanary;
266 SteamID GetsteamID()
const {
return SteamID(steamID); }
267 void SetsteamID(
const SteamID& val) { steamID = val.ConvertToUInt64(); }
271 ExtendedClientMsgHdr() {
272 Msg = Steam::Internal::Enums::EMsg::Invalid;
275 targetJobID = UINT64_MAX;
276 sourceJobID = UINT64_MAX;
282 void Serialize(Steam::Utils::Stream& stream)
const {
283 stream.Write((
int)Msg);
284 stream.Write(headerSize);
285 stream.Write(headerVersion);
286 stream.Write(targetJobID);
287 stream.Write(sourceJobID);
288 stream.Write(headerCanary);
289 stream.Write(steamID);
290 stream.Write(sessionID);
293 void Deserialize(Steam::Utils::Stream& stream) {
294 Msg = (Steam::Internal::Enums::EMsg)stream.Read<int32_t>();
295 headerSize = (
unsigned char)stream.Read<
unsigned char>();
296 headerVersion = (uint16_t)stream.Read<int16_t>();
297 targetJobID = (uint64_t)stream.Read<int64_t>();
298 sourceJobID = (uint64_t)stream.Read<int64_t>();
299 headerCanary = (
unsigned char)stream.Read<
unsigned char>();
300 steamID = (uint64_t)stream.Read<int64_t>();
301 sessionID = (int32_t)stream.Read<int32_t>();
306struct MsgHdrProtoBuf :
public ISteamSerializableHeader {
307 void SetEMsg(Steam::Internal::Enums::EMsg msg) { Msg = msg; }
310 Steam::Internal::Enums::EMsg Msg;
312 mutable int32_t headerLength;
314 CMsgProtoBufHeader proto;
317 Msg = Steam::Internal::Enums::EMsg::Invalid;
319 proto = CMsgProtoBufHeader();
322 void Serialize(Steam::Utils::Stream& stream)
const {
323 std::string protoData;
324 if (!proto.SerializeToString(&protoData)) {
325 throw std::runtime_error(
"Failed to serialize proto message");
327 headerLength = protoData.size();
329 stream.Write((
int)Steam::Utils::MsgUtil::make_msg(Msg,
true));
330 stream.Write(headerLength);
331 stream.Write(protoData.data(), protoData.size());
334 void Deserialize(Steam::Utils::Stream& stream) {
335 Msg = (Steam::Internal::Enums::EMsg)Steam::Utils::MsgUtil::get_msg(
336 static_cast<uint32_t
>(stream.Read<int32_t>()));
337 headerLength = (int32_t)stream.Read<int32_t>();
338 if (headerLength < 0)
throw std::out_of_range(
"Negative length");
339 std::vector<uint8_t> buffer(headerLength);
340 stream.Read(buffer.data(), headerLength);
342 if (!proto.ParseFromArray(buffer.data(), headerLength)) {
343 throw std::runtime_error(
"Failed to parse protobuf message");
349struct MsgGCHdrProtoBuf :
public IGCSerializableHeader {
350 void SetEMsg(uint32_t msg) { Msg = msg; }
355 mutable int32_t headerLength;
357 CMsgProtoBufHeader proto;
362 proto = CMsgProtoBufHeader();
365 void Serialize(Steam::Utils::Stream& stream)
const {
366 std::string protoData;
367 if (!proto.SerializeToString(&protoData)) {
368 throw std::runtime_error(
"Failed to serialize proto message");
370 headerLength = protoData.size();
372 stream.Write(Steam::Utils::MsgUtil::make_gc_msg(Msg,
true));
373 stream.Write(headerLength);
376 void Deserialize(Steam::Utils::Stream& stream) {
377 Msg = (uint32_t)Steam::Utils::MsgUtil::get_gc_msg(
378 static_cast<uint32_t
>(stream.Read<int32_t>()));
379 headerLength = (int32_t)stream.Read<int32_t>();
380 if (headerLength < 0)
throw std::out_of_range(
"Negative length");
382 std::vector<uint8_t> buffer(headerLength);
383 stream.Read(buffer.data(), headerLength);
385 if (!proto.ParseFromArray(buffer.data(), headerLength)) {
386 throw std::runtime_error(
"Failed to parse protobuf message");
392struct MsgGCHdr :
public IGCSerializableHeader {
393 void SetEMsg(uint32_t ) {}
396 uint16_t headerVersion;
398 uint64_t targetJobID;
400 uint64_t sourceJobID;
404 targetJobID = UINT64_MAX;
405 sourceJobID = UINT64_MAX;
408 void Serialize(Steam::Utils::Stream& stream)
const {
409 stream.Write(headerVersion);
410 stream.Write(targetJobID);
411 stream.Write(sourceJobID);
414 void Deserialize(Steam::Utils::Stream& stream) {
415 headerVersion = (uint16_t)stream.Read<int16_t>();
416 targetJobID = (uint64_t)stream.Read<int64_t>();
417 sourceJobID = (uint64_t)stream.Read<int64_t>();
421struct MsgClientJustStrings :
public ISteamSerializableMessage {
422 Steam::Internal::Enums::EMsg GetEMsg()
const {
423 return Steam::Internal::Enums::EMsg::Invalid;
426 MsgClientJustStrings() {}
428 void Serialize(Steam::Utils::Stream& stream)
const {}
430 void Deserialize(Steam::Utils::Stream& stream) {}
433struct MsgClientGenericResponse :
public ISteamSerializableMessage {
434 Steam::Internal::Enums::EMsg GetEMsg()
const {
435 return Steam::Internal::Enums::EMsg::Invalid;
439 Steam::Internal::Enums::EResult result;
441 MsgClientGenericResponse() {
442 result = Steam::Internal::Enums::EResult::Invalid;
445 void Serialize(Steam::Utils::Stream& stream)
const {
446 stream.Write((
int)result);
449 void Deserialize(Steam::Utils::Stream& stream) {
450 result = (Steam::Internal::Enums::EResult)stream.Read<int32_t>();
454struct MsgChannelEncryptRequest :
public ISteamSerializableMessage {
455 Steam::Internal::Enums::EMsg GetEMsg()
const {
456 return Steam::Internal::Enums::EMsg::ChannelEncryptRequest;
459 static const uint32_t PROTOCOL_VERSION = 1;
461 uint32_t protocolVersion;
463 Steam::Internal::Enums::EUniverse universe;
465 MsgChannelEncryptRequest() {
466 protocolVersion = MsgChannelEncryptRequest::PROTOCOL_VERSION;
467 universe = Steam::Internal::Enums::EUniverse::Invalid;
470 void Serialize(Steam::Utils::Stream& stream)
const {
471 stream.Write(protocolVersion);
472 stream.Write((
int)universe);
475 void Deserialize(Steam::Utils::Stream& stream) {
476 protocolVersion = (uint32_t)stream.Read<int32_t>();
477 universe = (Steam::Internal::Enums::EUniverse)stream.Read<int32_t>();
481struct MsgChannelEncryptResponse :
public ISteamSerializableMessage {
482 Steam::Internal::Enums::EMsg GetEMsg()
const {
483 return Steam::Internal::Enums::EMsg::ChannelEncryptResponse;
487 uint32_t protocolVersion;
491 MsgChannelEncryptResponse() {
492 protocolVersion = MsgChannelEncryptRequest::PROTOCOL_VERSION;
496 void Serialize(Steam::Utils::Stream& stream)
const {
497 stream.Write(protocolVersion);
498 stream.Write(keySize);
501 void Deserialize(Steam::Utils::Stream& stream) {
502 protocolVersion = (uint32_t)stream.Read<int32_t>();
503 keySize = (uint32_t)stream.Read<int32_t>();
507struct MsgChannelEncryptResult :
public ISteamSerializableMessage {
508 Steam::Internal::Enums::EMsg GetEMsg()
const {
509 return Steam::Internal::Enums::EMsg::ChannelEncryptResult;
513 Steam::Internal::Enums::EResult result;
515 MsgChannelEncryptResult() {
516 result = Steam::Internal::Enums::EResult::Invalid;
519 void Serialize(Steam::Utils::Stream& stream)
const {
520 stream.Write((
int)result);
523 void Deserialize(Steam::Utils::Stream& stream) {
524 result = (Steam::Internal::Enums::EResult)stream.Read<int32_t>();
528struct MsgClientLogon :
public ISteamSerializableMessage {
529 Steam::Internal::Enums::EMsg GetEMsg()
const {
530 return Steam::Internal::Enums::EMsg::ClientLogon;
533 static const uint32_t ObfuscationMask = 0xBAADF00D;
534 static const uint32_t CurrentProtocol = 65581;
535 static const uint32_t ProtocolVerMajorMask = 0xFFFF0000;
536 static const uint32_t ProtocolVerMinorMask = 0xFFFF;
537 static const uint16_t ProtocolVerMinorMinGameServers = 4;
538 static const uint16_t ProtocolVerMinorMinForSupportingEMsgMulti = 12;
539 static const uint16_t ProtocolVerMinorMinForSupportingEMsgClientEncryptPct =
541 static const uint16_t ProtocolVerMinorMinForExtendedMsgHdr = 17;
542 static const uint16_t ProtocolVerMinorMinForCellId = 18;
543 static const uint16_t ProtocolVerMinorMinForSessionIDLast = 19;
544 static const uint16_t ProtocolVerMinorMinForServerAvailablityMsgs = 24;
545 static const uint16_t ProtocolVerMinorMinClients = 25;
546 static const uint16_t ProtocolVerMinorMinForOSType = 26;
547 static const uint16_t ProtocolVerMinorMinForCegApplyPESig = 27;
548 static const uint16_t ProtocolVerMinorMinForMarketingMessages2 = 27;
549 static const uint16_t ProtocolVerMinorMinForAnyProtoBufMessages = 28;
550 static const uint16_t ProtocolVerMinorMinForProtoBufLoggedOffMessage = 28;
551 static const uint16_t ProtocolVerMinorMinForProtoBufMultiMessages = 28;
552 static const uint16_t ProtocolVerMinorMinForSendingProtocolToUFS = 30;
553 static const uint16_t ProtocolVerMinorMinForMachineAuth = 33;
554 static const uint16_t ProtocolVerMinorMinForSessionIDLastAnon = 36;
555 static const uint16_t ProtocolVerMinorMinForEnhancedAppList = 40;
556 static const uint16_t ProtocolVerMinorMinForSteamGuardNotificationUI = 41;
557 static const uint16_t ProtocolVerMinorMinForProtoBufServiceModuleCalls = 42;
558 static const uint16_t ProtocolVerMinorMinForGzipMultiMessages = 43;
559 static const uint16_t ProtocolVerMinorMinForNewVoiceCallAuthorize = 44;
560 static const uint16_t ProtocolVerMinorMinForClientInstanceIDs = 44;
564 void Serialize(Steam::Utils::Stream& stream)
const {}
566 void Deserialize(Steam::Utils::Stream& stream) {}
569struct MsgClientVACBanStatus :
public ISteamSerializableMessage {
570 Steam::Internal::Enums::EMsg GetEMsg()
const {
571 return Steam::Internal::Enums::EMsg::ClientVACBanStatus;
577 MsgClientVACBanStatus() { numBans = 0; }
579 void Serialize(Steam::Utils::Stream& stream)
const { stream.Write(numBans); }
581 void Deserialize(Steam::Utils::Stream& stream) {
582 numBans = (uint32_t)stream.Read<int32_t>();
586struct MsgClientAppUsageEvent :
public ISteamSerializableMessage {
587 Steam::Internal::Enums::EMsg GetEMsg()
const {
588 return Steam::Internal::Enums::EMsg::ClientAppUsageEvent;
592 Steam::Internal::Enums::EAppUsageEvent appUsageEvent;
598 GameID GetgameID()
const {
return GameID(gameID); }
599 void SetgameID(
const GameID& val) { gameID = val.ConvertToUInt64(); }
603 MsgClientAppUsageEvent() {
604 appUsageEvent = Steam::Internal::Enums::EAppUsageEvent::Unknown;
609 void Serialize(Steam::Utils::Stream& stream)
const {
610 stream.Write((
int)appUsageEvent);
611 stream.Write(gameID);
612 stream.Write(offline);
615 void Deserialize(Steam::Utils::Stream& stream) {
617 (Steam::Internal::Enums::EAppUsageEvent)stream.Read<int32_t>();
618 gameID = (uint64_t)stream.Read<int64_t>();
619 offline = (uint16_t)stream.Read<int16_t>();
623struct MsgClientUpdateGuestPassesList :
public ISteamSerializableMessage {
624 Steam::Internal::Enums::EMsg GetEMsg()
const {
625 return Steam::Internal::Enums::EMsg::ClientUpdateGuestPassesList;
629 Steam::Internal::Enums::EResult result;
631 int32_t countGuestPassesToGive;
633 int32_t countGuestPassesToRedeem;
635 MsgClientUpdateGuestPassesList() {
636 result = Steam::Internal::Enums::EResult::Invalid;
637 countGuestPassesToGive = 0;
638 countGuestPassesToRedeem = 0;
641 void Serialize(Steam::Utils::Stream& stream)
const {
642 stream.Write((
int)result);
643 stream.Write(countGuestPassesToGive);
644 stream.Write(countGuestPassesToRedeem);
647 void Deserialize(Steam::Utils::Stream& stream) {
648 result = (Steam::Internal::Enums::EResult)stream.Read<int32_t>();
649 countGuestPassesToGive = (int32_t)stream.Read<int32_t>();
650 countGuestPassesToRedeem = (int32_t)stream.Read<int32_t>();
654struct MsgClientP2PIntroducerMessage :
public ISteamSerializableMessage {
655 Steam::Internal::Enums::EMsg GetEMsg()
const {
656 return Steam::Internal::Enums::EMsg::ClientP2PIntroducerMessage;
664 SteamID GetsteamID()
const {
return SteamID(steamID); }
665 void SetsteamID(
const SteamID& val) { steamID = val.ConvertToUInt64(); }
667 Steam::Internal::Enums::EIntroducerRouting routingType;
669 std::vector<unsigned char> data;
673 MsgClientP2PIntroducerMessage() {
675 routingType = Steam::Internal::Enums::EIntroducerRouting::Unknown;
676 data = std::vector<unsigned char>(1450);
680 void Serialize(Steam::Utils::Stream& stream)
const {
681 stream.Write(steamID);
682 stream.Write((
int)routingType);
684 stream.Write(dataLen);
687 void Deserialize(Steam::Utils::Stream& stream) {
688 steamID = (uint64_t)stream.Read<int64_t>();
690 (Steam::Internal::Enums::EIntroducerRouting)stream.Read<int32_t>();
691 data = stream.ReadArray<
unsigned char>(1450);
692 dataLen = (uint32_t)stream.Read<int32_t>();
696struct MsgClientOGSBeginSession :
public ISteamSerializableMessage {
697 Steam::Internal::Enums::EMsg GetEMsg()
const {
698 return Steam::Internal::Enums::EMsg::ClientOGSBeginSession;
702 unsigned char accountType;
708 SteamID GetaccountId()
const {
return SteamID(accountId); }
709 void SetaccountId(
const SteamID& val) { accountId = val.ConvertToUInt64(); }
713 uint32_t timeStarted;
715 MsgClientOGSBeginSession() {
722 void Serialize(Steam::Utils::Stream& stream)
const {
723 stream.Write(accountType);
724 stream.Write(accountId);
726 stream.Write(timeStarted);
729 void Deserialize(Steam::Utils::Stream& stream) {
730 accountType = (
unsigned char)stream.Read<
unsigned char>();
731 accountId = (uint64_t)stream.Read<int64_t>();
732 appId = (uint32_t)stream.Read<int32_t>();
733 timeStarted = (uint32_t)stream.Read<int32_t>();
737struct MsgClientOGSBeginSessionResponse :
public ISteamSerializableMessage {
738 Steam::Internal::Enums::EMsg GetEMsg()
const {
739 return Steam::Internal::Enums::EMsg::ClientOGSBeginSessionResponse;
743 Steam::Internal::Enums::EResult result;
745 unsigned char collectingAny;
747 unsigned char collectingDetails;
751 MsgClientOGSBeginSessionResponse() {
752 result = Steam::Internal::Enums::EResult::Invalid;
754 collectingDetails = 0;
758 void Serialize(Steam::Utils::Stream& stream)
const {
759 stream.Write((
int)result);
760 stream.Write(collectingAny);
761 stream.Write(collectingDetails);
762 stream.Write(sessionId);
765 void Deserialize(Steam::Utils::Stream& stream) {
766 result = (Steam::Internal::Enums::EResult)stream.Read<int32_t>();
767 collectingAny = (
unsigned char)stream.Read<
unsigned char>();
768 collectingDetails = (
unsigned char)stream.Read<
unsigned char>();
769 sessionId = (uint64_t)stream.Read<int64_t>();
773struct MsgClientOGSEndSession :
public ISteamSerializableMessage {
774 Steam::Internal::Enums::EMsg GetEMsg()
const {
775 return Steam::Internal::Enums::EMsg::ClientOGSEndSession;
785 int32_t countAttributes;
787 MsgClientOGSEndSession() {
794 void Serialize(Steam::Utils::Stream& stream)
const {
795 stream.Write(sessionId);
796 stream.Write(timeEnded);
797 stream.Write(reasonCode);
798 stream.Write(countAttributes);
801 void Deserialize(Steam::Utils::Stream& stream) {
802 sessionId = (uint64_t)stream.Read<int64_t>();
803 timeEnded = (uint32_t)stream.Read<int32_t>();
804 reasonCode = (int32_t)stream.Read<int32_t>();
805 countAttributes = (int32_t)stream.Read<int32_t>();
809struct MsgClientOGSEndSessionResponse :
public ISteamSerializableMessage {
810 Steam::Internal::Enums::EMsg GetEMsg()
const {
811 return Steam::Internal::Enums::EMsg::ClientOGSEndSessionResponse;
815 Steam::Internal::Enums::EResult result;
817 MsgClientOGSEndSessionResponse() {
818 result = Steam::Internal::Enums::EResult::Invalid;
821 void Serialize(Steam::Utils::Stream& stream)
const {
822 stream.Write((
int)result);
825 void Deserialize(Steam::Utils::Stream& stream) {
826 result = (Steam::Internal::Enums::EResult)stream.Read<int32_t>();
830struct MsgClientOGSWriteRow :
public ISteamSerializableMessage {
831 Steam::Internal::Enums::EMsg GetEMsg()
const {
832 return Steam::Internal::Enums::EMsg::ClientOGSWriteRow;
838 int32_t countAttributes;
840 MsgClientOGSWriteRow() {
845 void Serialize(Steam::Utils::Stream& stream)
const {
846 stream.Write(sessionId);
847 stream.Write(countAttributes);
850 void Deserialize(Steam::Utils::Stream& stream) {
851 sessionId = (uint64_t)stream.Read<int64_t>();
852 countAttributes = (int32_t)stream.Read<int32_t>();
856struct MsgClientGetFriendsWhoPlayGame :
public ISteamSerializableMessage {
857 Steam::Internal::Enums::EMsg GetEMsg()
const {
858 return Steam::Internal::Enums::EMsg::ClientGetFriendsWhoPlayGame;
866 GameID GetgameId()
const {
return GameID(gameId); }
867 void SetgameId(
const GameID& val) { gameId = val.ConvertToUInt64(); }
869 MsgClientGetFriendsWhoPlayGame() { gameId = 0; }
871 void Serialize(Steam::Utils::Stream& stream)
const { stream.Write(gameId); }
873 void Deserialize(Steam::Utils::Stream& stream) {
874 gameId = (uint64_t)stream.Read<int64_t>();
878struct MsgClientGetFriendsWhoPlayGameResponse
879 :
public ISteamSerializableMessage {
880 Steam::Internal::Enums::EMsg GetEMsg()
const {
881 return Steam::Internal::Enums::EMsg::ClientGetFriendsWhoPlayGameResponse;
885 Steam::Internal::Enums::EResult result;
891 GameID GetgameId()
const {
return GameID(gameId); }
892 void SetgameId(
const GameID& val) { gameId = val.ConvertToUInt64(); }
894 uint32_t countFriends;
896 MsgClientGetFriendsWhoPlayGameResponse() {
897 result = Steam::Internal::Enums::EResult::Invalid;
902 void Serialize(Steam::Utils::Stream& stream)
const {
903 stream.Write((
int)result);
904 stream.Write(gameId);
905 stream.Write(countFriends);
908 void Deserialize(Steam::Utils::Stream& stream) {
909 result = (Steam::Internal::Enums::EResult)stream.Read<int32_t>();
910 gameId = (uint64_t)stream.Read<int64_t>();
911 countFriends = (uint32_t)stream.Read<int32_t>();
915struct MsgGSPerformHardwareSurvey :
public ISteamSerializableMessage {
916 Steam::Internal::Enums::EMsg GetEMsg()
const {
917 return Steam::Internal::Enums::EMsg::GSPerformHardwareSurvey;
923 MsgGSPerformHardwareSurvey() { flags = 0; }
925 void Serialize(Steam::Utils::Stream& stream)
const { stream.Write(flags); }
927 void Deserialize(Steam::Utils::Stream& stream) {
928 flags = (uint32_t)stream.Read<int32_t>();
932struct MsgGSGetPlayStatsResponse :
public ISteamSerializableMessage {
933 Steam::Internal::Enums::EMsg GetEMsg()
const {
934 return Steam::Internal::Enums::EMsg::GSGetPlayStatsResponse;
938 Steam::Internal::Enums::EResult result;
942 uint32_t lifetimeConnects;
944 uint32_t lifetimeMinutesPlayed;
946 MsgGSGetPlayStatsResponse() {
947 result = Steam::Internal::Enums::EResult::Invalid;
949 lifetimeConnects = 0;
950 lifetimeMinutesPlayed = 0;
953 void Serialize(Steam::Utils::Stream& stream)
const {
954 stream.Write((
int)result);
956 stream.Write(lifetimeConnects);
957 stream.Write(lifetimeMinutesPlayed);
960 void Deserialize(Steam::Utils::Stream& stream) {
961 result = (Steam::Internal::Enums::EResult)stream.Read<int32_t>();
962 rank = (int32_t)stream.Read<int32_t>();
963 lifetimeConnects = (uint32_t)stream.Read<int32_t>();
964 lifetimeMinutesPlayed = (uint32_t)stream.Read<int32_t>();
968struct MsgGSGetReputationResponse :
public ISteamSerializableMessage {
969 Steam::Internal::Enums::EMsg GetEMsg()
const {
970 return Steam::Internal::Enums::EMsg::GSGetReputationResponse;
974 Steam::Internal::Enums::EResult result;
976 uint32_t reputationScore;
978 unsigned char banned;
984 uint64_t bannedGameId;
986 uint32_t timeBanExpires;
988 MsgGSGetReputationResponse() {
989 result = Steam::Internal::Enums::EResult::Invalid;
998 void Serialize(Steam::Utils::Stream& stream)
const {
999 stream.Write((
int)result);
1000 stream.Write(reputationScore);
1001 stream.Write(banned);
1002 stream.Write(bannedIp);
1003 stream.Write(bannedPort);
1004 stream.Write(bannedGameId);
1005 stream.Write(timeBanExpires);
1008 void Deserialize(Steam::Utils::Stream& stream) {
1009 result = (Steam::Internal::Enums::EResult)stream.Read<int32_t>();
1010 reputationScore = (uint32_t)stream.Read<int32_t>();
1011 banned = (
unsigned char)stream.Read<
unsigned char>();
1012 bannedIp = (uint32_t)stream.Read<int32_t>();
1013 bannedPort = (uint16_t)stream.Read<int16_t>();
1014 bannedGameId = (uint64_t)stream.Read<int64_t>();
1015 timeBanExpires = (uint32_t)stream.Read<int32_t>();
1019struct MsgGSDeny :
public ISteamSerializableMessage {
1020 Steam::Internal::Enums::EMsg GetEMsg()
const {
1021 return Steam::Internal::Enums::EMsg::GSDeny;
1029 SteamID GetsteamId()
const {
return SteamID(steamId); }
1030 void SetsteamId(
const SteamID& val) { steamId = val.ConvertToUInt64(); }
1032 Steam::Internal::Enums::EDenyReason denyReason;
1036 denyReason = Steam::Internal::Enums::EDenyReason::Unknown;
1039 void Serialize(Steam::Utils::Stream& stream)
const {
1040 stream.Write(steamId);
1041 stream.Write((
int)denyReason);
1044 void Deserialize(Steam::Utils::Stream& stream) {
1045 steamId = (uint64_t)stream.Read<int64_t>();
1046 denyReason = (Steam::Internal::Enums::EDenyReason)stream.Read<int32_t>();
1050struct MsgGSApprove :
public ISteamSerializableMessage {
1051 Steam::Internal::Enums::EMsg GetEMsg()
const {
1052 return Steam::Internal::Enums::EMsg::GSApprove;
1060 SteamID GetsteamId()
const {
return SteamID(steamId); }
1061 void SetsteamId(
const SteamID& val) { steamId = val.ConvertToUInt64(); }
1063 MsgGSApprove() { steamId = 0; }
1065 void Serialize(Steam::Utils::Stream& stream)
const { stream.Write(steamId); }
1067 void Deserialize(Steam::Utils::Stream& stream) {
1068 steamId = (uint64_t)stream.Read<int64_t>();
1072struct MsgGSKick :
public ISteamSerializableMessage {
1073 Steam::Internal::Enums::EMsg GetEMsg()
const {
1074 return Steam::Internal::Enums::EMsg::GSKick;
1082 SteamID GetsteamId()
const {
return SteamID(steamId); }
1083 void SetsteamId(
const SteamID& val) { steamId = val.ConvertToUInt64(); }
1085 Steam::Internal::Enums::EDenyReason denyReason;
1087 int32_t waitTilMapChange;
1091 denyReason = Steam::Internal::Enums::EDenyReason::Unknown;
1092 waitTilMapChange = 0;
1095 void Serialize(Steam::Utils::Stream& stream)
const {
1096 stream.Write(steamId);
1097 stream.Write((
int)denyReason);
1098 stream.Write(waitTilMapChange);
1101 void Deserialize(Steam::Utils::Stream& stream) {
1102 steamId = (uint64_t)stream.Read<int64_t>();
1103 denyReason = (Steam::Internal::Enums::EDenyReason)stream.Read<int32_t>();
1104 waitTilMapChange = (int32_t)stream.Read<int32_t>();
1108struct MsgGSGetUserGroupStatus :
public ISteamSerializableMessage {
1109 Steam::Internal::Enums::EMsg GetEMsg()
const {
1110 return Steam::Internal::Enums::EMsg::GSGetUserGroupStatus;
1115 uint64_t steamIdUser;
1118 SteamID GetsteamIdUser()
const {
return SteamID(steamIdUser); }
1119 void SetsteamIdUser(
const SteamID& val) {
1120 steamIdUser = val.ConvertToUInt64();
1124 uint64_t steamIdGroup;
1127 SteamID GetsteamIdGroup()
const {
return SteamID(steamIdGroup); }
1128 void SetsteamIdGroup(
const SteamID& val) {
1129 steamIdGroup = val.ConvertToUInt64();
1132 MsgGSGetUserGroupStatus() {
1137 void Serialize(Steam::Utils::Stream& stream)
const {
1138 stream.Write(steamIdUser);
1139 stream.Write(steamIdGroup);
1142 void Deserialize(Steam::Utils::Stream& stream) {
1143 steamIdUser = (uint64_t)stream.Read<int64_t>();
1144 steamIdGroup = (uint64_t)stream.Read<int64_t>();
1148struct MsgGSGetUserGroupStatusResponse :
public ISteamSerializableMessage {
1149 Steam::Internal::Enums::EMsg GetEMsg()
const {
1150 return Steam::Internal::Enums::EMsg::GSGetUserGroupStatusResponse;
1155 uint64_t steamIdUser;
1158 SteamID GetsteamIdUser()
const {
return SteamID(steamIdUser); }
1159 void SetsteamIdUser(
const SteamID& val) {
1160 steamIdUser = val.ConvertToUInt64();
1164 uint64_t steamIdGroup;
1167 SteamID GetsteamIdGroup()
const {
return SteamID(steamIdGroup); }
1168 void SetsteamIdGroup(
const SteamID& val) {
1169 steamIdGroup = val.ConvertToUInt64();
1172 Steam::Internal::Enums::EClanRelationship clanRelationship;
1174 Steam::Internal::Enums::EClanRank clanRank;
1176 MsgGSGetUserGroupStatusResponse() {
1179 clanRelationship = Steam::Internal::Enums::EClanRelationship::None;
1180 clanRank = Steam::Internal::Enums::EClanRank::None;
1183 void Serialize(Steam::Utils::Stream& stream)
const {
1184 stream.Write(steamIdUser);
1185 stream.Write(steamIdGroup);
1186 stream.Write((
int)clanRelationship);
1187 stream.Write((
int)clanRank);
1190 void Deserialize(Steam::Utils::Stream& stream) {
1191 steamIdUser = (uint64_t)stream.Read<int64_t>();
1192 steamIdGroup = (uint64_t)stream.Read<int64_t>();
1194 (Steam::Internal::Enums::EClanRelationship)stream.Read<int32_t>();
1195 clanRank = (Steam::Internal::Enums::EClanRank)stream.Read<int32_t>();
1199struct MsgClientJoinChat :
public ISteamSerializableMessage {
1200 Steam::Internal::Enums::EMsg GetEMsg()
const {
1201 return Steam::Internal::Enums::EMsg::ClientJoinChat;
1206 uint64_t steamIdChat;
1209 SteamID GetsteamIdChat()
const {
return SteamID(steamIdChat); }
1210 void SetsteamIdChat(
const SteamID& val) {
1211 steamIdChat = val.ConvertToUInt64();
1214 unsigned char isVoiceSpeaker;
1216 MsgClientJoinChat() {
1221 void Serialize(Steam::Utils::Stream& stream)
const {
1222 stream.Write(steamIdChat);
1223 stream.Write(isVoiceSpeaker);
1226 void Deserialize(Steam::Utils::Stream& stream) {
1227 steamIdChat = (uint64_t)stream.Read<int64_t>();
1228 isVoiceSpeaker = (
unsigned char)stream.Read<
unsigned char>();
1232struct MsgClientChatEnter :
public ISteamSerializableMessage {
1233 Steam::Internal::Enums::EMsg GetEMsg()
const {
1234 return Steam::Internal::Enums::EMsg::ClientChatEnter;
1239 uint64_t steamIdChat;
1242 SteamID GetsteamIdChat()
const {
return SteamID(steamIdChat); }
1243 void SetsteamIdChat(
const SteamID& val) {
1244 steamIdChat = val.ConvertToUInt64();
1248 uint64_t steamIdFriend;
1251 SteamID GetsteamIdFriend()
const {
return SteamID(steamIdFriend); }
1252 void SetsteamIdFriend(
const SteamID& val) {
1253 steamIdFriend = val.ConvertToUInt64();
1256 Steam::Internal::Enums::EChatRoomType chatRoomType;
1259 uint64_t steamIdOwner;
1262 SteamID GetsteamIdOwner()
const {
return SteamID(steamIdOwner); }
1263 void SetsteamIdOwner(
const SteamID& val) {
1264 steamIdOwner = val.ConvertToUInt64();
1268 uint64_t steamIdClan;
1271 SteamID GetsteamIdClan()
const {
return SteamID(steamIdClan); }
1272 void SetsteamIdClan(
const SteamID& val) {
1273 steamIdClan = val.ConvertToUInt64();
1276 unsigned char chatFlags;
1278 Steam::Internal::Enums::EChatRoomEnterResponse enterResponse;
1282 MsgClientChatEnter() {
1285 chatRoomType = Steam::Internal::Enums::EChatRoomType::Unknown;
1289 enterResponse = Steam::Internal::Enums::EChatRoomEnterResponse::Unknown;
1293 void Serialize(Steam::Utils::Stream& stream)
const {
1294 stream.Write(steamIdChat);
1295 stream.Write(steamIdFriend);
1296 stream.Write((
int)chatRoomType);
1297 stream.Write(steamIdOwner);
1298 stream.Write(steamIdClan);
1299 stream.Write(chatFlags);
1300 stream.Write((
int)enterResponse);
1301 stream.Write(numMembers);
1304 void Deserialize(Steam::Utils::Stream& stream) {
1305 steamIdChat = (uint64_t)stream.Read<int64_t>();
1306 steamIdFriend = (uint64_t)stream.Read<int64_t>();
1308 (Steam::Internal::Enums::EChatRoomType)stream.Read<int32_t>();
1309 steamIdOwner = (uint64_t)stream.Read<int64_t>();
1310 steamIdClan = (uint64_t)stream.Read<int64_t>();
1311 chatFlags = (
unsigned char)stream.Read<
unsigned char>();
1313 (Steam::Internal::Enums::EChatRoomEnterResponse)stream.Read<int32_t>();
1314 numMembers = (int32_t)stream.Read<int32_t>();
1318struct MsgClientChatMsg :
public ISteamSerializableMessage {
1319 Steam::Internal::Enums::EMsg GetEMsg()
const {
1320 return Steam::Internal::Enums::EMsg::ClientChatMsg;
1325 uint64_t steamIdChatter;
1328 SteamID GetsteamIdChatter()
const {
return SteamID(steamIdChatter); }
1329 void SetsteamIdChatter(
const SteamID& val) {
1330 steamIdChatter = val.ConvertToUInt64();
1334 uint64_t steamIdChatRoom;
1337 SteamID GetsteamIdChatRoom()
const {
return SteamID(steamIdChatRoom); }
1338 void SetsteamIdChatRoom(
const SteamID& val) {
1339 steamIdChatRoom = val.ConvertToUInt64();
1342 Steam::Internal::Enums::EChatEntryType chatMsgType;
1344 MsgClientChatMsg() {
1346 steamIdChatRoom = 0;
1347 chatMsgType = Steam::Internal::Enums::EChatEntryType::Invalid;
1350 void Serialize(Steam::Utils::Stream& stream)
const {
1351 stream.Write(steamIdChatter);
1352 stream.Write(steamIdChatRoom);
1353 stream.Write((
int)chatMsgType);
1356 void Deserialize(Steam::Utils::Stream& stream) {
1357 steamIdChatter = (uint64_t)stream.Read<int64_t>();
1358 steamIdChatRoom = (uint64_t)stream.Read<int64_t>();
1360 (Steam::Internal::Enums::EChatEntryType)stream.Read<int32_t>();
1364struct MsgClientChatMemberInfo :
public ISteamSerializableMessage {
1365 Steam::Internal::Enums::EMsg GetEMsg()
const {
1366 return Steam::Internal::Enums::EMsg::ClientChatMemberInfo;
1371 uint64_t steamIdChat;
1374 SteamID GetsteamIdChat()
const {
return SteamID(steamIdChat); }
1375 void SetsteamIdChat(
const SteamID& val) {
1376 steamIdChat = val.ConvertToUInt64();
1379 Steam::Internal::Enums::EChatInfoType type;
1381 MsgClientChatMemberInfo() {
1383 type = Steam::Internal::Enums::EChatInfoType::Unknown;
1386 void Serialize(Steam::Utils::Stream& stream)
const {
1387 stream.Write(steamIdChat);
1388 stream.Write((
int)type);
1391 void Deserialize(Steam::Utils::Stream& stream) {
1392 steamIdChat = (uint64_t)stream.Read<int64_t>();
1393 type = (Steam::Internal::Enums::EChatInfoType)stream.Read<int32_t>();
1397struct MsgClientChatAction :
public ISteamSerializableMessage {
1398 Steam::Internal::Enums::EMsg GetEMsg()
const {
1399 return Steam::Internal::Enums::EMsg::ClientChatAction;
1404 uint64_t steamIdChat;
1407 SteamID GetsteamIdChat()
const {
return SteamID(steamIdChat); }
1408 void SetsteamIdChat(
const SteamID& val) {
1409 steamIdChat = val.ConvertToUInt64();
1413 uint64_t steamIdUserToActOn;
1416 SteamID GetsteamIdUserToActOn()
const {
return SteamID(steamIdUserToActOn); }
1417 void SetsteamIdUserToActOn(
const SteamID& val) {
1418 steamIdUserToActOn = val.ConvertToUInt64();
1421 Steam::Internal::Enums::EChatAction chatAction;
1423 MsgClientChatAction() {
1425 steamIdUserToActOn = 0;
1426 chatAction = Steam::Internal::Enums::EChatAction::Unknown;
1429 void Serialize(Steam::Utils::Stream& stream)
const {
1430 stream.Write(steamIdChat);
1431 stream.Write(steamIdUserToActOn);
1432 stream.Write((
int)chatAction);
1435 void Deserialize(Steam::Utils::Stream& stream) {
1436 steamIdChat = (uint64_t)stream.Read<int64_t>();
1437 steamIdUserToActOn = (uint64_t)stream.Read<int64_t>();
1438 chatAction = (Steam::Internal::Enums::EChatAction)stream.Read<int32_t>();
1442struct MsgClientChatActionResult :
public ISteamSerializableMessage {
1443 Steam::Internal::Enums::EMsg GetEMsg()
const {
1444 return Steam::Internal::Enums::EMsg::ClientChatActionResult;
1449 uint64_t steamIdChat;
1452 SteamID GetsteamIdChat()
const {
return SteamID(steamIdChat); }
1453 void SetsteamIdChat(
const SteamID& val) {
1454 steamIdChat = val.ConvertToUInt64();
1458 uint64_t steamIdUserActedOn;
1461 SteamID GetsteamIdUserActedOn()
const {
return SteamID(steamIdUserActedOn); }
1462 void SetsteamIdUserActedOn(
const SteamID& val) {
1463 steamIdUserActedOn = val.ConvertToUInt64();
1466 Steam::Internal::Enums::EChatAction chatAction;
1468 Steam::Internal::Enums::EChatActionResult actionResult;
1470 MsgClientChatActionResult() {
1472 steamIdUserActedOn = 0;
1473 chatAction = Steam::Internal::Enums::EChatAction::Unknown;
1474 actionResult = Steam::Internal::Enums::EChatActionResult::Unknown;
1477 void Serialize(Steam::Utils::Stream& stream)
const {
1478 stream.Write(steamIdChat);
1479 stream.Write(steamIdUserActedOn);
1480 stream.Write((
int)chatAction);
1481 stream.Write((
int)actionResult);
1484 void Deserialize(Steam::Utils::Stream& stream) {
1485 steamIdChat = (uint64_t)stream.Read<int64_t>();
1486 steamIdUserActedOn = (uint64_t)stream.Read<int64_t>();
1487 chatAction = (Steam::Internal::Enums::EChatAction)stream.Read<int32_t>();
1489 (Steam::Internal::Enums::EChatActionResult)stream.Read<int32_t>();
1493struct MsgClientChatRoomInfo :
public ISteamSerializableMessage {
1494 Steam::Internal::Enums::EMsg GetEMsg()
const {
1495 return Steam::Internal::Enums::EMsg::ClientChatRoomInfo;
1500 uint64_t steamIdChat;
1503 SteamID GetsteamIdChat()
const {
return SteamID(steamIdChat); }
1504 void SetsteamIdChat(
const SteamID& val) {
1505 steamIdChat = val.ConvertToUInt64();
1508 Steam::Internal::Enums::EChatInfoType type;
1510 MsgClientChatRoomInfo() {
1512 type = Steam::Internal::Enums::EChatInfoType::Unknown;
1515 void Serialize(Steam::Utils::Stream& stream)
const {
1516 stream.Write(steamIdChat);
1517 stream.Write((
int)type);
1520 void Deserialize(Steam::Utils::Stream& stream) {
1521 steamIdChat = (uint64_t)stream.Read<int64_t>();
1522 type = (Steam::Internal::Enums::EChatInfoType)stream.Read<int32_t>();
1526struct MsgClientSetIgnoreFriend :
public ISteamSerializableMessage {
1527 Steam::Internal::Enums::EMsg GetEMsg()
const {
1528 return Steam::Internal::Enums::EMsg::ClientSetIgnoreFriend;
1536 SteamID GetmySteamId()
const {
return SteamID(mySteamId); }
1537 void SetmySteamId(
const SteamID& val) { mySteamId = val.ConvertToUInt64(); }
1540 uint64_t steamIdFriend;
1543 SteamID GetsteamIdFriend()
const {
return SteamID(steamIdFriend); }
1544 void SetsteamIdFriend(
const SteamID& val) {
1545 steamIdFriend = val.ConvertToUInt64();
1548 unsigned char ignore;
1550 MsgClientSetIgnoreFriend() {
1556 void Serialize(Steam::Utils::Stream& stream)
const {
1557 stream.Write(mySteamId);
1558 stream.Write(steamIdFriend);
1559 stream.Write(ignore);
1562 void Deserialize(Steam::Utils::Stream& stream) {
1563 mySteamId = (uint64_t)stream.Read<int64_t>();
1564 steamIdFriend = (uint64_t)stream.Read<int64_t>();
1565 ignore = (
unsigned char)stream.Read<
unsigned char>();
1569struct MsgClientSetIgnoreFriendResponse :
public ISteamSerializableMessage {
1570 Steam::Internal::Enums::EMsg GetEMsg()
const {
1571 return Steam::Internal::Enums::EMsg::ClientSetIgnoreFriendResponse;
1579 SteamID GetfriendId()
const {
return SteamID(friendId); }
1580 void SetfriendId(
const SteamID& val) { friendId = val.ConvertToUInt64(); }
1582 Steam::Internal::Enums::EResult result;
1584 MsgClientSetIgnoreFriendResponse() {
1586 result = Steam::Internal::Enums::EResult::Invalid;
1589 void Serialize(Steam::Utils::Stream& stream)
const {
1590 stream.Write(friendId);
1591 stream.Write((
int)result);
1594 void Deserialize(Steam::Utils::Stream& stream) {
1595 friendId = (uint64_t)stream.Read<int64_t>();
1596 result = (Steam::Internal::Enums::EResult)stream.Read<int32_t>();
1600struct MsgClientLoggedOff :
public ISteamSerializableMessage {
1601 Steam::Internal::Enums::EMsg GetEMsg()
const {
1602 return Steam::Internal::Enums::EMsg::ClientLoggedOff;
1606 Steam::Internal::Enums::EResult result;
1608 int32_t secMinReconnectHint;
1610 int32_t secMaxReconnectHint;
1612 MsgClientLoggedOff() {
1613 result = Steam::Internal::Enums::EResult::Invalid;
1614 secMinReconnectHint = 0;
1615 secMaxReconnectHint = 0;
1618 void Serialize(Steam::Utils::Stream& stream)
const {
1619 stream.Write((
int)result);
1620 stream.Write(secMinReconnectHint);
1621 stream.Write(secMaxReconnectHint);
1624 void Deserialize(Steam::Utils::Stream& stream) {
1625 result = (Steam::Internal::Enums::EResult)stream.Read<int32_t>();
1626 secMinReconnectHint = (int32_t)stream.Read<int32_t>();
1627 secMaxReconnectHint = (int32_t)stream.Read<int32_t>();
1631struct MsgClientLogOnResponse :
public ISteamSerializableMessage {
1632 Steam::Internal::Enums::EMsg GetEMsg()
const {
1633 return Steam::Internal::Enums::EMsg::ClientLogOnResponse;
1637 Steam::Internal::Enums::EResult result;
1639 int32_t outOfGameHeartbeatRateSec;
1641 int32_t inGameHeartbeatRateSec;
1644 uint64_t clientSuppliedSteamId;
1647 SteamID GetclientSuppliedSteamId()
const {
1648 return SteamID(clientSuppliedSteamId);
1650 void SetclientSuppliedSteamId(
const SteamID& val) {
1651 clientSuppliedSteamId = val.ConvertToUInt64();
1656 uint32_t serverRealTime;
1658 MsgClientLogOnResponse() {
1659 result = Steam::Internal::Enums::EResult::Invalid;
1660 outOfGameHeartbeatRateSec = 0;
1661 inGameHeartbeatRateSec = 0;
1662 clientSuppliedSteamId = 0;
1667 void Serialize(Steam::Utils::Stream& stream)
const {
1668 stream.Write((
int)result);
1669 stream.Write(outOfGameHeartbeatRateSec);
1670 stream.Write(inGameHeartbeatRateSec);
1671 stream.Write(clientSuppliedSteamId);
1672 stream.Write(ipPublic);
1673 stream.Write(serverRealTime);
1676 void Deserialize(Steam::Utils::Stream& stream) {
1677 result = (Steam::Internal::Enums::EResult)stream.Read<int32_t>();
1678 outOfGameHeartbeatRateSec = (int32_t)stream.Read<int32_t>();
1679 inGameHeartbeatRateSec = (int32_t)stream.Read<int32_t>();
1680 clientSuppliedSteamId = (uint64_t)stream.Read<int64_t>();
1681 ipPublic = (uint32_t)stream.Read<int32_t>();
1682 serverRealTime = (uint32_t)stream.Read<int32_t>();
1686struct MsgClientServerUnavailable :
public ISteamSerializableMessage {
1687 Steam::Internal::Enums::EMsg GetEMsg()
const {
1688 return Steam::Internal::Enums::EMsg::ClientServerUnavailable;
1696 Steam::Internal::Enums::EServerType eServerTypeUnavailable;
1698 MsgClientServerUnavailable() {
1701 eServerTypeUnavailable = Steam::Internal::Enums::EServerType::First;
1704 void Serialize(Steam::Utils::Stream& stream)
const {
1705 stream.Write(jobidSent);
1706 stream.Write(eMsgSent);
1707 stream.Write((
int)eServerTypeUnavailable);
1710 void Deserialize(Steam::Utils::Stream& stream) {
1711 jobidSent = (uint64_t)stream.Read<int64_t>();
1712 eMsgSent = (uint32_t)stream.Read<int32_t>();
1713 eServerTypeUnavailable =
1714 (Steam::Internal::Enums::EServerType)stream.Read<int32_t>();
1718struct MsgClientCreateChat :
public ISteamSerializableMessage {
1719 Steam::Internal::Enums::EMsg GetEMsg()
const {
1720 return Steam::Internal::Enums::EMsg::ClientCreateChat;
1724 Steam::Internal::Enums::EChatRoomType chatRoomType;
1730 GameID GetgameId()
const {
return GameID(gameId); }
1731 void SetgameId(
const GameID& val) { gameId = val.ConvertToUInt64(); }
1734 uint64_t steamIdClan;
1737 SteamID GetsteamIdClan()
const {
return SteamID(steamIdClan); }
1738 void SetsteamIdClan(
const SteamID& val) {
1739 steamIdClan = val.ConvertToUInt64();
1742 Steam::Internal::Enums::EChatPermission permissionOfficer;
1744 Steam::Internal::Enums::EChatPermission permissionMember;
1746 Steam::Internal::Enums::EChatPermission permissionAll;
1748 uint32_t membersMax;
1750 unsigned char chatFlags;
1753 uint64_t steamIdFriendChat;
1756 SteamID GetsteamIdFriendChat()
const {
return SteamID(steamIdFriendChat); }
1757 void SetsteamIdFriendChat(
const SteamID& val) {
1758 steamIdFriendChat = val.ConvertToUInt64();
1762 uint64_t steamIdInvited;
1765 SteamID GetsteamIdInvited()
const {
return SteamID(steamIdInvited); }
1766 void SetsteamIdInvited(
const SteamID& val) {
1767 steamIdInvited = val.ConvertToUInt64();
1770 MsgClientCreateChat() {
1771 chatRoomType = Steam::Internal::Enums::EChatRoomType::Unknown;
1775 permissionOfficer = Steam::Internal::Enums::EChatPermission::OfficerDefault;
1776 permissionMember = Steam::Internal::Enums::EChatPermission::MemberDefault;
1777 permissionAll = Steam::Internal::Enums::EChatPermission::OwnerDefault;
1781 steamIdFriendChat = 0;
1785 void Serialize(Steam::Utils::Stream& stream)
const {
1786 stream.Write((
int)chatRoomType);
1787 stream.Write(gameId);
1788 stream.Write(steamIdClan);
1789 stream.Write((
int)permissionOfficer);
1790 stream.Write((
int)permissionMember);
1791 stream.Write((
int)permissionAll);
1792 stream.Write(membersMax);
1793 stream.Write(chatFlags);
1794 stream.Write(steamIdFriendChat);
1795 stream.Write(steamIdInvited);
1798 void Deserialize(Steam::Utils::Stream& stream) {
1800 (Steam::Internal::Enums::EChatRoomType)stream.Read<int32_t>();
1801 gameId = (uint64_t)stream.Read<int64_t>();
1802 steamIdClan = (uint64_t)stream.Read<int64_t>();
1804 (Steam::Internal::Enums::EChatPermission)stream.Read<int32_t>();
1806 (Steam::Internal::Enums::EChatPermission)stream.Read<int32_t>();
1808 (Steam::Internal::Enums::EChatPermission)stream.Read<int32_t>();
1809 membersMax = (uint32_t)stream.Read<int32_t>();
1810 chatFlags = (
unsigned char)stream.Read<
unsigned char>();
1811 steamIdFriendChat = (uint64_t)stream.Read<int64_t>();
1812 steamIdInvited = (uint64_t)stream.Read<int64_t>();
1816struct MsgClientCreateChatResponse :
public ISteamSerializableMessage {
1817 Steam::Internal::Enums::EMsg GetEMsg()
const {
1818 return Steam::Internal::Enums::EMsg::ClientCreateChatResponse;
1822 Steam::Internal::Enums::EResult result;
1825 uint64_t steamIdChat;
1828 SteamID GetsteamIdChat()
const {
return SteamID(steamIdChat); }
1829 void SetsteamIdChat(
const SteamID& val) {
1830 steamIdChat = val.ConvertToUInt64();
1833 Steam::Internal::Enums::EChatRoomType chatRoomType;
1836 uint64_t steamIdFriendChat;
1839 SteamID GetsteamIdFriendChat()
const {
return SteamID(steamIdFriendChat); }
1840 void SetsteamIdFriendChat(
const SteamID& val) {
1841 steamIdFriendChat = val.ConvertToUInt64();
1844 MsgClientCreateChatResponse() {
1845 result = Steam::Internal::Enums::EResult::Invalid;
1847 chatRoomType = Steam::Internal::Enums::EChatRoomType::Unknown;
1848 steamIdFriendChat = 0;
1851 void Serialize(Steam::Utils::Stream& stream)
const {
1852 stream.Write((
int)result);
1853 stream.Write(steamIdChat);
1854 stream.Write((
int)chatRoomType);
1855 stream.Write(steamIdFriendChat);
1858 void Deserialize(Steam::Utils::Stream& stream) {
1859 result = (Steam::Internal::Enums::EResult)stream.Read<int32_t>();
1860 steamIdChat = (uint64_t)stream.Read<int64_t>();
1862 (Steam::Internal::Enums::EChatRoomType)stream.Read<int32_t>();
1863 steamIdFriendChat = (uint64_t)stream.Read<int64_t>();
1867struct MsgClientMarketingMessageUpdate2 :
public ISteamSerializableMessage {
1868 Steam::Internal::Enums::EMsg GetEMsg()
const {
1869 return Steam::Internal::Enums::EMsg::ClientMarketingMessageUpdate2;
1873 uint32_t marketingMessageUpdateTime;
1877 MsgClientMarketingMessageUpdate2() {
1878 marketingMessageUpdateTime = 0;
1882 void Serialize(Steam::Utils::Stream& stream)
const {
1883 stream.Write(marketingMessageUpdateTime);
1884 stream.Write(count);
1887 void Deserialize(Steam::Utils::Stream& stream) {
1888 marketingMessageUpdateTime = (uint32_t)stream.Read<int32_t>();
1889 count = (uint32_t)stream.Read<int32_t>();
1893struct MsgClientGetLegacyGameKey :
public ISteamSerializableMessage {
1894 Steam::Internal::Enums::EMsg GetEMsg()
const {
1895 return Steam::Internal::Enums::EMsg::ClientGetLegacyGameKey;
1901 MsgClientGetLegacyGameKey() { appId = 0; }
1903 void Serialize(Steam::Utils::Stream& stream)
const { stream.Write(appId); }
1905 void Deserialize(Steam::Utils::Stream& stream) {
1906 appId = (uint32_t)stream.Read<int32_t>();
1910struct MsgClientGetLegacyGameKeyResponse :
public ISteamSerializableMessage {
1911 Steam::Internal::Enums::EMsg GetEMsg()
const {
1912 return Steam::Internal::Enums::EMsg::ClientGetLegacyGameKeyResponse;
1918 Steam::Internal::Enums::EResult result;
1922 MsgClientGetLegacyGameKeyResponse() {
1924 result = Steam::Internal::Enums::EResult::Invalid;
1928 void Serialize(Steam::Utils::Stream& stream)
const {
1929 stream.Write(appId);
1930 stream.Write((
int)result);
1931 stream.Write(length);
1934 void Deserialize(Steam::Utils::Stream& stream) {
1935 appId = (uint32_t)stream.Read<int32_t>();
1936 result = (Steam::Internal::Enums::EResult)stream.Read<int32_t>();
1937 length = (uint32_t)stream.Read<int32_t>();