diff --git a/isometric-park-fna/Engines/GameStateEngine.cs b/isometric-park-fna/Engines/GameStateEngine.cs --- a/isometric-park-fna/Engines/GameStateEngine.cs +++ b/isometric-park-fna/Engines/GameStateEngine.cs @@ -22,7 +22,6 @@ { startGame(); } - // SendMessage(new ToggleWindowTypeMessage { Window = Window.MainMenu }); foreach (var entity in ReadEntities()) { diff --git a/isometric-park-fna/UI/MainMenu.cs b/isometric-park-fna/UI/MainMenu.cs --- a/isometric-park-fna/UI/MainMenu.cs +++ b/isometric-park-fna/UI/MainMenu.cs @@ -34,6 +34,7 @@ { bridgeEngine.gameStateMessages.Add(new GameStateMessage { isPlaying = true}); bridgeEngine.typeMessages.Add(new ToggleWindowTypeMessage { Window = Window.NewGame }); + bridgeEngine.typeMessages.Add(new ToggleWindowTypeMessage { Window = Window.MainMenu }); } if (ImGui.Button("Quit", button_size)) diff --git a/isometric-park-fna/UI/NewGameWindow.cs b/isometric-park-fna/UI/NewGameWindow.cs --- a/isometric-park-fna/UI/NewGameWindow.cs +++ b/isometric-park-fna/UI/NewGameWindow.cs @@ -12,6 +12,14 @@ namespace isometricparkfna.UI { + enum DifficultyLevel + { + Easy, + Medium, + Hard + } + + public static class NewGameWindow { @@ -26,6 +34,8 @@ public static String selectedTitle; + public static int choice; + public static void Initialize() { parkNameBuffer = new byte[32]; @@ -74,10 +84,23 @@ ImGui.Text("Your Name: "); ImGui.SameLine(); + + + + + ImGui.SetNextItemWidth(ImGui.CalcTextSize("").X + + ImGui.CalcTextSize("XXXX").X); if (ImGui.BeginCombo("##title", selectedTitle)) { - foreach (var title in new String[] {"", "", "Mr.", "Mrs.", "Ms.", "Mx.", "Dr."}) + ImGui.PushFont(italicFont); + if (ImGui.Selectable("")) + { + selectedTitle = ""; + } + ImGui.PopFont(); + + foreach (var title in new String[] {"Mr.", "Mrs.", "Ms.", "Mx.", "Dr."}) { if (ImGui.Selectable(title)) { @@ -88,9 +111,9 @@ ImGui.EndCombo(); } + ImGui.SameLine(); int newPlayerNamePos = NewGameWindow.playerNamePos; - ImGui.SameLine(); //God this sucks: unsafe { ImGui.InputText("##playerNameBuffer", playerNameBuffer, (uint)playerNameBuffer.Length, ImGuiInputTextFlags.AutoSelectAll, null, (IntPtr)(&newPlayerNamePos)); @@ -98,11 +121,15 @@ NewGameWindow.playerNamePos = newPlayerNamePos; + ImGui.RadioButton("Easy: Full Funding", ref choice, ((int)DifficultyLevel.Easy)); + ImGui.RadioButton("Medium: Austerity", ref choice, ((int)DifficultyLevel.Medium)); + ImGui.RadioButton("Hard: Unfunded", ref choice, ((int)DifficultyLevel.Hard)); + + if (ImGui.Button("Okay")) { bridgeEngine.spawnGameMessages.Add(new SpawnGameMessage{}); bridgeEngine.typeMessages.Add(new ToggleWindowTypeMessage {Window = Window.NewGame}); - bridgeEngine.typeMessages.Add(new ToggleWindowTypeMessage { Window = Window.MainMenu }); } ImGui.SameLine(); @@ -111,6 +138,7 @@ bridgeEngine.typeMessages.Add(new ToggleWindowTypeMessage {Window = Window.NewGame}); bridgeEngine.gameStateMessages.Add(new GameStateMessage { isPlaying = false}); + bridgeEngine.typeMessages.Add(new ToggleWindowTypeMessage { Window = Window.MainMenu }); } ImGui.End();