コード例 #1
0
        /// <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;
            }
        }
コード例 #2
0
ファイル: SaveData.cs プロジェクト: vitellaryjr/Everest
        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);
        }