From ba3537d65500021f0f91b526ce4d3cd3b66a7f8f Mon Sep 17 00:00:00 2001 From: qndel Date: Fri, 3 Jan 2020 00:16:04 +0100 Subject: [PATCH] [hellfire] gamemenu_music_volume bin exact (#1903) --- Source/gamemenu.cpp | 86 ++++++++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 37 deletions(-) diff --git a/Source/gamemenu.cpp b/Source/gamemenu.cpp index 32653fcf..52afbf5a 100644 --- a/Source/gamemenu.cpp +++ b/Source/gamemenu.cpp @@ -217,44 +217,56 @@ void gamemenu_get_gamma() void gamemenu_music_volume(BOOL bActivate) { - int volume; - if (bActivate) { - if (gbMusicOn) { - gbMusicOn = FALSE; - music_stop(); - sound_get_or_set_music_volume(VOLUME_MIN); - gamemenu_get_music(); - return; - } - gbMusicOn = TRUE; - sound_get_or_set_music_volume(VOLUME_MAX); - music_start(leveltype); - gamemenu_get_music(); - return; - } + int volume; - volume = gamemenu_slider_music_sound(sgOptionsMenu); - sound_get_or_set_music_volume(volume); - - if (volume == VOLUME_MIN) { - - if (gbMusicOn) { - gbMusicOn = FALSE; - music_stop(); - } - - gamemenu_get_music(); - return; - } - - if (gbMusicOn) { - gamemenu_get_music(); - return; - } - - gbMusicOn = TRUE; - music_start(leveltype); - gamemenu_get_music(); + if (bActivate) { + if (gbMusicOn) { + gbMusicOn = FALSE; + music_stop(); + sound_get_or_set_music_volume(VOLUME_MIN); + } else { + gbMusicOn = TRUE; + sound_get_or_set_music_volume(VOLUME_MAX); +#ifdef HELLFIRE + int lt; + if (currlevel >= 17) { + if (currlevel > 20) + lt = DTYPE_NEST; + else + lt = DTYPE_CRYPT; + } else + lt = leveltype; + music_start(lt); +#else + music_start(leveltype); +#endif + } + } else { + volume = gamemenu_slider_music_sound(sgOptionsMenu); + sound_get_or_set_music_volume(volume); + if (volume == VOLUME_MIN) { + if (gbMusicOn) { + gbMusicOn = FALSE; + music_stop(); + } + } else if (!gbMusicOn) { + gbMusicOn = TRUE; +#ifdef HELLFIRE + int lt; + if (currlevel >= 17) { + if (currlevel > 20) + lt = DTYPE_NEST; + else + lt = DTYPE_CRYPT; + } else + lt = leveltype; + music_start(lt); +#else + music_start(leveltype); +#endif + } + } + gamemenu_get_music(); } int gamemenu_slider_music_sound(TMenuItem *menu_item)