From: Samual Lenks Date: Wed, 16 Oct 2013 01:59:46 +0000 (-0400) Subject: Decrease size of settings dialog, and clean up view tab X-Git-Tag: xonotic-v0.8.0~139^2~1^2~131 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=82bcef9614338b154aa7926aa85ffc044fe4ab39;p=xonotic%2Fxonotic-data.pk3dir.git Decrease size of settings dialog, and clean up view tab --- diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg index e6cf3e1dc..128fe8b55 100644 --- a/defaultXonotic.cfg +++ b/defaultXonotic.cfg @@ -60,7 +60,8 @@ seta cl_reticle_stretch 0 "whether to stretch reticles so they fit the screen (b seta cl_reticle_item_nex 1 "draw aiming reticle for the nex weapon's zoom, 0 disables and values between 0 and 1 change alpha" seta cl_reticle_item_normal 1 "draw reticle when zooming with the zoom button, 0 disables and values between 0 and 1 change alpha" fov 90 -seta cl_velocityzoom 0 "velocity based zooming of fov, negative values zoom out" +seta cl_velocityzoom 0 "velocity based zooming of fov" +seta cl_velocityzoom_factor 0 "factor of fov zooming (negative values zoom out)" seta cl_velocityzoom_type 3 "how to factor in speed, 1 = all velocity in all directions, 2 = velocity only in forward direction (can be negative), 3 = velocity only in forward direction (limited to forward only)" seta cl_velocityzoom_speed 1000 "target speed for fov factoring" seta cl_velocityzoom_time 0.2 "time value for averaging speed values" diff --git a/qcsrc/client/View.qc b/qcsrc/client/View.qc index 36b49bda9..7a13f9562 100644 --- a/qcsrc/client/View.qc +++ b/qcsrc/client/View.qc @@ -164,7 +164,7 @@ vector GetCurrentFov(float fov) makevectors(view_angles); - if(autocvar_cl_velocityzoom && autocvar_cl_velocityzoom_type) // _type = 0 disables velocity zoom too + if(autocvar_cl_velocityzoom && autocvar_cl_velocityzoom_type && autocvar_cl_velocityzoom_factor) // _type = 0 disables velocity zoom too { if(intermission) { curspeed = 0; } else @@ -183,7 +183,7 @@ vector GetCurrentFov(float fov) velocityzoom = bound(0, drawframetime / max(0.000000001, autocvar_cl_velocityzoom_time), 1); // speed at which the zoom adapts to player velocity avgspeed = avgspeed * (1 - velocityzoom) + (curspeed / autocvar_cl_velocityzoom_speed) * velocityzoom; - velocityzoom = exp(float2range11(avgspeed * -autocvar_cl_velocityzoom / 1) * 1); + velocityzoom = exp(float2range11(avgspeed * -autocvar_cl_velocityzoom_factor / 1) * 1); //print(ftos(avgspeed), " avgspeed, ", ftos(curspeed), " curspeed, ", ftos(velocityzoom), " return\n"); // for debugging } diff --git a/qcsrc/client/autocvars.qh b/qcsrc/client/autocvars.qh index 2012228f4..53baebbea 100644 --- a/qcsrc/client/autocvars.qh +++ b/qcsrc/client/autocvars.qh @@ -75,6 +75,7 @@ var float autocvar_cl_vehicle_spiderbot_cross_alpha = 0.6; var float autocvar_cl_vehicle_spiderbot_cross_size = 1; var float autocvar_cl_vehicles_hud_tactical = 1; float autocvar_cl_velocityzoom; +float autocvar_cl_velocityzoom_factor; var float autocvar_cl_velocityzoom_type = 3; float autocvar_cl_velocityzoom_speed; float autocvar_cl_velocityzoom_time; diff --git a/qcsrc/menu/xonotic/dialog_settings.c b/qcsrc/menu/xonotic/dialog_settings.c index 9cdeddab5..a992e8059 100644 --- a/qcsrc/menu/xonotic/dialog_settings.c +++ b/qcsrc/menu/xonotic/dialog_settings.c @@ -4,7 +4,7 @@ CLASS(XonoticSettingsDialog) EXTENDS(XonoticDialog) ATTRIB(XonoticSettingsDialog, title, string, _("Settings")) ATTRIB(XonoticSettingsDialog, color, vector, SKINCOLOR_DIALOG_SETTINGS) ATTRIB(XonoticSettingsDialog, intendedWidth, float, 0.96) - ATTRIB(XonoticSettingsDialog, rows, float, 19) + ATTRIB(XonoticSettingsDialog, rows, float, 18) ATTRIB(XonoticSettingsDialog, columns, float, 6) ENDCLASS(XonoticSettingsDialog) #endif diff --git a/qcsrc/menu/xonotic/dialog_settings_audio.c b/qcsrc/menu/xonotic/dialog_settings_audio.c index d8a11c39b..0701b9147 100644 --- a/qcsrc/menu/xonotic/dialog_settings_audio.c +++ b/qcsrc/menu/xonotic/dialog_settings_audio.c @@ -3,7 +3,7 @@ CLASS(XonoticAudioSettingsTab) EXTENDS(XonoticTab) METHOD(XonoticAudioSettingsTab, fill, void(entity)) ATTRIB(XonoticAudioSettingsTab, title, string, _("Audio")) ATTRIB(XonoticAudioSettingsTab, intendedWidth, float, 0.9) - ATTRIB(XonoticAudioSettingsTab, rows, float, 16.5) + ATTRIB(XonoticAudioSettingsTab, rows, float, 15.5) ATTRIB(XonoticAudioSettingsTab, columns, float, 6.2) // added extra .2 for center space ENDCLASS(XonoticAudioSettingsTab) entity makeXonoticAudioSettingsTab(); @@ -160,7 +160,7 @@ void XonoticAudioSettingsTab_fill(entity me) if(cvar("developer")) me.TD(me, 1, 3, makeXonoticCheckBox(0, "showsound", _("Debug info about sounds"))); - me.gotoRC(me, me.rows - 1, 0); + me.gotoRC(me, me.rows - 1.25, 0); me.TD(me, 1, me.columns, makeXonoticCommandButton(_("Apply immediately"), '0 0 0', "snd_restart; snd_attenuation_method_$menu_snd_attenuation_method; sendcvar cl_hitsound; sendcvar cl_autotaunt; sendcvar cl_voice_directional; sendcvar cl_voice_directional_taunt_attenuation", COMMANDBUTTON_APPLY)); } #endif diff --git a/qcsrc/menu/xonotic/dialog_settings_effects.c b/qcsrc/menu/xonotic/dialog_settings_effects.c index f9b7f45af..486fedb18 100644 --- a/qcsrc/menu/xonotic/dialog_settings_effects.c +++ b/qcsrc/menu/xonotic/dialog_settings_effects.c @@ -3,7 +3,7 @@ CLASS(XonoticEffectsSettingsTab) EXTENDS(XonoticTab) METHOD(XonoticEffectsSettingsTab, fill, void(entity)) ATTRIB(XonoticEffectsSettingsTab, title, string, _("Effects")) ATTRIB(XonoticEffectsSettingsTab, intendedWidth, float, 0.9) - ATTRIB(XonoticEffectsSettingsTab, rows, float, 16.5) + ATTRIB(XonoticEffectsSettingsTab, rows, float, 15.5) ATTRIB(XonoticEffectsSettingsTab, columns, float, 6.2) // added extra .2 for center space ENDCLASS(XonoticEffectsSettingsTab) entity makeXonoticEffectsSettingsTab(); @@ -47,8 +47,7 @@ void XonoticEffectsSettingsTab_fill(entity me) if(cvar("developer")) me.TD(me, 1, 5 / n, e = makeXonoticCommandButton(ZCTX(_("PRE^Ultimate")), '0.5 0 0', "exec effects-ultimate.cfg", 0)); - me.TR(me); - me.TR(me); + me.gotoRC(me, 1.5, 0); me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Geometry detail:"))); me.TD(me, 1, 2, e = makeXonoticTextSlider("r_subdivisions_tolerance")); e.addValue(e, ZCTX(_("DET^Lowest")), "16"); @@ -142,7 +141,7 @@ void XonoticEffectsSettingsTab_fill(entity me) me.TD(me, 1, 2, e = makeXonoticSlider(1, 20, 1, "cl_decals_time")); setDependent(e, "cl_decals", 1, 1); - me.gotoRC(me, 2, 3.2); me.setFirstColumn(me, me.currentColumn); + me.gotoRC(me, 1.5, 3.2); me.setFirstColumn(me, me.currentColumn); me.TD(me, 1, 3, e = makeXonoticRadioButton(1, "r_coronas", "0", _("No dynamic lighting"))); me.TR(me); me.TD(me, 1, 3, e = makeXonoticRadioButton(1, "gl_flashblend", string_null, _("Fake corona lighting"))); @@ -191,7 +190,7 @@ void XonoticEffectsSettingsTab_fill(entity me) me.TD(me, 1, 2, e = makeXonoticParticlesSlider()); setDependent(e, "cl_particles", 1, 1); - me.gotoRC(me, me.rows - 1, 0); + me.gotoRC(me, me.rows - 1.25, 0); me.TD(me, 1, me.columns, makeXonoticCommandButton(_("Apply immediately"), '0 0 0', "vid_restart", COMMANDBUTTON_APPLY)); } #endif diff --git a/qcsrc/menu/xonotic/dialog_settings_game.c b/qcsrc/menu/xonotic/dialog_settings_game.c index dfe0111eb..b8011fc43 100644 --- a/qcsrc/menu/xonotic/dialog_settings_game.c +++ b/qcsrc/menu/xonotic/dialog_settings_game.c @@ -3,7 +3,7 @@ CLASS(XonoticGameSettingsTab) EXTENDS(XonoticTab) METHOD(XonoticGameSettingsTab, fill, void(entity)) ATTRIB(XonoticGameSettingsTab, title, string, _("Game")) ATTRIB(XonoticGameSettingsTab, intendedWidth, float, 0.9) - ATTRIB(XonoticGameSettingsTab, rows, float, 16.5) + ATTRIB(XonoticGameSettingsTab, rows, float, 15.5) ATTRIB(XonoticGameSettingsTab, columns, float, 6.5) ENDCLASS(XonoticGameSettingsTab) entity makeXonoticGameSettingsTab(); diff --git a/qcsrc/menu/xonotic/dialog_settings_game_crosshair.c b/qcsrc/menu/xonotic/dialog_settings_game_crosshair.c index 3899e5a08..a3cfcccf3 100644 --- a/qcsrc/menu/xonotic/dialog_settings_game_crosshair.c +++ b/qcsrc/menu/xonotic/dialog_settings_game_crosshair.c @@ -5,7 +5,7 @@ CLASS(XonoticGameCrosshairSettingsTab) EXTENDS(XonoticTab) METHOD(XonoticGameCrosshairSettingsTab, showNotify, void(entity)) ATTRIB(XonoticGameCrosshairSettingsTab, title, string, _("Crosshair")) ATTRIB(XonoticGameCrosshairSettingsTab, intendedWidth, float, 0.9) - ATTRIB(XonoticGameCrosshairSettingsTab, rows, float, 15) + ATTRIB(XonoticGameCrosshairSettingsTab, rows, float, 14) ATTRIB(XonoticGameCrosshairSettingsTab, columns, float, 6.2) ENDCLASS(XonoticGameCrosshairSettingsTab) entity makeXonoticGameCrosshairSettingsTab(); @@ -95,8 +95,8 @@ void XonoticGameCrosshairSettingsTab_fill(entity me) // me.TD(me, 1, 2, e = makeXonoticSlider(2, 4, 0.1, "crosshair_ring_size")); // setDependentAND(e, "crosshair_ring", 1, 1, "crosshair_enabled", 1, 2); me.TR(me); - me.TDempty(me, 0.2); - me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Ring alpha:"))); + me.TDempty(me, 0.3); + me.TD(me, 1, 0.9, e = makeXonoticTextLabel(0, _("Ring alpha:"))); setDependentAND(e, "crosshair_ring", 1, 1, "crosshair_enabled", 1, 2); me.TD(me, 1, 1.8, e = makeXonoticSlider(0.1, 1, 0.1, "crosshair_ring_alpha")); setDependentAND(e, "crosshair_ring", 1, 1, "crosshair_enabled", 1, 2); diff --git a/qcsrc/menu/xonotic/dialog_settings_game_view.c b/qcsrc/menu/xonotic/dialog_settings_game_view.c index ef598e016..1757aa0c3 100644 --- a/qcsrc/menu/xonotic/dialog_settings_game_view.c +++ b/qcsrc/menu/xonotic/dialog_settings_game_view.c @@ -5,7 +5,7 @@ CLASS(XonoticGameViewSettingsTab) EXTENDS(XonoticTab) METHOD(XonoticGameViewSettingsTab, showNotify, void(entity)) ATTRIB(XonoticGameViewSettingsTab, title, string, _("View")) ATTRIB(XonoticGameViewSettingsTab, intendedWidth, float, 0.9) - ATTRIB(XonoticGameViewSettingsTab, rows, float, 15) + ATTRIB(XonoticGameViewSettingsTab, rows, float, 14) ATTRIB(XonoticGameViewSettingsTab, columns, float, 6.2) ENDCLASS(XonoticGameViewSettingsTab) entity makeXonoticGameViewSettingsTab(); @@ -33,18 +33,12 @@ void XonoticGameViewSettingsTab_fill(entity me) me.TD(me, 1, 2, e = makeXonoticSlider(60, 130, 5, "fov")); me.TR(me); me.TR(me); - me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Zoom:"))); - me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_reticle")); - e.addValue(e, ZCTX(_("RETICLE^Fullscreen")), "0"); - e.addValue(e, ZCTX(_("RETICLE^With reticle")), "1"); - e.configureXonoticTextSliderValues(e); - me.TR(me); - me.TDempty(me, 0.2); - me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, ZCTX(_("ZOOM^Factor:")))); + //me.TDempty(me, 0.2); + me.TD(me, 1, 1, e = makeXonoticTextLabel(0, ZCTX(_("ZOOM^Zoom factor:")))); me.TD(me, 1, 2, e = makeXonoticSlider(2, 16, 0.5, "cl_zoomfactor")); me.TR(me); - me.TDempty(me, 0.2); - me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, ZCTX(_("ZOOM^Speed:")))); + //me.TDempty(me, 0.2); + me.TD(me, 1, 1, e = makeXonoticTextLabel(0, ZCTX(_("ZOOM^Zoom speed:")))); me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_zoomspeed")); e.addValue(e, "1", "1"); // Samual: for() loop doesn't work here, even though it would make sense. e.addValue(e, "2", "2"); @@ -57,21 +51,31 @@ void XonoticGameViewSettingsTab_fill(entity me) e.addValue(e, ZCTX(_("ZOOM^Instant")), "-1"); e.configureXonoticTextSliderValues(e); me.TR(me); - me.TDempty(me, 0.2); - me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, ZCTX(_("ZOOM^Sensitivity:")))); + //me.TDempty(me, 0.2); + me.TD(me, 1, 1, e = makeXonoticTextLabel(0, ZCTX(_("ZOOM^Zoom sensitivity:")))); me.TD(me, 1, 2, e = makeXonoticSlider(0, 1, 0.1, "cl_zoomsensitivity")); me.TR(me); - me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Velocity zoom:"))); - me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_velocityzoom_type")); - e.addValue(e, ZCTX(_("VZOOM^Disabled")), "0"); - e.addValue(e, ZCTX(_("VZOOM^Forward only")), "2"); - e.addValue(e, ZCTX(_("VZOOM^All directions")), "1"); - e.configureXonoticTextSliderValues(e); + me.TR(me); + me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "cl_velocityzoom", _("Velocity zoom"))); + me.TD(me, 1, 2, e = makeXonoticCheckBoxEx(3, 1, "cl_velocityzoom_type", _("Forward movement only"))); + setDependent(e, "cl_velocityzoom", 1, 1); me.TR(me); me.TDempty(me, 0.2); - me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, ZCTX(_("VZOOM^Speed")))); - me.TD(me, 1, 2, e = makeXonoticSlider(-1, 1, 0.2, "cl_velocityzoom")); - setDependent(e, "cl_velocityzoom_type", 1, 3); + me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, ZCTX(_("VZOOM^Factor")))); + setDependentAND(e, "cl_velocityzoom", 1, 1, "cl_velocityzoom_type", 1, 3); + me.TD(me, 1, 2, e = makeXonoticSlider(-1, 1, 0.1, "cl_velocityzoom_factor")); + setDependentAND(e, "cl_velocityzoom", 1, 1, "cl_velocityzoom_type", 1, 3); + me.TR(me); + me.TR(me); + //me.TDempty(me, 0.2); + me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "cl_reticle", _("Display reticle 2D overlay while zooming"))); + me.TR(me); + //me.TDempty(me, 0.2); + me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "cl_unpress_zoom_on_death", _("Release zoom when you die or respawn"))); + makeMulti(e, "cl_unpress_zoom_on_spawn"); + me.TR(me); + //me.TDempty(me, 0.2); + me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "cl_unpress_zoom_on_weapon_switch", _("Release zoom when you switch weapons"))); me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn); me.TD(me, 1, 3, e = makeXonoticRadioButton(1, "chase_active", "0", _("1st person perspective"))); @@ -110,6 +114,9 @@ void XonoticGameViewSettingsTab_fill(entity me) me.TD(me, 1, 2, e = makeXonoticSlider(10, 50, 1, "chase_up")); setDependent(e, "chase_active", 1, 1); me.TR(me); + me.TR(me); + me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_eventchase_death", _("Fade to third person perspective upon death"))); + setDependent(e, "chase_active", -1, 0); me.TR(me); me.TD(me, 1, 3, e = makeXonoticCheckBox(1, "cl_clippedspectating", _("Allow passing through walls while spectating"))); // todo: onclick, do sendcvar if connected diff --git a/qcsrc/menu/xonotic/dialog_settings_input.c b/qcsrc/menu/xonotic/dialog_settings_input.c index 3efc134c4..603a49ca2 100644 --- a/qcsrc/menu/xonotic/dialog_settings_input.c +++ b/qcsrc/menu/xonotic/dialog_settings_input.c @@ -3,7 +3,7 @@ CLASS(XonoticInputSettingsTab) EXTENDS(XonoticTab) METHOD(XonoticInputSettingsTab, fill, void(entity)) ATTRIB(XonoticInputSettingsTab, title, string, _("Input")) ATTRIB(XonoticInputSettingsTab, intendedWidth, float, 0.9) - ATTRIB(XonoticInputSettingsTab, rows, float, 16.5) + ATTRIB(XonoticInputSettingsTab, rows, float, 15.5) ATTRIB(XonoticInputSettingsTab, columns, float, 6.2) // added extra .2 for center space ENDCLASS(XonoticInputSettingsTab) entity makeXonoticInputSettingsTab(); @@ -86,7 +86,7 @@ void XonoticInputSettingsTab_fill(entity me) me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "m_accelerate", _("Enable built in mouse acceleration"))); - me.gotoRC(me, me.rows - 1, 0); + me.gotoRC(me, me.rows - 1.25, 0); me.TD(me, 1, me.columns, makeXonoticCommandButton(_("Apply immediately"), '0 0 0', "sendcvar cl_movement_track_canjump", COMMANDBUTTON_APPLY)); } #endif diff --git a/qcsrc/menu/xonotic/dialog_settings_misc.c b/qcsrc/menu/xonotic/dialog_settings_misc.c index fd467e71b..4d7419a0a 100644 --- a/qcsrc/menu/xonotic/dialog_settings_misc.c +++ b/qcsrc/menu/xonotic/dialog_settings_misc.c @@ -3,7 +3,7 @@ CLASS(XonoticMiscSettingsTab) EXTENDS(XonoticTab) METHOD(XonoticMiscSettingsTab, fill, void(entity)) ATTRIB(XonoticMiscSettingsTab, title, string, _("Misc")) ATTRIB(XonoticMiscSettingsTab, intendedWidth, float, 0.9) - ATTRIB(XonoticMiscSettingsTab, rows, float, 16.5) + ATTRIB(XonoticMiscSettingsTab, rows, float, 15.5) ATTRIB(XonoticMiscSettingsTab, columns, float, 6.2) ENDCLASS(XonoticMiscSettingsTab) entity makeXonoticMiscSettingsTab(); @@ -150,6 +150,5 @@ void XonoticMiscSettingsTab_fill(entity me) me.TD(me, 1, 2, e = makeXonoticButton(_("Advanced settings..."), '0 0 0')); e.onClick = DialogOpenButton_Click; e.onClickEntity = main.cvarsDialog; - me.TR(me); } #endif diff --git a/qcsrc/menu/xonotic/dialog_settings_user.c b/qcsrc/menu/xonotic/dialog_settings_user.c index 808904f5c..03f5ee80a 100644 --- a/qcsrc/menu/xonotic/dialog_settings_user.c +++ b/qcsrc/menu/xonotic/dialog_settings_user.c @@ -3,7 +3,7 @@ CLASS(XonoticUserSettingsTab) EXTENDS(XonoticTab) METHOD(XonoticUserSettingsTab, fill, void(entity)) ATTRIB(XonoticUserSettingsTab, title, string, _("User")) ATTRIB(XonoticUserSettingsTab, intendedWidth, float, 0.9) - ATTRIB(XonoticUserSettingsTab, rows, float, 16.5) + ATTRIB(XonoticUserSettingsTab, rows, float, 15.5) ATTRIB(XonoticUserSettingsTab, columns, float, 5) ENDCLASS(XonoticUserSettingsTab) entity makeXonoticUserSettingsTab(); @@ -26,8 +26,8 @@ void XonoticUserSettingsTab_fill(entity me) me.TR(me); me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Menu skins:"))); me.TR(me); - me.TD(me, me.rows - 2, 2, sk = makeXonoticSkinList()); - me.gotoRC(me, me.rows - 1, 0); + me.TD(me, me.rows - 2.5, 2, sk = makeXonoticSkinList()); + me.gotoRC(me, me.rows - 1.5, 0); me.TD(me, 1, 2, e = makeXonoticButton(_("Set skin"), '0 0 0')); e.onClick = SetSkin_Click; e.onClickEntity = sk; diff --git a/qcsrc/menu/xonotic/dialog_settings_video.c b/qcsrc/menu/xonotic/dialog_settings_video.c index bddaaab69..2af99e6d5 100644 --- a/qcsrc/menu/xonotic/dialog_settings_video.c +++ b/qcsrc/menu/xonotic/dialog_settings_video.c @@ -3,7 +3,7 @@ CLASS(XonoticVideoSettingsTab) EXTENDS(XonoticTab) METHOD(XonoticVideoSettingsTab, fill, void(entity)) ATTRIB(XonoticVideoSettingsTab, title, string, _("Video")) ATTRIB(XonoticVideoSettingsTab, intendedWidth, float, 0.9) - ATTRIB(XonoticVideoSettingsTab, rows, float, 16.5) + ATTRIB(XonoticVideoSettingsTab, rows, float, 15.5) ATTRIB(XonoticVideoSettingsTab, columns, float, 6.2) // added extra .2 for center space ATTRIB(XonoticVideoSettingsTab, name, string, "videosettings") ENDCLASS(XonoticVideoSettingsTab) @@ -139,7 +139,7 @@ void XonoticVideoSettingsTab_fill(entity me) setDependent(e, "vid_gl20", 1, 1); } - me.gotoRC(me, me.rows - 1, 0); + me.gotoRC(me, me.rows - 1.25, 0); me.TD(me, 1, me.columns, makeXonoticCommandButton(_("Apply immediately"), '0 0 0', "vid_width $_menu_vid_width; vid_height $_menu_vid_height; vid_pixelheight $_menu_vid_pixelheight; vid_desktopfullscreen $_menu_vid_desktopfullscreen; menu_cmd update_conwidths_before_vid_restart; vid_restart; menu_cmd sync", COMMANDBUTTON_APPLY)); } #endif