]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/menu/xonotic/slider_particles.qc
Header police
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / slider_particles.qc
1 #include "slider_particles.qh"
2 #ifndef SLIDER_PARTICLES_H
3 #define SLIDER_PARTICLES_H
4 #include "textslider.qc"
5 CLASS(XonoticParticlesSlider, XonoticTextSlider)
6         METHOD(XonoticParticlesSlider, configureXonoticParticlesSlider, void(entity));
7         METHOD(XonoticParticlesSlider, loadCvars, void(entity));
8         METHOD(XonoticParticlesSlider, saveCvars, void(entity));
9 ENDCLASS(XonoticParticlesSlider)
10 entity makeXonoticParticlesSlider();
11 #endif
12
13 #ifdef IMPLEMENTATION
14 entity makeXonoticParticlesSlider()
15 {
16         entity me;
17         me = NEW(XonoticParticlesSlider);
18         me.configureXonoticParticlesSlider(me);
19         return me;
20 }
21 void XonoticParticlesSlider_configureXonoticParticlesSlider(entity me)
22 {
23         me.configureXonoticTextSlider(me, "cl_particles_quality",
24                 _("Multiplier for amount of particles. Less means less particles, which in turn gives for better performance (default: 1)"));
25         if(cvar("developer")) { me.addValue(me, ZCTX(_("PART^OMG")),      "0.4 250 0"); }
26         me.addValue(me,                         ZCTX(_("PART^Low")),      "0.4 500 0");
27         me.addValue(me,                         ZCTX(_("PART^Medium")),   "0.8 750 0");
28         me.addValue(me,                         ZCTX(_("PART^Normal")),   "1.0 1000 1");
29         me.addValue(me,                         ZCTX(_("PART^High")),     "1.0 1500 1");
30         me.addValue(me,                         ZCTX(_("PART^Ultra")),    "1.0 2000 2");
31         if(cvar("developer")) { me.addValue(me, ZCTX(_("PART^Ultimate")), "1.0 3000 2"); }
32         me.configureXonoticTextSliderValues(me);
33 }
34 void XonoticParticlesSlider_loadCvars(entity me)
35 {
36         me.setValueFromIdentifier_noAnim(me, sprintf("%s %s %s",
37                 cvar_string("cl_particles_quality"),
38                 cvar_string("r_drawparticles_drawdistance"),
39                 cvar_string("cl_damageeffect")
40         ));
41 }
42 void XonoticParticlesSlider_saveCvars(entity me)
43 {
44         if(me.value >= 0 || me.value < me.nValues)
45         {
46                 tokenize_console(me.getIdentifier(me));
47                 cvar_set("cl_particles_quality", argv(0));
48                 cvar_set("r_drawparticles_drawdistance", argv(1));
49                 cvar_set("cl_damageeffect", argv(2));
50         }
51 }
52 #endif