public ItemTag(MpqArchive archive, MpqEntry mpqEntry, ListViewItem[] children, GamePatch?originPatch) { MpqEntry = mpqEntry; FileName = mpqEntry.FileName; ArchiveName = string.Empty; Adapter = null; OriginalFileStream = archive.OpenFile(mpqEntry); Children = children.Select(child => child.GetTag()).ToArray(); foreach (var child in Children) { child.Parent = this; } OriginPatch = originPatch; }
public ItemTag(MpqArchive archive, MpqEntry mpqEntry, string archiveName = null) { MpqEntry = mpqEntry; FileName = mpqEntry.FileName; ArchiveName = archiveName ?? string.Empty; OriginalFileStream = archive.OpenFile(mpqEntry); if (!OriginalFileStream.CanRead) { OriginalFileStream.Dispose(); Status = MapFileStatus.Locked; } else { Adapter = AdapterFactory.GetAdapter(OriginalFileStream, FileName); Status = Adapter is null ? MapFileStatus.Unknown : MapFileStatus.Pending; } }
protected override void GetTableEntries(MpqArchive mpqArchive, uint index, uint relativeFileOffset, uint compressedSize, uint fileSize, out MpqEntry mpqEntry, out MpqHash mpqHash) { mpqEntry = new MpqEntry(_fileName, mpqArchive.HeaderOffset, relativeFileOffset, compressedSize, fileSize, TargetFlags); mpqHash = new MpqHash(_fileName, mpqArchive.HashTableMask, Locale, index); }