Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
textslider.qc
Go to the documentation of this file.
1#include "textslider.qh"
2
3entity makeXonoticTextSlider_T(string theCvar, string theTooltip)
4{
6 me.configureXonoticTextSlider(me, theCvar, theTooltip);
7 return me;
8}
10{
11 return makeXonoticTextSlider_T(theCvar, string_null);
12}
13void XonoticTextSlider_configureXonoticTextSlider(entity me, string theCvar, string theTooltip)
14{
15 me.configureSliderVisuals(me, me.fontSize, me.align, me.valueSpace, me.image);
16 me.controlledCvar = (theCvar) ? theCvar : string_null;
17 // me.loadCvars(me); // don't load it yet
18 setZonedTooltip(me, theTooltip, theCvar);
19}
20void XonoticTextSlider_setValue(entity me, float val, bool allowAnim)
21{
22 if(val != me.value)
23 {
24 SUPER(XonoticTextSlider).setValue(me, val, allowAnim);
25 me.saveCvars(me);
26 }
27}
29{
30 me.valueSpace = val;
31 me.configureSliderVisuals(me, me.fontSize, me.align, me.valueSpace, me.image);
32}
34{
35 if (!me.controlledCvar)
36 return;
37
38 float n = tokenize_console(me.controlledCvar);
39 string s = cvar_string(argv(0));
40 float i;
41 for(i = 1; i < n; ++i)
42 s = strcat(s, " ", cvar_string(argv(i)));
43 me.setValueFromIdentifier(me, s, false);
44 if(me.value < 0 && n > 1)
45 {
46 // if it failed: check if all cvars have the same value
47 // if yes, try its value as 1-word identifier
48 for(i = 1; i < n; ++i)
49 if(cvar_string(argv(i)) != cvar_string(argv(i-1)))
50 break;
51 if(i >= n)
52 me.setValueFromIdentifier(me, cvar_string(argv(0)), false);
53 }
54}
56{
57 if (!me.controlledCvar)
58 return;
59
60 if(me.value >= 0 && me.value < me.nValues)
61 {
62 float n = tokenize_console(me.controlledCvar);
63 if(n == 1)
64 {
65 // this is a special case to allow spaces in the identifiers
66 cvar_set(argv(0), me.getIdentifier(me));
67 CheckSendCvars(me, argv(0));
68 }
69 else
70 {
71 float i;
72 float m = tokenize_console(strcat(me.controlledCvar, " ", me.getIdentifier(me)));
73 if(m == n + 1)
74 {
75 for(i = 0; i < n; ++i)
76 {
77 cvar_set(argv(i), argv(n));
78 CheckSendCvars(me, argv(i));
79 }
80 }
81 else if(m == n * 2)
82 {
83 for(i = 0; i < n; ++i)
84 {
85 cvar_set(argv(i), argv(i + n));
86 CheckSendCvars(me, argv(i));
87 }
88 }
89 else
90 error("XonoticTextSlider: invalid identifier ", me.getIdentifier(me), " does not match cvar list ", me.controlledCvar);
91 }
92 }
93}
95{
96 me.configureTextSliderValues(me, string_null);
97 me.loadCvars(me);
98}
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
#define tokenize_console
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)
const string cvar_string(string name)
string argv(float n)
string string_null
Definition nil.qh:9
strcat(_("^F4Countdown stopped!"), "\n^BG", _("Teams are too unbalanced."))
#define NEW(cname,...)
Definition oo.qh:117
#define SUPER(cname)
Definition oo.qh:231
#define error
Definition pre.qh:6
void XonoticTextSlider_setValue(entity me, float val, bool allowAnim)
Definition textslider.qc:20
void XonoticTextSlider_setValueSpace(entity me, float val)
Definition textslider.qc:28
void XonoticTextSlider_configureXonoticTextSlider(entity me, string theCvar, string theTooltip)
Definition textslider.qc:13
entity makeXonoticTextSlider(string theCvar)
Definition textslider.qc:9
entity makeXonoticTextSlider_T(string theCvar, string theTooltip)
Definition textslider.qc:3
void XonoticTextSlider_loadCvars(entity me)
Definition textslider.qc:33
void XonoticTextSlider_configureXonoticTextSliderValues(entity me)
Definition textslider.qc:94
void XonoticTextSlider_saveCvars(entity me)
Definition textslider.qc:55