diff options
| -rw-r--r-- | data/lang/lang.en_US.json | 3 | ||||
| -rw-r--r-- | game/client/settings.cc | 10 | ||||
| -rw-r--r-- | game/client/settings.hh | 3 | ||||
| -rw-r--r-- | game/client/sound.cc | 7 |
4 files changed, 18 insertions, 5 deletions
diff --git a/data/lang/lang.en_US.json b/data/lang/lang.en_US.json index caaa407..90e1f20 100644 --- a/data/lang/lang.en_US.json +++ b/data/lang/lang.en_US.json @@ -44,6 +44,8 @@ "settings.video.gui": "GUI", + "settings.sound.levels": "Levels", + "settings.value.camera.roll_angle": "Roll angle", "settings.value.camera.vertical_fov": "FOV", "settings.value.camera.view_distance": "View distance", @@ -96,6 +98,7 @@ "settings.value.sound.volume_effects": "Effects volume", "settings.value.sound.volume_master": "Master volume", "settings.value.sound.volume_music": "Music volume", + "settings.value.sound.volume_ui": "UI volume", "settings.tooltip.camera.roll_angle": "Quake-styled view roll applied with sideways moves", "settings.tooltip.camera.vertical_fov": "Field Of View", diff --git a/game/client/settings.cc b/game/client/settings.cc index 65679cb..d239532 100644 --- a/game/client/settings.cc +++ b/game/client/settings.cc @@ -223,6 +223,8 @@ static std::string str_gamepad_checkbox_tooltip; static std::string str_video_gui; +static std::string str_sound_levels; + static std::vector<SettingValue *> values_all; static std::vector<SettingValue *> values[NUM_LOCATIONS]; @@ -619,6 +621,8 @@ static void on_language_set(const LanguageSetEvent &event) str_video_gui = language::resolve("settings.video.gui"); + str_sound_levels = language::resolve("settings.sound.levels"); + for(SettingValue *value : values_all) { if(value->type == setting_type::CHECKBOX) { auto checkbox = static_cast<SettingValue_CheckBox *>(value); @@ -734,8 +738,12 @@ static void layout_video(void) static void layout_sound(void) { - if(ImGui::BeginChild("###settings.sound.child")) + if(ImGui::BeginChild("###settings.sound.child")) { layout_values(settings_location::SOUND); + ImGui::SeparatorText(str_sound_levels.c_str()); + layout_values(settings_location::SOUND_LEVELS); + } + ImGui::EndChild(); } diff --git a/game/client/settings.hh b/game/client/settings.hh index 56ad16d..2b9e553 100644 --- a/game/client/settings.hh +++ b/game/client/settings.hh @@ -26,7 +26,8 @@ enum class settings_location : unsigned int { VIDEO = 0x0009U, VIDEO_GUI = 0x000AU, SOUND = 0x000BU, - COUNT = 0x000CU, + SOUND_LEVELS = 0x000CU, + COUNT = 0x000DU, }; namespace settings diff --git a/game/client/sound.cc b/game/client/sound.cc index eefc297..fc48002 100644 --- a/game/client/sound.cc +++ b/game/client/sound.cc @@ -38,9 +38,10 @@ void sound::init(void) globals::client_config.add_value("sound.volume_ui", sound::volume_ui); settings::add_slider(1, sound::volume_master, settings_location::SOUND, "sound.volume_master", false, "%.0f%%"); - settings::add_slider(2, sound::volume_effects, settings_location::SOUND, "sound.volume_effects", false, "%.0f%%"); - settings::add_slider(3, sound::volume_music, settings_location::SOUND, "sound.volume_music", false, "%.0f%%"); - settings::add_slider(4, sound::volume_ui, settings_location::SOUND, "sound.volume_ui", false, "%.0f%%"); + + settings::add_slider(0, sound::volume_effects, settings_location::SOUND_LEVELS, "sound.volume_effects", false, "%.0f%%"); + settings::add_slider(1, sound::volume_music, settings_location::SOUND_LEVELS, "sound.volume_music", false, "%.0f%%"); + settings::add_slider(2, sound::volume_ui, settings_location::SOUND_LEVELS, "sound.volume_ui", false, "%.0f%%"); alGenSources(1, &generic_source); alSourcei(generic_source, AL_SOURCE_RELATIVE, AL_TRUE); |
