Xonotic
checkbox.qc
Go to the documentation of this file.
1 #include "checkbox.qh"
2 
3 entity 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 }
28 entity makeXonoticCheckBox(float isInverted, string theCvar, string theText)
29 {
30  return makeXonoticCheckBox_T(isInverted, theCvar, theText, string_null);
31 }
32 
33 entity makeXonoticCheckBoxEx_T(float theYesValue, float theNoValue, string theCvar, string theText, string theTooltip)
34 {
35  entity me;
36  me = NEW(XonoticCheckBox);
37  me.configureXonoticCheckBox(me, theYesValue, theNoValue, theCvar, theText, theTooltip);
38  return me;
39 }
40 entity makeXonoticCheckBoxEx(float theYesValue, float theNoValue, string theCvar, string theText)
41 {
42  return makeXonoticCheckBoxEx_T(theYesValue, theNoValue, theCvar, theText, string_null);
43 }
44 
45 void XonoticCheckBox_configureXonoticCheckBox(entity me, float theYesValue, float theNoValue, string theCvar, string theText, string theTooltip)
46 {
47  me.yesValue = theYesValue;
48  me.noValue = theNoValue;
49  me.checked = 0;
50  me.controlledCvar = (theCvar) ? theCvar : string_null;
51  me.loadCvars(me);
52  setZonedTooltip(me, theTooltip, theCvar);
53  me.configureCheckBox(me, theText, me.fontSize, me.image);
54 }
56 {
57  if(val != me.checked)
58  {
59  me.checked = val;
60  me.saveCvars(me);
61  if(me.linkedCheckBox)
62  me.linkedCheckBox.loadCvars(me.linkedCheckBox);
63  }
64 }
66 {
67  float m, d;
68 
69  if (!me.controlledCvar)
70  return;
71 
72  m = (me.yesValue + me.noValue) * 0.5;
73  d = (cvar(me.controlledCvar) - m) / (me.yesValue - m);
74  me.checked = (d > 0);
75 }
77 {
78  if (!me.controlledCvar)
79  return;
80 
81  if(me.checked)
82  cvar_set(me.controlledCvar, ftos_mindecimals(me.yesValue));
83  else
84  cvar_set(me.controlledCvar, ftos_mindecimals(me.noValue));
85 
86  CheckSendCvars(me, me.controlledCvar);
87 }
string string_null
Definition: nil.qh:9
#define NEW(cname,...)
Definition: oo.qh:105
entity makeXonoticCheckBoxEx(float theYesValue, float theNoValue, string theCvar, string theText)
Definition: checkbox.qc:40
ERASEABLE string ftos_mindecimals(float number)
converts a number to a string with the minimum number of decimals
Definition: string.qh:461
entity() spawn
void XonoticCheckBox_saveCvars(entity me)
Definition: checkbox.qc:76
void XonoticCheckBox_setChecked(entity me, float val)
Definition: checkbox.qc:55
entity makeXonoticCheckBoxEx_T(float theYesValue, float theNoValue, string theCvar, string theText, string theTooltip)
Definition: checkbox.qc:33
entity makeXonoticCheckBox_T(float isInverted, string theCvar, string theText, string theTooltip)
Definition: checkbox.qc:3
void XonoticCheckBox_configureXonoticCheckBox(entity me, float theYesValue, float theNoValue, string theCvar, string theText, string theTooltip)
Definition: checkbox.qc:45
entity makeXonoticCheckBox(float isInverted, string theCvar, string theText)
Definition: checkbox.qc:28
void XonoticCheckBox_loadCvars(entity me)
Definition: checkbox.qc:65