/// <summary> /// Loads all saved game progress, and returns the results in a an array indexed by 'slot'. /// </summary> /// <returns>The game progress.</returns> public static Models.GameProgress[] LoadGameProgress() { Models.GameProgress[] savedGameProgress = new Models.GameProgress[Constants.SlotsCount]; for (int slot=0; slot < savedGameProgress.Length; slot++) { string savedGameProgressFilePath = GetSavedGameProgressFilePath (slot); if (File.Exists (savedGameProgressFilePath)) { string serializedGameProgress = File.ReadAllText (savedGameProgressFilePath); savedGameProgress [slot] = Deserialize (serializedGameProgress); } } return savedGameProgress; }
public static Models.GameProgress Deserialize(string serializedGameProgress) { Csv csv = new Csv (serializedGameProgress); int[] savedGameData = csv.ToIntArray (); int dataIndex = 0; Models.GameProgress gameProgress = new Models.GameProgress (savedGameData [dataIndex++]); while (dataIndex < savedGameData.Length) { int worldNumber = savedGameData [dataIndex++]; int levelNumber = savedGameData [dataIndex++]; int moves = savedGameData [dataIndex++]; int stars = savedGameData [dataIndex++]; Models.SolvedLevel solvedLevel = new Models.SolvedLevel (worldNumber, levelNumber, moves, stars); gameProgress.AddSolvedLevel (solvedLevel); } return gameProgress; }