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));
}
+void _TEST_XonoticDecibelsSlider()
+{
+ float i;
+ for(i = -400; i < 0; ++i)
+ {
+ float db = i * 0.1;
+ float v = fromDecibelOfSquare(db, -40);
+ float dbv = toDecibelOfSquare(v, -40);
+ float d = dbv - db;
+ print(sprintf("%f -> %f -> %f (diff: %f)\n", db, v, dbv, d));
+ TEST_Check(fabs(d) > 0.02);
+ }
+ TEST_OK();
+}
+
#endif