From 8a94c841c6539a367529005501cd4162e3e29adf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3zsef=20Sallai?= Date: Wed, 23 Feb 2022 23:37:02 +0200 Subject: [PATCH] Soundtrack menu improvements (#66) --- src/menu/settings_menu.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/menu/settings_menu.rs b/src/menu/settings_menu.rs index 8fd1cdb..fa4b5d4 100644 --- a/src/menu/settings_menu.rs +++ b/src/menu/settings_menu.rs @@ -295,7 +295,21 @@ impl SettingsMenu { let _ = state.settings.save(ctx); } } - MenuSelectionResult::Selected(4, _) => self.current = CurrentMenu::SoundtrackMenu, + MenuSelectionResult::Selected(4, _) => { + let mut active_soundtrack_index = 0; + + for (idx, entry) in self.soundtrack.entries.iter().enumerate() { + if let MenuEntry::Active(soundtrack) = entry { + if soundtrack == &state.settings.soundtrack { + active_soundtrack_index = idx; + } + } + } + + self.soundtrack.selected = active_soundtrack_index; + + self.current = CurrentMenu::SoundtrackMenu + } MenuSelectionResult::Selected(5, _) | MenuSelectionResult::Canceled => { self.current = CurrentMenu::MainMenu } @@ -307,6 +321,7 @@ impl SettingsMenu { MenuSelectionResult::Selected(idx, entry) => { if let (true, MenuEntry::Active(name)) = (idx != last, entry) { state.settings.soundtrack = name.to_owned(); + let _ = state.settings.save(ctx); self.sound.entries[4] = MenuEntry::Active(format!("Soundtrack: {}", state.settings.soundtrack)); state.sound_manager.reload_songs(&state.constants, &state.settings, ctx)?;