package dota; option optimize_for = SPEED; option cc_generic_services = false; enum DOTA_GameMode { DOTA_GAMEMODE_NONE = 0; DOTA_GAMEMODE_AP = 1; DOTA_GAMEMODE_CM = 2; DOTA_GAMEMODE_RD = 3; DOTA_GAMEMODE_SD = 4; DOTA_GAMEMODE_AR = 5; DOTA_GAMEMODE_INTRO = 6; DOTA_GAMEMODE_HW = 7; DOTA_GAMEMODE_REVERSE_CM = 8; DOTA_GAMEMODE_XMAS = 9; DOTA_GAMEMODE_TUTORIAL = 10; DOTA_GAMEMODE_MO = 11; DOTA_GAMEMODE_LP = 12; DOTA_GAMEMODE_POOL1 = 13; DOTA_GAMEMODE_FH = 14; DOTA_GAMEMODE_CUSTOM = 15; DOTA_GAMEMODE_CD = 16; DOTA_GAMEMODE_BD = 17; DOTA_GAMEMODE_ABILITY_DRAFT = 18; DOTA_GAMEMODE_EVENT = 19; DOTA_GAMEMODE_ARDM = 20; DOTA_GAMEMODE_1V1MID = 21; DOTA_GAMEMODE_ALL_DRAFT = 22; } enum DOTA_GameState { DOTA_GAMERULES_STATE_INIT = 0; DOTA_GAMERULES_STATE_WAIT_FOR_PLAYERS_TO_LOAD = 1; DOTA_GAMERULES_STATE_HERO_SELECTION = 2; DOTA_GAMERULES_STATE_STRATEGY_TIME = 3; DOTA_GAMERULES_STATE_PRE_GAME = 4; DOTA_GAMERULES_STATE_GAME_IN_PROGRESS = 5; DOTA_GAMERULES_STATE_POST_GAME = 6; DOTA_GAMERULES_STATE_DISCONNECT = 7; DOTA_GAMERULES_STATE_TEAM_SHOWCASE = 8; DOTA_GAMERULES_STATE_CUSTOM_GAME_SETUP = 9; DOTA_GAMERULES_STATE_LAST = 10; } enum DOTA_GC_TEAM { DOTA_GC_TEAM_GOOD_GUYS = 0; DOTA_GC_TEAM_BAD_GUYS = 1; DOTA_GC_TEAM_BROADCASTER = 2; DOTA_GC_TEAM_SPECTATOR = 3; DOTA_GC_TEAM_PLAYER_POOL = 4; DOTA_GC_TEAM_NOTEAM = 5; } enum EEvent { EVENT_ID_NONE = 0; EVENT_ID_DIRETIDE = 1; EVENT_ID_SPRING_FESTIVAL = 2; EVENT_ID_FROSTIVUS_2013 = 3; EVENT_ID_COMPENDIUM_2014 = 4; EVENT_ID_NEXON_PC_BANG = 5; EVENT_ID_PWRD_DAC_2015 = 6; EVENT_ID_NEW_BLOOM_2015 = 7; EVENT_ID_INTERNATIONAL_2015 = 8; EVENT_ID_FALL_MAJOR_2015 = 9; EVENT_ID_ORACLE_PA = 10; EVENT_ID_NEW_BLOOM_2015_PREBEAST = 11; EVENT_ID_FROSTIVUS = 12; EVENT_ID_WINTER_MAJOR_2016 = 13; EVENT_ID_INTERNATIONAL_2016 = 14; } enum DOTALeaverStatus_t { DOTA_LEAVER_NONE = 0; DOTA_LEAVER_DISCONNECTED = 1; DOTA_LEAVER_DISCONNECTED_TOO_LONG = 2; DOTA_LEAVER_ABANDONED = 3; DOTA_LEAVER_AFK = 4; DOTA_LEAVER_NEVER_CONNECTED = 5; DOTA_LEAVER_NEVER_CONNECTED_TOO_LONG = 6; DOTA_LEAVER_FAILED_TO_READY_UP = 7; DOTA_LEAVER_DECLINED = 8; } enum DOTAConnectionState_t { DOTA_CONNECTION_STATE_UNKNOWN = 0; DOTA_CONNECTION_STATE_NOT_YET_CONNECTED = 1; DOTA_CONNECTION_STATE_CONNECTED = 2; DOTA_CONNECTION_STATE_DISCONNECTED = 3; DOTA_CONNECTION_STATE_ABANDONED = 4; DOTA_CONNECTION_STATE_LOADING = 5; DOTA_CONNECTION_STATE_FAILED = 6; } enum Fantasy_Roles { FANTASY_ROLE_UNDEFINED = 0; FANTASY_ROLE_CORE = 1; FANTASY_ROLE_SUPPORT = 2; } enum Fantasy_Team_Slots { FANTASY_SLOT_NONE = 0; FANTASY_SLOT_CORE = 1; FANTASY_SLOT_SUPPORT = 2; FANTASY_SLOT_ANY = 3; FANTASY_SLOT_BENCH = 4; } enum Fantasy_Selection_Mode { FANTASY_SELECTION_INVALID = 0; FANTASY_SELECTION_LOCKED = 1; FANTASY_SELECTION_SHUFFLE = 2; FANTASY_SELECTION_FREE_PICK = 3; FANTASY_SELECTION_ENDED = 4; FANTASY_SELECTION_PRE_SEASON = 5; FANTASY_SELECTION_PRE_DRAFT = 6; FANTASY_SELECTION_DRAFTING = 7; FANTASY_SELECTION_REGULAR_SEASON = 8; FANTASY_SELECTION_CARD_BASED = 9; } enum DOTAChatChannelType_t { DOTAChannelType_Regional = 0; DOTAChannelType_Custom = 1; DOTAChannelType_Party = 2; DOTAChannelType_Lobby = 3; DOTAChannelType_Team = 4; DOTAChannelType_Guild = 5; DOTAChannelType_Fantasy = 6; DOTAChannelType_Whisper = 7; DOTAChannelType_Console = 8; DOTAChannelType_Tab = 9; DOTAChannelType_Invalid = 10; DOTAChannelType_GameAll = 11; DOTAChannelType_GameAllies = 12; DOTAChannelType_GameSpectator = 13; DOTAChannelType_GameCoaching = 14; DOTAChannelType_Cafe = 15; DOTAChannelType_CustomGame = 16; DOTAChannelType_Private = 17; DOTAChannelType_PostGame = 18; DOTAChannelType_BattleCup = 19; DOTAChannelType_HLTVSpectator = 20; } enum EProfileCardSlotType { k_EProfileCardSlotType_Empty = 0; k_EProfileCardSlotType_Stat = 1; k_EProfileCardSlotType_Trophy = 2; k_EProfileCardSlotType_Item = 3; k_EProfileCardSlotType_Hero = 4; k_EProfileCardSlotType_Emoticon = 5; } enum EMatchGroupServerStatus { k_EMatchGroupServerStatus_OK = 0; k_EMatchGroupServerStatus_LimitedAvailability = 1; k_EMatchGroupServerStatus_Offline = 2; } enum DOTA_CM_PICK { DOTA_CM_RANDOM = 0; DOTA_CM_GOOD_GUYS = 1; DOTA_CM_BAD_GUYS = 2; } enum DOTALowPriorityBanType { DOTA_LOW_PRIORITY_BAN_ABANDON = 0; DOTA_LOW_PRIORITY_BAN_REPORTS = 1; DOTA_LOW_PRIORITY_BAN_SECONDARY_ABANDON = 2; } enum DOTALobbyReadyState { DOTALobbyReadyState_UNDECLARED = 0; DOTALobbyReadyState_ACCEPTED = 1; DOTALobbyReadyState_DECLINED = 2; } enum DOTAGameVersion { GAME_VERSION_CURRENT = 0; GAME_VERSION_STABLE = 1; } enum DOTAJoinLobbyResult { DOTA_JOIN_RESULT_SUCCESS = 0; DOTA_JOIN_RESULT_ALREADY_IN_GAME = 1; DOTA_JOIN_RESULT_INVALID_LOBBY = 2; DOTA_JOIN_RESULT_INCORRECT_PASSWORD = 3; DOTA_JOIN_RESULT_ACCESS_DENIED = 4; DOTA_JOIN_RESULT_GENERIC_ERROR = 5; DOTA_JOIN_RESULT_INCORRECT_VERSION = 6; DOTA_JOIN_RESULT_IN_TEAM_PARTY = 7; DOTA_JOIN_RESULT_NO_LOBBY_FOUND = 8; DOTA_JOIN_RESULT_LOBBY_FULL = 9; DOTA_JOIN_RESULT_CUSTOM_GAME_INCORRECT_VERSION = 10; DOTA_JOIN_RESULT_TIMEOUT = 11; } enum SelectionPriorityType { UNDEFINED = 0; RADIANT = 1; DIRE = 2; FIRST_PICK = 3; SECOND_PICK = 4; } enum DOTAMatchVote { DOTAMatchVote_INVALID = 0; DOTAMatchVote_POSITIVE = 1; DOTAMatchVote_NEGATIVE = 2; } enum DOTA_LobbyMemberXPBonus { DOTA_LobbyMemberXPBonus_DEFAULT = 0; DOTA_LobbyMemberXPBonus_BATTLE_BOOSTER = 1; DOTA_LobbyMemberXPBonus_SHARE_BONUS = 2; DOTA_LobbyMemberXPBonus_PARTY = 3; DOTA_LobbyMemberXPBonus_RECRUITMENT = 4; DOTA_LobbyMemberXPBonus_PCBANG = 5; } enum DOTALobbyVisibility { DOTALobbyVisibility_Public = 0; DOTALobbyVisibility_Friends = 1; DOTALobbyVisibility_Unlisted = 2; } enum EDOTAPlayerMMRType { k_EDOTAPlayerMMRType_Invalid = 0; k_EDOTAPlayerMMRType_GeneralHidden = 1; k_EDOTAPlayerMMRType_SoloHidden = 2; k_EDOTAPlayerMMRType_GeneralCompetitive = 3; k_EDOTAPlayerMMRType_SoloCompetitive = 4; k_EDOTAPlayerMMRType_1v1Competitive = 5; k_EDOTAPlayerMMRType_GeneralSeasonalRanked = 6; k_EDOTAPlayerMMRType_SoloSeasonalRanked = 7; } enum MatchType { MATCH_TYPE_CASUAL = 0; MATCH_TYPE_COOP_BOTS = 1; MATCH_TYPE_TEAM_RANKED = 2; MATCH_TYPE_LEGACY_SOLO_QUEUE = 3; MATCH_TYPE_COMPETITIVE = 4; MATCH_TYPE_WEEKEND_TOURNEY = 5; MATCH_TYPE_CASUAL_1V1 = 6; MATCH_TYPE_EVENT = 7; MATCH_TYPE_SEASONAL_RANKED = 8; } enum DOTABotDifficulty { BOT_DIFFICULTY_PASSIVE = 0; BOT_DIFFICULTY_EASY = 1; BOT_DIFFICULTY_MEDIUM = 2; BOT_DIFFICULTY_HARD = 3; BOT_DIFFICULTY_UNFAIR = 4; BOT_DIFFICULTY_INVALID = 5; BOT_DIFFICULTY_EXTRA1 = 6; BOT_DIFFICULTY_EXTRA2 = 7; BOT_DIFFICULTY_EXTRA3 = 8; } enum MatchLanguages { MATCH_LANGUAGE_INVALID = 0; MATCH_LANGUAGE_ENGLISH = 1; MATCH_LANGUAGE_RUSSIAN = 2; MATCH_LANGUAGE_CHINESE = 3; MATCH_LANGUAGE_KOREAN = 4; MATCH_LANGUAGE_SPANISH = 5; MATCH_LANGUAGE_PORTUGUESE = 6; MATCH_LANGUAGE_ENGLISH2 = 7; } enum ETourneyQueueDeadlineState { k_ETourneyQueueDeadlineState_Normal = 0; k_ETourneyQueueDeadlineState_Missed = 1; k_ETourneyQueueDeadlineState_ExpiredOK = 2; k_ETourneyQueueDeadlineState_SeekingBye = 3; k_ETourneyQueueDeadlineState_EligibleForRefund = 4; k_ETourneyQueueDeadlineState_NA = -1; k_ETourneyQueueDeadlineState_ExpiringSoon = 101; } enum EMatchOutcome { k_EMatchOutcome_Unknown = 0; k_EMatchOutcome_RadVictory = 2; k_EMatchOutcome_DireVictory = 3; k_EMatchOutcome_NotScored_PoorNetworkConditions = 64; k_EMatchOutcome_NotScored_Leaver = 65; k_EMatchOutcome_NotScored_ServerCrash = 66; k_EMatchOutcome_NotScored_NeverStarted = 67; k_EMatchOutcome_NotScored_Canceled = 68; } message CDOTAClientHardwareSpecs { optional uint32 logical_processors = 1; optional fixed64 cpu_cycles_per_second = 2; optional fixed64 total_physical_memory = 3; optional bool is_64_bit_os = 4; optional uint64 upload_measurement = 5; optional bool prefer_not_host = 6; } message CDOTASaveGame { message Player { optional DOTA_GC_TEAM team = 1 [default = DOTA_GC_TEAM_GOOD_GUYS]; optional string name = 2; optional string hero = 3; } message SaveInstance { message PlayerPositions { optional float x = 1; optional float y = 2; } optional uint32 game_time = 2; optional uint32 team1_score = 3; optional uint32 team2_score = 4; repeated CDOTASaveGame.SaveInstance.PlayerPositions player_positions = 5; optional uint32 save_id = 6; optional uint32 save_time = 7; } optional uint64 match_id = 5; optional uint32 save_time = 2; repeated CDOTASaveGame.Player players = 3; repeated CDOTASaveGame.SaveInstance save_instances = 4; }