public bool LoadGame(SaveGameInfo saveGame) { while (UiSystems.InGameSelect.IsPicking) { UiSystems.InGameSelect.FreeCurrentPicker(); } Globals.GameLib.Reset(); UiSystems.Reset(); GameSystems.Player.PlayerObj_Destroy(); if (Globals.GameLib.LoadGame(saveGame)) { Globals.GameLib.ModuleName = saveGame.ModuleName; Stub.TODO("Calls to old MM UI were here"); // TODO return(true); } else { while (UiSystems.InGameSelect.IsPicking) { UiSystems.InGameSelect.FreeCurrentPicker(); } Globals.GameLib.Reset(); UiSystems.Reset(); return(false); } }
public void Dispose() { // Reset all of the UI and GameSystems GameSystems.Shutdown(); UiSystems.DisposeAll(); Tig.Shutdown(); }
public bool BkgAnimTimeEventExpires(TimeEvent evt) { var eventType = evt.arg1.int32; if (eventType == 0) { // Event type 0: Entire party died if (!GameSystems.Combat.AllPcsUnconscious()) { return(true); } var fadeOutArgs = FadeArgs.Default; fadeOutArgs.color = PackedLinearColorA.Black; fadeOutArgs.transitionTime = 1.0f; fadeOutArgs.fadeSteps = 48; GameSystems.GFade.PerformFade(ref fadeOutArgs); var referenceTime = TimePoint.Now; TimeSpan elapsed; do { Globals.GameLoop.RenderFrame(); GameSystems.GFade.AdvanceTime(TimePoint.Now); elapsed = TimePoint.Now - referenceTime; } while (elapsed < TimeSpan.FromSeconds(fadeOutArgs.transitionTime)); GameSystems.GFade.SetGameOpacity(1.0f); Globals.GameLib.KillIronmanSave(); GameSystems.Movies.MovieQueueAdd(2); GameSystems.Movies.MovieQueuePlay(); Logger.Info("DEATH: Resetting game!"); Globals.GameLib.Reset(); UiSystems.Reset(); UiSystems.MainMenu.Show(0); } else if (eventType == 1) { // Event type 1: Reset the game. Logger.Info("EndGame: Resetting game!"); Globals.GameLib.Reset(); UiSystems.Reset(); UiSystems.MainMenu.Show(0); } else { Logger.Info("AnimUI: anim_ui_bkg_process_callback: ERROR: Failed to match event type!"); return(true); } var fadeInArgs = FadeArgs.Default; fadeInArgs.flags = FadeFlag.FadeIn; fadeInArgs.transitionTime = 2.0f; fadeInArgs.fadeSteps = 48; GameSystems.GFade.PerformFade(ref fadeInArgs); return(true); }
private HeadlessGame(HeadlessGameOptions options) { var config = new GameConfig { InstallationFolder = options.InstallationFolder, SkipIntro = true, SkipLegal = true, // Debug UI makes no sense in the headless client EnableDebugUI = false, Rendering = { DebugDevice = options.UseDebugRenderer } }; var settings = new TigSettings { DataFolder = options.OpenTempleDataPath ?? FindDataFolder(), OffScreen = true, DisableSound = true }; Globals.ConfigManager = new GameConfigManager(config); Globals.GameFolders = new GameFolders(options.UserDataFolder); Tig.Startup(config, settings); GameSystems.InitializeFonts(); GameSystems.InitializeSystems(new DummyLoadingProgress()); GameSystems.GameInit.EnableStartMap = options.EnableStartMap; // Prevents shopmap from opening if (options.WithUserInterface) { Globals.UiManager = new UiManager(Tig.MainWindow); Globals.UiAssets = new UiAssets(); Globals.UiStyles = new UiStyles(); Globals.WidgetButtonStyles = new WidgetButtonStyles(); UiSystems.Startup(config); } GameSystems.LoadModule("ToEE", true); }
public void Show(MainMenuPage page) { // In case the main menu is shown in-game, we have to take care of some business if (!IsVisible()) { if (page == MainMenuPage.InGameNormal || page == MainMenuPage.InGameIronman) { GameSystems.TimeEvent.PauseGameTime(); } } // TODO: This seems wrong actually... This should come after hide() mCurrentPage = page; Hide(); UiSystems.SaveGame.Hide(); UiSystems.HideOpenedWindows(false); UiSystems.CharSheet.Hide(); mMainWidget.Show(); mMainWidget.BringToFront(); foreach (var entry in mPageWidgets) { entry.Value.Visible = entry.Key == page; } if (page != MainMenuPage.InGameNormal) { UiSystems.UtilityBar.Hide(); } UiSystems.InGame.ResetInput(); if (!UiSystems.UtilityBar.IsVisible()) { UiSystems.DungeonMaster.Hide(); } }
public override void Init() { foreach (var module in _modules) { module.Init(); } foreach (var module in _modules) { ModuleInitSystems.AddRange(module.ModuleInitSystems); EntityInitSystems.AddRange(module.EntityInitSystems); PlaybackSystems.AddRange(module.PlaybackSystems); UserCmdExecuteSystems.AddRange(module.UserCmdExecuteSystems); ResourceLoadSystems.AddRange(module.ResourceLoadSystems); GameStateUpdateSystems.AddRange(module.GameStateUpdateSystems); PhysicsInitSystems.AddRange(module.PhysicsInitSystems); PhysicsUpdateSystems.AddRange(module.PhysicsUpdateSystems); PhysicsPostUpdateSystems.AddRange(module.PhysicsPostUpdateSystems); GizmosRenderSystems.AddRange(module.GizmosRenderSystems); RenderSystems.AddRange(module.RenderSystems); EntityCleanUpSystems.AddRange(module.EntityCleanUpSystems); LateUpdateSystems.AddRange(module.LateUpdateSystems); OnGUISystems.AddRange(module.OnGUISystems); GamePlaySystems.AddRange(module.GamePlaySystems); UiSystems.AddRange(module.UiSystems); UiHfrSystems.AddRange(module.UiHfrSystems); VehicleCmdExecuteSystems.AddRange(module.VehicleCmdExecuteSystems); } }
public MainMenuUi() { var mmLocalization = Tig.FS.ReadMesFile("mes/mainmenu.mes"); var widgetDoc = WidgetDoc.Load("ui/main_menu.json", (type, definition) => { if (type == "mainMenuButton") { return(CreateMainMenuButton(definition)); } else { throw new ArgumentException("Unknown custom widget type: " + type); } }); mMainWidget = widgetDoc.GetRootContainer(); mViewCinematicsDialog = new ViewCinematicsDialog(this, mmLocalization); mSetPiecesDialog = new SetPiecesDialog(this); // This eats all mouse messages that reach the full-screen main menu mMainWidget.SetMouseMsgHandler(msg => { return(true); }); mMainWidget.SetWidgetMsgHandler(msg => { return(true); }); mMainWidget.SetKeyStateChangeHandler(msg => { // Close the menu if it's the ingame menu if (msg.key == DIK.DIK_ESCAPE && !msg.down) { if (mCurrentPage == MainMenuPage.InGameNormal || mCurrentPage == MainMenuPage.InGameIronman) { Hide(); } } return(true); }); mPagesWidget = widgetDoc.GetContainer("pages"); mPageWidgets[MainMenuPage.MainMenu] = widgetDoc.GetContainer("page-main-menu"); mPageWidgets[MainMenuPage.Difficulty] = widgetDoc.GetContainer("page-difficulty"); mPageWidgets[MainMenuPage.InGameNormal] = widgetDoc.GetContainer("page-ingame-normal"); mPageWidgets[MainMenuPage.InGameIronman] = widgetDoc.GetContainer("page-ingame-ironman"); mPageWidgets[MainMenuPage.Options] = widgetDoc.GetContainer("page-options"); //mPageWidgets[MainMenuPage.SetPieces] = widgetDoc.GetWindow("page-set-pieces"); MainMenuButton GetButton(string id) { return((MainMenuButton)widgetDoc.GetWidget(id)); } // Wire up buttons on the main menu GetButton("new-game").SetClickHandler(() => { Show(MainMenuPage.Difficulty); }); GetButton("load-game").SetClickHandler(() => { Hide(); UiSystems.SaveGame.ShowLoad(true); }); GetButton("tutorial").SetClickHandler(() => LaunchTutorial()); GetButton("options").SetClickHandler(() => { Show(MainMenuPage.Options); }); GetButton("quit-game").SetClickHandler(() => { Tig.MessageQueue.Enqueue(new Message(MessageType.EXIT)); }); // Wire up buttons on the difficulty selection page GetButton("difficulty-normal").SetClickHandler(() => { Globals.GameLib.IsIronmanGame = false; Hide(); UiSystems.PCCreation.Start(); }); GetButton("difficulty-ironman").SetClickHandler(() => { Globals.GameLib.IsIronmanGame = true; Hide(); UiSystems.PCCreation.Start(); }); GetButton("difficulty-exit").SetClickHandler(() => { Show(MainMenuPage.MainMenu); }); // Wire up buttons on the ingame menu (normal difficulty) GetButton("ingame-normal-load").SetClickHandler(() => { Hide(); UiSystems.SaveGame.ShowLoad(false); }); GetButton("ingame-normal-save").SetClickHandler(() => { Hide(); UiSystems.SaveGame.ShowSave(true); }); GetButton("ingame-normal-close").SetClickHandler(Hide); GetButton("ingame-normal-quit").SetClickHandler(() => { Hide(); GameSystems.ResetGame(); UiSystems.Reset(); Show(MainMenuPage.MainMenu); }); // Wire up buttons on the ingame menu (ironman difficulty) GetButton("ingame-ironman-close").SetClickHandler(Hide); GetButton("ingame-ironman-save-quit").SetClickHandler(() => { Globals.GameLib.IronmanSave(); Globals.GameLib.Reset(); UiSystems.Reset(); Show(MainMenuPage.MainMenu); }); // Wire up buttons on the ingame menu (ironman difficulty) GetButton("options-show").SetClickHandler(() => { Hide(); UiSystems.Options.Show(true); }); GetButton("options-view-cinematics").SetClickHandler(() => { Hide(); UiSystems.UtilityBar.Hide(); // TODO ui_mm_msg_ui4(); mViewCinematicsDialog.Show(); }); GetButton("options-credits").SetClickHandler(() => { Hide(); List <int> creditsMovies = new List <int> { 100, 110, 111, 112, 113 }; foreach (var movieId in creditsMovies) { GameSystems.Movies.MovieQueueAdd(movieId); } GameSystems.Movies.MovieQueuePlay(); Show(MainMenuPage.Options); }); GetButton("options-back").SetClickHandler(() => { Show(MainMenuPage.MainMenu); }); RepositionWidgets(Globals.UiManager.CanvasSize); Globals.UiManager.OnCanvasSizeChanged += RepositionWidgets; Hide(); // Hide everything by default }