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.
162 lines
4.1 KiB
162 lines
4.1 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: This file defines all of our over-the-wire net protocols for the |
|
// Game Coordinator for Team Fortress. Note that we never use types |
|
// with undefined length (like int). Always use an explicit type |
|
// (like int32). |
|
// |
|
//============================================================================= |
|
|
|
#ifndef TF_GCMESSAGES_H |
|
#define TF_GCMESSAGES_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "language.h" |
|
#include "gcsdk/gcsystemmsgs.h" |
|
|
|
// 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 "tf_gcmessages.pb.h" |
|
#ifdef GC |
|
#include "tf_gcmessages_interserver.pb.h" // These should not be exposed to clients/servers |
|
#endif // #ifdef GC |
|
|
|
#include <tier0/valve_minmax_on.h> |
|
|
|
#pragma pack( push, 1 ) |
|
|
|
//----------------------------------------------------------------------------- |
|
// Type IDs for TF GC classes. These are part of the client-GC protocol and |
|
// should not change if it can be helped |
|
//----------------------------------------------------------------------------- |
|
enum EGCTFProtoObjectTypes |
|
{ |
|
k_EProtoObjectTypesGameBase = 2000, |
|
|
|
// k_EProtoObjectHeroStandings = k_EProtoObjectTypesGameBase + 1, |
|
// k_EProtoObjectGameAccountClient = k_EProtoObjectTypesGameBase + 2, |
|
k_EProtoObjectTFParty = k_EProtoObjectTypesGameBase + 3, |
|
k_EProtoObjectTFGameServerLobby = k_EProtoObjectTypesGameBase + 4, |
|
// k_EProtoObjectBetaParticipation = k_EProtoObjectTypesGameBase + 5, |
|
k_EProtoObjectTFPartyInvite = k_EProtoObjectTypesGameBase + 6, |
|
k_EProtoObjectTFRatingData = k_EProtoObjectTypesGameBase + 7, |
|
}; |
|
|
|
//============================================================================= |
|
// Duel |
|
|
|
// k_EMsgGC_Duel_Request |
|
struct MsgGC_Duel_Request_t |
|
{ |
|
uint64 m_ulInitiatorSteamID; |
|
uint64 m_ulTargetSteamID; |
|
uint8 m_usAsPlayerClass; |
|
}; |
|
|
|
// k_EMsgGC_Duel_Response |
|
struct MsgGC_Duel_Response_t |
|
{ |
|
uint64 m_ulInitiatorSteamID; |
|
uint64 m_ulTargetSteamID; |
|
bool m_bAccepted; |
|
uint8 m_usAsPlayerClass; |
|
}; |
|
|
|
// k_EMsgGC_Duel_Results |
|
struct MsgGC_Duel_Results_t |
|
{ |
|
uint64 m_ulInitiatorSteamID; |
|
uint64 m_ulTargetSteamID; |
|
uint64 m_ulWinnerSteamID; |
|
uint16 m_usScoreInitiator; |
|
uint16 m_usScoreTarget; |
|
uint8 m_usEndReason; |
|
}; |
|
|
|
// k_EMsgGC_Duel_Status |
|
enum EGCDuelStatus |
|
{ |
|
kDuel_Status_Invalid = -1, |
|
kDuel_Status_AlreadyInDuel_Inititator, |
|
kDuel_Status_AlreadyInDuel_Target, |
|
kDuel_Status_DuelBanned_Initiator, |
|
kDuel_Status_DuelBanned_Target, |
|
kDuel_Status_MissingSession, // could be gameserver session or target client session |
|
kDuel_Status_Cancelled, |
|
}; |
|
struct MsgGC_Duel_Status_t |
|
{ |
|
uint8 m_usStatus; |
|
uint64 m_ulInitiatorSteamID; |
|
uint64 m_ulTargetSteamID; |
|
}; |
|
|
|
//============================================================================= |
|
|
|
// k_EMsgGC_MM_RequestMatch |
|
struct MsgGC_MM_RequestMatch_t |
|
{ |
|
uint32 m_unRequiredGameServerFlags; |
|
// string with map name |
|
}; |
|
|
|
// k_EMsgGC_MM_RequestMatchResponse |
|
struct MsgGC_MM_RequestMatchResponse_t |
|
{ |
|
bool m_bServerFound; |
|
uint32 m_iServerAddress; |
|
uint16 m_iServerPort; |
|
}; |
|
|
|
// k_EMsgGC_MM_ReserveSpot |
|
struct MsgGC_MM_ReserveSpot_t |
|
{ |
|
uint64 m_ulSteamID; |
|
}; |
|
|
|
// k_EMsgGC_MM_LoadMap |
|
struct MsgGC_MM_LoadMap_t |
|
{ |
|
// string with map name |
|
}; |
|
|
|
struct MsgGCChatMessage_t |
|
{ |
|
// string sChannelName |
|
// string sPersonaName |
|
int32 m_cMsgLen; |
|
// binary message |
|
}; |
|
|
|
//============================================================================= |
|
|
|
// do not re-order, stored in DB |
|
enum |
|
{ |
|
kVoteKickBanPlayerReason_Other, |
|
kVoteKickBanPlayerReason_Cheating, |
|
kVoteKickBanPlayerReason_Idle, |
|
kVoteKickBanPlayerReason_Scamming, |
|
}; |
|
|
|
uint32 GetKickBanPlayerReason( const char *pReasonString ); |
|
|
|
//============================================================================= |
|
|
|
#pragma pack( pop ) |
|
|
|
// Normal: |
|
#define MATCHMAKING_SPEWLEVEL4 4 |
|
#define MATCHMAKING_SPEWLEVEL3 4 |
|
#define MATCHMAKING_SPEWLEVEL2 2 |
|
|
|
// Use these defines to crank up the spew level |
|
//#define MATCHMAKING_SPEWLEVEL4 1 |
|
//#define MATCHMAKING_SPEWLEVEL3 1 |
|
//#define MATCHMAKING_SPEWLEVEL2 1 |
|
|
|
#endif
|
|
|