import "dota_commonmessages.proto";

option optimize_for = SPEED;
option cc_generic_services = false;

enum EDotaClientMessages {
	DOTA_CM_MapLine = 1;
	DOTA_CM_AspectRatio = 2;
	DOTA_CM_MapPing = 3;
	DOTA_CM_UnitsAutoAttack = 4;
	DOTA_CM_AutoPurchaseItems = 5;
	DOTA_CM_TestItems = 6;
	DOTA_CM_SearchString = 7;
	DOTA_CM_Pause = 8;
	DOTA_CM_ShopViewMode = 9;
	DOTA_CM_SetUnitShareFlag = 10;
	DOTA_CM_SwapRequest = 11;
	DOTA_CM_SwapAccept = 12;
	DOTA_CM_WorldLine = 13;
	DOTA_CM_RequestGraphUpdate = 14;
	DOTA_CM_ItemAlert = 15;
	DOTA_CM_ChatWheel = 16;
	DOTA_CM_SendStatPopup = 17;
	DOTA_CM_BeginLastHitChallenge = 18;
	DOTA_CM_UpdateQuickBuy = 19;
	DOTA_CM_UpdateCoachListen = 20;
	DOTA_CM_CoachHUDPing = 21;
	DOTA_CM_RecordVote = 22;
	DOTA_CM_UnitsAutoAttackAfterSpell = 23;
	DOTA_CM_WillPurchaseAlert = 24;
	DOTA_CM_PlayerShowCase = 25;
	DOTA_CM_TeleportRequiresHalt = 26;
	DOTA_CM_CameraZoomAmount = 27;
	DOTA_CM_BroadcasterUsingCamerman = 28;
	DOTA_CM_BroadcasterUsingAssistedCameraOperator = 29;
	DOTA_CM_EnemyItemAlert = 30;
	DOTA_CM_FreeInventory = 31;
	DOTA_CM_BuyBackStateAlert = 32;
	DOTA_CM_QuickBuyAlert = 33;
	DOTA_CM_HeroStatueLike = 34;
	DOTA_CM_ModifierAlert = 35;
	DOTA_CM_TeamShowcaseEditor = 36;
	DOTA_CM_HPManaAlert = 37;
	DOTA_CM_GlyphAlert = 38;
	DOTA_CM_TeamShowcaseClientData = 39;
	DOTA_CM_PlayTeamShowcase = 40;
	DOTA_CM_EventCNY2015Cmd = 41;
	DOTA_CM_ChallengeSelect = 42;
	DOTA_CM_ChallengeReroll = 43;
	DOTA_CM_ClickedBuff = 44;
}

message CDOTAClientMsg_MapPing {
	optional .CDOTAMsg_LocationPing location_ping = 1;
}

message CDOTAClientMsg_ItemAlert {
	optional .CDOTAMsg_ItemAlert item_alert = 1;
}

message CDOTAClientMsg_EnemyItemAlert {
	optional uint32 item_entindex = 1;
}

message CDOTAClientMsg_ModifierAlert {
	optional int32 buff_internal_index = 1;
	optional uint32 target_entindex = 2;
}

message CDOTAClientMsg_ClickedBuff {
	optional int32 buff_internal_index = 1;
	optional uint32 target_entindex = 2;
}

message CDOTAClientMsg_HPManaAlert {
	optional uint32 target_entindex = 1;
}

message CDOTAClientMsg_GlyphAlert {
	optional bool negative = 1;
}

message CDOTAClientMsg_MapLine {
	optional .CDOTAMsg_MapLine mapline = 1;
}

message CDOTAClientMsg_AspectRatio {
	optional float ratio = 1;
}

message CDOTAClientMsg_UnitsAutoAttack {
	optional bool enabled = 1;
}

message CDOTAClientMsg_UnitsAutoAttackAfterSpell {
	optional bool enabled = 1;
}

message CDOTAClientMsg_TeleportRequiresHalt {
	optional bool enabled = 1;
}

message CDOTAClientMsg_AutoPurchaseItems {
	optional bool enabled = 1;
}

message CDOTAClientMsg_TestItems {
	optional string key_values = 1;
}

message CDOTAClientMsg_SearchString {
	optional string search = 1;
}

message CDOTAClientMsg_Pause {
}

message CDOTAClientMsg_ShopViewMode {
	optional uint32 mode = 1;
}

message CDOTAClientMsg_SetUnitShareFlag {
	optional uint32 playerID = 1;
	optional uint32 flag = 2;
	optional bool state = 3;
}

message CDOTAClientMsg_SwapRequest {
	optional uint32 player_id = 1;
}

message CDOTAClientMsg_SwapAccept {
	optional uint32 player_id = 1;
}

message CDOTAClientMsg_WorldLine {
	optional .CDOTAMsg_WorldLine worldline = 1;
}

message CDOTAClientMsg_RequestGraphUpdate {
}

message CDOTAClientMsg_ChatWheel {
	optional .EDOTAChatWheelMessage chat_message = 1 [default = k_EDOTA_CW_Ok];
	optional uint32 param_hero_id = 2;
}

message CDOTAClientMsg_SendStatPopup {
	optional .CDOTAMsg_SendStatPopup statpopup = 1;
}

message CDOTAClientMsg_BeginLastHitChallenge {
	optional uint32 chosen_lane = 1;
	optional bool helper_enabled = 2;
}

message CDOTAClientMsg_UpdateQuickBuyItem {
	optional int32 item_type = 1;
	optional bool purchasable = 2;
}

message CDOTAClientMsg_UpdateQuickBuy {
	repeated .CDOTAClientMsg_UpdateQuickBuyItem items = 1;
}

message CDOTAClientMsg_UpdateCoachListen {
	optional uint32 player_mask = 1;
}

message CDOTAClientMsg_CoachHUDPing {
	optional .CDOTAMsg_CoachHUDPing hud_ping = 1;
}

message CDOTAClientMsg_RecordVote {
	optional int32 choice_index = 1;
}

message CDOTAClientMsg_WillPurchaseAlert {
	optional int32 itemid = 1;
	optional uint32 gold_remaining = 2;
}

message CDOTAClientMsg_BuyBackStateAlert {
}

message CDOTAClientMsg_QuickBuyAlert {
	optional int32 itemid = 1;
	optional int32 gold_required = 2;
}

message CDOTAClientMsg_PlayerShowCase {
	optional bool showcase = 1;
}

message CDOTAClientMsg_CameraZoomAmount {
	optional float zoom_amount = 1;
}

message CDOTAClientMsg_BroadcasterUsingCameraman {
	optional bool cameraman = 1;
}

message CDOTAClientMsg_BroadcasterUsingAssistedCameraOperator {
	optional bool enabled = 1;
}

message CAdditionalEquipSlotClientMsg {
	optional uint32 class_id = 1;
	optional uint32 slot_id = 2;
	optional uint32 def_index = 3;
}

message CDOTAClientMsg_FreeInventory {
	repeated .CAdditionalEquipSlotClientMsg equips = 1;
}

message CDOTAClientMsg_HeroStatueLike {
	optional uint32 owner_player_id = 1;
}

message CDOTAClientMsg_TeamShowcaseEditor {
	optional bytes data = 1;
}

message CDOTAClientMsg_TeamShowcaseClientData {
	optional bytes data = 1;
}

message CDOTAClientMsg_PlayTeamShowcase {
}

message CDOTAClientMsg_EventCNY2015Cmd {
	optional bytes data = 1;
}

message CDOTAClientMsg_ChallengeSelect {
	optional uint32 event_id = 1;
	optional uint32 slot_id = 2;
	optional uint32 sequence_id = 3;
}

message CDOTAClientMsg_ChallengeReroll {
	optional uint32 event_id = 1;
	optional uint32 slot_id = 2;
	optional uint32 sequence_id = 3;
}

