summaryrefslogtreecommitdiff
path: root/Thronefall_1_0/Decompile/SaveLoadManager.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2024-05-20 22:36:58 +0800
committerchai <215380520@qq.com>2024-05-20 22:36:58 +0800
commita22c505984697881f5f911a165ee022087b69e09 (patch)
treed3c030aef1ae9b8a01c889dd2902bb1e3324e72b /Thronefall_1_0/Decompile/SaveLoadManager.cs
parent4a4cc82d069b26bc4d4532e73860f86b211ca239 (diff)
*renameHEADmaster
Diffstat (limited to 'Thronefall_1_0/Decompile/SaveLoadManager.cs')
-rw-r--r--Thronefall_1_0/Decompile/SaveLoadManager.cs243
1 files changed, 0 insertions, 243 deletions
diff --git a/Thronefall_1_0/Decompile/SaveLoadManager.cs b/Thronefall_1_0/Decompile/SaveLoadManager.cs
deleted file mode 100644
index 5a51b9e..0000000
--- a/Thronefall_1_0/Decompile/SaveLoadManager.cs
+++ /dev/null
@@ -1,243 +0,0 @@
-using System.Collections.Generic;
-using System.IO;
-using UnityEngine;
-
-public class SaveLoadManager : MonoBehaviour
-{
- public static SaveLoadManager instance;
-
- [SerializeField]
- private int saveFileVersionNr = 1;
-
- [SerializeField]
- private string saveFileName = "ThroneSave.sav";
-
- private List<string> saveData = new List<string>();
-
- private string[] loadData;
-
- private LevelProgressManager levelProgressManager;
-
- private PerkManager perkManager;
-
- [SerializeField]
- private List<Equippable> allEquippablesID = new List<Equippable>();
-
- private int iln;
-
- private string line;
-
- private string FullSaveFilePath => Path.Combine(Application.persistentDataPath, saveFileName);
-
- private void Awake()
- {
- if ((bool)instance)
- {
- Object.Destroy(base.gameObject);
- return;
- }
- Object.DontDestroyOnLoad(base.gameObject);
- instance = this;
- }
-
- private void Start()
- {
- LoadGame();
- if (DebugController.SaveLoadModeToUse != DebugController.SaveLoadMode.LoadMaxedOutSaveFileOnStartup)
- {
- if (levelProgressManager.GetLevelDataForScene("Neuland(Tutorial)") == null)
- {
- SceneTransitionManager.instance.TransitionFromLevelSelectToLevel("Neuland(Tutorial)");
- }
- else if (!levelProgressManager.GetLevelDataForScene("Neuland(Tutorial)").beatenBest)
- {
- SceneTransitionManager.instance.TransitionFromLevelSelectToLevel("Neuland(Tutorial)");
- }
- }
- }
-
- public void SaveGame()
- {
- if (!DebugController.SaveTheGame)
- {
- DebugLogInEditorOnly("Saving is not enabled!");
- return;
- }
- saveData.Clear();
- levelProgressManager = LevelProgressManager.instance;
- perkManager = PerkManager.instance;
- SaveSingle("Save File Version", saveFileVersionNr.ToString());
- SaveSingle("Perk Level", perkManager.level.ToString());
- SaveSingle("Perk XP", perkManager.xp.ToString());
- foreach (KeyValuePair<string, LevelData> sceneNameToLevelDatum in levelProgressManager.SceneNameToLevelData)
- {
- string key = sceneNameToLevelDatum.Key;
- LevelData value = sceneNameToLevelDatum.Value;
- if (value.highscoreBest <= 0 && !value.beatenBest)
- {
- continue;
- }
- SaveSingle("Level", key);
- SaveSingle("QuestsCompleteWhenLastOnMap", value.questsCompleteWhenLastVisitingMap.ToString());
- SaveSingle("Beaten", value.beatenBest ? "1" : "0");
- if (value.beatenBest)
- {
- AchievementManager.LevelBeaten(key);
- }
- SaveSingle("HighscoreV2", value.highscoreBest.ToString());
- SaveList("NetworthV2 / Day", value.dayToDayNetworthBest);
- SaveList("ScoreV2 / Day", value.dayToDayScoreBest);
- foreach (List<Equippable> item in value.levelHasBeenBeatenWith)
- {
- List<string> list = new List<string>();
- foreach (Equippable item2 in item)
- {
- if (!(item2 == null))
- {
- list.Add(item2.name);
- }
- }
- SaveList("Beaten With", list);
- }
- }
- File.WriteAllLines(FullSaveFilePath, saveData);
- DebugLogInEditorOnly("Game Saved to " + FullSaveFilePath);
- }
-
- public void SaveSingle(string _key, string _data)
- {
- saveData.Add(_key);
- saveData.Add(_data);
- saveData.Add("");
- }
-
- public void SaveList<Type>(string _key, List<Type> _data)
- {
- saveData.Add(_key);
- saveData.Add(_data.Count.ToString());
- for (int i = 0; i < _data.Count; i++)
- {
- saveData.Add(_data[i].ToString());
- }
- saveData.Add("");
- }
-
- private void LoadGame()
- {
- levelProgressManager = LevelProgressManager.instance;
- perkManager = PerkManager.instance;
- if (DebugController.SaveLoadModeToUse == DebugController.SaveLoadMode.LoadEmptySaveFileOnStartup)
- {
- DebugLogInEditorOnly("Loading is not enabled!");
- return;
- }
- if (DebugController.SaveLoadModeToUse == DebugController.SaveLoadMode.LoadMaxedOutSaveFileOnStartup)
- {
- DebugLogInEditorOnly("Loading maxed out save file with everything unlocked!");
- perkManager.level = 10000;
- perkManager.CallAfterLoadToUnlockPerksAndStuff();
- return;
- }
- if (!File.Exists(FullSaveFilePath))
- {
- DebugLogInEditorOnly("No save file was found at " + FullSaveFilePath + " so the load process was canceled.");
- return;
- }
- loadData = File.ReadAllLines(FullSaveFilePath);
- LevelData levelData = null;
- levelProgressManager.SceneNameToLevelData.Clear();
- for (iln = 0; iln < loadData.Length; iln++)
- {
- line = loadData[iln];
- switch (line)
- {
- case "Perk Level":
- perkManager.level = int.Parse(ReadNextLn());
- break;
- case "Perk XP":
- perkManager.xp = int.Parse(ReadNextLn());
- break;
- case "Level":
- levelData = levelProgressManager.GetLevelDataForScene(ReadNextLn());
- break;
- case "QuestsCompleteWhenLastOnMap":
- if (levelData != null)
- {
- levelData.questsCompleteWhenLastVisitingMap = int.Parse(ReadNextLn());
- }
- break;
- case "Beaten":
- if (levelData != null)
- {
- levelData.beatenBest = ReadNextLn() == "1";
- }
- break;
- case "HighscoreV2":
- if (levelData != null)
- {
- levelData.highscoreBest = int.Parse(ReadNextLn());
- }
- break;
- case "NetworthV2 / Day":
- if (levelData != null)
- {
- int num = int.Parse(ReadNextLn());
- levelData.dayToDayNetworthBest.Clear();
- for (int l = 0; l < num; l++)
- {
- levelData.dayToDayNetworthBest.Add(int.Parse(ReadNextLn()));
- }
- }
- break;
- case "ScoreV2 / Day":
- if (levelData != null)
- {
- int num = int.Parse(ReadNextLn());
- levelData.dayToDayScoreBest.Clear();
- for (int k = 0; k < num; k++)
- {
- levelData.dayToDayScoreBest.Add(int.Parse(ReadNextLn()));
- }
- }
- break;
- case "Beaten With":
- {
- if (levelData == null)
- {
- break;
- }
- int num = int.Parse(ReadNextLn());
- List<Equippable> list = new List<Equippable>();
- for (int i = 0; i < num; i++)
- {
- string text = ReadNextLn();
- Equippable item = null;
- for (int j = 0; j < allEquippablesID.Count; j++)
- {
- if (allEquippablesID[j].name == text)
- {
- item = allEquippablesID[j];
- }
- }
- list.Add(item);
- }
- levelData.levelHasBeenBeatenWith.Add(list);
- break;
- }
- }
- }
- perkManager.CallAfterLoadToUnlockPerksAndStuff();
- DebugLogInEditorOnly("Loaded Game from " + FullSaveFilePath);
- }
-
- private string ReadNextLn()
- {
- iln++;
- line = loadData[iln];
- return line;
- }
-
- private void DebugLogInEditorOnly(string _log)
- {
- }
-}