protected override void OnSpawn() { Debug.Log("-- MAIN MENU -- "); base.OnSpawn(); Canvas.ForceUpdateCanvases(); ShowLanguageConfirmation(); string savePrefix = SaveLoader.GetSavePrefix(); try { string path = Path.Combine(savePrefix, "__SPCCHK"); using (FileStream fileStream = File.OpenWrite(path)) { byte[] array = new byte[1024]; for (int i = 0; i < 15360; i++) { fileStream.Write(array, 0, array.Length); } } File.Delete(path); } catch (Exception ex) { string format = (!(ex is IOException)) ? string.Format(UI.FRONTEND.SUPPORTWARNINGS.SAVE_DIRECTORY_READ_ONLY, savePrefix) : string.Format(UI.FRONTEND.SUPPORTWARNINGS.SAVE_DIRECTORY_INSUFFICIENT_SPACE, savePrefix); string text = string.Format(format, savePrefix); ConfirmDialogScreen confirmDialogScreen = Util.KInstantiateUI <ConfirmDialogScreen>(ScreenPrefabs.Instance.ConfirmDialogScreen.gameObject, base.gameObject, true); confirmDialogScreen.PopupConfirmDialog(text, null, null, null, null, null, null, null, null, true); } Global.Instance.modManager.Report(base.gameObject); if ((GenericGameSettings.instance.autoResumeGame && !HasAutoresumedOnce) || !string.IsNullOrEmpty(GenericGameSettings.instance.performanceCapture.saveGame)) { HasAutoresumedOnce = true; ResumeGame(); } }
private void LoadScenario(PublishedFileId_t item) { SteamUGC.GetItemInstallInfo(item, out ulong punSizeOnDisk, out string pchFolder, 1024u, out uint punTimeStamp); DebugUtil.LogArgs("LoadScenario", pchFolder, punSizeOnDisk, punTimeStamp); System.DateTime lastModified; byte[] bytesFromZip = SteamUGCService.GetBytesFromZip(item, new string[1] { ".sav" }, out lastModified, false); string text = Path.Combine(SaveLoader.GetSavePrefix(), "scenario.sav"); File.WriteAllBytes(text, bytesFromZip); SaveLoader.SetActiveSaveFilePath(text); Time.timeScale = 0f; App.LoadScene("backend"); }
private void ShowFileErrorDialogs() { string text = null; switch (savePathState) { case SavePathIssue.WriteTestFail: text = string.Format(UI.FRONTEND.SUPPORTWARNINGS.SAVE_DIRECTORY_READ_ONLY, SaveLoader.GetSavePrefix()); break; case SavePathIssue.SpaceTestFail: text = string.Format(UI.FRONTEND.SUPPORTWARNINGS.SAVE_DIRECTORY_INSUFFICIENT_SPACE, SaveLoader.GetSavePrefix()); break; case SavePathIssue.WorldGenFilesFail: text = string.Format(UI.FRONTEND.SUPPORTWARNINGS.WORLD_GEN_FILES, WorldGen.WORLDGEN_SAVE_FILENAME + "\n" + WorldGen.SIM_SAVE_FILENAME); break; } if (text != null) { ShowErrorDialog(text); } }
private void CheckForSavePathIssue() { if (test_issue != 0) { savePathState = test_issue; return; } string savePrefix = SaveLoader.GetSavePrefix(); savePathState = SavePathIssue.Ok; try { SaveLoader.GetSavePrefixAndCreateFolder(); using (FileStream fileStream = File.Open(savePrefix + testFile, FileMode.Create, FileAccess.Write)) { new BinaryWriter(fileStream); fileStream.Close(); } } catch { savePathState = SavePathIssue.WriteTestFail; goto IL_0111; } using (FileStream fileStream2 = File.Open(savePrefix + testSave, FileMode.Create, FileAccess.Write)) { try { fileStream2.SetLength(15000000L); new BinaryWriter(fileStream2); fileStream2.Close(); } catch { fileStream2.Close(); savePathState = SavePathIssue.SpaceTestFail; goto IL_0111; } } try { using (File.Open(WorldGen.WORLDGEN_SAVE_FILENAME, FileMode.Append)) { } using (File.Open(WorldGen.SIM_SAVE_FILENAME, FileMode.Append)) { } } catch { savePathState = SavePathIssue.WorldGenFilesFail; } goto IL_0111; IL_0111: try { if (File.Exists(savePrefix + testFile)) { File.Delete(savePrefix + testFile); } if (File.Exists(savePrefix + testSave)) { File.Delete(savePrefix + testSave); } } catch { } }