summaryrefslogtreecommitdiff
path: root/game/shared/econ/econ_gcmessages.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/shared/econ/econ_gcmessages.h')
-rw-r--r--game/shared/econ/econ_gcmessages.h345
1 files changed, 345 insertions, 0 deletions
diff --git a/game/shared/econ/econ_gcmessages.h b/game/shared/econ/econ_gcmessages.h
new file mode 100644
index 0000000..c5e5d7a
--- /dev/null
+++ b/game/shared/econ/econ_gcmessages.h
@@ -0,0 +1,345 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: This file defines all of our over-the-wire net protocols for the
+// Game Coordinator for the item system. Note that we never use types
+// with undefined length (like int). Always use an explicit type
+// (like int32).
+//
+//=============================================================================
+
+#ifndef ITEM_GCMESSAGES_H
+#define ITEM_GCMESSAGES_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "econ_gcmessages.pb.h"
+
+#pragma pack( push, 1 )
+
+
+// generic zero-length message struct
+struct MsgGCEmpty_t
+{
+
+};
+
+// k_EMsgGCSetItemPosition
+struct MsgGCSetItemPosition_t
+{
+ uint64 m_unItemID;
+ uint32 m_unNewPosition;
+};
+
+// k_EMsgGCCraft
+struct MsgGCCraft_t
+{
+ int16 m_nRecipeDefIndex;
+ uint16 m_nItemCount;
+ // list of m_nItemCount uint64 item IDs
+};
+
+// k_EMsgGCDelete
+struct MsgGCDelete_t
+{
+ uint64 m_unItemID;
+};
+
+// k_EMsgGCCraftResponse
+struct MsgGCStandardResponse_t
+{
+ int16 m_nResponseIndex;
+ uint32 m_eResponse;
+};
+
+// k_EMsgGCVerifyCacheSubscription
+struct MsgGCVerifyCacheSubscription_t
+{
+ uint64 m_ulSteamID;
+};
+
+// k_EMsgGCNameItem
+struct MsgGCNameItem_t
+{
+ uint64 m_unToolItemID; // the Nametag item
+ uint64 m_unSubjectItemID; // the item to be renamed
+ bool m_bDescription;
+ // Varchar: Item name
+};
+
+// k_EMsgGCNameBaseItem
+struct MsgGCNameBaseItem_t
+{
+ uint64 m_unToolItemID; // the Nametag item
+ uint32 m_unBaseItemDefinitionID; // the base item definition to be renamed
+ bool m_bDescription;
+ // Varchar: Item name
+};
+
+// k_EMsgGCUnlockCrate
+struct MsgGCUnlockCrate_t
+{
+ uint64 m_unToolItemID; // the crate key
+ uint64 m_unSubjectItemID; // the crate to be decoded
+};
+
+// k_EMsgGCPaintItem
+struct MsgGCPaintItem_t
+{
+ uint64 m_unToolItemID; // the Paint Can item
+ uint64 m_unSubjectItemID; // the item to be painted
+};
+
+// k_EMsgGCGiftWrapItem
+struct MsgGCGiftWrapItem_t
+{
+ uint64 m_unToolItemID; // the Gift Wrap item
+ uint64 m_unSubjectItemID; // the item to be wrapped
+};
+
+// k_EMsgGCDeliverGift
+struct MsgGCDeliverGift_t
+{
+ uint64 m_unGiftID;
+ uint64 m_ulGiverSteamID;
+ uint64 m_ulTargetSteamID;
+};
+
+// k_EMsgGCUnwrapGiftRequest
+struct MsgGCUnwrapGiftRequest_t
+{
+ uint64 m_unItemID;
+};
+
+// k_EMsgGCMOTDRequest
+struct MsgGCMOTDRequest_t
+{
+ RTime32 m_nLastMOTDRequest; // Time at which the client last asked for MOTDs. GC will send back all MOTDs posted since.
+ int16 m_eLanguage;
+};
+
+// k_EMsgGCMOTDRequestResponse
+struct MsgGCMOTDRequestResponse_t
+{
+ int16 m_nEntries;
+};
+
+// k_EMsgGCCustomizeItemTexture
+struct MsgGCCustomizeItemTexture_t
+{
+ uint64 m_unToolItemID; // the tool
+ uint64 m_unSubjectItemID; // the item wants the texture
+ uint64 m_unImageUGCHandle; // cloud ID of image file (UGCHandle_t)
+};
+
+// k_EMsgGCSetItemStyle
+struct MsgGCSetItemStyle_t
+{
+ uint64 m_unItemID;
+ uint8 m_iStyle;
+};
+
+// k_EMsgGCItemPreviewCheckStatus
+struct MsgGCCheckItemPreviewStatus_t
+{
+ uint32 m_unItemDefIndex;
+};
+
+// k_EMsgGCItemPreviewCheckStatusResponse
+struct MsgGCItemPreviewCheckStatusResponse_t
+{
+ uint32 m_unItemDefIndex;
+ uint32 m_eResponse;
+ RTime32 m_timePreviewTime;
+};
+
+// k_EMsgGCItemPreviewRequest
+struct MsgGCItemPreviewRequest_t
+{
+ uint32 m_unItemDefIndex;
+};
+
+// k_EMsgGCItemPreviewRequestResponse
+struct MsgGCItemPreviewRequestResponse_t
+{
+ uint32 m_unItemDefIndex;
+ uint32 m_eResponse;
+};
+
+// k_EMsgGCItemPreviewExpire
+struct MsgGCItemPreviewExpire_t
+{
+
+};
+
+// k_EMsgGCItemPreviewExpireNotification
+struct MsgGCItemPreviewExpireNotification_t
+{
+ uint32 m_unItemDefIndex;
+};
+
+//-----------------------------------------------------------------------------
+
+// k_EMsgGCUseItemResponse
+enum EGCMsgUseItemResponse
+{
+ k_EGCMsgUseItemResponse_ItemUsed = 0,
+ k_EGCMsgUseItemResponse_GiftNoOtherPlayers = 1,
+ k_EGCMsgUseItemResponse_ServerError = 2,
+ k_EGCMsgUseItemResponse_MiniGameAlreadyStarted = 3,
+ k_EGCMsgUseItemResponse_ItemUsed_ItemsGranted = 4,
+ k_EGCMsgUseItemResponse_CannotBeUsedByAccount = 5,
+ k_EGCMsgUseItemResponse_ForceSizeInt = 0x7FFFFFFF
+};
+
+// k_EMsgGCUseItemResponse
+struct MsgGCUseItemResponse_t
+{
+ uint32 m_eResponse;
+};
+
+// k_EMsgGCSpawnItem
+struct MsgGCSpawnItem_t
+{
+ uint64 m_ulInitiatorSteamID;
+ uint32 m_unItemDefinitionID;
+ // other data dynamically added:
+ // string of initiator name
+};
+
+// k_EMsgGCRespawnPostLoadoutChange
+struct MsgGCRespawnPostLoadoutChange_t
+{
+ uint64 m_ulInitiatorSteamID;
+};
+
+// k_EMsgGCRemoveItemName
+struct MsgGCRemoveItemName_t
+{
+ uint64 m_unItemID;
+ bool m_bDescription;
+};
+
+//-----------------------------------------------------------------------------
+// Trading
+
+// k_EMsgGCTrading_InitiateTradeRequest
+struct MsgGCTrading_InitiateTradeRequest_t
+{
+ uint32 m_unTradeRequestID;
+ uint64 m_ulOtherSteamID;
+ // @note player A's name as string when sent to party B
+};
+
+enum EGCMsgInitiateTradeResponse
+{
+ k_EGCMsgInitiateTradeResponse_Accepted = 0,
+ k_EGCMsgInitiateTradeResponse_Declined = 1,
+ k_EGCMsgInitiateTradeResponse_VAC_Banned_Initiator = 2,
+ k_EGCMsgInitiateTradeResponse_VAC_Banned_Target = 3,
+ k_EGCMsgInitiateTradeResponse_Target_Already_Trading = 4,
+ k_EGCMsgInitiateTradeResponse_Disabled = 5,
+ k_EGCMsgInitiateTradeResponse_NotLoggedIn = 6,
+ k_EGCMsgInitiateTradeResponse_Cancel = 7,
+ k_EGCMsgInitiateTradeResponse_TooSoon = 8,
+ k_EGCMsgInitiateTradeResponse_TooSoonPenalty = 9,
+ k_EGCMsgInitiateTradeResponse_Trade_Banned_Initiator = 10,
+ k_EGCMsgInitiateTradeResponse_Trade_Banned_Target = 11,
+ k_EGCMsgInitiateTradeResponse_Free_Account_Initiator_DEPRECATED = 12, // free accounts can initiate trades now
+ k_EGCMsgInitiateTradeResponse_Shared_Account_Initiator= 13,
+ k_EGCMsgInitiateTradeResponse_Service_Unavailable = 14,
+ k_EGCMsgInitiateTradeResponse_Target_Blocked = 15,
+ k_EGCMsgInitiateTradeResponse_NeedVerifiedEmail = 16,
+ k_EGCMsgInitiateTradeResponse_NeedSteamGuard = 17,
+ k_EGCMsgInitiateTradeResponse_SteamGuardDuration = 18,
+ k_EGCMsgInitiateTradeResponse_TheyCannotTrade = 19,
+ k_EGCMsgInitiateTradeResponse_Recent_Password_Reset = 20,
+ k_EGCMsgInitiateTradeResponse_Using_New_Device = 21,
+ k_EGCMsgInitiateTradeResponse_Sent_Invalid_Cookie = 22,
+
+ k_EGCMsgInitiateTradeResponse_Count,
+ k_EGCMsgInitiateTradeResponse_ForceSizeInt = 0x7FFFFFFF
+};
+
+// k_EMsgGCTrading_InitiateTradeResponse
+struct MsgGCTrading_InitiateTradeResponse_t
+{
+ uint32 m_eResponse;
+ uint32 m_unTradeRequestID;
+};
+
+// k_EMsgGCTrading_StartSession
+struct MsgGCTrading_StartSession_t
+{
+ uint32 m_unSessionVersion;
+ uint64 m_ulSteamIDPartyA;
+ uint64 m_ulSteamIDPartyB;
+ // @note strings from player names will be added to the message
+};
+
+// k_EMsgGCTrading_CancelSession
+struct MsgGCTrading_CancelSession_t
+{
+};
+
+// k_EMsgGCUsedClaimCodeItem
+struct MsgGCUsedClaimCodeItem_t
+{
+ // string of URL
+};
+
+//-----------------------------------------------------------------------------
+// ServerBrowser messages
+
+enum EGCMsgServerBrowser
+{
+ k_EGCMsgServerBrowser_FromServerBrowser = 0,
+ k_EGCMsgServerBrowser_FromAutoAskDialog = 1,
+};
+
+// k_EMsgGCServerBrowser_FavoriteServer
+// k_EMsgGCServerBrowser_BlacklistServer
+struct MsgGCServerBrowser_Server_t
+{
+ uint32 m_unIP;
+ int m_usPort;
+ uint8 m_ubSource; // 0=serverbrowser, 1=auto-ask dialog
+};
+
+//-----------------------------------------------------------------------------
+// Public facing loot lists.
+
+// k_EMsgGC_RevolvingLootList
+struct MsgGC_RevolvingLootList_t
+{
+ uint8 m_usListID; // Id of this list.
+ // Var Data:
+ // Serialized Lootlist KV
+};
+
+
+// k_EMsgGCLookupAccount
+struct MsgGCLookupAccount_t
+{
+ uint16 m_uiFindType;
+
+ // Var Data
+ // string containing Persona / URL / etc
+};
+
+// k_EMsgGCLookupAccountName
+struct MsgGCLookupAccountName_t
+{
+ uint32 m_unAccountID;
+};
+
+// k_EMsgGCLookupAccountNameResponse
+struct MsgGCLookupAccountNameResponse_t
+{
+ uint32 m_unAccountID;
+ // string containing persona name
+};
+
+#pragma pack( pop )
+
+#endif