Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
dialog_settings_effects.qc File Reference
#include "dialog_settings_effects.qh"
#include "slider_picmip.qh"
#include "slider_sbfadetime.qh"
#include "weaponslist.qh"
#include "keybinder.qh"
#include "commandbutton.qh"
#include "textlabel.qh"
#include "checkbox.qh"
#include "textslider.qh"
#include "mixedslider.qh"
#include "slider.qh"
#include "radiobutton.qh"
#include "checkbox_slider_invalid.qh"
Include dependency graph for dialog_settings_effects.qc:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

entity makeXonoticEffectsSettingsTab ()
float someShadowCvarIsEnabled (entity box)
void XonoticEffectsSettingsTab_fill (entity me)

Function Documentation

◆ makeXonoticEffectsSettingsTab()

entity makeXonoticEffectsSettingsTab ( )

Definition at line 16 of file dialog_settings_effects.qc.

17{
18 entity me;
20 me.configureDialog(me);
21 return me;
22}
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
#define NEW(cname,...)
Definition oo.qh:117

References entity(), and NEW.

Referenced by XonoticSettingsDialog_fill().

◆ someShadowCvarIsEnabled()

float someShadowCvarIsEnabled ( entity box)

Definition at line 24 of file dialog_settings_effects.qc.

25{
26 if(cvar("r_shadow_realtime_dlight"))
27 if(cvar("r_shadow_realtime_dlight_shadows"))
28 return true;
29 if(cvar("r_shadow_realtime_world"))
30 if(cvar("r_shadow_realtime_world_shadows"))
31 return true;
32 return false;
33}
float cvar(string name)

References cvar(), and entity().

Referenced by XonoticEffectsSettingsTab_fill().

◆ XonoticEffectsSettingsTab_fill()

void XonoticEffectsSettingsTab_fill ( entity me)

Definition at line 35 of file dialog_settings_effects.qc.

36{
37 entity e, s;
38 entity effectsApplyButton = makeXonoticCommandButton(_("Apply immediately"), '0 0 0', "vid_restart", COMMANDBUTTON_APPLY);
39 effectsApplyButton.disableOnClick = true;
40 float n;
41 me.TR(me);
42 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Quality preset:")));
43 n = 5;
44 me.TD(me, 1, 5 / n, e = makeXonoticCommandButton(ZCTX(_("PRE^Low")), '0 0 0', "exec effects-low.cfg", 0));
45 e.applyButton = effectsApplyButton;
46 me.TD(me, 1, 5 / n, e = makeXonoticCommandButton(ZCTX(_("PRE^Medium")), '0 0 0', "exec effects-med.cfg", 0));
47 e.applyButton = effectsApplyButton;
48 me.TD(me, 1, 5 / n, e = makeXonoticCommandButton(ZCTX(_("PRE^Normal")), '0 0 0', "exec effects-normal.cfg", 0));
49 e.applyButton = effectsApplyButton;
50 me.TD(me, 1, 5 / n, e = makeXonoticCommandButton(ZCTX(_("PRE^High")), '0 0 0', "exec effects-high.cfg", 0));
51 e.applyButton = effectsApplyButton;
52 me.TD(me, 1, 5 / n, e = makeXonoticCommandButton(ZCTX(_("PRE^Ultra")), '0 0 0', "exec effects-ultra.cfg", 0));
53 e.applyButton = effectsApplyButton;
54
55 me.gotoRC(me, 1.25, 0);
56 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Geometry detail:")));
57 me.TD(me, 1, 2, e = makeXonoticMixedSlider_T("r_subdivisions_tolerance",
58 _("Change the smoothness of the curves on the map")));
59 e.addText(e, ZCTX(_("DET^Lowest")), 16);
60 e.addText(e, ZCTX(_("DET^Low")), 8);
61 e.addText(e, ZCTX(_("DET^Normal")), 4);
62 e.addText(e, ZCTX(_("DET^Good")), 3);
63 e.addText(e, ZCTX(_("DET^Best")), 2);
64 e.addText(e, ZCTX(_("DET^Insane")), 1);
65 e.configureXonoticMixedSliderValues(e);
66 e.applyButton = effectsApplyButton;
67 me.TR(me);
68 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Player detail:")));
69 me.TD(me, 1, 2, e = makeXonoticMixedSlider("cl_playerdetailreduction"));
70 e.addText(e, ZCTX(_("PDET^Low")), 4);
71 e.addText(e, ZCTX(_("PDET^Medium")), 3);
72 e.addText(e, ZCTX(_("PDET^Normal")), 2);
73 e.addText(e, ZCTX(_("PDET^Good")), 1);
74 e.addText(e, ZCTX(_("PDET^Best")), 0);
75 e.configureXonoticMixedSliderValues(e);
76 e.applyButton = effectsApplyButton;
77 me.TR(me);
78 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Texture resolution:")));
79 setDependent(e, "r_showsurfaces", 0, 0);
80 me.TD(me, 1, 2, e = makeXonoticPicmipSlider());
81 e.addText(e, ZCTX(_("RES^Lowest")), 1337);
82 e.addText(e, ZCTX(_("RES^Very low")), 2);
83 e.addText(e, ZCTX(_("RES^Low")), 1);
84 e.addText(e, ZCTX(_("RES^Normal")), 0);
85 e.addText(e, ZCTX(_("RES^Good")), -1);
86 e.addText(e, ZCTX(_("RES^Best")), -2);
87 e.configureXonoticMixedSliderValues(e);
88 setDependent(e, "r_showsurfaces", 0, 0);
89 e.applyButton = effectsApplyButton;
90 bool can_dds = GL_Have_TextureCompression();
91 me.TR(me);
92 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Texture compression:")));
93 if (can_dds)
94 setDependent(e, "r_showsurfaces", 0, 0);
95 else
96 e.disabled = true;
97 me.TD(me, 1, 2, e = makeXonoticMixedSlider("gl_texturecompression"));
98 e.addText(e, ZCTX(_("TCOMP^Fast")), 1);
99 e.addText(e, ZCTX(_("TCOMP^Good")), 2);
100 e.addText(e, ZCTX(_("TCOMP^None")), 0);
101 e.configureXonoticMixedSliderValues(e);
102 if (can_dds)
103 setDependent(e, "r_showsurfaces", 0, 0);
104 else
105 e.disabled = true;
106 e.applyButton = effectsApplyButton;
107 me.TR(me);
108 me.TDempty(me, 0.2);
109 me.TD(me, 1, 1, e = makeXonoticCheckBoxEx_T(1, 0, "r_sky", _("Show sky"), _("Disable sky for performance and visibility")));
110 me.TR(me);
111 me.TD(me, 1, 1, e = makeXonoticCheckBox_T(1, "mod_q3bsp_nolightmaps", _("Use lightmaps"),
112 _("Use high resolution lightmaps, which will look pretty but use up some extra video memory")));
113 e.applyButton = effectsApplyButton;
114 me.TD(me, 1, 1, e = makeXonoticCheckBox_T(0, "r_glsl_deluxemapping", _("Deluxe mapping"),
115 _("Use per-pixel lighting effects")));
116 setDependent(e, "mod_q3bsp_nolightmaps", 0, 0);
117 if(cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
118 setDependentAND(e, "vid_gl20", 1, 1);
119 me.TD(me, 1, 1, e = makeXonoticCheckBox_T(0, "r_shadow_gloss", _("Gloss"),
120 _("Enable the use of glossmaps on textures supporting it")));
121 setDependent(e, "mod_q3bsp_nolightmaps", 0, 0);
122 setDependentAND(e, "r_glsl_deluxemapping", 1, 1);
123 if(cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
124 setDependentAND(e, "vid_gl20", 1, 1);
125 me.TR(me);
126 me.TD(me, 1, 1, e = makeXonoticCheckBox_T(0, "r_glsl_offsetmapping", _("Offset mapping"),
127 _("Offset mapping effect that will make textures with bumpmaps appear like they \"pop out\" of the flat 2D surface")));
128 if(cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
129 setDependent(e, "vid_gl20", 1, 1);
130 me.TD(me, 1, 1, e = makeXonoticCheckBox_T(0, "r_glsl_offsetmapping_reliefmapping", _("Relief mapping"),
131 _("Higher quality offset mapping, which also has a huge impact on performance")));
132 setDependent(e, "r_glsl_offsetmapping", 1, 1);
133 if(cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
134 setDependentAND(e, "vid_gl20", 1, 1);
135 me.TR(me);
136 me.TD(me, 1, 1, e = makeXonoticCheckBox_T(0, "r_water", _("Reflections:"),
137 _("Reflection and refraction quality, has a huge impact on performance on maps with reflecting surfaces")));
138 if(cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
139 setDependent(e, "vid_gl20", 1, 1);
140 me.TD(me, 1, 2, e = makeXonoticMixedSlider_T("r_water_resolutionmultiplier",
141 _("Resolution of reflections/refractions")));
142 e.addText(e, _("Blurred"), 0.25);
143 e.addText(e, ZCTX(_("REFL^Good")), 0.5);
144 e.addText(e, _("Sharp"), 1);
145 e.configureXonoticMixedSliderValues(e);
146 setDependent(e, "r_water", 1, 1);
147 if(cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
148 setDependentAND(e, "vid_gl20", 1, 1);
149 me.TR(me);
150 me.TD(me, 1, 1, e = makeXonoticCheckBox_T(0, "cl_decals", _("Decals"),
151 _("Enable decals (bullet holes and blood)")));
152 me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "cl_decals_models", _("Decals on models")));
153 setDependent(e, "cl_decals", 1, 1);
154 me.TR(me);
155 me.TDempty(me, 0.2);
156 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Distance:")));
157 setDependentNOT(e, "cl_decals_fadetime", 0);
158 setDependentAND(e, "cl_decals", 1, 1);
159 me.TD(me, 1, 2, e = makeXonoticSlider_T(200, 500, 20, "r_drawdecals_drawdistance",
160 _("Decals further away than this will not be drawn")));
161 e.formatString = _("%s qu");
162 setDependentNOT(e, "cl_decals_fadetime", 0);
163 setDependentAND(e, "cl_decals", 1, 1);
164 me.TR(me);
165 me.TDempty(me, 0.2);
166 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Fade time:")));
167 setDependent(e, "cl_decals", 1, 1);
168 me.TD(me, 1, 2, e = makeXonoticSlider_T(1, 20, 1, "cl_decals_fadetime",
169 _("Time in seconds before decals fade away")));
170 e.formatString = "s";
171 setDependent(e, "cl_decals", 1, 1);
172 me.TR(me);
173 me.TDempty(me, 0.2);
174 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Damage effects:")));
175 me.TD(me, 1, 2, e = makeXonoticMixedSlider("cl_damageeffect"));
176 e.addText(e, ZCTX(_("DMGFX^Disabled")), 0);
177 e.addText(e, _("Skeletal"), 1);
178 e.addText(e, ZCTX(_("DMGFX^All")), 2);
179 e.configureXonoticMixedSliderValues(e);
180
181 me.gotoRC(me, 1.25, 3.2); me.setFirstColumn(me, me.currentColumn);
182 me.TD(me, 1, 2, e = makeXonoticCheckBox_T(0, "r_shadow_realtime_dlight", _("Realtime dynamic lights"),
183 _("Temporary realtime light sources such as explosions, rockets and powerups")));
184 makeMulti(e, "!gl_flashblend");
185 me.TD(me, 1, 1, e = makeXonoticCheckBox_T(0, "r_shadow_realtime_dlight_shadows", _("Shadows"),
186 _("Shadows cast by realtime dynamic lights")));
187 setDependent(e, "r_shadow_realtime_dlight", 1, 1);
188 me.TR(me);
189 me.TD(me, 1, 2, e = makeXonoticCheckBox_T(0, "r_shadow_realtime_world", _("Realtime world lights"),
190 _("Realtime light sources included in certain maps. May have a big impact on performance.")));
191 me.TD(me, 1, 1, e = makeXonoticCheckBox_T(0, "r_shadow_realtime_world_shadows", _("Shadows"),
192 _("Shadows cast by realtime world lights")));
193 setDependent(e, "r_shadow_realtime_world", 1, 1);
194 me.TR(me);
195 me.TDempty(me, 0.2);
196 me.TD(me, 1, 1.8, e = makeXonoticCheckBox_T(0, "r_shadow_usenormalmap", _("Use normal maps"),
197 _("Directional shading of certain textures to simulate interaction of realtime light with a bumpy surface")));
198 setDependent(e, "r_shadow_realtime_dlight", 1, 1);
199 setDependentOR(e, "r_shadow_realtime_world", 1, 1);
200 me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "r_shadow_shadowmapping", _("Soft shadows")));
202 me.TR(me);
203 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Corona brightness:")));
204 me.TD(me, 1, 2, e = makeXonoticSlider_T(0, 1.5, 0.1, "r_coronas",
205 _("Flare effects around certain lights")));
206 me.TR(me);
207 me.TDempty(me, 0.2);
208 me.TD(me, 1, 2.8, e = makeXonoticCheckBox_T(0, "r_coronas_occlusionquery", _("Fade coronas according to visibility"),
209 _("Corona fading using occlusion queries")));
210 setDependentNOT(e, "r_coronas", 0);
211 me.TR(me);
212 me.TR(me);
213 me.TD(me, 1, 1, e = makeXonoticCheckBox_T(0, "r_bloom", _("Bloom"),
214 _("Enable bloom effect, which brightens the neighboring pixels of very bright pixels. Has a big impact on performance.")));
215 me.TD(me, 1, 2, e = makeXonoticCheckBoxEx_T(0.5, 0, "hud_postprocessing_maxbluralpha", _("Extra postprocessing effects"),
216 _("Enables special postprocessing effects for when damaged or under water or using a powerup")));
217 makeMulti(e, "hud_powerup");
218 if(cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
219 setDependent(e, "vid_gl20", 1, 1);
220 me.TR(me);
221 s = makeXonoticSlider_T(0.1, 1, 0.1, "r_motionblur",
222 _("Motion blur strength - 0.4 recommended"));
223 me.TD(me, 1, 1, e = makeXonoticSliderCheckBox(0, 1, s, _("Motion blur:")));
224 e.applyButton = effectsApplyButton;
225 if(s.value != e.savedValue)
226 e.savedValue = 0.4; // default
227 me.TD(me, 1, 2, s);
228 me.TR(me);
229 me.TR(me);
230 me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "cl_particles", _("Particles")));
231 me.TD(me, 1, 2, e = makeXonoticCheckBox_T(0, "cl_spawn_point_particles", _("Spawnpoint effects"),
232 _("Particle effects at all spawn points and whenever a player spawns")));
233 makeMulti(e, "cl_spawn_event_particles");
234 setDependent(e, "cl_particles", 1, 1);
235 me.TR(me);
236 me.TDempty(me, 0.2);
237 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Quality:")));
238 setDependent(e, "cl_particles", 1, 1);
239 me.TD(me, 1, 2, e = makeXonoticSlider_T(0, 3.0, 0.25, "cl_particles_quality",
240 _("Multiplier for amount of particles. Less means less particles, which in turn gives for better performance")));
241 e.formatString = _("%sx");
242 setDependent(e, "cl_particles", 1, 1);
243 me.TR(me);
244 me.TDempty(me, 0.2);
245 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Distance:")));
246 setDependent(e, "cl_particles", 1, 1);
247 me.TD(me, 1, 2, e = makeXonoticSlider_T(200, 3000, 200, "r_drawparticles_drawdistance",
248 _("Particles further away than this will not be drawn")));
249 e.formatString = _("%s qu");
250 setDependent(e, "cl_particles", 1, 1);
251
252 me.gotoRC(me, me.rows - 1, 0);
253 me.TD(me, 1, me.columns, effectsApplyButton);
254}
entity makeXonoticSliderCheckBox(float theOffValue, float isInverted, entity theControlledSlider, string theText)
entity makeXonoticCommandButton(string theText, vector theColor, string theCommand, int theFlags)
#define COMMANDBUTTON_APPLY
float CVAR_TYPEFLAG_ENGINE
float someShadowCvarIsEnabled(entity box)
#define ZCTX(s)
Definition i18n.qh:68
void setDependentWeird(entity e, float(entity) func)
Definition util.qc:249
bool GL_Have_TextureCompression()
Definition util.qc:20
void setDependentAND(entity e, string theCvarName, float theCvarMin, float theCvarMax)
Definition util.qc:213
void setDependentOR(entity e, string theCvarName, float theCvarMin, float theCvarMax)
Definition util.qc:231
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
entity makeXonoticPicmipSlider()
entity makeXonoticTextLabel(float theAlign, string theText)
Definition textlabel.qc:3
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
entity makeXonoticMixedSlider(string theCvar)
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

References COMMANDBUTTON_APPLY, CVAR_TYPEFLAG_ENGINE, entity(), GL_Have_TextureCompression(), makeMulti(), makeXonoticCheckBox(), makeXonoticCheckBox_T(), makeXonoticCheckBoxEx_T(), makeXonoticCommandButton(), makeXonoticMixedSlider(), makeXonoticMixedSlider_T(), makeXonoticPicmipSlider(), makeXonoticSlider_T(), makeXonoticSliderCheckBox(), makeXonoticTextLabel(), setDependent(), setDependentAND(), setDependentNOT(), setDependentOR(), setDependentWeird(), someShadowCvarIsEnabled(), and ZCTX.