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
|