From 2678b5b68e5f455b8c6a7373ed416dacad06978f Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Wed, 19 Jun 2013 13:53:24 +0200 Subject: [PATCH] add a second percent scale, 3 (slider size percent, having nothing to do with real percent) --- defaultXonotic.cfg | 2 +- qcsrc/menu/xonotic/slider_decibels.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg index 31fe29a1a..32ecdccbe 100644 --- a/defaultXonotic.cfg +++ b/defaultXonotic.cfg @@ -1533,7 +1533,7 @@ set snd_soundradius 1200 set snd_softclip 1 set snd_maxchannelvolume 0 set snd_streaming_length 2 -seta menu_snd_sliderscale 0 "0: decibels; 1: linear percent; 2: 0..10 scale" +seta menu_snd_sliderscale 0 "0: decibels; 1: linear percent; 2: 0..10 scale; 3: slider size percent" seta menu_snd_attenuation_method 1 "Use exponential instead of linear falloff for sound attenuation" alias snd_attenuation_method_0 "set menu_snd_attenuation_method 0; set snd_soundradius 1200; set snd_attenuation_exponent 1; set snd_attenuation_decibel 0" // Quake default alias snd_attenuation_method_1 "set menu_snd_attenuation_method 1; set snd_soundradius 2400; set snd_attenuation_exponent 4; set snd_attenuation_decibel 0" // nice approximation for method 2 diff --git a/qcsrc/menu/xonotic/slider_decibels.c b/qcsrc/menu/xonotic/slider_decibels.c index 1e1f3eb75..0ea9d161f 100644 --- a/qcsrc/menu/xonotic/slider_decibels.c +++ b/qcsrc/menu/xonotic/slider_decibels.c @@ -77,10 +77,12 @@ string XonoticDecibelsSlider_valueToText(entity me, float v) return CTX(_("VOL^MAX")); else if(v <= me.valueMin) return CTX(_("VOL^OFF")); + else if(autocvar_menu_snd_sliderscale == 3) // fake percent scale + return sprintf(_("%d %%"), (v - me.valueMin) / (me.valueMax - me.valueMin) * 100); else if(autocvar_menu_snd_sliderscale == 2) // 0..10 scale return sprintf(_("%.1f"), (v - me.valueMin) / (me.valueMax - me.valueMin) * 10); - else if(autocvar_menu_snd_sliderscale == 1) // percent scale - return sprintf(_("%.2f %%"), fromDecibelOfSquare(v, me.valueMin)); + else if(autocvar_menu_snd_sliderscale == 1) // real percent scale + return sprintf(_("%.2f %%"), fromDecibelOfSquare(v, me.valueMin) * 100); else // decibel scale return sprintf(_("%s dB"), ftos_decimals(toDecibelOfSquare(fromDecibelOfSquare(v, me.valueMin), 0), me.valueDigits)); } -- 2.39.2