diff --git a/include/dusk/settings.h b/include/dusk/settings.h index 582c5a1872..aaff862284 100644 --- a/include/dusk/settings.h +++ b/include/dusk/settings.h @@ -45,6 +45,9 @@ struct UserSettings { bool enableBloom; bool useWaterProjectionOffset; + // Audio + bool noLowHpSound; + // Cheats bool enableFastIronBoots; diff --git a/src/Z2AudioLib/Z2AudioMgr.cpp b/src/Z2AudioLib/Z2AudioMgr.cpp index 985c500aec..d6d78fb4b7 100644 --- a/src/Z2AudioLib/Z2AudioMgr.cpp +++ b/src/Z2AudioLib/Z2AudioMgr.cpp @@ -155,7 +155,14 @@ void Z2AudioMgr::zeldaGFrameWork() { mSpeechMgr.framework(); processSeFramework(); processBgmFramework(); + + #if TARGET_PC + if (!dusk::getSettings().game.noLowHpSound) { + processHeartGaugeSound(); + } + #else processHeartGaugeSound(); + #endif #if DEBUG mDebugSys.debugframework(); diff --git a/src/dusk/imgui/ImGuiMenuEnhancements.cpp b/src/dusk/imgui/ImGuiMenuEnhancements.cpp index cf7fcc41d7..b7309e0846 100644 --- a/src/dusk/imgui/ImGuiMenuEnhancements.cpp +++ b/src/dusk/imgui/ImGuiMenuEnhancements.cpp @@ -67,6 +67,15 @@ namespace dusk { ImGui::EndMenu(); } + if (ImGui::BeginMenu("Audio")) { + ImGui::Checkbox("No Low HP Sound", &getSettings().game.noLowHpSound); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("Disable the beeping sound when having low health"); + } + + ImGui::EndMenu(); + } + if (ImGui::BeginMenu("Cheats")) { ImGui::Checkbox("Fast Iron Boots", &getSettings().game.enableFastIronBoots); diff --git a/src/dusk/settings.cpp b/src/dusk/settings.cpp index ea17eef374..625fb114ed 100644 --- a/src/dusk/settings.cpp +++ b/src/dusk/settings.cpp @@ -41,6 +41,9 @@ UserSettings g_userSettings = { .enableBloom = true, .useWaterProjectionOffset = false, + // Audio + .noLowHpSound = false, + // Cheats .enableFastIronBoots = false,