/// <summary> /// <see cref="AdvancedGameStatsManager"/>.DoMidgameSave() is only used for hooks. Use <see cref="GameManager"/>.DoMidgameSave() instead /// </summary> public static void DoMidgameSave() { string midGameSaveGuid = Guid.NewGuid().ToString(); AdvancedMidGameSaveData obj = new AdvancedMidGameSaveData(midGameSaveGuid); SaveManager.Save(obj, SaveAPIManager.AdvancedMidGameSave, GameStatsManager.Instance.PlaytimeMin, 0u, null); Instance.midGameSaveGuid = midGameSaveGuid; Save(); }
/// <summary> /// Revalidates the current <see cref="AdvancedMidGameSaveData"/> /// </summary> /// <param name="saveStats">If true, it will also save <see cref="AdvancedGameStats"/></param> public static void RevalidateMidgameSave(bool saveStats) { AdvancedMidGameSaveData midGameSaveData = null; if (VerifyAndLoadMidgameSave(out midGameSaveData, false)) { midGameSaveData.Revalidate(); SaveManager.Save(midGameSaveData, SaveAPIManager.AdvancedMidGameSave, GameStatsManager.Instance.PlaytimeMin, 0u, null); GameStatsManager.Instance.midGameSaveGuid = midGameSaveData.midGameSaveGuid; if (saveStats) { GameStatsManager.Save(); } } }
/// <summary> /// Verifies and loads the current <see cref="AdvancedMidGameSaveData"/> /// </summary> /// <param name="midgameSave">The loaded midgame save</param> /// <param name="checkValidity">If <see langword="true"/>, it will not load invalid <see cref="AdvancedMidGameSaveData"/>s</param> /// <returns><see langword="true"/> if it succeeded, <see langword="false"/> if not</returns> public static bool VerifyAndLoadMidgameSave(out AdvancedMidGameSaveData midgameSave, bool checkValidity = true) { if (!SaveManager.Load(SaveAPIManager.AdvancedGameSave, out midgameSave, true, 0u, null, null)) { Debug.LogError("No mid game save found"); return(false); } if (midgameSave == null) { Debug.LogError("Failed to load mid game save (0)"); return(false); } if (checkValidity && !midgameSave.IsValid()) { return(false); } if (GameStatsManager.Instance.midGameSaveGuid == null || GameStatsManager.Instance.midGameSaveGuid != midgameSave.midGameSaveGuid) { Debug.LogError("Failed to load mid game save (1)"); return(false); } return(true); }