Exemple #1
0
            public void Deserialize()
            {
                if (_header.Entries == null)
                {
                    return;
                }

                int entryCount = Math.Max(0, _header.Entries.Length - SpecialEntriesCount);

                WdbMovieEntry[] entries = new WdbMovieEntry[entryCount];

                for (int i = 0; i < entryCount; i++)
                {
                    WpdEntry entry = _header.Entries[i + SpecialEntriesCount];
                    _input.SetPosition(entry.Offset);

                    if (entry.Length != WdbMovieEntry.StructSize)
                    {
                        throw new InvalidDataException($"[WdbMovieHeader.Deserialize] Entry: {entry.Name}, Length: {entry.Length}, Expected length: {WdbMovieEntry.StructSize}");
                    }

                    WdbMovieEntry movieEntry = _input.ReadContent <WdbMovieEntry>();
                    movieEntry.Entry       = entry;
                    movieEntry.PackageName = _header.GetString(movieEntry.PackageNameOffset);
                    entries[i]             = movieEntry;
                }

                _header.Movies = entries;
            }
 public UiWdbMovieExtractor(WdbMovieArchiveListing listing, WdbMovieEntry[] leafs, bool? conversion, IUiExtractionTarget target)
 {
     _listing = listing;
     _leafs = leafs;
     _conversion = conversion;
     _target = target;
     _extractors = ProvideExtractors(conversion);
 }
Exemple #3
0
            public void Deserialize()
            {
                if (_header.Entries == null)
                    return;

                int entryCount = Math.Max(0, _header.Entries.Length - SpecialEntriesCount);
                WdbMovieEntry[] entries = new WdbMovieEntry[entryCount];

                for (int i = 0; i < entryCount; i++)
                {
                    WpdEntry entry = _header.Entries[i + SpecialEntriesCount];
                    _input.SetPosition(entry.Offset);

                    if (entry.Length != WdbMovieEntry.StructSize)
                        throw new InvalidDataException($"[WdbMovieHeader.Deserialize] Entry: {entry.Name}, Length: {entry.Length}, Expected length: {WdbMovieEntry.StructSize}");

                    WdbMovieEntry movieEntry = _input.ReadContent<WdbMovieEntry>();
                    movieEntry.Entry = entry;
                    movieEntry.PackageName = _header.GetString(movieEntry.PackageNameOffset);
                    entries[i] = movieEntry;
                }

                _header.Movies = entries;
            }
        private IWdbMovieEntryExtractor GetExtractor(WdbMovieEntry entry, out String targetExtension)
        {
            targetExtension = "bk2";

            return DefaultExtractor;
        }
 public void Extract(WdbMovieEntry entry, Stream output, Stream content, Byte[] buff)
 {
     content.SetPosition(entry.Offset);
     content.CopyToStream(output, entry.Length, buff);
 }
Exemple #6
0
 public UiWdbMovieLeaf(String name, WdbMovieEntry entry, WdbMovieArchiveListing listing)
     : base(name, UiNodeType.DataTableLeaf)
 {
     Entry = entry;
     Listing = listing;
 }