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();
        }
    }
예제 #2
0
    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");
    }
예제 #3
0
    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);
        }
    }
예제 #4
0
    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
        {
        }
    }