public override void ReadData(ESPReader reader, long dataEnd) { while (reader.BaseStream.Position < dataEnd) { string subTag = reader.PeekTag(); switch (subTag) { case "HEDR": if (FileHeader == null) { FileHeader = new PluginHeader(); } FileHeader.ReadBinary(reader); break; case "OFST": if (OffsetData == null) { OffsetData = new SimpleSubrecord <Byte[]>(); } OffsetData.ReadBinary(reader); break; case "DELE": if (DeletionsData == null) { DeletionsData = new SimpleSubrecord <Byte[]>(); } DeletionsData.ReadBinary(reader); break; case "CNAM": if (Author == null) { Author = new SimpleSubrecord <String>(); } Author.ReadBinary(reader); break; case "SNAM": if (Description == null) { Description = new SimpleSubrecord <String>(); } Description.ReadBinary(reader); break; case "MAST": if (MasterFiles == null) { MasterFiles = new List <MasterFileData>(); } MasterFileData tempMAST = new MasterFileData(); tempMAST.ReadBinary(reader); MasterFiles.Add(tempMAST); break; case "ONAM": if (OverriddenRecords == null) { OverriddenRecords = new FormArray(); } OverriddenRecords.ReadBinary(reader); break; case "SCRN": if (ScreenshotData == null) { ScreenshotData = new SimpleSubrecord <Byte[]>(); } ScreenshotData.ReadBinary(reader); break; default: throw new Exception(); } } }