private static void UDKSave(UDKPackage pcc, string path) { bool isSaveAs = path != pcc.FilePath; try { UDKSaveDelegate(pcc, path, isSaveAs); } catch (Exception ex) when(!CoreLib.IsDebug) { PackageSaveFailedCallback?.Invoke($"Error saving {pcc.FilePath}:\n{ex.FlattenException()}"); } }
private static void MESave(MEPackage pcc, string savePath, bool compress = false, bool includeAdditionalPackagesToCook = true, bool includeDependencyTable = true) { bool isSaveAs = savePath != null && savePath != pcc.FilePath; int originalLength = -1; if (pcc.Game == MEGame.ME3 && CheckME3Running != null && !isSaveAs && ME3Directory.GetBioGamePath() != null && pcc.FilePath.StartsWith(ME3Directory.GetBioGamePath()) && CheckME3Running.Invoke()) { try { originalLength = (int)new FileInfo(pcc.FilePath).Length; } catch { originalLength = -1; } } try { if (CanReconstruct(pcc, savePath)) { MESaveDelegate(pcc, savePath, isSaveAs, compress, includeAdditionalPackagesToCook, includeDependencyTable); } else { PackageSaveFailedCallback?.Invoke($"Cannot save ME1 packages with externally referenced textures. Please make an issue on github: {CoreLib.BugReportURL}"); } } catch (Exception ex) when(!CoreLib.IsDebug) { PackageSaveFailedCallback?.Invoke($"Error saving {pcc.FilePath}:\n{ex.FlattenException()}"); } if (originalLength > 0) { string relativePath = Path.GetFullPath(pcc.FilePath).Substring(Path.GetFullPath(ME3Directory.DefaultGamePath).Length); var bin = new MemoryStream(); bin.WriteInt32(originalLength); bin.WriteStringASCIINull(relativePath); File.WriteAllBytes(Path.Combine(ME3Directory.ExecutableFolder, "tocupdate"), bin.ToArray()); // oh boy... NotifyRunningTOCUpdateRequired(); // replaced: //GameController.SendTOCUpdateMessage(); } }