public override void ReadMetaData(RecordReader reader) { if (Signature != "GRUP") { throw new InvalidOperationException("Signature GRUP was expected"); } Length = reader.ReadUInt32() - 24; properties = new GroupPropertiesUnion() { FormId = reader.ReadUInt32() }; GroupType = (GroupType)reader.ReadUInt32(); Day = reader.ReadByte(); TotalMonths = reader.ReadByte(); Unknown1 = reader.ReadUInt16(); Version = reader.ReadUInt16(); Unknown2 = reader.ReadUInt16(); // Covert properties to FormType if (GroupType == GroupType.Top) { FormKind = (FormKind)Encoding.UTF8.GetString(BitConverter.GetBytes(properties.FormId)); } }
public override void ReadMetaData(RecordReader reader) { if (Signature == "GRUP") { throw new InvalidOperationException("Group signature was not expected now"); } Length = reader.ReadUInt32(); Flags = reader.ReadUInt32(); FormId = reader.ReadUInt32(); Revision = reader.ReadUInt32(); Version = reader.ReadUInt16(); Unknown = reader.ReadUInt16(); }
public override void ReadMetaData(RecordReader reader) { if (Signature == "XXXX") { // Segment length is always 4 which not interesting so skip 2 bytes reader.Seek(2); // Read lenght of the next segment uint nextSegmentLength = reader.ReadUInt32(); // Load the actual signature (segment after XXXX) Signature = reader.ReadStringFixedLength(4); // Length is ZERO so skip 2 bytes and use value from the previous segment reader.Seek(2); Length = nextSegmentLength; } else { Length = reader.ReadUInt16(); } }