From 21e93bd260d2e74221da6f6560643d3c884d0128 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Fri, 29 Jul 2016 18:33:59 +0200 Subject: Added checkbox to enable/disable sound doppler effect. --- src/client/audiosettingsmenu.cc | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'src/client/audiosettingsmenu.cc') diff --git a/src/client/audiosettingsmenu.cc b/src/client/audiosettingsmenu.cc index d247cbe..07a1009 100644 --- a/src/client/audiosettingsmenu.cc +++ b/src/client/audiosettingsmenu.cc @@ -7,6 +7,7 @@ #include "client/audiosettingsmenu.h" #include "core/cvar.h" #include "ui/button.h" +#include "ui/checkbox.h" #include "ui/slider.h" #include "ui/iconbutton.h" #include "ui/inputbox.h" @@ -68,6 +69,19 @@ AudioSettingsMenu::AudioSettingsMenu(ui::Widget *parent, const char *label) : ui _enginevolumeslider->set_border(true); _enginevolumeslider->set_range(0.0f, 100.0f); + + // doppler effect + _optionslabel = new ui::Label(_frame); + _optionslabel->set_label("options"); + _optionslabel->set_background(false); + _optionslabel->set_border(false); + _optionslabel->set_text("Options"); + + _dopplercheckbox = new ui::Checkbox(_frame); + _dopplercheckbox->set_label("snd_doppler"); + _dopplercheckbox->set_text("Enable doppler effect (requires sound restart)"); + _dopplercheckbox->set_border(true); + // apply button _applybutton = new ui::Button(_frame, "Apply"); @@ -118,6 +132,17 @@ void AudioSettingsMenu::refresh() { _enginevolumeslider->set_value(0.0f); } + + // doppler effect + if (core::Cvar *cv_doppler = core::Cvar::find("snd_doppler")) + { + float v = cv_doppler->value(); + _dopplercheckbox->set_value(v > 0.0f); + } + else + { + _dopplercheckbox->set_value(false); + } } void AudioSettingsMenu::apply() @@ -135,6 +160,13 @@ void AudioSettingsMenu::apply() float v = _enginevolumeslider->value(); cv_engines->assign(v * 0.01f); } + + // set doppler effect + if (core::Cvar *cv_doppler = core::Cvar::find("snd_doppler")) + { + float v = (_dopplercheckbox->value() ? 1.0f : 0.0f); + cv_doppler->assign(v * 0.01f); + } } void AudioSettingsMenu::resize() @@ -170,6 +202,14 @@ void AudioSettingsMenu::resize() _enginevolumeslider->set_location(_enginevolumelabel->right() + padding, _enginevolumelabel->top()); _enginevolumeslider->set_size(_frame->width() - _enginevolumelabel->right() - 2.0f * padding, _enginevolumelabel->height()); + // options label + _optionslabel->set_location(padding, _enginevolumelabel->bottom() + margin); + _optionslabel->set_size(ui::UI::elementsize.width(), _optionslabel->font()->height() + margin); + + // doppler effect checkbox + _dopplercheckbox->set_location(_optionslabel->right() + padding, _optionslabel->top()); + _dopplercheckbox->set_size(_enginevolumeslider->width(), _optionslabel->height()); + // resize apply button _applybutton->set_size(ui::UI::elementsize); _applybutton->set_location( -- cgit v1.2.3