option optimize_for = SPEED;
option cc_generic_services = false;

enum EDOTAChatWheelMessage {
	k_EDOTA_CW_Ok = 0;
	k_EDOTA_CW_Care = 1;
	k_EDOTA_CW_GetBack = 2;
	k_EDOTA_CW_NeedWards = 3;
	k_EDOTA_CW_Stun = 4;
	k_EDOTA_CW_Help = 5;
	k_EDOTA_CW_Push = 6;
	k_EDOTA_CW_GoodJob = 7;
	k_EDOTA_CW_Missing = 8;
	k_EDOTA_CW_Missing_Top = 9;
	k_EDOTA_CW_Missing_Mid = 10;
	k_EDOTA_CW_Missing_Bottom = 11;
	k_EDOTA_CW_Go = 12;
	k_EDOTA_CW_Initiate = 13;
	k_EDOTA_CW_Follow = 14;
	k_EDOTA_CW_Group_Up = 15;
	k_EDOTA_CW_Spread_Out = 16;
	k_EDOTA_CW_Split_Farm = 17;
	k_EDOTA_CW_Attack = 18;
	k_EDOTA_CW_BRB = 19;
	k_EDOTA_CW_Dive = 20;
	k_EDOTA_CW_OMW = 21;
	k_EDOTA_CW_Get_Ready = 22;
	k_EDOTA_CW_Bait = 23;
	k_EDOTA_CW_Heal = 24;
	k_EDOTA_CW_Mana = 25;
	k_EDOTA_CW_OOM = 26;
	k_EDOTA_CW_Skill_Cooldown = 27;
	k_EDOTA_CW_Ulti_Ready = 28;
	k_EDOTA_CW_Enemy_Returned = 29;
	k_EDOTA_CW_All_Missing = 30;
	k_EDOTA_CW_Enemy_Incoming = 31;
	k_EDOTA_CW_Invis_Enemy = 32;
	k_EDOTA_CW_Enemy_Had_Rune = 33;
	k_EDOTA_CW_Split_Push = 34;
	k_EDOTA_CW_Coming_To_Gank = 35;
	k_EDOTA_CW_Request_Gank = 36;
	k_EDOTA_CW_Fight_Under_Tower = 37;
	k_EDOTA_CW_Deny_Tower = 38;
	k_EDOTA_CW_Buy_Courier = 39;
	k_EDOTA_CW_Upgrade_Courier = 40;
	k_EDOTA_CW_Need_Detection = 41;
	k_EDOTA_CW_They_Have_Detection = 42;
	k_EDOTA_CW_Buy_TP = 43;
	k_EDOTA_CW_Reuse_Courier = 44;
	k_EDOTA_CW_Deward = 45;
	k_EDOTA_CW_Building_Mek = 46;
	k_EDOTA_CW_Building_Pipe = 47;
	k_EDOTA_CW_Stack_And_Pull = 48;
	k_EDOTA_CW_Pull = 49;
	k_EDOTA_CW_Pulling = 50;
	k_EDOTA_CW_Stack = 51;
	k_EDOTA_CW_Jungling = 52;
	k_EDOTA_CW_Roshan = 53;
	k_EDOTA_CW_Affirmative = 54;
	k_EDOTA_CW_Wait = 55;
	k_EDOTA_CW_Pause = 56;
	k_EDOTA_CW_Current_Time = 57;
	k_EDOTA_CW_Check_Runes = 58;
	k_EDOTA_CW_Smoke_Gank = 59;
	k_EDOTA_CW_GLHF = 60;
	k_EDOTA_CW_Nice = 61;
	k_EDOTA_CW_Thanks = 62;
	k_EDOTA_CW_Sorry = 63;
	k_EDOTA_CW_No_Give_Up = 64;
	k_EDOTA_CW_Just_Happened = 65;
	k_EDOTA_CW_Game_Is_Hard = 66;
	k_EDOTA_CW_New_Meta = 67;
	k_EDOTA_CW_My_Bad = 68;
	k_EDOTA_CW_Regret = 69;
	k_EDOTA_CW_Relax = 70;
	k_EDOTA_CW_MissingHero = 71;
	k_EDOTA_CW_ReturnedHero = 72;
	k_EDOTA_CW_GG = 73;
	k_EDOTA_CW_GGWP = 74;
	k_EDOTA_CW_All_GG = 75;
	k_EDOTA_CW_All_GGWP = 76;
	k_EDOTA_CW_What_To_Buy = 77;
	k_EDOTA_CW_Im_Retreating = 78;
	k_EDOTA_CW_Space_Created = 79;
	k_EDOTA_CW_Whoops = 80;
	k_EDOTA_CW_Tower_then_Back = 81;
	k_EDOTA_CW_Barracks_then_Back = 82;
	k_EDOTA_CW_Ward_Bottom_Rune = 83;
	k_EDOTA_CW_Ward_Top_Rune = 84;
	k_EDOTA_CW_Zeus_Ult = 85;
}

enum EDOTAStatPopupTypes {
	k_EDOTA_SPT_Textline = 0;
	k_EDOTA_SPT_Basic = 1;
	k_EDOTA_SPT_Poll = 2;
	k_EDOTA_SPT_Grid = 3;
}

enum dotaunitorder_t {
	DOTA_UNIT_ORDER_NONE = 0;
	DOTA_UNIT_ORDER_MOVE_TO_POSITION = 1;
	DOTA_UNIT_ORDER_MOVE_TO_TARGET = 2;
	DOTA_UNIT_ORDER_ATTACK_MOVE = 3;
	DOTA_UNIT_ORDER_ATTACK_TARGET = 4;
	DOTA_UNIT_ORDER_CAST_POSITION = 5;
	DOTA_UNIT_ORDER_CAST_TARGET = 6;
	DOTA_UNIT_ORDER_CAST_TARGET_TREE = 7;
	DOTA_UNIT_ORDER_CAST_NO_TARGET = 8;
	DOTA_UNIT_ORDER_CAST_TOGGLE = 9;
	DOTA_UNIT_ORDER_HOLD_POSITION = 10;
	DOTA_UNIT_ORDER_TRAIN_ABILITY = 11;
	DOTA_UNIT_ORDER_DROP_ITEM = 12;
	DOTA_UNIT_ORDER_GIVE_ITEM = 13;
	DOTA_UNIT_ORDER_PICKUP_ITEM = 14;
	DOTA_UNIT_ORDER_PICKUP_RUNE = 15;
	DOTA_UNIT_ORDER_PURCHASE_ITEM = 16;
	DOTA_UNIT_ORDER_SELL_ITEM = 17;
	DOTA_UNIT_ORDER_DISASSEMBLE_ITEM = 18;
	DOTA_UNIT_ORDER_MOVE_ITEM = 19;
	DOTA_UNIT_ORDER_CAST_TOGGLE_AUTO = 20;
	DOTA_UNIT_ORDER_STOP = 21;
	DOTA_UNIT_ORDER_TAUNT = 22;
	DOTA_UNIT_ORDER_BUYBACK = 23;
	DOTA_UNIT_ORDER_GLYPH = 24;
	DOTA_UNIT_ORDER_EJECT_ITEM_FROM_STASH = 25;
	DOTA_UNIT_ORDER_CAST_RUNE = 26;
	DOTA_UNIT_ORDER_PING_ABILITY = 27;
	DOTA_UNIT_ORDER_MOVE_TO_DIRECTION = 28;
}

message CDOTAMsg_LocationPing {
	optional int32 x = 1;
	optional int32 y = 2;
	optional int32 target = 3;
	optional bool direct_ping = 4;
	optional int32 type = 5;
}

message CDOTAMsg_ItemAlert {
	optional int32 x = 1;
	optional int32 y = 2;
	optional int32 itemid = 3;
}

message CDOTAMsg_MapLine {
	optional int32 x = 1;
	optional int32 y = 2;
	optional bool initial = 3;
}

message CDOTAMsg_WorldLine {
	optional int32 x = 1;
	optional int32 y = 2;
	optional int32 z = 3;
	optional bool initial = 4;
	optional bool end = 5;
}

message CDOTAMsg_SendStatPopup {
	optional .EDOTAStatPopupTypes style = 1 [default = k_EDOTA_SPT_Textline];
	repeated string stat_strings = 2;
	repeated int32 stat_images = 3;
}

message CDOTAMsg_CoachHUDPing {
	optional uint32 x = 1;
	optional uint32 y = 2;
	optional string tgtpath = 3;
}

