/// <summary> /// Initializes a new instance of the <see cref="NefsHeaderPart2"/> class. /// </summary> /// <param name="items">The list of items in the archive.</param> /// <param name="part3">Header part 3.</param> internal NefsHeaderPart2(NefsItemList items, NefsHeaderPart3 part3) { this.entriesByIndex = new List <NefsHeaderPart2Entry>(); foreach (var item in items.EnumerateDepthFirstByName()) { var entry = new NefsHeaderPart2Entry(); entry.Data0x00_DirectoryId.Value = item.DirectoryId.Value; entry.Data0x04_FirstChildId.Value = items.GetItemFirstChildId(item.Id).Value; entry.Data0x08_OffsetIntoPart3.Value = part3.OffsetsByFileName[item.FileName]; entry.Data0x0c_ExtractedSize.Value = item.DataSource.Size.ExtractedSize; entry.Data0x10_Id.Value = item.Id.Value; this.entriesByIndex.Add(entry); } }
/// <summary> /// Initializes a new instance of the <see cref="NefsHeader"/> class. /// </summary> /// <param name="intro">Header intro.</param> /// <param name="toc">Header intro table of contents.</param> /// <param name="part1">Header part 1.</param> /// <param name="part2">Header part 2.</param> /// <param name="part3">Header part 3.</param> /// <param name="part4">Header part 4.</param> /// <param name="part5">Header part 5.</param> /// <param name="part6">Header part 6.</param> /// <param name="part7">Header part 7.</param> /// <param name="part8">Header part 8.</param> public NefsHeader( NefsHeaderIntro intro, NefsHeaderIntroToc toc, NefsHeaderPart1 part1, NefsHeaderPart2 part2, NefsHeaderPart3 part3, NefsHeaderPart4 part4, NefsHeaderPart5 part5, NefsHeaderPart6 part6, NefsHeaderPart7 part7, NefsHeaderPart8 part8) { this.Intro = intro ?? throw new ArgumentNullException(nameof(intro)); this.TableOfContents = toc ?? throw new ArgumentNullException(nameof(toc)); this.Part1 = part1 ?? throw new ArgumentNullException(nameof(part1)); this.Part2 = part2 ?? throw new ArgumentNullException(nameof(part2)); this.Part3 = part3 ?? throw new ArgumentNullException(nameof(part3)); this.Part4 = part4 ?? throw new ArgumentNullException(nameof(part4)); this.Part5 = part5 ?? throw new ArgumentNullException(nameof(part5)); this.Part6 = part6 ?? throw new ArgumentNullException(nameof(part6)); this.Part7 = part7 ?? throw new ArgumentNullException(nameof(part7)); this.Part8 = part8 ?? throw new ArgumentNullException(nameof(part8)); }