import "netmessages.proto";
import "networkbasetypes.proto";

option cc_generic_services = false;

enum P2P_Messages {
	p2p_TextMessage = 256;
	p2p_Voice = 257;
	p2p_Ping = 258;
	p2p_VRAvatarPosition = 259;
	p2p_WatchSynchronization = 260;
}

message CP2P_TextMessage {
	optional bytes text = 1;
}

message CSteam_Voice_Encoding {
	optional bytes voice_data = 1;
}

message CP2P_Voice {
	enum Handler_Flags {
		Played_Audio = 1;
	}

	optional .CMsgVoiceAudio audio = 1;
	optional uint32 broadcast_group = 2;
}

message CP2P_Ping {
	required uint64 send_time = 1;
	required bool is_reply = 2;
}

message CP2P_VRAvatarPosition {
	message COrientation {
		optional .CMsgVector pos = 1;
		optional .CMsgQAngle ang = 2;
	}

	repeated .CP2P_VRAvatarPosition.COrientation body_parts = 1;
	optional int32 hat_id = 2;
	optional int32 scene_id = 3;
	optional int32 world_scale = 4;
}

message CP2P_WatchSynchronization {
	optional int32 demo_tick = 1;
	optional bool paused = 2;
	optional int32 tv_listen_voice_indices = 3;
	optional int32 dota_spectator_mode = 4;
	optional int32 dota_spectator_watching_broadcaster = 5;
	optional int32 dota_spectator_hero_index = 6;
	optional int32 dota_spectator_autospeed = 7;
	optional int32 dota_replay_speed = 8;
}
