private static void PlayerProgression_SaveToDisk(On.PlayerProgression.orig_SaveToDisk orig, PlayerProgression self, bool saveCurrentState, bool saveMaps, bool saveMiscProg)
        {
            // Check if first time saved
            string saveFileName = Custom.RootFolderDirectory() + CustomWorldMod.regionSavePath + $"CRsav_{self.rainWorld.options.saveSlot + 1}.txt";

            CustomWorldMod.Log($"CR save data path [{saveFileName}]");
            if (!File.Exists(saveFileName))
            {
                string saveRegionData = string.Empty;
                //dictionaryString += $"{ string.Join(", ", new List<string>(CustomWorldMod.loadedRegions.Values).ToArray())}" + "}";
                //saveRegionData += $"{CustomWorldMod.saveDividerA}REGIONLIST{string.Join(",",CustomWorldMod.loadedRegions.Keys.ToArray())}{CustomWorldMod.saveDividerA}";

                foreach (KeyValuePair <string, string> keyValues in CustomWorldMod.activatedPacks)
                {
                    if (CustomWorldMod.installedPacks.TryGetValue(keyValues.Key, out RegionPack regionInfo))
                    {
                        saveRegionData += CustomWorldMod.SerializeRegionInfo(regionInfo);
                    }
                }

                // WRITE FILE
                using (StreamWriter streamWriter = File.CreateText(saveFileName))
                {
                    CustomWorldMod.Log($"Creating save log [{saveRegionData}]");
                    streamWriter.Write(Custom.Md5Sum(saveRegionData) + saveRegionData);
                }
            }

            orig(self, saveCurrentState, saveMaps, saveMiscProg);
        }
 private static void PlayerProgression_SaveToDisk(On.PlayerProgression.orig_SaveToDisk orig, PlayerProgression self, bool saveCurrentState, bool saveMaps, bool saveMiscProg)
 {
     if (saveCurrentState && self.currentSaveState != null)
     {
         self.currentSaveState.theGlow = KarmaAppetite.GetGlow(self.currentSaveState.food, self.currentSaveState.deathPersistentSaveData.karma);
     }
     orig.Invoke(self, saveCurrentState, saveMaps, saveMiscProg);
 }
Example #3
0
        // If the current state represents a custom character and would be saved,
        // ... write to a separate file instead
        private static void PlayerProgression_SaveToDisk(On.PlayerProgression.orig_SaveToDisk orig, PlayerProgression self, bool saveCurrentState, bool saveMaps, bool saveMiscProg)
        {
            if (!saveCurrentState || !(self.currentSaveState is CustomSaveState css))
            {
                orig(self, saveCurrentState, saveMaps, saveMiscProg);
                return;
            }

            // Could be moved to a separate thread
            File.WriteAllText(GetSaveFilePath(css.Character.Name, self.rainWorld.options.saveSlot), css.SaveToString());
            Debug.Log("successfully saved slugbase state for \"" + css.Character.Name + "\" to disc");

            if (saveMaps || saveMiscProg)
            {
                orig(self, false, saveMaps, saveMiscProg);
            }
        }
        private static void PlayerProgression_SaveToDisk(On.PlayerProgression.orig_SaveToDisk orig, PlayerProgression self, bool saveCurrentState, bool saveMaps, bool saveMiscProg)
        {
            // Check if first time saved
            string saveFileName = Custom.RootFolderDirectory() + CustomWorldMod.regionSavePath + $"CRsav_{self.rainWorld.options.saveSlot + 1}.txt";

            CustomWorldMod.Log($"CR save data path [{saveFileName}]");
            if (!File.Exists(saveFileName))
            {
                string saveRegionData = string.Empty;
                foreach (KeyValuePair <string, string> keyValues in CustomWorldMod.activatedPacks)
                {
                    if (CustomWorldMod.installedPacks.TryGetValue(keyValues.Key, out RegionPack regionInfo))
                    {
                        saveRegionData += CustomWorldMod.SerializeRegionInfo(regionInfo);
                    }
                }

                // WRITE FILE
                using (StreamWriter streamWriter = File.CreateText(saveFileName))
                {
                    CustomWorldMod.Log($"Creating save log [{saveRegionData}]");
                    streamWriter.Write(Custom.Md5Sum(saveRegionData) + saveRegionData);
                }
            }

            // Set a flag to remove faulty map lines
            try
            {
                removeMapLines = true;
                orig(self, saveCurrentState, saveMaps, saveMiscProg);
            }
            finally
            {
                removeMapLines = false;
            }
        }
Example #5
0
 internal static void PlayerProgression_SaveToDisk(On.PlayerProgression.orig_SaveToDisk orig, PlayerProgression self, bool saveCurrentState, bool saveMaps, bool saveMiscProg)
 {
     orig(self, saveCurrentState, saveMaps, saveMiscProg);
     SaveOIsProgression(saveCurrentState, saveCurrentState, saveMiscProg);
 }