//! Patch: SavedProfile.LoadSettings internal static void LoadSettings(SettingsV01 original) { string realPath = Path.Combine(SavePath, SETTINGS_FILENAME); if (!File.Exists(realPath)) { return; } GuuCore.LOGGER.Log($"Attempting to load modded settings file {SETTINGS_FILENAME}"); using (FileStream fileStream = File.Open(realPath, FileMode.Open)) { using (MemoryStream dataStream = new MemoryStream()) { CopyStream(fileStream, dataStream); dataStream.Seek(0, SeekOrigin.Begin); SettingsV01 settings = new SettingsV01(); try { settings.Load(dataStream); original.options.bindings.bindings.AddRange(settings.options.bindings.bindings); } catch (Exception e) { GuuCore.LOGGER.LogError("Failed to load modded settings file."); GuuCore.LOGGER.LogError(e.ParseTrace()); } } } GuuCore.LOGGER.Log($"Loaded modded settings file {PROFILE_FILENAME}"); }
//! Patch: SavedProfile.SaveSettings internal static void SaveSettings(SettingsV01 original) { string realPath = Path.Combine(SavePath, SETTINGS_FILENAME); GuuCore.LOGGER.Log($"Saving modded settings file {SETTINGS_FILENAME}"); SettingsV01 settings = new SettingsV01(); // TODO: Strip content from the original using (MemoryStream dataStream = new MemoryStream()) { settings.Write(dataStream); dataStream.Seek(0, SeekOrigin.Begin); using (FileStream fileStream = File.Create(realPath)) { try { CopyStream(dataStream, fileStream); } catch (Exception e) { GuuCore.LOGGER.LogError("Failed to save modded settings file."); GuuCore.LOGGER.LogError(e.ParseTrace()); } } } GuuCore.LOGGER.Log($"Saved modded settings file {SETTINGS_FILENAME}"); }