public byte[] Save() { Console.WriteLine("Saving sarc"); sarcData.Files.Clear(); foreach (TreeNode node in Collect(Nodes)) { if (node is SarcEntry) { Console.WriteLine("Saving " + node); SaveFileEntryData((SarcEntry)node); } else if (node is IFileFormat && node != this) { IFileFormat fileFormat = (IFileFormat)node; if (fileFormat != null && ((IFileFormat)node).CanSave) { sarcData.Files.Add(SetSarcPath(node, this), STLibraryCompression.CompressFile(fileFormat.Save(), fileFormat)); } else { sarcData.Files.Add(SetSarcPath(node, this), STLibraryCompression.CompressFile(OpenedFiles[node.FullPath], fileFormat)); } } } Tuple <int, byte[]> sarc = SARCExt.SARC.PackN(sarcData); IFileInfo.Alignment = sarc.Item1; return(sarc.Item2); }
public void SaveFileFormat() { if (FileFormat != null && FileFormat.CanSave) { if (FileDataStream != null) { Console.WriteLine($"Updating FileDataStream " + (FileDataStream is FileStream)); if (FileDataStream is FileStream) { FileDataStream.Close(); } var mem = new System.IO.MemoryStream(); FileFormat.Save(mem); FileDataStream = mem; //Reload file data FileFormat.Load(FileDataStream); } else { var mem = new System.IO.MemoryStream(); FileFormat.Save(mem); FileData = STLibraryCompression.CompressFile(mem.ToArray(), FileFormat); } } }
public void SaveFileFormat() { if (FileFormat != null && FileFormat.CanSave) { if (FileDataStream != null) { var mem = new System.IO.MemoryStream(); FileFormat.Save(mem); FileDataStream = mem; //Reload file data FileFormat.Load(FileDataStream); } else { var mem = new System.IO.MemoryStream(); FileFormat.Save(mem); FileData = STLibraryCompression.CompressFile(mem.ToArray(), FileFormat); } } }
public static void SaveFileFormat(ArchiveFileInfo archiveFile, IFileFormat fileFormat) { if (fileFormat != null && fileFormat.CanSave) { if (archiveFile.FileDataStream != null) { var mem = new System.IO.MemoryStream(); fileFormat.Save(mem); archiveFile.FileDataStream = mem; //Reload file data fileFormat.Load(archiveFile.FileDataStream); } else { var mem = new System.IO.MemoryStream(); fileFormat.Save(mem); archiveFile.FileData = STLibraryCompression.CompressFile(mem.ToArray(), fileFormat); } } }
public byte[] Save() { Console.WriteLine("Saving sarc"); sarcData.Files.Clear(); foreach (TreeNode node in Collect(EditorRoot.Nodes)) { if (node is SarcEntry) { Console.WriteLine("Saving " + node); SaveFileEntryData((SarcEntry)node); } if (node is TreeNodeFile && node != EditorRoot) { TreeNodeFile treeNodeFile = (TreeNodeFile)node; if (treeNodeFile.FileHandler != null && treeNodeFile.FileHandler.IFileInfo.ArchiveHash == SarcHash) { sarcData.Files.Add(SARC.SetSarcPath(node, (TreeNode)this.EditorRoot), STLibraryCompression.CompressFile(treeNodeFile.FileHandler.Save(), treeNodeFile.FileHandler)); } } } Tuple <int, byte[]> sarc = SARCExt.SARC.PackN(sarcData); IFileInfo.Alignment = sarc.Item1; return(sarc.Item2); }