예제 #1
0
    public static void TrySaveLevelData(int levelIndex, UInt32 newScore, bool won)
    {
        LevelsSavedData loadedLevelsSavedData = LoadLevelsSavedData();//new

        LevelsSavedData.SavedLevelData loadedLevelData = loadedLevelsSavedData.savedLevelsData[levelIndex];
        if (loadedLevelData.state == LevelStates.UNTOUCHED)
        {
            loadedLevelData.score = newScore;
            loadedLevelData.state =
                (won ? LevelStates.WON_ON_FIRST_TRY : LevelStates.LOST_ON_FIRST_TRY);
            SaveLevelsData(loadedLevelsSavedData);
            Debug.Log("You " + (won? "won ":"lost ") + "on your first try!");
        }
        else
        {
            UInt32 oldScore = loadedLevelData.score;
            if (oldScore < newScore)
            {
                loadedLevelData.score = newScore;
                Debug.Log(oldScore + " is  smaller than " + newScore + ". Saving!");
                SaveLevelsData(loadedLevelsSavedData);
            }
            else
            {
                Debug.Log(oldScore + " is not smaller than " + newScore + ". No need to save");
            }
        }
    }
예제 #2
0
    public static void SaveLevelsData(LevelsSavedData savedData)
    {
        string fileName = BuildLevelsSaveFileName();

        if (!File.Exists(fileName))
        {
            Directory.CreateDirectory(Path.GetDirectoryName(fileName));
        }
        BinaryFormatter BF         = new BinaryFormatter();
        FileStream      fileStream = File.Open(fileName, FileMode.OpenOrCreate);

        BF.Serialize(fileStream, savedData);
        Debug.Log("Saving to " + fileName);
        fileStream.Close();
    }
예제 #3
0
    public static LevelsSavedData LoadLevelsSavedData()
    {
        string fileName = BuildLevelsSaveFileName();

        if (File.Exists(fileName))
        {
            BinaryFormatter binaryFormatter = new BinaryFormatter();
            FileStream      fileStream      = File.Open(fileName, FileMode.Open);
            LevelsSavedData savedData       = new LevelsSavedData();
            savedData = (LevelsSavedData)binaryFormatter.Deserialize(fileStream);
            fileStream.Close();
            Debug.Log("Loading from " + fileName);
            return(savedData);
        }
        else
        {
            return(new LevelsSavedData(LevelsManager.instance.NumberOfLevels));//TODO: Should not stay hardcoded...
        }
        // return null;
    }