]> de.git.xonotic.org Git - voretournament/voretournament.git/blobdiff - data/qcsrc/menu/voret/slider_decibels.c
Properly fix the decibels slider for music
[voretournament/voretournament.git] / data / qcsrc / menu / voret / slider_decibels.c
index c699588631cd084fa549a36192d5db282841714d..4afd27fffef66d33a37b327e2046bfde75353204 100644 (file)
@@ -29,10 +29,17 @@ void loadCvarsVoretDecibelsSlider(entity me)
        else if(v < 0.0005)\r
                me.value = -1000000;\r
        else\r
-               me.value = 0.1 * floor(0.5 + 10.0 * log10(cvar(me.cvarName)) * 10);\r
+       {\r
+               if(me.cvarName == "menu_bgmvolume")\r
+                       me.value = 0.1 * floor(0.5 + 10.0 * log10(cvar(me.cvarName) * 2) * 10); // due to system settings, overall music volume must be twice as low\r
+               else\r
+                       me.value = 0.1 * floor(0.5 + 10.0 * log10(cvar(me.cvarName)) * 10);\r
+       }\r
 }\r
 void saveCvarsVoretDecibelsSlider(entity me)\r
 {\r
+       float v;\r
+\r
        if not(me.cvarName)\r
                return;\r
 \r
@@ -41,7 +48,12 @@ void saveCvarsVoretDecibelsSlider(entity me)
        if(me.value < -33)\r
                cvar_set(me.cvarName, "0");\r
        else\r
-               cvar_set(me.cvarName, ftos(pow(10, me.value / 10)));\r
+       {\r
+               v = pow(10, me.value / 10);\r
+               if(me.cvarName == "menu_bgmvolume")\r
+                       v = v / 2; // due to system settings, overall music volume must be twice as low\r
+               cvar_set(me.cvarName, ftos(v));\r
+       }\r
 }\r
 \r
 string valueToTextVoretDecibelsSlider(entity me, float v)\r