Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
dialog_settings_input.qc
Go to the documentation of this file.
2
5#include "skinlist.qh"
7#include "../item/checkbox.qh"
8#include "keybinder.qh"
9#include "textlabel.qh"
10#include "button.qh"
11#include "slider.qh"
12#include "mixedslider.qh"
13#include "checkbox.qh"
14#include "inputbox.qh"
15
16void updateSensSlider(entity field, entity slider)
17{
18 if (slider == NULL)
19 return;
20
21 // Avoid onChange causing jittering
22 slider.onChangeEntity = NULL;
23 slider.setValue(slider, stof(field.text), autocvar_menu_animations > 0);
24 slider.onChangeEntity = field;
25}
26
27void updateSensField(entity slider, entity field)
28{
29 if (field == NULL)
30 return;
31
32 if (slider.value)
33 {
34 // Avoid onChange causing jittering
35 field.onChangeEntity = NULL;
36 field.setText(field, ftos_decimals(slider.value, slider.valueDigits));
37 field.onChangeEntity = slider;
38 }
39}
40
41void linkSensitivities(entity slider, entity field)
42{
43 slider.onChange = updateSensField;
44 slider.onChangeEntity = field;
45
46 field.onChange = updateSensSlider;
47 field.onChangeEntity = slider;
48}
49
51{
53 me.configureDialog(me);
54 return me;
55}
56
58{
59 CheckBox_Click(me, checkbox);
60 localcmd("\ndefer 0.2 \"togglemenu 1\"\n");
61 //m_display();
62}
64{
65 entity e;
67
68 me.TR(me);
69 me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Key Bindings")));
70 me.TR(me);
71 me.TD(me, me.rows - 3, 3, kb);
72 me.gotoRC(me, me.rows - 2, 0);
73 me.TD(me, 1, 1, e = makeXonoticButton(_("Change key..."), '0 0 0'));
74 e.onClick = KeyBinder_Bind_Change;
75 e.onClickEntity = kb;
76 kb.keyGrabButton = e;
77 me.TD(me, 1, 1, e = makeXonoticButton(_("Edit..."), '0 0 0'));
78 e.onClick = KeyBinder_Bind_Edit;
79 e.onClickEntity = kb;
80 kb.userbindEditButton = e;
81 kb.userbindEditDialog = main.userbindEditDialog;
82 main.userbindEditDialog.keybindBox = kb;
83 me.TD(me, 1, 1, e = makeXonoticButton(_("Clear"), '0 0 0'));
84 e.onClick = KeyBinder_Bind_Clear;
85 e.onClickEntity = kb;
86 kb.clearButton = e;
87 me.TR(me);
88 me.TD(me, 1, 3, e = makeXonoticButton(_("Reset all"), '0 0 0'));
89 e.onClick = DialogOpenButton_Click;
90 e.onClickEntity = main.bindingsResetDialog;
91
92 me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
93 me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Mouse")));
94 me.TR(me);
95 entity sensitivitySlider;
96 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Sensitivity:")));
97 me.TD(me, 1, 1, e = makeXonoticSlider_T(0.1, 9.9, 0.1, "sensitivity",
98 _("Mouse speed multiplier")));
99 e.setValueSpace(e, 0);
100 sensitivitySlider = e;
101 me.TD(me, 1, 1, e = makeXonoticInputBox_T(0, "sensitivity",
102 _("Mouse speed multiplier")));
103 e.saveImmediately = true;
104 e.allowedCharacters = "0.123456789";
105 linkSensitivities(sensitivitySlider, e);
106 me.TR(me);
107 me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "m_filter", _("Smooth aiming"),
108 _("Smooths the mouse movement, but makes aiming slightly less responsive")));
109 me.TR(me);
110 me.TD(me, 1, 3, e = makeXonoticCheckBox_T(1.022, "m_pitch", _("Invert aiming"),
111 _("Invert mouse movement on the Y-axis")));
112
113 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");
114 me.TR(me);
115 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Acceleration factor:")));
116 me.TD(me, 1, 2, e = makeXonoticMixedSlider_T("m_accelerate", m_accelerate_tooltip));
117 e.setValueSpace(e, e.valueSpace * 1.5);
118 e.addText(e, ZCTX(_("MOUSEACCEL^Fully disabled")), 0);
119 e.addText(e, ZCTX(_("MOUSEACCEL^Linear disabled")), 1);
120 e.addRange(e, 1.2, 4, 0.2);
121 e.configureXonoticMixedSliderValues(e);
122 me.TR(me);
123 me.TDempty(me, 0.2);
124 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Speed bounds:")));
125 setDependent(e, "m_accelerate", 1, 0);
126 me.TD(me, 1, 1, e = makeXonoticSlider_T(0, 10000, 500, "m_accelerate_minspeed",
127 m_accelerate_tooltip));
128 setDependent(e, "m_accelerate", 1, 0);
129 me.TD(me, 1, 1, e = makeXonoticSlider_T(5000, 20000, 1000, "m_accelerate_maxspeed",
130 m_accelerate_tooltip));
131 setDependent(e, "m_accelerate", 1, 0);
132 me.TR(me);
133 me.TDempty(me, 0.2);
134 if(cvar_type("vid_dgamouse") & CVAR_TYPEFLAG_ENGINE)
135 {
136 me.TD(me, 1, 2.8, e = makeXonoticCheckBox_T(0, "vid_dgamouse", _("Disable system mouse acceleration"),
137 _("Make use of DGA mouse input")));
138 }
139 else if(cvar_type("apple_mouse_noaccel") & CVAR_TYPEFLAG_ENGINE)
140 me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "apple_mouse_noaccel", _("Disable system mouse acceleration")));
141 else
142 {
143 me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, string_null, _("Disable system mouse acceleration")));
144 e.disabled = 1; // the option is never available in this case, just there for show
145 }
146 me.TR(me);
147 me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "menu_mouse_absolute", _("Use system mouse positioning"), "-"));
148 makeMulti(e, "hud_cursormode");
149 e.onClick = CheckBox_Click_Redisplay;
150 e.onClickEntity = e;
151
152 me.TR(me);
153 me.TR(me);
154 me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Other")));
155 me.TR(me);
156 me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "con_closeontoggleconsole", _("Pressing \"enter console\" key also closes it"),
157 _("Allow the console toggling bind to also close the console")));
158 me.TR(me);
159 me.TD(me, 1, 3, e = makeXonoticCheckBox(1, "cl_movement_track_canjump", _("Automatically repeat jumping if holding jump")));
160 e.sendCvars = true;
161 me.TR(me);
162 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Jetpack on jump:")));
163 me.TD(me, 1, 2, e = makeXonoticMixedSlider("cl_jetpack_jump"));
164 e.setValueSpace(e, e.valueSpace * 1.25);
165 e.addText(e, ZCTX(_("JPJUMP^Disabled")), 0);
166 e.addText(e, _("Air only"), 1);
167 e.addText(e, ZCTX(_("JPJUMP^All")), 2);
168 e.configureXonoticMixedSliderValues(e);
169 e.sendCvars = true;
170 me.TR(me);
171 if(cvar_type("joy_enable") & CVAR_TYPEFLAG_ENGINE)
172 {
173 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "joy_enable", _("Use joystick input")));
174 setDependentNOT(e, "joy_detected", 0);
175 }
176 else if(cvar_type("joystick") & CVAR_TYPEFLAG_ENGINE)
177 {
178 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "joystick", _("Use joystick input")));
179 setDependentNOT(e, "joy_detected", 0);
180 }
181 else
182 {
183 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, string_null, _("Use joystick input")));
184 e.disabled = 1; // the option is never available in this case, just there for show
185 }
186}
float autocvar_menu_animations
Definition animation.qh:3
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
float CVAR_TYPEFLAG_ENGINE
void linkSensitivities(entity slider, entity field)
void CheckBox_Click_Redisplay(entity me, entity checkbox)
void updateSensSlider(entity field, entity slider)
entity makeXonoticInputSettingsTab()
void updateSensField(entity slider, entity field)
void XonoticInputSettingsTab_fill(entity me)
#define ZCTX(s)
Definition i18n.qh:68
void CheckBox_Click(entity me, entity other)
Definition checkbox.qc:7
void KeyBinder_Bind_Edit(entity btn, entity me)
Definition keybinder.qc:367
void KeyBinder_Bind_Change(entity btn, entity me)
Definition keybinder.qc:258
void KeyBinder_Bind_Clear(entity btn, entity me)
Definition keybinder.qc:388
entity makeXonoticKeyBinder()
Definition keybinder.qc:196
#define main
Definition _all.inc:202
entity makeXonoticButton(string theText, vector theColor)
Definition button.qc:9
void makeMulti(entity e, string otherCvars)
Definition util.qc:92
void setDependentNOT(entity e, string theCvarName, float theCvarValue)
Definition util.qc:192
void setDependent(entity e, string theCvarName, float theCvarMin, float theCvarMax)
Definition util.qc:180
void localcmd(string command,...)
float stof(string val,...)
void DialogOpenButton_Click(entity button, entity tab)
string string_null
Definition nil.qh:9
#define NEW(cname,...)
Definition oo.qh:117
#define NULL
Definition post.qh:14
ERASEABLE string ftos_decimals(float number, int decimals)
converts a number to a string with the indicated number of decimals
Definition string.qh:469
entity makeXonoticTextLabel(float theAlign, string theText)
Definition textlabel.qc:3
entity makeXonoticHeaderLabel(string theText)
Definition textlabel.qc:9
entity makeXonoticCheckBox_T(float isInverted, string theCvar, string theText, string theTooltip)
Definition checkbox.qc:3
entity makeXonoticCheckBox(float isInverted, string theCvar, string theText)
Definition checkbox.qc:28
entity makeXonoticInputBox_T(bool doEditColorCodes, string theCvar, string theTooltip)
Definition inputbox.qc:3
entity makeXonoticMixedSlider(string theCvar)
Definition mixedslider.qc:9
entity makeXonoticMixedSlider_T(string theCvar, string theTooltip)
Definition mixedslider.qc:3
entity makeXonoticSlider_T(float theValueMin, float theValueMax, float theValueStep, string theCvar, string theTooltip)
Definition slider.qc:3