public string Parse( MutagenFrame reader, bool parseWhole = true, StringBinaryType stringBinaryType = StringBinaryType.NullTerminate) { switch (stringBinaryType) { case StringBinaryType.Plain: case StringBinaryType.NullTerminate: if (parseWhole) { return(BinaryStringUtility.ProcessWholeToZString(reader.ReadMemory(checked ((int)reader.Remaining)))); } else { return(BinaryStringUtility.ParseUnknownLengthString(reader.Reader)); } case StringBinaryType.PrependLength: { var len = reader.ReadInt32(); return(BinaryStringUtility.ToZString(reader.ReadMemory(len))); } case StringBinaryType.PrependLengthUShort: { var len = reader.ReadInt16(); return(BinaryStringUtility.ToZString(reader.ReadMemory(len))); } default: throw new NotImplementedException(); } }
static partial void FillBinaryCoverTrianglesLogicCustom(MutagenFrame frame, IANavigationMeshData item) { var count = frame.ReadInt32(); for (int i = 0; i < count; i++) { var index = frame.ReadInt16(); item.Triangles[index].IsCover = true; } }
public static void FillObject(MutagenFrame frame, IScriptObjectProperty obj, ushort objectFormat) { switch (objectFormat) { case 2: obj.Unused = frame.ReadUInt16(); obj.Alias = frame.ReadInt16(); obj.Object.FormKey = FormLinkBinaryTranslation.Instance.Parse( reader: frame, defaultVal: FormKey.Null); break; case 1: obj.Object.FormKey = FormLinkBinaryTranslation.Instance.Parse( reader: frame, defaultVal: FormKey.Null); obj.Alias = frame.ReadInt16(); obj.Unused = frame.ReadUInt16(); break; default: throw new NotImplementedException(); } }