From: otta8634 <k9wolf@pm.me>
Date: Tue, 11 Mar 2025 06:58:24 +0000 (+0800)
Subject: Improve m_accelerate options in the menu
X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=refs%2Fheads%2Fk9er%2Fimprove-non-hud-menus;p=xonotic%2Fxonotic-data.pk3dir.git

Improve m_accelerate options in the menu

Fixed the m_accelerate checkbox by turning it into a slider, similar to !772.
Added m_accelerate_minspeed and m_accelerate_maxspeed sliders.
Improved some padding.
Also relocated one of the options in Settings > Input.
Fixes #2224.
---

diff --git a/qcsrc/menu/xonotic/dialog_settings_input.qc b/qcsrc/menu/xonotic/dialog_settings_input.qc
index fb080ccf5..8539fc743 100644
--- a/qcsrc/menu/xonotic/dialog_settings_input.qc
+++ b/qcsrc/menu/xonotic/dialog_settings_input.qc
@@ -110,26 +110,44 @@ void XonoticInputSettingsTab_fill(entity me)
 	me.TR(me);
 		me.TD(me, 1, 3, e = makeXonoticCheckBox_T(1.022, "m_pitch", _("Invert aiming"),
 			_("Invert mouse movement on the Y-axis")));
+
+	string m_accelerate_tooltip = _("In-game linear acceleration factor. \"Fully disabled\" also disables other acceleration types that can be enabled via the m_accelerate_* cvars");
 	me.TR(me);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "menu_mouse_absolute", _("Use system mouse positioning"), "-"));
-			makeMulti(e, "hud_cursormode");
-			e.onClick = CheckBox_Click_Redisplay;
-			e.onClickEntity = e;
+		me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Acceleration factor:")));
+		me.TD(me, 1, 2, e = makeXonoticMixedSlider_T("m_accelerate", m_accelerate_tooltip));
+			e.addText(e, ZCTX(_("MOUSEACCEL^Fully disabled")), 0);
+			e.addText(e, ZCTX(_("MOUSEACCEL^Linear disabled")), 1);
+			e.addRange(e, 1.2, 4, 0.2);
+			e.configureXonoticMixedSliderValues(e);
 	me.TR(me);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "m_accelerate", _("Enable built in mouse acceleration")));
+		me.TDempty(me, 0.2);
+		me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Speed bounds:")));
+			setDependent(e, "m_accelerate", 1, 0);
+		me.TD(me, 1, 1, e = makeXonoticSlider_T(0, 10000, 500, "m_accelerate_minspeed",
+			m_accelerate_tooltip));
+			setDependent(e, "m_accelerate", 1, 0);
+		me.TD(me, 1, 1, e = makeXonoticSlider_T(5000, 20000, 1000, "m_accelerate_maxspeed",
+			m_accelerate_tooltip));
+			setDependent(e, "m_accelerate", 1, 0);
 	me.TR(me);
+		me.TDempty(me, 0.2);
 		if(cvar_type("vid_dgamouse") & CVAR_TYPEFLAG_ENGINE)
 		{
-			me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "vid_dgamouse", _("Disable system mouse acceleration"),
+			me.TD(me, 1, 2.8, e = makeXonoticCheckBox_T(0, "vid_dgamouse", _("Disable system mouse acceleration"),
 				_("Make use of DGA mouse input")));
 		}
 		else if(cvar_type("apple_mouse_noaccel") & CVAR_TYPEFLAG_ENGINE)
-			me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "apple_mouse_noaccel", _("Disable system mouse acceleration")));
+			me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "apple_mouse_noaccel", _("Disable system mouse acceleration")));
 		else
 		{
-			me.TD(me, 1, 3, e = makeXonoticCheckBox(0, string_null, _("Disable system mouse acceleration")));
+			me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, string_null, _("Disable system mouse acceleration")));
 			e.disabled = 1; // the option is never available in this case, just there for show
 		}
+	me.TR(me);
+		me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "menu_mouse_absolute", _("Use system mouse positioning"), "-"));
+			makeMulti(e, "hud_cursormode");
+			e.onClick = CheckBox_Click_Redisplay;
+			e.onClickEntity = e;
 
 	me.TR(me);
 	me.TR(me);