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); }
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); }
public UiWdbMovieLeaf(String name, WdbMovieEntry entry, WdbMovieArchiveListing listing) : base(name, UiNodeType.DataTableLeaf) { Entry = entry; Listing = listing; }