コード例 #1
0
        /// <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="items">List of items.</param>
        public NefsHeader(NefsHeaderIntro intro, NefsHeaderIntroToc toc, NefsItemList items)
        {
            this.Intro           = intro ?? throw new ArgumentNullException(nameof(intro));
            this.TableOfContents = toc ?? throw new ArgumentNullException(nameof(toc));

            this.Part3 = new NefsHeaderPart3(items);
            this.Part4 = new NefsHeaderPart4(items);

            this.Part1 = new NefsHeaderPart1(items, this.Part4);
            this.Part2 = new NefsHeaderPart2(items, this.Part3);
            this.Part5 = new NefsHeaderPart5();
            this.Part6 = new NefsHeaderPart6(items);
            this.Part7 = new NefsHeaderPart7(items);
            this.Part8 = new NefsHeaderPart8(intro.HeaderSize - toc.OffsetToPart8);
        }
コード例 #2
0
        internal NefsHeader(FileStream file, NefsArchive archive, NefsProgressInfo p)
        {
            _archive = archive;

            p.BeginTask(0.15f, "Reading header intro...");
            _intro = new NefsHeaderIntro(file, p);
            p.EndTask();

            p.BeginTask(0.15f, "Reading header part 1...");
            _part1 = new NefsHeaderPt1(file, _intro.Part1Offset, _intro.Part1Size, p);
            p.EndTask();

            p.BeginTask(0.15f, "Reading header part 2...");
            _part2 = new NefsHeaderPt2(file, _intro.Part2Offset, _intro.Part2Size, p);
            p.EndTask();

            p.BeginTask(0.10f, "Reading header part 3...");
            _part3 = new NefsHeaderPt3(file, _intro.Part3Offset, _intro.Part3Size, p);
            p.EndTask();

            p.BeginTask(0.15f, "Reading header part 4...");
            _part4 = new NefsHeaderPt4(file, _intro.Part4Offset, _intro.Part4Size, p);
            p.EndTask();

            p.BeginTask(0.10f, "Reading header part 5...");
            _part5 = new NefsHeaderPt5(file, _intro.Part5Offset, _intro.Part5Size, p);
            p.EndTask();

            p.BeginTask(0.10f, "Reading header part 6...");
            _part6 = new NefsHeaderPt6(file, _intro.Part6Offset, _intro.Part6Size, p);
            p.EndTask();

            p.BeginTask(0.10f, "Reading header part 7...");
            // Theres a section of data after header part 6 and the first section of compressed data.
            // I'm not sure what it is. Just copying for now.
            var firstItemOffset = _part1.FirstItemDataOffset;

            if (firstItemOffset > 0 && firstItemOffset > _intro.DataOffset)
            {
                _part7 = new NefsHeaderPt7(file, _intro.DataOffset, (uint)firstItemOffset - _intro.DataOffset);
            }
            p.EndTask();
        }
コード例 #3
0
 /// <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));
 }