/// <summary> /// Initializes mod save data backups if required (if Everest was just updated past 2104). /// </summary> private static void checkModSaveDataBackups() { Version previousVersion; try { previousVersion = new Version(CoreModule.Settings.CurrentVersion); } catch { // oops, version is null or can't be parsed for any reason. previousVersion = new Version(0, 0, 0); } if (previousVersion < new Version(1, 2109, 0)) { // user just upgraded: create mod save data backups. // (this is very similar to OverworldLoader.CheckVariantsPostcardAtLaunch) Logger.Log("core", $"User just upgraded from version {previousVersion}: creating mod save data backups."); for (int i = 0; i < 3; i++) // only the first 3 saves really matter. { if (!UserIO.Exists(SaveData.GetFilename(i))) { continue; } SaveData saveData = UserIO.Load <SaveData>(SaveData.GetFilename(i), backup: false); if (saveData != null) { saveData.AfterInitialize(); UserIO.Save <ModSaveData>(SaveData.GetFilename(saveData.FileSlot) + "-modsavedata", UserIO.Serialize(new ModSaveData(saveData as patch_SaveData))); } } UserIO.Close(); SaveData.Instance = null; } }
public static new void InitializeDebugMode(bool loadExisting = true) { SaveData save = null; if (loadExisting && UserIO.Open(UserIO.Mode.Read)) { save = UserIO.Load <SaveData>(GetFilename(-1)); UserIO.Close(); } save = save ?? new SaveData(); save.DebugMode = true; Start(save, -1); }