From 9107e9e6c337fbd9790eeb7e89e473d5da129f36 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sat, 13 Mar 2021 13:34:12 -0500 Subject: Music volume is controllable from settings menu #7 --- src/menu_system.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'src/menu_system.cpp') diff --git a/src/menu_system.cpp b/src/menu_system.cpp index e1aca8d..c099afe 100644 --- a/src/menu_system.cpp +++ b/src/menu_system.cpp @@ -55,8 +55,15 @@ void MenuSystem::openPauseMenu() { .ActivationFunction([this] (Game&) { openSubmenu(Menu({ MenuBuilder().Slider("Music Volume: ") - .InitialValue(10) - .MaxValue(10), + .InitialValue(game_.getMixer().isMusicMuted() ? 0 : game_.getMixer().getMusicVolume()) + .MaxValue(10) + .SelectionChangedFunction([this] (MenuItem& menuItem) { + if (game_.getMixer().isMusicMuted()) { + menuItem.value = game_.getMixer().getMusicVolume(); + } + + game_.getMixer().setMusicVolume(menuItem.value); + }), MenuBuilder().Slider("Sound Volume: ") .InitialValue(10) .MaxValue(10), @@ -135,6 +142,10 @@ void MenuSystem::pressedLeft() { if (menuItem.type == MenuType::Slider && menuItem.value > 0) { menuItem.value--; + if (menuItem.selectionChanged) { + menuItem.selectionChanged(menuItem); + } + game_.getMixer().playSound("../res/sfx/horizontal_menu.wav"); } } @@ -146,6 +157,10 @@ void MenuSystem::pressedRight() { if (menuItem.type == MenuType::Slider && menuItem.value < menuItem.maxValue) { menuItem.value++; + if (menuItem.selectionChanged) { + menuItem.selectionChanged(menuItem); + } + game_.getMixer().playSound("../res/sfx/horizontal_menu.wav"); } } -- cgit 1.4.1