private static void TryRestore() { On.Celeste.SaveData.Start -= SaveDataOnStart; if (origSettings != null) { Settings.Instance.CopyAllFields(origSettings, true); Settings.Instance.ApplyVolumes(); Settings.Instance.ApplyScreen(); Settings.Instance.ApplyLanguage(); (Engine.Scene as Overworld)?.GetUI <OuiMainMenu>()?.CreateButtons(); origSettings = null; } if (origAssists != null) { SaveData.Instance.Assists = origAssists.Value; SetCommandHandler.ResetVariants(origAssists.Value); origAssists = null; } if (origModSettings != null) { foreach (EverestModule module in Everest.Modules) { try { if (module?._Settings != null && origModSettings.TryGetValue(module, out object modSettings) && modSettings != null) { bool showHitbox = CelesteTasModule.Settings.ShowHitboxes; if (modSettings is CelesteTasModuleSettings backupTasSettings) { CelesteTasModuleSettings tasSettings = CelesteTasModule.Settings; backupTasSettings.HideTriggerHitboxes = tasSettings.HideTriggerHitboxes; backupTasSettings.ShowActualCollideHitboxes = tasSettings.ShowActualCollideHitboxes; backupTasSettings.SimplifiedGraphics = tasSettings.SimplifiedGraphics; backupTasSettings.HideGameplay = tasSettings.HideGameplay; backupTasSettings.CenterCamera = tasSettings.CenterCamera; backupTasSettings.InfoHud = tasSettings.InfoHud; backupTasSettings.InfoCustomTemplate = tasSettings.InfoCustomTemplate; backupTasSettings.RoundPosition = tasSettings.RoundPosition; backupTasSettings.RoundSpeed = tasSettings.RoundSpeed; backupTasSettings.RoundVelocity = tasSettings.RoundVelocity; backupTasSettings.RoundCustomInfo = tasSettings.RoundCustomInfo; } module._Settings.CopyAllProperties(modSettings); module._Settings.CopyAllFields(modSettings, true); CelesteTasModule.Settings.ShowHitboxes = showHitbox; } } catch (NullReferenceException) { // maybe caused by hot reloading } } origModSettings = null; } }
public static void TryRestore() { On.Celeste.SaveData.Start -= SaveDataOnStart; if (origSettings != null) { Settings.Instance.CopyAllFields(origSettings); origSettings = null; } if (origAssists != null) { SaveData.Instance.Assists = origAssists.Value; origAssists = null; } if (origModSettings != null) { foreach (EverestModule module in Everest.Modules) { if (module._Settings != null && origModSettings.TryGetValue(module, out object modSettings) && modSettings != null) { if (modSettings is CelesteTasModuleSettings backupTasSettings) { CelesteTasModuleSettings tasSettings = CelesteTasModule.Settings; backupTasSettings.HideTriggerHitboxes = tasSettings.HideTriggerHitboxes; backupTasSettings.SimplifiedGraphics = tasSettings.SimplifiedGraphics; backupTasSettings.CenterCamera = tasSettings.CenterCamera; } bool showHitbox = GameplayRendererExt.RenderDebug; module._Settings.CopyAllProperties(modSettings); module._Settings.CopyAllFields(modSettings); GameplayRendererExt.RenderDebug = showHitbox; } } origModSettings = null; } }