]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Much menu and graphics tweaking bones_was_here/misc
authorbones_was_here <bones_was_here@xa.org.au>
Thu, 1 Oct 2020 00:49:17 +0000 (10:49 +1000)
committerbones_was_here <bones_was_here@xa.org.au>
Thu, 1 Oct 2020 00:49:17 +0000 (10:49 +1000)
18 files changed:
effects-high.cfg
effects-low.cfg
effects-normal.cfg
effects-omg.cfg
effects-ultimate.cfg
effects-ultra.cfg
qcsrc/common/mutators/mutator/damagetext/ui_damagetext.qc
qcsrc/lib/warpzone/client.qc
qcsrc/menu/xonotic/dialog_settings.qc
qcsrc/menu/xonotic/dialog_settings_audio.qc
qcsrc/menu/xonotic/dialog_settings_effects.qc
qcsrc/menu/xonotic/dialog_settings_game_model.qc
qcsrc/menu/xonotic/dialog_settings_game_weapons.qc
qcsrc/menu/xonotic/dialog_settings_input.qc
qcsrc/menu/xonotic/dialog_settings_misc.qc
qcsrc/menu/xonotic/dialog_settings_user.qc
qcsrc/menu/xonotic/dialog_settings_video.qc
xonotic-client.cfg

index b935b03b1738c3c62d043efe94bfe79ed09319cb..6a268dc9646b8cd0869c1f5dd4a37d5b0f392578 100644 (file)
@@ -5,7 +5,7 @@ cl_particles 1
 cl_particles_quality 1.0
 cl_damageeffect 1
 cl_spawn_point_particles 1
-cl_playerdetailreduction 4
+cl_playerdetailreduction 1
 gl_flashblend 0
 gl_picmip -1
 gl_texturecompression_2d 0
@@ -32,7 +32,7 @@ r_shadow_shadowmapping 0
 r_shadow_usenormalmap 1
 r_showsurfaces 0
 r_sky 1
-r_subdivisions_tolerance 3
+r_subdivisions_tolerance 1
 r_texture_dds_load 1
 r_water 1
 r_water_resolutionmultiplier 0.25
index 7c9921a32bfd17415af5327764facb5641c89290..49152bf39e72acd6304bf6f94ec05003c0bf31ca 100644 (file)
@@ -5,7 +5,7 @@ cl_particles 1
 cl_particles_quality 0.4
 cl_damageeffect 0
 cl_spawn_point_particles 0
-cl_playerdetailreduction 4
+cl_playerdetailreduction 8
 gl_flashblend 1
 gl_picmip 1
 gl_texturecompression_2d 1
index c519617f68b3dc0550991fd8dcd8ed5e534ef65c..259acbb831ffad24b9edc7006a66a312c521fca0 100644 (file)
@@ -5,7 +5,7 @@ cl_particles 1
 cl_particles_quality 1.0
 cl_damageeffect 1
 cl_spawn_point_particles 1
-cl_playerdetailreduction 4
+cl_playerdetailreduction 2
 gl_flashblend 0
 gl_picmip 0
 gl_texturecompression_2d 0
@@ -32,7 +32,7 @@ r_shadow_shadowmapping 0
 r_shadow_usenormalmap 1
 r_showsurfaces 0
 r_sky 1
-r_subdivisions_tolerance 3
+r_subdivisions_tolerance 2
 r_texture_dds_load 1
 r_water 0
 r_water_resolutionmultiplier 0.25
index 7b05a1eaad79a6b773df475300a2d901bb1d25e0..c60e23b61cada65676cdbd7d456c670a717ee28b 100644 (file)
@@ -5,7 +5,7 @@ cl_particles 1
 cl_particles_quality 0.4
 cl_damageeffect 0
 cl_spawn_point_particles 0
-cl_playerdetailreduction 4
+cl_playerdetailreduction 1337
 gl_flashblend 1
 gl_picmip 1337
 gl_texturecompression_2d 1
@@ -32,7 +32,7 @@ r_shadow_shadowmapping 0
 r_shadow_usenormalmap 0
 r_showsurfaces 3
 r_sky 0
-r_subdivisions_tolerance 16
+r_subdivisions_tolerance 1337
 r_texture_dds_load 1
 r_water 0
 r_water_resolutionmultiplier 0.25
index ea5989c34f5b8d38abfe908239be4068eadc92a4..b170c888e24840b264e3d61558d9a729c76446d1 100644 (file)
@@ -32,7 +32,7 @@ r_shadow_shadowmapping 1
 r_shadow_usenormalmap 1
 r_showsurfaces 0
 r_sky 1
-r_subdivisions_tolerance 1
+r_subdivisions_tolerance 0.01
 r_texture_dds_load 0
 r_water 1
 r_water_resolutionmultiplier 1
index 58bd10f92c9349efb72e41a7a2e44b241cc78d97..dadb99d772eb8ea455536d27205e4142354314c0 100644 (file)
@@ -32,7 +32,7 @@ r_shadow_shadowmapping 1
 r_shadow_usenormalmap 1
 r_showsurfaces 0
 r_sky 1
-r_subdivisions_tolerance 2
+r_subdivisions_tolerance 0.1
 r_texture_dds_load 0
 r_water 1
 r_water_resolutionmultiplier 0.5
index 1a00d15462c80b1aa2b0d0b798a82cc7e6518765..1bbb62fb99221bf5b7dc143568bd1bb07e1f5888 100644 (file)
@@ -5,7 +5,8 @@
 
 CLASS(XonoticDamageTextSettings, XonoticTab)
     REGISTER_SETTINGS(damagetext, NEW(XonoticDamageTextSettings));
-    ATTRIB(XonoticDamageTextSettings, title, string, _("Damage text"));
+    ATTRIB(XonoticDamageTextSettings, title, string, _("Damage"));
+    ATTRIB(XonoticDamageTextSettings, titleTooltip, string, _("Adjust damage numbers, effects, gibs and harsh language"));
     ATTRIB(XonoticDamageTextSettings, intendedWidth, float, 0.9);
     ATTRIB(XonoticDamageTextSettings, rows, float, 15.5);
     ATTRIB(XonoticDamageTextSettings, columns, float, 5);
@@ -35,5 +36,55 @@ CLASS(XonoticDamageTextSettings, XonoticTab)
         this.TR(this);
             this.TD(this, 1, 3, e = makeXonoticCheckBox(0, "cl_damagetext_friendlyfire", _("Draw damage numbers for friendly fire")));
                 setDependent(e, "cl_damagetext", 1, 1);
+
+       this.TR(this);
+       this.TR(this);
+               this.TD(this, 1, 1, e = makeXonoticTextLabel(0, _("Damage to models:")));
+               this.TD(this, 1, 2, e = makeXonoticTextSlider("cl_damageeffect"));
+                       e.addValue(e, ZCTX(_("DMGFX^Disabled")), "0");
+                       e.addValue(e, _("Skeletal"), "1");
+                       e.addValue(e, ZCTX(_("DMGFX^All")), "2");
+                       e.configureXonoticTextSliderValues(e);
+       this.TR(this);
+       this.TR(this);
+               this.TD(this, 1, 3, e = makeXonoticCheckBox_T(0, "cl_gentle", _("Disable all gibs, blood and harsh language"),
+                       _("Replace blood and gibs with content that does not have any gore effects")));
+                       e.sendCvars = true;
+       this.TR(this);
+               this.TD(this, 1, 3, e = makeXonoticCheckBox_T(0, "cl_gentle_messages", _("Disable harsh language in centreprints and frag messages"),
+                       _("Replace blood and gibs with content that does not have any gore effects")));
+                       e.sendCvars = true;
+                       setDependent(e, "cl_gentle", 0, 0);
+       this.TR(this);
+               this.TD(this, 1, 1, e = makeXonoticTextLabel(0, _("Blood effect:")));
+                       setDependent(e, "cl_gentle", 0, 0);
+               this.TD(this, 1, 2, e = makeXonoticTextSlider("cl_gentle_damage"));
+                       e.addValue(e, _("Blood"), "0");
+                       e.addValue(e, _("White flash"), "1");
+                       e.addValue(e, _("Colorful flash"), "2");
+                       e.configureXonoticTextSliderValues(e);
+                       e.sendCvars = true;
+                       setDependent(e, "cl_gentle", 0, 0);
+       this.TR(this);
+               this.TD(this, 1, 1, e = makeXonoticTextLabel(0, _("Gib effect:")));
+                       setDependent(e, "cl_gentle", 0, 0);
+               this.TD(this, 1, 2, e = makeXonoticTextSlider("cl_gentle_gibs"));
+                       e.addValue(e, _("Gibs"), "0");
+                       e.addValue(e, _("White smoke"), "1");
+                       e.addValue(e, _("Colorful clouds"), "2");
+                       e.configureXonoticTextSliderValues(e);
+                       e.sendCvars = true;
+                       setDependent(e, "cl_gentle", 0, 0);
+       this.TR(this);
+               this.TD(this, 1, 1, e = makeXonoticTextLabel(0, _("Gib quantity:")));
+                       setDependent(e, "cl_gentle", 0, 0);
+               this.TD(this, 1, 2, e = makeXonoticTextSlider("cl_nogibs"));
+                       e.addValue(e, ZCTX(_("GIBS^None")), "1");
+                       e.addValue(e, ZCTX(_("GIBS^Few")), "0.75");
+                       e.addValue(e, ZCTX(_("GIBS^Many")), "0.5");
+                       e.addValue(e, ZCTX(_("GIBS^Lots")), "0");
+                       e.configureXonoticTextSliderValues(e);
+                       e.sendCvars = true;
+                       setDependent(e, "cl_gentle", 0, 0);
     }
 ENDCLASS(XonoticDamageTextSettings)
index df1ab6b806bf91e3b6d84e337d51fcee99dad8f2..929a68d1c1dcf68db612188749e6feba99cc42b7 100644 (file)
@@ -31,7 +31,15 @@ NET_HANDLE(ENT_CLIENT_WARPZONE, bool isnew)
        if(!warpzone_warpzones_exist)
        {
                cvar_settemp("r_water", "1"); // HACK for DarkPlaces: always enable reflections when a map has warpzones
-               cvar_settemp("r_water_resolutionmultiplier", "1"); // HACK for DarkPlaces: enforce full quality so entities can be seen clearly through warpzones
+               if(cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
+                       // TODO: remove this when GL 2 renderer is gone (no r_viewscale > 1 in GL 2)
+                       cvar_settemp("r_water_resolutionmultiplier", "1");
+               else
+               {
+                       // HACK for DarkPlaces: enforce full quality so entities can be seen clearly through warpzones
+                       if(cvar("r_water_resolutionmultiplier") * cvar("r_viewscale") < 1)
+                               cvar_settemp("r_water_resolutionmultiplier", ftos(1 / cvar("r_viewscale")));
+               }
        }
        warpzone_warpzones_exist = 1;
        if (!this.enemy)
@@ -92,7 +100,15 @@ NET_HANDLE(ENT_CLIENT_WARPZONE_CAMERA, bool isnew)
        if(!warpzone_cameras_exist)
        {
                cvar_settemp("r_water", "1"); // HACK for DarkPlaces: always enable reflections when a map has cameras
-               cvar_settemp("r_water_resolutionmultiplier", "1"); // HACK for DarkPlaces: enforce full quality so entities can be seen clearly through warpzones
+               if(cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
+                       // TODO: remove this when GL 2 renderer is gone (no r_viewscale > 1 in GL 2)
+                       cvar_settemp("r_water_resolutionmultiplier", "1");
+               else
+               {
+                       // HACK for DarkPlaces: enforce full quality so entities can be seen clearly through cameras
+                       if(cvar("r_water_resolutionmultiplier") * cvar("r_viewscale") < 1)
+                               cvar_settemp("r_water_resolutionmultiplier", ftos(1 / cvar("r_viewscale")));
+               }
        }
        warpzone_cameras_exist = 1;
        this.classname = "func_warpzone_camera";
index bd6fd4c4f41295e6d7228e02c2972717b63b4ee6..af1b7b35386e86687fa9941f14698e47a97009c4 100644 (file)
@@ -19,10 +19,10 @@ void XonoticSettingsDialog_fill(entity me)
                me.TD(me, 1, 2, mc.makeTabButton(mc, _("Effects"), makeXonoticEffectsSettingsTab()));
                me.TD(me, 1, 2, mc.makeTabButton(mc, _("Audio"),   makeXonoticAudioSettingsTab()));
        me.TR(me);
-               me.TD(me, 1, 1.5, mc.makeTabButton(mc, _("Game"),    NEW(XonoticGameSettingsTab)));
-               me.TD(me, 1, 1.5, mc.makeTabButton(mc, _("Input"),   makeXonoticInputSettingsTab()));
-               me.TD(me, 1, 1.5, mc.makeTabButton(mc, _("User"),    makeXonoticUserSettingsTab()));
-               me.TD(me, 1, 1.5, mc.makeTabButton(mc, _("Misc"),    makeXonoticMiscSettingsTab()));
+               me.TD(me, 1, 1.5, mc.makeTabButton(mc, _("Game"),               NEW(XonoticGameSettingsTab)));
+               me.TD(me, 1, 1.5, mc.makeTabButton(mc, _("Input"),              makeXonoticInputSettingsTab()));
+               me.TD(me, 1, 1.5, mc.makeTabButton(mc, _("User Interface"),     makeXonoticUserSettingsTab()));
+               me.TD(me, 1, 1.5, mc.makeTabButton(mc, _("Misc"),               makeXonoticMiscSettingsTab()));
        me.gotoRC(me, 2.5, 0);
                me.TD(me, me.rows - 2.5, me.columns, mc);
 }
index 1f8c6d81cffc6cb9f8460358a67a2b2f35075412..590d518627e750e644b651367a26362e365bc1bd 100644 (file)
@@ -139,10 +139,6 @@ void XonoticAudioSettingsTab_fill(entity me)
                        _("Enable spatialization (blend the right and left channel slightly to decrease stereo separation a bit for headphones)")));
                setDependent(e, "snd_channels", 1.5, 0.5);
        me.TR(me);
-       me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "cl_hitsound", _("Hit indication sound"),
-                       _("Play a hit indicator sound when your shot hits an enemy")));
-               e.sendCvars = true;
        me.TR(me);
                me.TD(me, 1, 3, makeXonoticCheckBox(0, "con_chatsound", _("Chat message sound")));
        me.TR(me);
@@ -152,6 +148,15 @@ void XonoticAudioSettingsTab_fill(entity me)
                        _("Play sounds when hovering over menu items too")));
                setDependent(e2, "menu_sounds", 1, 2);
        me.TR(me);
+       me.TR(me);
+               me.TD(me, 1, 1, makeXonoticTextLabel(0, _("Damage sound pitch:")));
+               me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_hitsound"));
+                               e.addValue(e, _("Disabled"), "0");
+                               e.addValue(e, _("Fixed pitch"), "1");
+                               e.addValue(e, _("Low = More"), "2");
+                               e.addValue(e, _("High = More"), "3");
+                               e.configureXonoticTextSliderValues(e);
+                               e.sendCvars = true;
        me.TR(me);
                me.TD(me, 1, 1, makeXonoticTextLabel(0, _("Time announcer:")));
                me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_announcer_maptime"));
index 4d62d459e2f691d476c330f25b943f44ee1ba41d..d85035ee2bf674242a45ff07e0d1731bd7433ad6 100644 (file)
@@ -65,36 +65,36 @@ void XonoticEffectsSettingsTab_fill(entity me)
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Geometry detail:")));
                me.TD(me, 1, 2, e = makeXonoticTextSlider_T("r_subdivisions_tolerance",
                        _("Change the smoothness of the curves on the map")));
-                       e.addValue(e, ZCTX(_("DET^Lowest")), "16");
+                       if(cvar("developer") > 0)
+                               e.addValue(e, ZCTX(_("DET^Leet")), "1337");
                        e.addValue(e, ZCTX(_("DET^Low")), "8");
-                       e.addValue(e, ZCTX(_("DET^Normal")), "4");
-                       e.addValue(e, ZCTX(_("DET^Good")), "3");
-                       e.addValue(e, ZCTX(_("DET^Best")), "2");
-                       e.addValue(e, ZCTX(_("DET^Insane")), "1");
+                       e.addValue(e, ZCTX(_("DET^Medium")), "4");
+                       e.addValue(e, ZCTX(_("DET^Normal")), "2");
+                       e.addValue(e, ZCTX(_("DET^High")), "1");
+                       e.addValue(e, ZCTX(_("DET^Ultra")), "0.1");
+                       if(cvar("developer") > 0)
+                               e.addValue(e, ZCTX(_("DET^Ultimate")), "0.01");
                        e.configureXonoticTextSliderValues(e);
                        e.applyButton = effectsApplyButton;
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Player detail:")));
                me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_playerdetailreduction"));
-                       e.addValue(e, ZCTX(_("PDET^Low")), "4");
-                       e.addValue(e, ZCTX(_("PDET^Medium")), "3");
+                       if(cvar("developer") > 0)
+                               e.addValue(e, ZCTX(_("PDET^Leet")), "1337");
+                       e.addValue(e, ZCTX(_("PDET^Low")), "8");
+                       e.addValue(e, ZCTX(_("PDET^Medium")), "4");
                        e.addValue(e, ZCTX(_("PDET^Normal")), "2");
-                       e.addValue(e, ZCTX(_("PDET^Good")), "1");
-                       e.addValue(e, ZCTX(_("PDET^Best")), "0");
+                       e.addValue(e, ZCTX(_("PDET^High")), "1");
+                       e.addValue(e, ZCTX(_("PDET^Ultra")), "0");
                        e.configureXonoticTextSliderValues(e);
-                       e.applyButton = effectsApplyButton;
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Texture resolution:")));
                        setDependent(e, "r_showsurfaces", 0, 0);
                me.TD(me, 1, 2, e = makeXonoticPicmipSlider());
-                       if(cvar("developer") > 0)
-                               e.addValue(e, ZCTX(_("RES^Leet")), "1337");
-                       e.addValue(e, ZCTX(_("RES^Lowest")), "3");
-                       e.addValue(e, ZCTX(_("RES^Very low")), "2");
+                       e.addValue(e, ZCTX(_("RES^Leet")), "1337");
                        e.addValue(e, ZCTX(_("RES^Low")), "1");
                        e.addValue(e, ZCTX(_("RES^Normal")), "0");
-                       e.addValue(e, ZCTX(_("RES^Good")), "-1");
-                       e.addValue(e, ZCTX(_("RES^Best")), "-2");
+                       e.addValue(e, ZCTX(_("RES^High")), "-1");
                        e.configureXonoticTextSliderValues(e);
                        setDependent(e, "r_showsurfaces", 0, 0);
                        e.applyButton = effectsApplyButton;
@@ -127,11 +127,8 @@ void XonoticEffectsSettingsTab_fill(entity me)
        me.TR(me);
                me.TDempty(me, 0.2);
                me.TD(me, 1, 1, e = makeXonoticCheckBoxEx_T(1, 0, "r_sky", _("Show sky"), _("Disable sky for performance and visibility")));
-               if(cvar("developer") > 0)
-               {
-                       me.TD(me, 1, 1, e = makeXonoticCheckBoxEx_T(3, 0, "r_showsurfaces", _("Show surfaces"),
-                               _("Disable textures completely for very slow hardware. This gives a huge performance boost, but looks very ugly.")));
-               }
+       if(cvar("developer") > 0)
+               me.TD(me, 1, 1, e = makeXonoticCheckBoxEx(3, 0, "r_showsurfaces", _("Show surfaces")));
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticCheckBox_T(1, "mod_q3bsp_nolightmaps", _("Use lightmaps"),
                        _("Use high resolution lightmaps, which will look pretty but use up some extra video memory")));
@@ -160,6 +157,7 @@ void XonoticEffectsSettingsTab_fill(entity me)
                        e.addValue(e, _("Sharp"), "1");
                        e.configureXonoticTextSliderValues(e);
                        setDependentAND(e, "vid_gl20", 1, 1, "r_water", 1, 1);
+       me.TR(me);
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticCheckBox_T(0, "cl_decals", _("Decals"),
                        _("Enable decals (bullet holes and blood)")));
@@ -179,47 +177,36 @@ void XonoticEffectsSettingsTab_fill(entity me)
                me.TD(me, 1, 2, e = makeXonoticSlider_T(1, 20, 1, "cl_decals_fadetime",
                        _("Time in seconds before decals fade away")));
                        setDependent(e, "cl_decals", 1, 1);
-       me.TR(me);
-               me.TDempty(me, 0.2);
-               me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Damage effects:")));
-               me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_damageeffect"));
-                       e.addValue(e, ZCTX(_("DMGFX^Disabled")), "0");
-                       e.addValue(e, _("Skeletal"), "1");
-                       e.addValue(e, ZCTX(_("DMGFX^All")), "2");
-                       e.configureXonoticTextSliderValues(e);
 
        me.gotoRC(me, 1.25, 3.2); me.setFirstColumn(me, me.currentColumn);
-               me.TD(me, 1, 3, e = makeXonoticRadioButton_T(1, "r_coronas", "0", _("No dynamic lighting"),
-                       _("Enable corona flares around certain lights")));
-       me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticRadioButton_T(1, "gl_flashblend", string_null, _("Fake corona lighting"),
-                       _("Enable faster but uglier dynamic lights by rendering bright coronas instead of real dynamic lights")));
-               makeMulti(e, "r_coronas");
-       me.TR(me);
-               me.TD(me, 1, 2, e = makeXonoticRadioButton_T(1, "r_shadow_realtime_dlight", string_null, _("Realtime dynamic lighting"),
-                       _("Enable rendering of dynamic lights such as explosions and rocket lights")));
-               makeMulti(e, "r_coronas");
+               me.TD(me, 1, 2, e = makeXonoticCheckBox_T(0, "r_shadow_realtime_dlight", _("Realtime dynamic lights"),
+                       _("Enable dynamic lights such as explosions and rocket lights")));
+                       makeMulti(e, "!gl_flashblend");
                me.TD(me, 1, 1, e = makeXonoticCheckBox_T(0, "r_shadow_realtime_dlight_shadows", _("Shadows"),
-                       _("Enable rendering of shadows from dynamic lights")));
+                       _("Realtime dynamic lights cast shadows")));
                        setDependent(e, "r_shadow_realtime_dlight", 1, 1);
        me.TR(me);
                me.TD(me, 1, 2, e = makeXonoticCheckBox_T(0, "r_shadow_realtime_world", _("Realtime world lighting"),
-                       _("Enable rendering of full realtime world lighting on maps that support it. Note that this might have a big impact on performance.")));
+                       _("Enable realtime world lighting on maps that support it. May have a big impact on performance.")));
                me.TD(me, 1, 1, e = makeXonoticCheckBox_T(0, "r_shadow_realtime_world_shadows", _("Shadows"),
-                       _("Enable rendering of shadows from realtime world lights")));
+                       _("Realtime world lights cast shadows")));
                        setDependent(e, "r_shadow_realtime_world", 1, 1);
        me.TR(me);
                me.TDempty(me, 0.2);
                me.TD(me, 1, 1.8, e = makeXonoticCheckBox_T(0, "r_shadow_usenormalmap", _("Use normal maps"),
-                       _("Enable use of directional shading on textures")));
+                       _("Enable directional shading on textures")));
                        setDependentOR(e, "r_shadow_realtime_dlight", 1, 1, "r_shadow_realtime_world", 1, 1);
                me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "r_shadow_shadowmapping", _("Soft shadows")));
                        setDependentWeird(e, someShadowCvarIsEnabled);
+       me.TR(me);
+               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Corona intensity:")));
+               me.TD(me, 1, 2, e = makeXonoticSlider_T(0, 1.5, 0.1, "r_coronas",
+                       _("Brightness of corona flare effect around lights, default 1")));
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 2.8, e = makeXonoticCheckBox_T(0, "r_coronas_occlusionquery", _("Fade corona according to visibility"),
-                       _("Fade coronas according to visibility")));
-                       setDependent(e, "r_coronas", 1, 1);
+               me.TD(me, 1, 2.8, e = makeXonoticCheckBox_T(0, "r_coronas_occlusionquery", _("Fade coronas according to visibility"),
+                       _("Use occlusion queries to fade coronas")));
+                       setDependent(e, "r_coronas", 0.1, 2);
        me.TR(me);
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticCheckBox_T(0, "r_bloom", _("Bloom"),
index 822e2c32dd85a6058b903c99a5b891da7129aa00..872274a31ff8a459801b50a1fbaf7ffc74227e27 100644 (file)
@@ -27,15 +27,31 @@ void XonoticGameModelSettingsTab_fill(entity me)
        // later I would like quite a few more options in this tab.
 
        me.gotoRC(me, 0, 1); me.setFirstColumn(me, me.currentColumn);
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Players")));
+       me.TR(me);
+               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_forceplayermodels", _("Force player models to mine")));
+       me.TR(me);
+               me.TD(me, 1, 1.25, e = makeXonoticTextLabel(0, _("Force player colors to mine:")));
+               me.TD(me, 1, 1.75, e = makeXonoticTextSlider("cl_forceplayercolors"));
+                       e.addValue(e, _("Never"), "0");
+                       e.addValue(e, _("In non teamplay modes only"), "1");
+                       e.addValue(e, _("Always"), "2");
+                       e.addValue(e, _("Only in Duel"), "3");
+                       e.configureXonoticTextSliderValues(e);
+       me.TR(me);
+               me.TD(me, 1, 1.25, e = makeXonoticTextLabel(0, _("Body fading:")));
+               me.TD(me, 1, 1.75, e = makeXonoticSlider(0, 2, 0.2, "cl_deathglow"));
+       me.TR(me);
+       me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Items")));
        me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_simple_items", _("Use simple 2D images instead of item models")));
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Unavailable alpha:")));
-               me.TD(me, 1, 2, e = makeXonoticSlider(0, 1, 0.1, "cl_ghost_items"));
+               me.TD(me, 1, 1.25, e = makeXonoticTextLabel(0, _("Unavailable item opacity:")));
+               me.TD(me, 1, 1.75, e = makeXonoticSlider(0, 1, 0.1, "cl_ghost_items"));
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Unavailable color:")));
-               me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_ghost_items_color"));
+               me.TD(me, 1, 1.25, e = makeXonoticTextLabel(0, _("Unavailable item color:")));
+               me.TD(me, 1, 1.75, e = makeXonoticTextSlider("cl_ghost_items_color"));
                        e.addValue(e, ZCTX(_("GHOITEMS^Black")), "-1 -1 -1");
                        e.addValue(e, ZCTX(_("GHOITEMS^Dark")), "0.1 0.1 0.1");
                        e.addValue(e, ZCTX(_("GHOITEMS^Tinted")), "0.6 0.6 0.6");
@@ -43,30 +59,40 @@ void XonoticGameModelSettingsTab_fill(entity me)
                        e.addValue(e, ZCTX(_("GHOITEMS^Blue")), "-1 -1 3");
                        e.configureXonoticTextSliderValues(e);
                        setDependent(e, "cl_ghost_items", 0.001, 1);
-
        me.TR(me);
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Players")));
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Weapon")));
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_forceplayermodels", _("Force player models to mine")));
+               me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "r_drawviewmodel", _("Draw 1st person weapon model"),
+                       _("May reduce FPS")));
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Force player colors to mine")));
-               me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_forceplayercolors"));
-                       e.addValue(e, _("Never"), "0");
-                       e.addValue(e, _("In non teamplay modes only"), "1");
-                       e.addValue(e, _("Always"), "2");
-                       e.addValue(e, _("Only in Duel"), "3");
-                       e.configureXonoticTextSliderValues(e);
+               me.TDempty(me, 0.25);
+               me.TD(me, 1, 1.00, e = makeXonoticRadioButton_T(1, "cl_gunalign", "4", _("Left align"),
+                       _("Position of the weapon model; requires reconnect")));
+                       setDependent(e, "r_drawviewmodel", 1, 1);
+               me.TD(me, 1, 0.75, e = makeXonoticRadioButton_T(1, "cl_gunalign", "1", _("Center"),
+                       _("Position of the weapon model; requires reconnect")));
+                       setDependent(e, "r_drawviewmodel", 1, 1);
+               me.TD(me, 1, 0.75, e = makeXonoticRadioButton_T(1, "cl_gunalign", "3", _("Right align"),
+                       _("Position of the weapon model; requires reconnect")));
+                       setDependent(e, "r_drawviewmodel", 1, 1);
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Body fading:")));
-               me.TD(me, 1, 2, e = makeXonoticSlider(0, 2, 0.2, "cl_deathglow"));
+                       me.TD(me, 1, 1.25, e = makeXonoticTextLabel(0, _("Weapon model opacity:")));
+                               setDependent(e, "r_drawviewmodel", 1, 1);
+                       me.TD(me, 1, 1.75, e = makeXonoticTextSlider("cl_viewmodel_alpha"));
+                               setDependent(e, "r_drawviewmodel", 1, 1);
+                               e.addValue(e, "15%", "0.15");
+                               e.addValue(e, "25%", "0.25");
+                               e.addValue(e, "50%", "0.5");
+                               e.addValue(e, "75%", "0.75");
+                               e.addValue(e, "100%", "1");
+                               e.configureXonoticTextSliderValues(e);
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Gibs:")));
-               me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_nogibs"));
-                       e.addValue(e, ZCTX(_("GIBS^None")), "1");
-                       e.addValue(e, ZCTX(_("GIBS^Few")), "0.75");
-                       e.addValue(e, ZCTX(_("GIBS^Many")), "0.5");
-                       e.addValue(e, ZCTX(_("GIBS^Lots")), "0");
-                       e.configureXonoticTextSliderValues(e);
-                       setDependent(e, "cl_gentle", 0, 0);
+               me.TDempty(me, 0.25);
+               me.TD(me, 1, 1.375, e = makeXonoticCheckBox_T(0, "cl_followmodel", _("Gun model swaying"), "-"));
+               makeMulti(e, "cl_leanmodel");
+               setDependent(e, "r_drawviewmodel", 1, 1);
+
+               me.TD(me, 1, 1.375, e = makeXonoticCheckBox(0, "cl_bobmodel", _("Gun model bobbing")));
+               setDependent(e, "r_drawviewmodel", 1, 1);
 }
index 5c77faffb501ed0ca2aebf740dd8d559548b94d4..0a2ff1ae828ea3fb07b711319cd370f02eac8beb 100644 (file)
@@ -58,43 +58,7 @@ void XonoticGameWeaponsSettingsTab_fill(entity me)
                        e.sendCvars = true;
        me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_unpress_attack_on_weapon_switch", _("Release attack buttons when you switch weapons")));
-       me.TR(me);
-       me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "r_drawviewmodel", _("Draw 1st person weapon model"),
-                       _("Draw the weapon model")));
-       me.TR(me);
-               me.TDempty(me, 0.2);
-               me.TD(me, 1, 0.9, e = makeXonoticRadioButton_T(1, "cl_gunalign", "4", _("Left align"),
-                       _("Position of the weapon model; requires reconnect")));
-                       setDependent(e, "r_drawviewmodel", 1, 1);
-               me.TD(me, 1, 0.9, e = makeXonoticRadioButton_T(1, "cl_gunalign", "1", _("Center"),
-                       _("Position of the weapon model; requires reconnect")));
-                       setDependent(e, "r_drawviewmodel", 1, 1);
-               me.TD(me, 1, 1.0, e = makeXonoticRadioButton_T(1, "cl_gunalign", "3", _("Right align"),
-                       _("Position of the weapon model; requires reconnect")));
-                       setDependent(e, "r_drawviewmodel", 1, 1);
-       me.TR(me);
-                       me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Weapon model opacity:")));
-                               setDependent(e, "r_drawviewmodel", 1, 1);
 
-                       me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_viewmodel_alpha"));
-                               setDependent(e, "r_drawviewmodel", 1, 1);
-                               e.addValue(e, "15%", "0.15");
-                               e.addValue(e, "25%", "0.25");
-                               e.addValue(e, "50%", "0.5");
-                               e.addValue(e, "75%", "0.75");
-                               e.addValue(e, "100%", "1");
-                               e.configureXonoticTextSliderValues(e);
-       me.TR(me);
-       me.TR(me);
-               me.TDempty(me, 0.2);
-               me.TD(me, 1, 2.8, e = makeXonoticCheckBox_T(0, "cl_followmodel", _("Gun model swaying"), "-"));
-               makeMulti(e, "cl_leanmodel");
-               setDependent(e, "r_drawviewmodel", 1, 1);
-       me.TR(me);
-               me.TDempty(me, 0.2);
-               me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "cl_bobmodel", _("Gun model bobbing")));
-               setDependent(e, "r_drawviewmodel", 1, 1);
        me.gotoRC(me, me.rows - 1, 0); me.setFirstColumn(me, me.currentColumn);
                me.TD(me, 1, me.columns, weaponsApplyButton);
 }
index b025c3aff7c7c2c5927dd9605f9704a815cefc95..e4ccfb5f8174e223afbd14c5e691fe2d66625c51 100644 (file)
@@ -67,7 +67,7 @@ void XonoticInputSettingsTab_fill(entity me)
                me.TD(me, 1, 3, e = makeXonoticCheckBox_T(1.022, "m_pitch", _("Invert aiming"),
                        _("Invert mouse movement on the Y-axis")));
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "menu_mouse_absolute", _("Use system mouse positioning"), "-"));
+               me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "menu_mouse_absolute", _("Use system cursor speed and position in menu"), "-"));
                        makeMulti(e, "hud_cursormode");
                        e.onClick = CheckBox_Click_Redisplay;
                        e.onClickEntity = e;
index 50447936867b3e792e09ffee12543ab79ac35597..4b20dee273052d65128f136f6bc302fc7e49f516 100644 (file)
@@ -23,75 +23,89 @@ void XonoticMiscSettingsTab_fill(entity me)
        entity e;
        //entity sk;
 
+       entity miscApplyButton = makeXonoticCommandButton(_("Apply immediately"), '0 0 0',
+               "menu_restart;"
+               , COMMANDBUTTON_APPLY);
+       miscApplyButton.disableOnClick = true;
+
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Network")));
-       me.TR(me);
-               me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Client UDP port:")));
-               me.TD(me, 1, 1.5, e = makeXonoticInputBox_T(0, "cl_port",
-                       _("Force client to use chosen port unless it is set to 0")));
-       me.TR(me);
+               me.TD(me, 1, 3.25, e = makeXonoticHeaderLabel(_("Network")));
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Bandwidth:")));
+               me.TD(me, 1, 1.25, e = makeXonoticTextLabel(0, _("UDP bandwidth:")));
                me.TD(me, 1, 2, e = makeXonoticTextSlider_T("_cl_rate",
-                       _("Specify your network speed")));
+                       _("Speed limit for the game protocol")));
                        e.addValue(e, _("56k"), "4000");
                        e.addValue(e, _("ISDN"), "7000");
                        e.addValue(e, _("Slow ADSL"), "20000");
                        e.addValue(e, _("Fast ADSL"), "40000");
                        e.addValue(e, _("Broadband"), "66666");
                        e.configureXonoticTextSliderValues(e);
+       if(cvar_type("crypto_aeslevel") & CVAR_TYPEFLAG_ENGINE)
+       {
+       me.TR(me);
+               me.TD(me, 1, 1.25, e = makeXonoticTextLabel(0, _("UDP encryption:")));
+               me.TD(me, 1, 2, e = makeXonoticTextSlider_T("crypto_aeslevel",
+                       _("AES encryption of the game protocol")));
+                       e.addValue(e, _("Disabled"), "0");
+                       e.addValue(e, _("Supported"), "1");
+                       e.addValue(e, _("Requested"), "2");
+                       e.addValue(e, _("Required"), "3");
+                       e.configureXonoticTextSliderValues(e);
+       }
        me.TR(me);
-       me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Downloads:")));
-               me.TD(me, 1, 2, e = makeXonoticSlider_T(1, 5, 1, "cl_curl_maxdownloads",
-                       _("Maximum number of concurrent HTTP/FTP downloads")));
-       me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Download speed:")));
-               me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_curl_maxspeed"));
-               ADDVALUE_SPEED_KB(50);
-               ADDVALUE_SPEED_KB(100);
-               ADDVALUE_SPEED_KB(300);
-               ADDVALUE_SPEED_KB(500);
-               ADDVALUE_SPEED_MB(1, 1000);
-               ADDVALUE_SPEED_MB(2, 2000);
-               e.addValue(e, strzone(_("Unlimited")), "0");
-               e.configureXonoticTextSliderValues(e);
-       me.TR(me);
-               if(cvar("developer") > 0)
-               {
-                       me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Local latency:")));
-                       me.TD(me, 1, 2, e = makeXonoticSlider(0, 1000, 25, "cl_netlocalping"));
-               }
-       me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "shownetgraph", _("Show netgraph"),
-                       _("Show a graph of packet sizes and other information")));
-       me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_movement", _("Client-side movement prediction")));
+               me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "cl_netrepeatinput", _("Packet loss compensation"),
+                       _("Smooths movement during packet loss, but doubles the amount of data sent")));
        me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_movement_errorcompensation", _("Movement error compensation")));
                setDependent(e, "cl_movement", 1, 1);
        me.TR(me);
-               if(cvar_type("crypto_aeslevel") & CVAR_TYPEFLAG_ENGINE)
-                       me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(2, 1, "crypto_aeslevel", _("Use encryption (AES) when available"))); // TODO: move up
+               me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "shownetgraph", _("Show net graph"),
+                       _("Show graph of UDP packets, may reduce FPS")));
+       if(cvar("developer") > 0)
+       {
+       me.TR(me);
+       me.TR(me);
+               me.TD(me, 1, 1.25, e = makeXonoticTextLabel(0, _("Local latency:")));
+               me.TD(me, 1, 2, e = makeXonoticSlider(0, 1000, 25, "cl_netlocalping"));
+       }
+       me.TR(me);
+       me.TR(me);
+               me.TD(me, 1, 1.25, e = makeXonoticTextLabel(0, _("HTTP Download speed:")));
+               me.TD(me, 1, 2, e = makeXonoticTextSlider_T("cl_curl_maxspeed",
+                       _("Speed limit of HTTP file downloads")));
+                       ADDVALUE_SPEED_KB(64);
+                       ADDVALUE_SPEED_KB(128);
+                       ADDVALUE_SPEED_KB(256);
+                       ADDVALUE_SPEED_KB(512);
+                       ADDVALUE_SPEED_MB(1, 1024);
+                       ADDVALUE_SPEED_MB(2, 2048);
+                       ADDVALUE_SPEED_MB(4, 4096);
+                       ADDVALUE_SPEED_MB(8, 8192);
+                       e.addValue(e, strzone(_("Unlimited")), "0");
+                       e.configureXonoticTextSliderValues(e);
+       me.TR(me);
+               me.TD(me, 1, 1.25, e = makeXonoticTextLabel(0, _("Simultaneous downloads:")));
+               me.TD(me, 1, 2, e = makeXonoticSlider(1, 5, 1, "cl_curl_maxdownloads"));
+       me.TR(me);
+
 
-       me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
-               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Framerate")));
+       me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn);
+               me.TD(me, 1, 2.5, e = makeXonoticHeaderLabel(_("Framerate")));
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Maximum:")));
-               me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_maxfps"));
-                       ADDVALUE_FPS(30);
-                       ADDVALUE_FPS(60);
+               me.TD(me, 1, 0.75, e = makeXonoticTextLabel(0, _("Maximum:")));
+               me.TD(me, 1, 1.75, e = makeXonoticTextSlider("cl_maxfps"));
+                       ADDVALUE_FPS(62.5);
                        ADDVALUE_FPS(100);
                        ADDVALUE_FPS(125);
                        ADDVALUE_FPS(150);
                        ADDVALUE_FPS(200);
                        ADDVALUE_FPS(250);
-                       ADDVALUE_FPS(400);
+                       ADDVALUE_FPS(500);
                        e.addValue(e, ZCTX(_("MAXFPS^Unlimited")), "0");
                        e.configureXonoticTextSliderValues(e);
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Target:")));
-               me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_minfps"));
+               me.TD(me, 1, 0.75, e = makeXonoticTextLabel(0, _("Target:")));
+               me.TD(me, 1, 1.75, e = makeXonoticTextSlider("cl_minfps"));
                        e.addValue(e, ZCTX(_("TRGT^Disabled")), "0");
                        ADDVALUE_FPS(30);
                        ADDVALUE_FPS(60);
@@ -100,11 +114,10 @@ void XonoticMiscSettingsTab_fill(entity me)
                        ADDVALUE_FPS(150);
                        ADDVALUE_FPS(200);
                        ADDVALUE_FPS(250);
-                       ADDVALUE_FPS(400);
                        e.configureXonoticTextSliderValues(e);
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Idle limit:")));
-               me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_maxidlefps"));
+               me.TD(me, 1, 0.75, e = makeXonoticTextLabel(0, _("Idle limit:")));
+               me.TD(me, 1, 1.75, e = makeXonoticTextSlider("cl_maxidlefps"));
                        ADDVALUE_FPS(10);
                        ADDVALUE_FPS(20);
                        ADDVALUE_FPS(30);
@@ -112,40 +125,29 @@ void XonoticMiscSettingsTab_fill(entity me)
                        e.addValue(e, ZCTX(_("IDLFPS^Unlimited")), "0");
                        e.configureXonoticTextSliderValues(e);
        me.TR(me);
-       me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_maxfps_alwayssleep", _("Save processing time for other apps")));
-               setDependent(e, "cl_maxfps", 1, 1000);
-       me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "showfps", _("Show frames per second"),
+               me.TD(me, 1, 2.5, e = makeXonoticCheckBox_T(0, "showfps", _("Show frames per second"),
                        _("Show your rendered frames per second")));
-       me.TR(me);
-       me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Other")));
-       me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Menu tooltips:")));
-               me.TD(me, 1, 2, e = makeXonoticTextSlider_T("menu_tooltips",
-                       _("Menu tooltips: disabled, standard or advanced (also shows cvar or console command bound to the menu item)")));
-                       e.addValue(e, ZCTX(_("TLTIP^Disabled")), "0");
-                       e.addValue(e, ZCTX(_("TLTIP^Standard")), "1");
-                       e.addValue(e, ZCTX(_("TLTIP^Advanced")), "2");
-                       e.configureXonoticTextSliderValues(e);
-       me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "showtime", _("Show current date and time"),
-                       _("Show current date and time of day, useful on screenshots")));
-                       makeMulti(e, "showdate");
-       me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "developer", _("Enable developer mode")));
 
+
+       me.gotoRC(me, 8, 3.5); me.setFirstColumn(me, me.currentColumn);
+               me.TD(me, 1, 2.5, e = makeXonoticHeaderLabel(_("Other")));
        me.TR(me);
-               me.TDempty(me, 0.5);
+               me.TDempty(me, 0.25);
                me.TD(me, 1, 2, e = makeXonoticButton_T(_("Advanced settings..."), '0 0 0',
                        _("Advanced settings where you can tweak every single variable of the game")));
                        e.onClick = DialogOpenButton_Click;
                        e.onClickEntity = main.cvarsDialog;
        me.TR(me);
-               me.TDempty(me, 0.5);
+               me.TDempty(me, 0.25);
                me.TD(me, 1, 2, e = makeXonoticButton(_("Factory reset"), '0 0 0'));
                        e.onClick = DialogOpenButton_Click;
                        e.onClickEntity = main.resetDialog;
+       me.TR(me);
+       me.TR(me);
+               me.TD(me, 1, 2.5, e = makeXonoticCheckBox(0, "developer", _("Enable developer mode")));
+                       e.applyButton = miscApplyButton;
+
+       me.gotoRC(me, me.rows - 1, 0);
+               me.TD(me, 1, me.columns, miscApplyButton);
 }
 #undef ADDVALUE_FPS
index 5e5b707faed5fd4d216b23a1348693d7bc2e712d..b7bce99bea5c92cb3168aa3c061138547da71453 100644 (file)
@@ -18,6 +18,13 @@ void XonoticUserSettingsTab_fill(entity me)
 {
        entity e, sk;
 
+       entity userApplyButton = makeXonoticCommandButton(_("Apply immediately"), '0 0 0',
+               "menu_cmd sync;"
+               , COMMANDBUTTON_APPLY);
+               userApplyButton.disableOnClick = true;
+/*     FIXME: It would be nice to have this button apply the skin and language settings
+ *     but there's only 1 onClickEntity */
+
        me.TR(me);
                me.TDempty(me, 0.25);
                me.TD(me, 1, 2.5, e = makeXonoticHeaderLabel(_("Menu Skins")));
@@ -62,14 +69,38 @@ void XonoticUserSettingsTab_fill(entity me)
                me.TD(me, 1, 1.5, e = makeXonoticHeaderLabel(_("Text Language")));
        me.TR(me);
                me.TD(me, 8, 1.5, sk = makeXonoticLanguageList());
-
        me.gotoRC(me, 9, 3.75); me.setFirstColumn(me, me.currentColumn);
                me.TD(me, 1, 1.5, e = makeXonoticButton(_("Set language"), '0 0 0'));
                        e.onClick = SetLanguage_Click;
                        e.onClickEntity = sk;
 
-       me.gotoRC(me, 11.5, 3.25); me.setFirstColumn(me, me.currentColumn);
-               me.TD(me, 1, 2.5, e = makeXonoticCheckBox_T(0, "cl_gentle", _("Disable gore effects and harsh language"),
-                       _("Replace blood and gibs with content that does not have any gore effects")));
-                       e.sendCvars = true;
+       me.gotoRC(me, 11, 3.0625); me.setFirstColumn(me, me.currentColumn);
+               me.TD(me, 1, 0.75, e = makeXonoticTextLabel(0, _("Font/UI size:")));
+               me.TD(me, 1, 2, e = makeXonoticTextSlider("menu_vid_scale"));
+                       e.addValue(e, ZCTX(_("SZ^Unreadable")), "-1");
+                       e.addValue(e, ZCTX(_("SZ^Tiny")), "-0.75");
+                       e.addValue(e, ZCTX(_("SZ^Little")), "-0.5");
+                       e.addValue(e, ZCTX(_("SZ^Small")), "-0.25");
+                       e.addValue(e, ZCTX(_("SZ^Medium")), "0");
+                       e.addValue(e, ZCTX(_("SZ^Large")), "0.25");
+                       e.addValue(e, ZCTX(_("SZ^Huge")), "0.5");
+                       e.addValue(e, ZCTX(_("SZ^Gigantic")), "0.75");
+                       e.addValue(e, ZCTX(_("SZ^Colossal")), "1");
+                       e.configureXonoticTextSliderValues(e);
+                       e.applyButton = userApplyButton;
+       me.TR(me);
+               me.TD(me, 1, 0.75, e = makeXonoticTextLabel(0, _("Menu tooltips:")));
+               me.TD(me, 1, 2, e = makeXonoticTextSlider_T("menu_tooltips",
+                       _("Menu tooltips: disabled, standard or advanced (also shows cvar or console command bound to the menu item)")));
+                       e.addValue(e, ZCTX(_("TLTIP^Disabled")), "0");
+                       e.addValue(e, ZCTX(_("TLTIP^Standard")), "1");
+                       e.addValue(e, ZCTX(_("TLTIP^Advanced")), "2");
+                       e.configureXonoticTextSliderValues(e);
+       me.TR(me);
+               me.TDempty(me, 0.5625);
+               me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "showdate", _("Show date")));
+               me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "showtime", _("Show time")));
+
+       me.gotoRC(me, me.rows - 1, 0);
+               me.TD(me, 1, me.columns, userApplyButton);
 }
index c43e0af9949c255a8f4f6d521b9add1074511f2f..d9ee0b98f7f60aef3c1ae7665fd02d2f5480ac5a 100644 (file)
@@ -33,20 +33,6 @@ void XonoticVideoSettingsTab_fill(entity me)
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Resolution:")));
                me.TD(me, 1, 2, e = makeXonoticResolutionSlider());
                        e.applyButton = videoApplyButton;
-       me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Font/UI size:")));
-               me.TD(me, 1, 2, e = makeXonoticTextSlider("menu_vid_scale"));
-                       e.addValue(e, ZCTX(_("SZ^Unreadable")), "-1");
-                       e.addValue(e, ZCTX(_("SZ^Tiny")), "-0.75");
-                       e.addValue(e, ZCTX(_("SZ^Little")), "-0.5");
-                       e.addValue(e, ZCTX(_("SZ^Small")), "-0.25");
-                       e.addValue(e, ZCTX(_("SZ^Medium")), "0");
-                       e.addValue(e, ZCTX(_("SZ^Large")), "0.25");
-                       e.addValue(e, ZCTX(_("SZ^Huge")), "0.5");
-                       e.addValue(e, ZCTX(_("SZ^Gigantic")), "0.75");
-                       e.addValue(e, ZCTX(_("SZ^Colossal")), "1");
-                       e.configureXonoticTextSliderValues(e);
-                       e.applyButton = videoApplyButton;
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Color depth:")));
                me.TD(me, 1, 2, e = makeXonoticTextSlider_T("vid_bitsperpixel",
@@ -59,25 +45,14 @@ void XonoticVideoSettingsTab_fill(entity me)
                me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "vid_fullscreen", _("Full screen")));
                        e.applyButton = videoApplyButton;
                me.TD(me, 1, 2, e = makeXonoticCheckBox_T(0, "vid_vsync", _("Vertical Synchronization"),
-                       _("Enable vertical synchronization to prevent tearing, will cap your fps to the screen refresh rate")));
-
+                       _("Prevent screen tearing, increases input latency and caps your fps to the screen refresh rate")));
        me.TR(me);
-               if(cvar("developer") > 0)
-               {
-                       me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "v_flipped", _("Flip view horizontally"),
-                               _("Poor man's left handed mode")));
-               }
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Anisotropy:")));
-               me.TD(me, 1, 2, e = makeXonoticTextSlider_T("gl_texture_anisotropy",
-                       _("Anisotropic filtering quality")));
-                       e.addValue(e, ZCTX(_("ANISO^Disabled")), "1");
-                       e.addValue(e, _("2x"), "2");
-                       e.addValue(e, _("4x"), "4");
-                       e.addValue(e, _("8x"), "8");
-                       e.addValue(e, _("16x"), "16");
-                       e.configureXonoticTextSliderValues(e);
+               me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(2, 0, "r_viewfbo", _("High-quality frame buffer")));
+                       setDependent(e, "vid_samples", 0, 1);
        me.TR(me);
+       if(cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
+       {
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Antialiasing:")));
                        setDependent(e, "r_viewfbo", 0, 0);
                me.TD(me, 1, 2, e = makeXonoticTextSlider_T("vid_samples",
@@ -88,9 +63,23 @@ void XonoticVideoSettingsTab_fill(entity me)
                        e.configureXonoticTextSliderValues(e);
                        setDependent(e, "r_viewfbo", 0, 0);
                        e.applyButton = videoApplyButton;
+       }
+       else
+       {
+               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Resolution scaling:")));
+               me.TD(me, 1, 2, e = makeXonoticSlider_T(0.666, 2, 0.5, "r_viewscale",
+                       _("Screen or window size multiplier, > 1 achieves antialiasing, < 1 may help slow GPUs")));
+       }
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(2, 0, "r_viewfbo", _("High-quality frame buffer")));
-                       setDependent(e, "vid_samples", 1, 1);
+               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Anisotropy:")));
+               me.TD(me, 1, 2, e = makeXonoticTextSlider_T("gl_texture_anisotropy",
+                       _("Anisotropic filtering quality")));
+                       e.addValue(e, ZCTX(_("ANISO^Disabled")), "1");
+                       e.addValue(e, _("2x"), "2");
+                       e.addValue(e, _("4x"), "4");
+                       e.addValue(e, _("8x"), "8");
+                       e.addValue(e, _("16x"), "16");
+                       e.configureXonoticTextSliderValues(e);
 
        me.TR(me);
        me.TR(me);
@@ -101,9 +90,10 @@ void XonoticVideoSettingsTab_fill(entity me)
                        e.addValue(e, ZCTX(_("DF^World")), "1");
                        e.addValue(e, ZCTX(_("DF^All")), "2");
                        e.configureXonoticTextSliderValues(e);
-       me.TR(me);
        if(cvar_type("gl_vbo") & CVAR_TYPEFLAG_ENGINE)
        {
+       me.TR(me);
+       me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticTextLabel(0, _("Vertex Buffer Objects (VBOs)")));
        me.TR(me);
                me.TDempty(me, 0.2);
@@ -126,18 +116,18 @@ void XonoticVideoSettingsTab_fill(entity me)
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Contrast:")));
                me.TD(me, 1, 2, e = makeXonoticSlider_T(1.0, 3.0, 0.05, "v_contrast",
                        _("Brightness of white")));
-       me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Gamma:")));
-                       setDependent(e, "vid_gl20", 1, 1);
-               me.TD(me, 1, 2, e = makeXonoticSlider_T(0.5, 2.0, 0.05, "v_gamma",
-                       _("Inverse gamma correction value, a brightness effect that does not affect white or black")));
-                       setDependent(e, "vid_gl20", 1, 1);
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Contrast boost:")));
                        setDependent(e, "vid_gl20", 1, 1);
                me.TD(me, 1, 2, e = makeXonoticSlider_T(1.0, 5.0, 0.1, "v_contrastboost",
                        _("By how much to multiply the contrast in dark areas")));
                        setDependent(e, "vid_gl20", 1, 1);
+       me.TR(me);
+               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Gamma:")));
+                       setDependent(e, "vid_gl20", 1, 1);
+               me.TD(me, 1, 2, e = makeXonoticSlider_T(0.5, 2.0, 0.05, "v_gamma",
+                       _("Inverse gamma correction value, a brightness effect that does not affect white or black")));
+                       setDependent(e, "vid_gl20", 1, 1);
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Saturation:")));
                        setDependent(e, "vid_gl20", 1, 1);
@@ -146,13 +136,13 @@ void XonoticVideoSettingsTab_fill(entity me)
                        setDependent(e, "vid_gl20", 1, 1);
        me.TR(me);
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, ZCTX(_("LIT^Ambient:"))));
+               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, ZCTX(_("LIT^Ambient light:"))));
                me.TD(me, 1, 2, e = makeXonoticSlider_T(0, 20.0, 0.25, "r_ambient",
-                       _("Ambient lighting, if set too high it tends to make light on maps look dull and flat")));
+                       _("If set too high it tends to make light on maps look dull and flat, default 4")));
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Intensity:")));
                me.TD(me, 1, 2, e = makeXonoticSlider_T(0.5, 2.0, 0.05, "r_hdr_scenebrightness",
-                       _("Global rendering brightness")));
+                       _("Global rendering brightness, default 1")));
        me.TR(me);
        me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "gl_finish", _("Wait for GPU to finish each frame"),
@@ -165,12 +155,14 @@ void XonoticVideoSettingsTab_fill(entity me)
        }
        if(cvar("developer") > 0)
        {
-               me.TR(me);
-                       me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "v_psycho", _("Psycho coloring (easter egg)")));
-                               setDependent(e, "vid_gl20", 1, 1);
-               me.TR(me);
-                       me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "r_trippy", _("Trippy vertices (easter egg)")));
-                               setDependent(e, "vid_gl20", 1, 1);
+       me.TR(me);
+               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "v_flipped", _("Flip view horizontally")));
+       me.TR(me);
+               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "v_psycho", _("Psycho coloring (easter egg)")));
+                       setDependent(e, "vid_gl20", 1, 1);
+       me.TR(me);
+               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "r_trippy", _("Trippy vertices (easter egg)")));
+                       setDependent(e, "vid_gl20", 1, 1);
        }
 
        me.gotoRC(me, me.rows - 1, 0);
index e39a892fb28d4ef9d7ea5d6a46e8d49af56c40c0..f4a4e2ebcd29630ecbff1d4504dbf30fd679b5e6 100644 (file)
@@ -627,6 +627,7 @@ gl_texturecompression_q3bsplightmaps 0
 gl_texturecompression_sky 1
 
 cl_maxfps 250
+cl_minfps 60
 
 seta menu_mouse_absolute 1 "use the OS mouse pointer motion for menu"
 seta menu_mouse_speed 1 "speed multiplier for the mouse in the menu (does not affect in-game aiming)"
@@ -859,7 +860,7 @@ seta cl_items_nofade 0
 seta cl_animate_items 1
 seta cl_ghost_items 0.45 "enable ghosted items (when between 0 and 1, overrides the alpha value)"
 seta cl_ghost_items_color "-1 -1 -1" "color of ghosted items (colormod format: 0 0 0 leaves the color unchanged, negative values allowed)"
-seta cl_simple_items 0 "enable simple items (if server allows)"
+seta cl_simple_items 0 "enable 2D items (if server allows), may improve FPS"
 set cl_simpleitems_postfix "_luma" "posfix to add fo model name when simple items are enabled"
 set cl_weapon_stay_color "2 0.5 0.5" "Color of picked up weapons when g_weapon_stay > 0 (colormod format: 0 0 0 leaves the color unchanged, negative values allowed)"
 set cl_weapon_stay_alpha 0.75 "Alpha of picked up weapons when g_weapon_stay > 0"