Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
checkbox.qc
Go to the documentation of this file.
1#include "checkbox.qh"
2
3entity makeXonoticCheckBox_T(float isInverted, string theCvar, string theText, string theTooltip)
4{
5 float m, n;
6 if(isInverted > 1)
7 {
8 n = isInverted - 1;
9 m = -n;
10 }
11 else if(isInverted < -1)
12 {
13 n = isInverted + 1;
14 m = -n;
15 }
16 else if(isInverted == 1)
17 {
18 n = 1;
19 m = 0;
20 }
21 else
22 {
23 n = 0;
24 m = 1;
25 }
26 return makeXonoticCheckBoxEx_T(m, n, theCvar, theText, theTooltip);
27}
28entity makeXonoticCheckBox(float isInverted, string theCvar, string theText)
29{
30 return makeXonoticCheckBox_T(isInverted, theCvar, theText, string_null);
31}
32
33entity makeXonoticCheckBoxEx_T(float theYesValue, float theNoValue, string theCvar, string theText, string theTooltip)
34{
36 me.configureXonoticCheckBox(me, theYesValue, theNoValue, theCvar, theText, theTooltip);
37 return me;
38}
39entity makeXonoticCheckBoxEx(float theYesValue, float theNoValue, string theCvar, string theText)
40{
41 return makeXonoticCheckBoxEx_T(theYesValue, theNoValue, theCvar, theText, string_null);
42}
43
44void XonoticCheckBox_configureXonoticCheckBox(entity me, float theYesValue, float theNoValue, string theCvar, string theText, string theTooltip)
45{
46 me.yesValue = theYesValue;
47 me.noValue = theNoValue;
48 me.checked = false;
49 me.controlledCvar = (theCvar) ? theCvar : string_null;
50 me.loadCvars(me);
51 setZonedTooltip(me, theTooltip, theCvar);
52 me.configureCheckBox(me, theText, me.fontSize, me.image);
53}
55{
56 if(val != me.checked)
57 {
58 me.checked = val;
59 me.saveCvars(me);
60 if(me.linkedCheckBox)
61 me.linkedCheckBox.loadCvars(me.linkedCheckBox);
62 }
63}
65{
66 if (!me.controlledCvar)
67 return;
68
69 float m = (me.yesValue + me.noValue) * 0.5;
70 float d = (cvar(me.controlledCvar) - m) / (me.yesValue - m);
71 me.checked = (d > 0);
72}
74{
75 if (!me.controlledCvar)
76 return;
77
78 if(me.checked)
79 cvar_set(me.controlledCvar, ftos_mindecimals(me.yesValue));
80 else
81 cvar_set(me.controlledCvar, ftos_mindecimals(me.noValue));
82
83 CheckSendCvars(me, me.controlledCvar);
84}
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
void CheckSendCvars(entity me, string cvarnamestring)
Definition util.qc:825
void setZonedTooltip(entity e, string theTooltip, string theCvar)
Definition util.qc:257
void cvar_set(string name, string value)
float cvar(string name)
string string_null
Definition nil.qh:9
#define NEW(cname,...)
Definition oo.qh:117
ERASEABLE string ftos_mindecimals(float number)
Converts a number to a string with the minimum number of decimals It assumes that an extreme accuracy...
Definition string.qh:497
entity makeXonoticCheckBox_T(float isInverted, string theCvar, string theText, string theTooltip)
Definition checkbox.qc:3
entity makeXonoticCheckBoxEx_T(float theYesValue, float theNoValue, string theCvar, string theText, string theTooltip)
Definition checkbox.qc:33
entity makeXonoticCheckBox(float isInverted, string theCvar, string theText)
Definition checkbox.qc:28
void XonoticCheckBox_loadCvars(entity me)
Definition checkbox.qc:64
void XonoticCheckBox_configureXonoticCheckBox(entity me, float theYesValue, float theNoValue, string theCvar, string theText, string theTooltip)
Definition checkbox.qc:44
void XonoticCheckBox_saveCvars(entity me)
Definition checkbox.qc:73
void XonoticCheckBox_setChecked(entity me, bool val)
Definition checkbox.qc:54
entity makeXonoticCheckBoxEx(float theYesValue, float theNoValue, string theCvar, string theText)
Definition checkbox.qc:39