summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoruntodesu <kirill@untode.su>2025-03-15 19:08:44 +0500
committeruntodesu <kirill@untode.su>2025-03-15 19:08:44 +0500
commit0a396cde7f9a629038e1d7f85e582155744bc7c7 (patch)
tree2a74684f434e58500d31c5ef932f0257bf3fb593
parent3a6cfe786a9e78188923849e3f65e2218b1af80c (diff)
downloadvoxelius-0a396cde7f9a629038e1d7f85e582155744bc7c7.tar.bz2
voxelius-0a396cde7f9a629038e1d7f85e582155744bc7c7.zip
Add a specific category for sound levels
-rw-r--r--data/lang/lang.en_US.json3
-rw-r--r--game/client/settings.cc10
-rw-r--r--game/client/settings.hh3
-rw-r--r--game/client/sound.cc7
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);