diff --git a/include/dusk/settings.h b/include/dusk/settings.h index 992a52999c..584f75b4ef 100644 --- a/include/dusk/settings.h +++ b/include/dusk/settings.h @@ -169,6 +169,7 @@ struct UserSettings { ConfigVar wasPresetChosen; ConfigVar enableCrashReporting; ConfigVar cardFileType; + ConfigVar enableAdvancedSettings; } backend; }; diff --git a/src/dusk/imgui/ImGuiAudio.cpp b/src/dusk/imgui/ImGuiAudio.cpp index 6bddc6f07c..ce9290efa5 100644 --- a/src/dusk/imgui/ImGuiAudio.cpp +++ b/src/dusk/imgui/ImGuiAudio.cpp @@ -282,7 +282,9 @@ static void ShowAllJAISeqs() { } void dusk::ImGuiMenuTools::ShowAudioDebug() { - if (!ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F10, m_showAudioDebug)) { + if (!getSettings().backend.enableAdvancedSettings || + !ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F10, m_showAudioDebug)) + { return; } @@ -328,7 +330,9 @@ void dusk::ImGuiMenuTools::ShowAudioDebug() { } void dusk::ImGuiMenuTools::ShowSaveEditor() { - if (!ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F6, m_showSaveEditor)) { + if (!getSettings().backend.enableAdvancedSettings || + !ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F6, m_showSaveEditor)) + { return; } m_saveEditor.draw(m_showSaveEditor); diff --git a/src/dusk/imgui/ImGuiCameraOverlay.cpp b/src/dusk/imgui/ImGuiCameraOverlay.cpp index 2a39ef85eb..abdb988af0 100644 --- a/src/dusk/imgui/ImGuiCameraOverlay.cpp +++ b/src/dusk/imgui/ImGuiCameraOverlay.cpp @@ -10,7 +10,9 @@ namespace dusk { void ImGuiMenuTools::ShowCameraOverlay() { - if (!ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F9, m_showCameraOverlay)) { + if (!getSettings().backend.enableAdvancedSettings || + !ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F9, m_showCameraOverlay)) + { return; } diff --git a/src/dusk/imgui/ImGuiConsole.cpp b/src/dusk/imgui/ImGuiConsole.cpp index 09d1ca6e81..8f7eb7ff23 100644 --- a/src/dusk/imgui/ImGuiConsole.cpp +++ b/src/dusk/imgui/ImGuiConsole.cpp @@ -265,7 +265,11 @@ namespace dusk { } if (ImGui::GetIO().KeyShift && ImGui::IsKeyPressed(ImGuiKey_F1)) { - m_isHidden = !m_isHidden; + if (getSettings().backend.enableAdvancedSettings) { + m_isHidden = !m_isHidden; + } else { + m_isHidden = true; + } } bool showMenu = !m_isHidden; diff --git a/src/dusk/imgui/ImGuiHeapOverlay.cpp b/src/dusk/imgui/ImGuiHeapOverlay.cpp index a63ce4cfbe..33209ab0d4 100644 --- a/src/dusk/imgui/ImGuiHeapOverlay.cpp +++ b/src/dusk/imgui/ImGuiHeapOverlay.cpp @@ -22,7 +22,9 @@ namespace dusk { void ShowHeapDetailed(JKRHeap* heap, OpenHeapData& data, bool& open); void ImGuiMenuTools::ShowHeapOverlay() { - if (!ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F4, m_showHeapOverlay)) { + if (!getSettings().backend.enableAdvancedSettings || + !ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F4, m_showHeapOverlay)) + { return; } diff --git a/src/dusk/imgui/ImGuiMapLoader.cpp b/src/dusk/imgui/ImGuiMapLoader.cpp index 63f4befb44..cd6f292152 100644 --- a/src/dusk/imgui/ImGuiMapLoader.cpp +++ b/src/dusk/imgui/ImGuiMapLoader.cpp @@ -9,7 +9,9 @@ namespace dusk { void ImGuiMenuTools::ShowMapLoader() { - if (!ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F7, m_showMapLoader)) { + if (!getSettings().backend.enableAdvancedSettings || + !ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F7, m_showMapLoader)) + { return; } diff --git a/src/dusk/imgui/ImGuiMenuTools.cpp b/src/dusk/imgui/ImGuiMenuTools.cpp index 2326ba4fa4..0907d0c116 100644 --- a/src/dusk/imgui/ImGuiMenuTools.cpp +++ b/src/dusk/imgui/ImGuiMenuTools.cpp @@ -119,7 +119,9 @@ namespace dusk { } void ImGuiMenuTools::ShowDebugOverlay() { - if (!ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F3, m_showDebugOverlay)) { + if (!getSettings().backend.enableAdvancedSettings || + !ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F3, m_showDebugOverlay)) + { return; } @@ -183,7 +185,9 @@ namespace dusk { } void ImGuiMenuTools::ShowPlayerInfo() { - if (!ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F5, m_showPlayerInfo)) { + if (!getSettings().backend.enableAdvancedSettings || + !ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F5, m_showPlayerInfo)) + { return; } diff --git a/src/dusk/imgui/ImGuiProcessOverlay.cpp b/src/dusk/imgui/ImGuiProcessOverlay.cpp index ed71e6c485..806a9ea0f6 100644 --- a/src/dusk/imgui/ImGuiProcessOverlay.cpp +++ b/src/dusk/imgui/ImGuiProcessOverlay.cpp @@ -126,7 +126,9 @@ namespace dusk { } void ImGuiMenuTools::ShowProcessManager() { - if (!ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F2, m_showProcessManagement)) { + if (!getSettings().backend.enableAdvancedSettings || + !ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F2, m_showProcessManagement)) + { return; } diff --git a/src/dusk/imgui/ImGuiStateShare.cpp b/src/dusk/imgui/ImGuiStateShare.cpp index adbe5b6c67..a0bd450984 100644 --- a/src/dusk/imgui/ImGuiStateShare.cpp +++ b/src/dusk/imgui/ImGuiStateShare.cpp @@ -417,7 +417,9 @@ void ImGuiStateShare::draw(bool& open) { } void ImGuiMenuTools::ShowStateShare() { - if (!ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F8, m_showStateShare)) { + if (!getSettings().backend.enableAdvancedSettings || + !ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F8, m_showStateShare)) + { return; } m_stateShare.draw(m_showStateShare); diff --git a/src/dusk/settings.cpp b/src/dusk/settings.cpp index b3e0e13cd3..5de8c54163 100644 --- a/src/dusk/settings.cpp +++ b/src/dusk/settings.cpp @@ -115,7 +115,8 @@ UserSettings g_userSettings = { .showPipelineCompilation {"backend.showPipelineCompilation", false}, .wasPresetChosen {"backend.wasPresetChosen", false}, .enableCrashReporting {"backend.enableCrashReporting", true}, - .cardFileType {"backend.cardFileType", static_cast(CARD_GCIFOLDER)} + .cardFileType {"backend.cardFileType", static_cast(CARD_GCIFOLDER)}, + .enableAdvancedSettings {"backend.enableAdvancedSettings", false}, } }; @@ -214,6 +215,7 @@ void registerSettings() { Register(g_userSettings.backend.wasPresetChosen); Register(g_userSettings.backend.enableCrashReporting); Register(g_userSettings.backend.cardFileType); + Register(g_userSettings.backend.enableAdvancedSettings); } // Transient settings diff --git a/src/dusk/ui/settings.cpp b/src/dusk/ui/settings.cpp index de0f633c25..69958c8659 100644 --- a/src/dusk/ui/settings.cpp +++ b/src/dusk/ui/settings.cpp @@ -866,6 +866,12 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) { .key = "Show Pipeline Compilation", .helpText = "Show an overlay when shaders are being compiled for your hardware.", }); + + config_bool_select(leftPane, rightPane, getSettings().backend.enableAdvancedSettings, + { + .key = "Enable Advanced Settings", + .helpText = "Show the advanced settings on the menu bar.
Most users should have this disabled.", + }); }); }