public static void CreateNewAccountForExtensionAndStart(string username, string pass, ScreenManager sman, GameScreen currentScreen = null, ExtensionsMenuScreen extensionsScreen = null) { if (SaveFileManager.AddUser(username, pass)) { OS os = new OS(); string filePathForLogin = SaveFileManager.GetFilePathForLogin(username, pass); if (currentScreen != null) { currentScreen.ExitScreen(); } MainMenu.resetOS(); Settings.IsInExtensionMode = true; if (!Settings.soundDisabled) { sman.playAlertSound(); } os.SaveGameUserName = filePathForLogin; os.SaveUserAccountName = username; sman.AddScreen((GameScreen)os, new PlayerIndex?(sman.controllingPlayer)); } else if (extensionsScreen != null) { extensionsScreen.ShowError("Error Creating UserAccount for username :"******"Error auto-loading Extension " + Game1.AutoLoadExtensionPath; } }
private void drawDemoModeButtons(bool canRun) { if (Button.doButton(1, 180, 200, 450, 50, "New Session", buttonColor)) { if (canRun) { try { ExitScreen(); resetOS(); ScreenManager.playAlertSound(); ScreenManager.AddScreen(new OS(), ScreenManager.controllingPlayer); } catch (Exception ex) { Utils.writeToFile("OS Load Error: " + ex + "\n\n" + ex.StackTrace, "crashLog.txt"); } } } if (Button.doButton(11, 180, 265, 450, 50, "Load Session", canLoad ? buttonColor : Color.Black)) { if (canLoad) { try { if (canRun) { ExitScreen(); resetOS(); OS.WillLoadSave = true; ScreenManager.AddScreen(new OS(), ScreenManager.controllingPlayer); } } catch (Exception ex) { Utils.writeToFile("OS Load Error: " + ex + "\n\n" + ex.StackTrace, "crashLog.txt"); } } } if (!Button.doButton(15, 180, 330, 450, 28, "Exit", exitButtonColor)) { return; } MusicManager.stop(); Game1.threadsExiting = true; Game1.GetSingleton().Exit(); }
private void HookUpCreationEvents() { loginScreen.RequestGoBack += () => State = MainMenuState.Normal; loginScreen.StartNewGameForUsernameAndPass += (username, pass) => { if (SaveFileManager.AddUser(username, pass)) { var filePathForLogin = SaveFileManager.GetFilePathForLogin(username, pass); ExitScreen(); resetOS(); if (!Settings.soundDisabled) { ScreenManager.playAlertSound(); } try { ScreenManager.AddScreen(new OS { SaveGameUserName = filePathForLogin, SaveUserAccountName = username }, ScreenManager.controllingPlayer); } catch (Exception ex) { UpdateUIForSaveCreationFailed(ex); } } else { loginScreen.ResetForNewAccount(); loginScreen.WriteToHistory(" ERROR: Username invalid or already in use."); } }; loginScreen.LoadGameForUserFileAndUsername += (userFile, username) => { ExitScreen(); resetOS(); OS.WillLoadSave = SaveFileManager.StorageMethods[0].FileExists(userFile); var os = new OS(); os.SaveGameUserName = userFile; os.SaveUserAccountName = username; try { ScreenManager.AddScreen(os, ScreenManager.controllingPlayer); } catch (XmlException ex) { UpdateUIForSaveCorruption(userFile, ex); } catch (FormatException ex) { UpdateUIForSaveCorruption(userFile, ex); } catch (NullReferenceException ex) { UpdateUIForSaveCorruption(userFile, ex); } catch (FileNotFoundException ex) { UpdateUIForSaveMissing(userFile, ex); } }; attractModeScreen.Start += () => { try { ExitScreen(); resetOS(); ScreenManager.playAlertSound(); ScreenManager.AddScreen(new OS(), ScreenManager.controllingPlayer); } catch (Exception ex) { Utils.writeToFile("OS Load Error: " + ex + "\n\n" + ex.StackTrace, "crashLog.txt"); } }; }
private void drawMainMenuButtons(bool canRun) { var num1 = 135; int num2; if (Button.doButton(1, 180, num2 = num1 + 65, 450, 50, "New Session", buttonColor) && canRun) { State = MainMenuState.NewUser; loginScreen.ResetForNewAccount(); } int num3; if ( Button.doButton(1102, 180, num3 = num2 + 65, 450, 28, canLoad ? "Continue with account [" + SaveFileManager.LastLoggedInUser.Username + "]" : "No Accounts", canLoad ? buttonColor : Color.Black) && canLoad) { loginScreen.LoadGameForUserFileAndUsername(SaveFileManager.LastLoggedInUser.FileUsername, SaveFileManager.LastLoggedInUser.Username); } int num4; if (Button.doButton(11, 180, num4 = num3 + 39, 450, 50, "Login", canLoad ? buttonColor : Color.Black)) { if (canLoad) { try { State = MainMenuState.Login; loginScreen.ResetForLogin(); } catch (Exception ex) { Utils.writeToFile("OS Load Error: " + ex + "\n\n" + ex.StackTrace, "crashLog.txt"); } } } int num5; if (Button.doButton(3, 180, num5 = num4 + 65, 450, 50, "Settings", buttonColor)) { ScreenManager.AddScreen(new OptionsMenu(), ScreenManager.controllingPlayer); } int num6; var y = num6 = num5 + 65; if (Settings.isServerMode) { if (Button.doButton(4, 180, y, 450, 50, "Start Relay Server", buttonColor)) { ScreenManager.AddScreen(new ServerScreen(), ScreenManager.controllingPlayer); } y += 65; } if (Settings.AllowAdventureMode) { if (Button.doButton(5, 180, y, 450, 50, "Adventure Session", buttonColor)) { ExitScreen(); resetOS(); Settings.IsInAdventureMode = true; if (!Settings.soundDisabled) { ScreenManager.playAlertSound(); } ScreenManager.AddScreen(new OS(), ScreenManager.controllingPlayer); } y += 65; } if (Button.doButton(15, 180, y, 450, 28, "Exit", exitButtonColor)) { MusicManager.stop(); Game1.threadsExiting = true; Game1.GetSingleton().Exit(); } var num7 = y + 30; if (!PlatformAPISettings.RemoteStorageRunning) { TextItem.doFontLabel(new Vector2(180f, num7), "WARNING: Error connecting to Steam Cloud", GuiData.smallfont, Color.DarkRed, float.MaxValue, float.MaxValue); num7 += 20; } if (string.IsNullOrWhiteSpace(AccumErrors)) { return; } TextItem.doFontLabel(new Vector2(180f, num7), AccumErrors, GuiData.smallfont, Color.DarkRed, float.MaxValue, float.MaxValue); var num8 = num7 + 20; }
private void drawTestingMainMenuButtons(bool canRun) { if (Button.doButton(8801, 634, 200, 225, 23, "New Test Session", buttonColor) && canRun) { ExitScreen(); resetOS(); if (!Settings.soundDisabled) { ScreenManager.playAlertSound(); } var os = new OS(); ScreenManager.AddScreen(os, ScreenManager.controllingPlayer); os.delayer.RunAllDelayedActions(); os.threadedSaveExecute(); ScreenManager.RemoveScreen(os); OS.WillLoadSave = true; resetOS(); ScreenManager.AddScreen(new OS(), ScreenManager.controllingPlayer); } if (Button.doButton(8803, 634, 225, 225, 23, "New Entropy Accelerated Session", buttonColor) && canRun) { ExitScreen(); resetOS(); if (!Settings.soundDisabled) { ScreenManager.playAlertSound(); } var os1 = new OS(); os1.SaveGameUserName = "******"; os1.SaveUserAccountName = "entropyTest"; ScreenManager.AddScreen(os1, ScreenManager.controllingPlayer); os1.Flags.AddFlag("TutorialComplete"); os1.delayer.RunAllDelayedActions(); os1.threadedSaveExecute(); ScreenManager.RemoveScreen(os1); OS.WillLoadSave = true; resetOS(); Settings.initShowsTutorial = false; var os2 = new OS(); ScreenManager.AddScreen(os2, ScreenManager.controllingPlayer); MissionFunctions.runCommand(0, "EntropyFastFowardSetup"); os2.delayer.Post(ActionDelayer.Wait(1.0), () => Game1.GetSingleton().IsMouseVisible = true); } if (Button.doButton(8806, 634, 250, 225, 23, "Run Test Suite", buttonColor)) { testSuiteResult = TestSuite.TestSaveLoadOnFile(ScreenManager); } if (Button.doButton(8809, 634, 275, 225, 23, "Export Animation", buttonColor)) { var TitleFill = new Rectangle(0, 0, 300, 100); AnimatedSpriteExporter.ExportAnimation("OutNowAnim", "OutNow", TitleFill.Width, TitleFill.Height, 24f, 40f, GuiData.spriteBatch.GraphicsDevice, t => new OS { highlightColor = new Color(166, byte.MaxValue, 215) }.timer += t, (sb, dest) => { sb.Draw(Utils.white, dest, new Color(13, 13, 13)); FlickeringTextEffect.DrawFlickeringText(TitleFill, "OUT NOW", 8f, 0.7f, titleFont, null, new Color(216, 216, 216)); }, 1); } if (Button.doButton(8812, 634, 300, 225, 23, "New CSEC Accel Session", buttonColor) && canRun) { ExitScreen(); resetOS(); if (!Settings.soundDisabled) { ScreenManager.playAlertSound(); } var os1 = new OS(); ScreenManager.AddScreen(os1, ScreenManager.controllingPlayer); os1.Flags.AddFlag("TutorialComplete"); os1.delayer.RunAllDelayedActions(); os1.threadedSaveExecute(); ScreenManager.RemoveScreen(os1); OS.WillLoadSave = true; resetOS(); Settings.initShowsTutorial = false; var os2 = new OS(); ScreenManager.AddScreen(os2, ScreenManager.controllingPlayer); MissionFunctions.runCommand(0, "CSECFastFowardSetup"); os2.delayer.Post(ActionDelayer.Wait(1.0), () => Game1.GetSingleton().IsMouseVisible = true); } if (testSuiteResult == null) { return; } TextItem.doFontLabel(new Vector2(635f, 325f), Utils.SuperSmartTwimForWidth(testSuiteResult, 600, GuiData.tinyfont), GuiData.tinyfont, testSuiteResult.Length > 250 ? Utils.AddativeRed : Utils.AddativeWhite, float.MaxValue, float.MaxValue); }