/// <summary> /// Loads the saved achievements file and updates the array with its content. /// </summary> public static void LoadSavedAchievements() { DeterminePath(); SerializedMMAchievementManager serializedMMAchievementManager = (SerializedMMAchievementManager)MMSaveLoadManager.Load(typeof(SerializedMMAchievementManager), _saveFileName + _saveFileExtension, _saveFolderName); ExtractSerializedMMAchievementManager(serializedMMAchievementManager); }
/// <summary> /// Saves the achievements current status to a file on disk /// </summary> public static void SaveAchievements() { DeterminePath(); SerializedMMAchievementManager serializedMMAchievementManager = new SerializedMMAchievementManager(); FillSerializedMMAchievementManager(serializedMMAchievementManager); MMSaveLoadManager.Save(serializedMMAchievementManager, _saveFileName + _saveFileExtension, _saveFolderName); }
/// <summary> /// Serializes the contents of the achievements array to a serialized, ready to save object /// </summary> /// <param name="serializedInventory">Serialized inventory.</param> public static void FillSerializedMMAchievementManager(SerializedMMAchievementManager serializedAchievements) { serializedAchievements.Achievements = new SerializedMMAchievement[_achievements.Count]; for (int i = 0; i < _achievements.Count(); i++) { SerializedMMAchievement newAchievement = new SerializedMMAchievement(_achievements[i].AchievementID, _achievements[i].UnlockedStatus, _achievements[i].ProgressCurrent); serializedAchievements.Achievements [i] = newAchievement; } }
/// <summary> /// Serializes the contents of the achievements array to a serialized, ready to save object /// </summary> /// <param name="serializedInventory">Serialized inventory.</param> public static void FillSerializedMMAchievementManager(SerializedMMAchievementManager serializedAchievements) { serializedAchievements.Achievements = new SerializedMMAchievement[Achievements.Count]; for (int i = 0; i < Achievements.Count(); i++) { SerializedMMAchievement newAchievement = new SerializedMMAchievement(Achievements[i].AchievementID, Achievements[i].UnlockedStatus, Achievements[i].ProgressCurrent); serializedAchievements.Achievements [i] = newAchievement; //MMDebug.DebugLogTime ("Save : " + serializedAchievements.Achievements [i].AchievementID+", status : "+serializedAchievements.Achievements [i].UnlockedStatus); } }
/// <summary> /// Extracts the serialized achievements into our achievements array if the achievements ID match. /// </summary> /// <param name="serializedAchievements">Serialized achievements.</param> public static void ExtractSerializedMMAchievementManager(SerializedMMAchievementManager serializedAchievements) { for (int i = 0; i < Achievements.Count(); i++) { for (int j = 0; j < serializedAchievements.Achievements.Length; j++) { if (Achievements[i].AchievementID == serializedAchievements.Achievements[j].AchievementID) { Achievements [i].UnlockedStatus = serializedAchievements.Achievements [j].UnlockedStatus; Achievements [i].ProgressCurrent = serializedAchievements.Achievements [j].ProgressCurrent; //MMDebug.DebugLogTime ("Load : " + serializedAchievements.Achievements [j].AchievementID+", status : "+serializedAchievements.Achievements [j].UnlockedStatus); } } } }
// SAVE ------------------------------------------------------------------------------------------------------------------------------------ /// <summary> /// Loads the saved achievements file and updates the array with its content. /// </summary> public static void LoadSavedAchievements() { DeterminePath(); // if the MMSaves directory or the save file doesn't exist, there's nothing to load, we do nothing and exit if (!Directory.Exists(_savePath) || !File.Exists(_saveFileName)) { //MMDebug.DebugLogTime("Nothing to load at "+_saveFileName); return; } BinaryFormatter formatter = new BinaryFormatter(); FileStream saveFile = File.Open(_saveFileName, FileMode.Open, FileAccess.Read, FileShare.Read); SerializedMMAchievementManager serializedMMAchievementManager = (SerializedMMAchievementManager)formatter.Deserialize(saveFile); saveFile.Close(); ExtractSerializedMMAchievementManager(serializedMMAchievementManager); }
/// <summary> /// Extracts the serialized achievements into our achievements array if the achievements ID match. /// </summary> /// <param name="serializedAchievements">Serialized achievements.</param> public static void ExtractSerializedMMAchievementManager(SerializedMMAchievementManager serializedAchievements) { if (serializedAchievements == null) { return; } for (int i = 0; i < _achievements.Count(); i++) { for (int j = 0; j < serializedAchievements.Achievements.Length; j++) { if (_achievements[i].AchievementID == serializedAchievements.Achievements[j].AchievementID) { _achievements [i].UnlockedStatus = serializedAchievements.Achievements [j].UnlockedStatus; _achievements [i].ProgressCurrent = serializedAchievements.Achievements [j].ProgressCurrent; } } } }
/// <summary> /// Saves the achievements current status to a file on disk /// </summary> public static void SaveAchievements() { DeterminePath(); if (!Directory.Exists(_savePath)) { Directory.CreateDirectory(_savePath); } BinaryFormatter formatter = new BinaryFormatter(); FileStream saveFile = File.Create(_saveFileName); SerializedMMAchievementManager serializedMMAchievementManager = new SerializedMMAchievementManager(); FillSerializedMMAchievementManager(serializedMMAchievementManager); formatter.Serialize(saveFile, serializedMMAchievementManager); saveFile.Close(); }