public void Save(System.IO.Stream stream) { //Reload our sarc data from the files and save active files SarcData.Files.Clear(); foreach (FileEntry file in files) { file.SaveFileFormat(); if (SarcData.HashOnly) { SarcData.Files.Add(file.HashName, file.FileData); } else { SarcData.Files.Add(file.FileName, file.FileData); } } //Save data to stream var saved = SARC_Parser.PackN(SarcData); using (var writer = new FileWriter(stream)) { writer.Write(saved.Item2); } //Save alignment to compression type yaz0 if (FileInfo.Compression != null && FileInfo.Compression is Yaz0) { ((Yaz0)FileInfo.Compression).Alignment = saved.Item1; } }
public void Load(System.IO.Stream stream) { files.Clear(); FileInfo.KeepOpen = true; SarcData = SARC_Parser.UnpackRamN(stream); foreach (var file in SarcData.Files) { var fileEntry = new FileEntry(); fileEntry.FileName = file.Key; if (SarcData.HashOnly) { fileEntry.FileName = SARC_Parser.TryGetNameFromHashTable(file.Key); fileEntry.HashName = file.Key; } fileEntry.SetData(file.Value); files.Add(fileEntry); if (fileEntry.FileName.EndsWith(".bfres")) { fileEntry.OpenFileFormatOnLoad = true; } } }