public Packfile(Stream stream) { DataStream = stream; stream.Seek(0, SeekOrigin.Begin); FileData = stream.ReadStruct <PackfileFileData>(); m_Files = new List <IPackfileEntry>(); stream.Seek(GetEntryDataOffset(), SeekOrigin.Begin); List <PackfileEntryFileData> entryFileData = new List <PackfileEntryFileData>(); for (int i = 0; i < FileData.IndexCount; i++) { var fileData = stream.ReadStruct <PackfileEntryFileData>(); entryFileData.Add(fileData); } List <string> fileNames = new List <string>(); for (int i = 0; i < FileData.IndexCount; i++) { var fileData = entryFileData[i]; stream.Seek(CalculateEntryNamesOffset() + fileData.FilenameOffset, SeekOrigin.Begin); string name = stream.ReadAsciiNullTerminatedString(); stream.Seek(CalculateExtensionsOffset() + fileData.ExtensionOffset, SeekOrigin.Begin); string extension = stream.ReadAsciiNullTerminatedString(); m_Files.Add(new PackfileEntry(this, fileData, name + "." + extension)); } }
public Packfile(Stream stream) { DataStream = stream; stream.Seek(0, SeekOrigin.Begin); FileData = stream.ReadStruct<PackfileFileData>(); m_Files = new List<IPackfileEntry>(); stream.Seek(GetEntryDataOffset(), SeekOrigin.Begin); List<PackfileEntryFileData> entryFileData = new List<PackfileEntryFileData>(); for (int i = 0; i < FileData.IndexCount; i++) { var fileData = stream.ReadStruct<PackfileEntryFileData>(); entryFileData.Add(fileData); } List<string> fileNames = new List<string>(); for (int i = 0; i < FileData.IndexCount; i++) { var fileData = entryFileData[i]; stream.Seek(CalculateEntryNamesOffset() + fileData.FilenameOffset, SeekOrigin.Begin); string name = stream.ReadAsciiNullTerminatedString(); stream.Seek(CalculateExtensionsOffset() + fileData.ExtensionOffset, SeekOrigin.Begin); string extension = stream.ReadAsciiNullTerminatedString(); m_Files.Add(new PackfileEntry(this, fileData, name + "." + extension)); } }
public Packfile() { FileData = new PackfileFileData(); m_Files = new List <IPackfileEntry>(); m_Streams = new Dictionary <string, Stream>(); }
public Packfile() { FileData = new PackfileFileData(); m_Files = new List<IPackfileEntry>(); m_Streams = new Dictionary<string, Stream>(); }