Example #1
0
    public static void Save(string save_name)
    {
        if (SaveGame.m_State != SaveGame.State.None)
        {
            Debug.LogWarning("Can't save, state = " + SaveGame.m_State.ToString());
            return;
        }
        if (GreenHellGame.Instance.IsGamescom())
        {
            return;
        }
        if (!ReplTools.IsPlayingAlone() && !ReplTools.AmIMaster())
        {
            SaveGame.SaveCoop();
            return;
        }
        Debug.Log("SAVE - " + save_name);
        SaveGame.m_State = SaveGame.State.Save;
        HUDSaving.Get().Activate();
        SaveGame.SetupObjects();
        SaveGame.m_IVals.Clear();
        SaveGame.m_SVals.Clear();
        SaveGame.m_FVals.Clear();
        SaveGame.m_BVals.Clear();
        foreach (ISaveLoad saveLoad in SaveGame.m_Objects)
        {
            saveLoad.Save();
        }
        BinaryFormatter binaryFormatter = new BinaryFormatter();
        MemoryStream    memoryStream    = new MemoryStream();

        binaryFormatter.Serialize(memoryStream, GreenHellGame.s_GameVersion);
        binaryFormatter.Serialize(memoryStream, GreenHellGame.Instance.m_GameMode);
        long num = DateTime.Now.ToBinary();

        binaryFormatter.Serialize(memoryStream, num);
        int ivalue = StatsManager.Get().GetStatistic(Enums.Event.DaysSurvived).IValue;

        binaryFormatter.Serialize(memoryStream, ivalue);
        int activePresetType = (int)DifficultySettings.GetActivePresetType();

        binaryFormatter.Serialize(memoryStream, activePresetType);
        binaryFormatter.Serialize(memoryStream, MainLevel.Instance.m_Tutorial);
        bool flag = Player.Get().IsDead();

        binaryFormatter.Serialize(memoryStream, flag);
        binaryFormatter.Serialize(memoryStream, ReplicatedSessionState.Get() != null && ReplicatedSessionState.Get().m_PlayedCoop);
        Stream     serializationStream = memoryStream;
        P2PSession instance            = P2PSession.Instance;

        binaryFormatter.Serialize(serializationStream, ((instance != null) ? instance.GetSessionId() : null) ?? "");
        binaryFormatter.Serialize(memoryStream, SaveGame.m_IVals);
        binaryFormatter.Serialize(memoryStream, SaveGame.m_SVals);
        binaryFormatter.Serialize(memoryStream, SaveGame.m_FVals);
        binaryFormatter.Serialize(memoryStream, SaveGame.m_BVals);
        DebugUtils.Assert(GreenHellGame.Instance.m_RemoteStorage.FileWrite(save_name, memoryStream.GetBuffer()), "SaveGame - remote storage write failed", true, DebugUtils.AssertType.Info);
        memoryStream.Close();
        SaveGame.SaveScreenshot(save_name);
        SaveGame.m_State = SaveGame.State.None;
    }
Example #2
0
    public static void Save(string save_name)
    {
        if (SaveGame.m_State != SaveGame.State.None)
        {
            Debug.LogWarning("Can't save, state = " + SaveGame.m_State.ToString());
            return;
        }
        SaveGame.m_State = SaveGame.State.Save;
        HUDSaving.Get().Activate();
        SaveGame.SetupObjects();
        SaveGame.m_IVals.Clear();
        SaveGame.m_SVals.Clear();
        SaveGame.m_FVals.Clear();
        SaveGame.m_BVals.Clear();
        foreach (ISaveLoad saveLoad in SaveGame.m_Objects)
        {
            saveLoad.Save();
        }
        BinaryFormatter binaryFormatter = new BinaryFormatter();
        FileStream      fileStream      = File.Create(Application.persistentDataPath + "/" + save_name);

        binaryFormatter.Serialize(fileStream, GreenHellGame.s_GameVersion);
        binaryFormatter.Serialize(fileStream, GreenHellGame.Instance.m_GameMode);
        long num = DateTime.Now.ToBinary();

        binaryFormatter.Serialize(fileStream, num);
        int ivalue = StatsManager.Get().GetStatistic(Enums.Event.DaysSurvived).IValue;

        binaryFormatter.Serialize(fileStream, ivalue);
        int gameDifficulty = (int)GreenHellGame.Instance.m_GameDifficulty;

        binaryFormatter.Serialize(fileStream, gameDifficulty);
        binaryFormatter.Serialize(fileStream, SaveGame.m_IVals);
        binaryFormatter.Serialize(fileStream, SaveGame.m_SVals);
        binaryFormatter.Serialize(fileStream, SaveGame.m_FVals);
        binaryFormatter.Serialize(fileStream, SaveGame.m_BVals);
        fileStream.Close();
        SaveGame.m_State = SaveGame.State.None;
    }