private void decode_Response(PhotonCmdHeader cmd_hdr, BinaryReader packet) { // see func ReliableMessage() decode in... // https://github.com/broderickhyman/photon_spectator/blob/master/photon_command.go var opResponse = new ReliableMessage_Response(); opResponse.ChannelID = cmd_hdr.ChannelID; opResponse.OperationCode = packet.ReadByte(); // Operation Code opResponse.OperationResponseCode = packet.ReadUInt16(); // Operation Response Code opResponse.OperationDebugByte = packet.ReadByte(); // Operation Debug Byte opResponse.ParameterCount = packet.ReadInt16(); // Parameter Count (?? is this valid for all msg types?) Event_Photon_Cmd_Info?.Invoke("Photon Reliable Response - " + opResponse.OperationResponseCode); var parameters = new ReliableMessage_Response.Paramaters(); // decode the paramaters for (int i = 0; i < opResponse.ParameterCount; i++) { var paramID = packet.ReadByte(); // paramID PhotonParamType paramType = (PhotonParamType)packet.ReadByte(); // paramType var param_value = Decode_PhotonValueType.Decode(packet, paramType); parameters[paramID] = param_value; Event_Photon_Info?.Invoke("ParamID: " + paramID + " value: " + param_value.ToString()); } opResponse.ParamaterData = parameters; Event_Photon_ReliableResponse?.Invoke(opResponse); }
public static PhotonData_SliceType DecodeFrom_WithType(BinaryReader packet, PhotonParamType type) { var length = packet.ReadUInt16(); var acc = new List<PhotonDataAtom>(); for (int i = 0; i < length; i++) { acc.Add(Decode_PhotonValueType.Decode(packet, type)); } return new PhotonData_SliceType(type,new PhotonData_SliceValues(type, acc.ToArray())); }
public static PhotonData_SliceType DecodeFrom(BinaryReader packet) { var length = packet.ReadUInt16(); PhotonParamType value_types = (PhotonParamType)packet.ReadByte(); var acc = new List<PhotonDataAtom>(); for (int i=0;i<length;i++) { acc.Add(Decode_PhotonValueType.Decode(packet,value_types)); } return new PhotonData_SliceType(PhotonParamType.SliceType,new PhotonData_SliceValues(value_types,acc.ToArray())); }