Skip to content

Commit e4d9c3c

Browse files
committed
feat: update save code
1 parent 36c6f06 commit e4d9c3c

3 files changed

Lines changed: 15 additions & 8 deletions

File tree

COTL_API/Plugin.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ public class Plugin : BaseUnityPlugin
5656

5757
private ConfigEntry<bool>? _disableAchievement { get; set; }
5858
public bool DisableAchievement => _disableAchievement?.Value ?? true;
59-
60-
private ConfigEntry<bool>? _decryptSaveFile { get; set; }
59+
60+
private ConfigEntry<bool>? _decryptSaveFile { get; set; }
6161
public bool DecryptSaveFile => _decryptSaveFile?.Value ?? false;
6262

6363
internal static bool Started { get; private set; }
@@ -89,7 +89,7 @@ private void Awake()
8989
_disableAchievement = Config.Bind("Miscellaneous", "Disable new achievement", true,
9090
"Should we disable saving new achievements? (You will still be able to get achievement but it won't save)");
9191
_decryptSaveFile = Config.Bind("Miscellaneous", "Decrypt save file", false);
92-
92+
9393
_debug = Config.Bind("Debug", "API debug", false,
9494
"API debug mode. Will add debug content to your game for testing. Not recommended for normal play.");
9595
UnityDebug = Config.Bind("Debug", "Unity debug logging", false,
@@ -165,7 +165,12 @@ private void Awake()
165165
AchievementsWrapper.LoadAchievementData();
166166
AchievementsWrapper.compareAchievements();
167167
});
168-
CustomSettingsManager.AddBepInExConfig("API", "Decrypt save file", _decryptSaveFile);
168+
CustomSettingsManager.AddBepInExConfig("API", "Decrypt save file", _decryptSaveFile, delegate(bool isActivated)
169+
{
170+
if (!isActivated) return;
171+
172+
foreach (var save in ModdedSaveManager.ModdedSaveDataList.Values) save.Save(!_decryptSaveFile.Value);
173+
});
169174

170175
CustomSettingsManager.AddBepInExConfig("API", "Debug", _debug, delegate(bool isActivated)
171176
{

COTL_API/Saves/ModdedSaveData.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,20 +56,21 @@ public override void Saving()
5656
{
5757
if (Data == null)
5858
return;
59-
59+
6060
var deletePreviousSave = false;
6161
if (SAVE_SLOT >= 10 && !SaveExist(SAVE_SLOT - 10))
6262
{
6363
SAVE_SLOT -= 10;
6464
deletePreviousSave = true;
6565
}
66+
6667
_dataReadWriter.Write(Data, SaveAndLoad.MakeSaveSlot(SaveAndLoad.SAVE_SLOT), !Plugin.Instance.DecryptSaveFile);
67-
_dataReadWriter.OnWriteCompleted += (() =>
68+
_dataReadWriter.OnWriteCompleted += () =>
6869
{
6970
if (!deletePreviousSave)
7071
return;
7172
DeleteSaveSlot(SaveAndLoad.SAVE_SLOT + 10);
72-
});
73+
};
7374
}
7475

7576
public override void Load(int? saveSlot = null)

COTL_API/Saves/SavePatches.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ private static void SaveAndLoad_Saving()
2626
{
2727
foreach (var saveData in ModdedSaveDataList.Values)
2828
saveData.Saving();
29-
SaveAndLoad.Instance._saveFileReadWriter.Write(DataManager.Instance, SaveAndLoad.MakeSaveSlot(SaveAndLoad.SAVE_SLOT), !Plugin.Instance.DecryptSaveFile);
29+
SaveAndLoad.Instance._saveFileReadWriter.Write(DataManager.Instance,
30+
SaveAndLoad.MakeSaveSlot(SaveAndLoad.SAVE_SLOT), !Plugin.Instance.DecryptSaveFile);
3031
}
3132

3233
[HarmonyPatch(typeof(SaveAndLoad), nameof(SaveAndLoad.ResetSave))]

0 commit comments

Comments
 (0)