diff --git a/SpaceCadetPinball/options.cpp b/SpaceCadetPinball/options.cpp index 09284a0..22f68bd 100644 --- a/SpaceCadetPinball/options.cpp +++ b/SpaceCadetPinball/options.cpp @@ -67,6 +67,7 @@ void options::init() Options.Sounds = 1; Options.Music = 0; + Options.ShowMenu = 1; Options.FullScreen = 0; Options.LeftFlipperKeyDft = SDLK_z; Options.RightFlipperKeyDft = SDLK_SLASH; @@ -90,6 +91,7 @@ void options::init() Options.UniformScaling = true; Options.Sounds = get_int("Sounds", Options.Sounds); Options.Music = get_int("Music", Options.Music); + Options.ShowMenu = get_int("ShowMenu", Options.ShowMenu); Options.FullScreen = get_int("FullScreen", Options.FullScreen); Options.Players = get_int("Players", Options.Players); Options.LeftFlipperKey = get_int("Left Flipper key", Options.LeftFlipperKey); @@ -120,6 +122,7 @@ void options::uninit() { set_int("Sounds", Options.Sounds); set_int("Music", Options.Music); + set_int("ShowMenu", Options.ShowMenu); set_int("FullScreen", Options.FullScreen); set_int("Players", Options.Players); set_int("Left Flipper key", Options.LeftFlipperKey); @@ -188,6 +191,9 @@ void options::toggle(Menu1 uIDCheckItem) else midi::play_pb_theme(0); return; + case Menu1::Show_Menu: + Options.ShowMenu = Options.ShowMenu == 0; + return; case Menu1::Full_Screen: newValue = Options.FullScreen == 0; Options.FullScreen = Options.FullScreen == 0; diff --git a/SpaceCadetPinball/options.h b/SpaceCadetPinball/options.h index accdbb9..0ee6de2 100644 --- a/SpaceCadetPinball/options.h +++ b/SpaceCadetPinball/options.h @@ -20,6 +20,7 @@ enum class Menu1:int TwoPlayers = 409, ThreePlayers = 410, FourPlayers = 411, + Show_Menu = 412, MaximumResolution = 500, R640x480 = 501, R800x600 = 502, @@ -32,6 +33,7 @@ struct optionsStruct { int Sounds; int Music; + int ShowMenu; int FullScreen; int Players; int LeftFlipperKey; diff --git a/SpaceCadetPinball/winmain.cpp b/SpaceCadetPinball/winmain.cpp index a8bfbea..fbf0491 100644 --- a/SpaceCadetPinball/winmain.cpp +++ b/SpaceCadetPinball/winmain.cpp @@ -244,16 +244,23 @@ int winmain::WinMain(LPCSTR lpCmdLine) if (UpdateToFrameCounter >= UpdateToFrameRatio) { UpdateToFrameCounter -= UpdateToFrameRatio; - ImGui_ImplSDL2_NewFrame(); - ImGui::NewFrame(); - RenderUi(); + if (options::Options.ShowMenu) + { + ImGui_ImplSDL2_NewFrame(); + ImGui::NewFrame(); + + RenderUi(); + } SDL_RenderClear(renderer); render::PresentVScreen(); - ImGui::Render(); - ImGuiSDL::Render(ImGui::GetDrawData()); + if (options::Options.ShowMenu) + { + ImGui::Render(); + ImGuiSDL::Render(ImGui::GetDrawData()); + } SDL_RenderPresent(renderer); frameCounter++; @@ -353,6 +360,10 @@ void winmain::RenderUi() if (ImGui::BeginMenu("Options")) { + if (ImGui::MenuItem("Show Menu", "F9", options::Options.ShowMenu)) + { + options::toggle(Menu1::Show_Menu); + } if (ImGui::MenuItem("Full Screen", "F4", options::Options.FullScreen)) { options::toggle(Menu1::Full_Screen); @@ -573,6 +584,9 @@ int winmain::event_handler(const SDL_Event* event) pause(); options::keyboard(); break; + case SDLK_F9: + options::toggle(Menu1::Show_Menu); + break; default: break; }