public static Ray Deserialize(Stream stream, ref Ray instance, bool isDelta) { while (true) { int num = stream.ReadByte(); if (num == -1) { break; } if (num == 10) { Vector3 vector3 = instance.origin; instance.origin = Vector3Serialized.DeserializeLengthDelimited(stream, ref vector3, isDelta); } else if (num == 18) { Vector3 vector31 = instance.direction; instance.direction = Vector3Serialized.DeserializeLengthDelimited(stream, ref vector31, isDelta); } else { Key key = ProtocolParser.ReadKey((byte)num, stream); if (key.Field == 0) { throw new ProtocolBufferException("Invalid field id: 0, something went wrong in the stream"); } ProtocolParser.SkipKey(stream, key); } } return(instance); }
public static Ray DeserializeLengthDelimited(Stream stream, ref Ray instance, bool isDelta) { long position = (long)ProtocolParser.ReadUInt32(stream); position += stream.Position; while (stream.Position < position) { int num = stream.ReadByte(); if (num == -1) { throw new EndOfStreamException(); } if (num == 10) { Vector3 vector3 = instance.origin; instance.origin = Vector3Serialized.DeserializeLengthDelimited(stream, ref vector3, isDelta); } else if (num == 18) { Vector3 vector31 = instance.direction; instance.direction = Vector3Serialized.DeserializeLengthDelimited(stream, ref vector31, isDelta); } else { Key key = ProtocolParser.ReadKey((byte)num, stream); if (key.Field == 0) { throw new ProtocolBufferException("Invalid field id: 0, something went wrong in the stream"); } ProtocolParser.SkipKey(stream, key); } } if (stream.Position != position) { throw new ProtocolBufferException("Read past max limit"); } return(instance); }