From: Samual Lenks Date: Sat, 1 Feb 2014 23:01:21 +0000 (-0500) Subject: Begin adding "sendCvars" option support to menu X-Git-Tag: xonotic-v0.8.0~139^2~1^2~16 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=983af2dde26bf2a028059f4fcb838f44f24dacbf;p=xonotic%2Fxonotic-data.pk3dir.git Begin adding "sendCvars" option support to menu --- diff --git a/qcsrc/menu/xonotic/checkbox.c b/qcsrc/menu/xonotic/checkbox.c index b1a1af196..631a430dc 100644 --- a/qcsrc/menu/xonotic/checkbox.c +++ b/qcsrc/menu/xonotic/checkbox.c @@ -15,6 +15,7 @@ CLASS(XonoticCheckBox) EXTENDS(CheckBox) ATTRIB(XonoticCheckBox, cvarName, string, string_null) METHOD(XonoticCheckBox, loadCvars, void(entity)) METHOD(XonoticCheckBox, saveCvars, void(entity)) + ATTRIB(XonoticCheckBox, sendCvars, float, 0) ATTRIB(XonoticCheckBox, alpha, float, SKINALPHA_TEXT) ATTRIB(XonoticCheckBox, disabledAlpha, float, SKINALPHA_DISABLED) @@ -97,5 +98,7 @@ void XonoticCheckBox_saveCvars(entity me) cvar_set(me.cvarName, ftos(me.yesValue)); else cvar_set(me.cvarName, ftos(me.noValue)); + + CheckSendCvars(me, me.cvarName); } #endif diff --git a/qcsrc/menu/xonotic/checkbox_string.c b/qcsrc/menu/xonotic/checkbox_string.c index ecafefed6..aeda757f0 100644 --- a/qcsrc/menu/xonotic/checkbox_string.c +++ b/qcsrc/menu/xonotic/checkbox_string.c @@ -15,6 +15,7 @@ CLASS(XonoticCheckBoxString) EXTENDS(CheckBox) ATTRIB(XonoticCheckBoxString, cvarName, string, string_null) METHOD(XonoticCheckBoxString, loadCvars, void(entity)) METHOD(XonoticCheckBoxString, saveCvars, void(entity)) + ATTRIB(XonoticCheckBoxString, sendCvars, float, 0) ATTRIB(XonoticCheckBoxString, alpha, float, SKINALPHA_TEXT) ATTRIB(XonoticCheckBoxString, disabledAlpha, float, SKINALPHA_DISABLED) @@ -65,5 +66,7 @@ void XonoticCheckBoxString_saveCvars(entity me) cvar_set(me.cvarName, me.yesString); else cvar_set(me.cvarName, me.noString); + + CheckSendCvars(me, me.cvarName); } #endif diff --git a/qcsrc/menu/xonotic/dialog_settings_game_view.c b/qcsrc/menu/xonotic/dialog_settings_game_view.c index 88588e560..3fd451265 100644 --- a/qcsrc/menu/xonotic/dialog_settings_game_view.c +++ b/qcsrc/menu/xonotic/dialog_settings_game_view.c @@ -24,14 +24,6 @@ entity makeXonoticGameViewSettingsTab() return me; } -void clippedspectatingclick(entity me, entity checkbox) -{ - if(gamestatus & (GAME_CONNECTED | GAME_ISSERVER)) - localcmd("sendcvar cl_clippedspectating\n"); - - CheckBox_Click(me, checkbox); -} - void XonoticGameViewSettingsTab_fill(entity me) { entity e; @@ -79,9 +71,6 @@ void XonoticGameViewSettingsTab_fill(entity me) me.TR(me); me.TR(me); me.TD(me, 1, 3, e = makeXonoticCheckBox(1, "cl_clippedspectating", _("Allow passing through walls while spectating"))); - e.onClick = clippedspectatingclick; - e.onClickEntity = e; - // todo: onclick, do sendcvar if connected me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn); me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Field of view:"))); diff --git a/qcsrc/menu/xonotic/inputbox.c b/qcsrc/menu/xonotic/inputbox.c index 78bab2bcc..5d7d17999 100644 --- a/qcsrc/menu/xonotic/inputbox.c +++ b/qcsrc/menu/xonotic/inputbox.c @@ -26,6 +26,7 @@ CLASS(XonoticInputBox) EXTENDS(InputBox) ATTRIB(XonoticInputBox, cvarName, string, string_null) METHOD(XonoticInputBox, loadCvars, void(entity)) METHOD(XonoticInputBox, saveCvars, void(entity)) + ATTRIB(XonoticInputBox, sendCvars, float, 0) METHOD(XonoticInputBox, keyDown, float(entity, float, float, float)) ATTRIB(XonoticInputBox, saveImmediately, float, 0) @@ -81,6 +82,7 @@ void XonoticInputBox_saveCvars(entity me) if (!me.cvarName) return; cvar_set(me.cvarName, me.text); + CheckSendCvars(me, me.cvarName); } float XonoticInputBox_keyDown(entity me, float key, float ascii, float shift) { diff --git a/qcsrc/menu/xonotic/slider.c b/qcsrc/menu/xonotic/slider.c index 0577207ca..331a226f4 100644 --- a/qcsrc/menu/xonotic/slider.c +++ b/qcsrc/menu/xonotic/slider.c @@ -16,6 +16,7 @@ CLASS(XonoticSlider) EXTENDS(Slider) ATTRIB(XonoticSlider, cvarName, string, string_null) METHOD(XonoticSlider, loadCvars, void(entity)) METHOD(XonoticSlider, saveCvars, void(entity)) + ATTRIB(XonoticSlider, sendCvars, float, 0) ATTRIB(XonoticSlider, alpha, float, SKINALPHA_TEXT) ATTRIB(XonoticSlider, disabledAlpha, float, SKINALPHA_DISABLED) @@ -69,5 +70,7 @@ void XonoticSlider_saveCvars(entity me) return; cvar_set(me.cvarName, ftos(me.value)); + + CheckSendCvars(me, me.cvarName); } #endif diff --git a/qcsrc/menu/xonotic/textslider.c b/qcsrc/menu/xonotic/textslider.c index a4448f7de..844b3efed 100644 --- a/qcsrc/menu/xonotic/textslider.c +++ b/qcsrc/menu/xonotic/textslider.c @@ -17,6 +17,7 @@ CLASS(XonoticTextSlider) EXTENDS(TextSlider) ATTRIB(XonoticTextSlider, cvarName, string, string_null) METHOD(XonoticTextSlider, loadCvars, void(entity)) METHOD(XonoticTextSlider, saveCvars, void(entity)) + ATTRIB(XonoticTextSlider, sendCvars, float, 0) ATTRIB(XonoticTextSlider, alpha, float, SKINALPHA_TEXT) ATTRIB(XonoticTextSlider, disabledAlpha, float, SKINALPHA_DISABLED) @@ -84,6 +85,7 @@ void XonoticTextSlider_saveCvars(entity me) { // this is a special case to allow spaces in the identifiers cvar_set(argv(0), me.getIdentifier(me)); + CheckSendCvars(me, argv(0)); } else { @@ -92,12 +94,18 @@ void XonoticTextSlider_saveCvars(entity me) if(m == n + 1) { for(i = 0; i < n; ++i) + { cvar_set(argv(i), argv(n)); + CheckSendCvars(me, argv(i)); + } } else if(m == n * 2) { for(i = 0; i < n; ++i) + { cvar_set(argv(i), argv(i + n)); + CheckSendCvars(me, argv(i)); + } } else error("XonoticTextSlider: invalid identifier ", me.getIdentifier(me), " does not match cvar list ", me.cvarName); diff --git a/qcsrc/menu/xonotic/util.qc b/qcsrc/menu/xonotic/util.qc index 222b862ea..4fbe824ec 100644 --- a/qcsrc/menu/xonotic/util.qc +++ b/qcsrc/menu/xonotic/util.qc @@ -92,6 +92,8 @@ void saveCvarsMulti(entity me) cvar_set(substring(argv(i), 1, strlen(argv(i))), ((s == "0") ? "1" : "0")); else cvar_set(argv(i), s); + + CheckSendCvars(me, argv(i)); } } void makeMulti(entity e, string otherCvars) @@ -766,3 +768,15 @@ void dialog_hudpanel_common_notoggle(entity me, string panelname) e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5))); e.configureXonoticTextSliderValues(e); } + +void CheckSendCvars(entity me, string cvarnamestring) +{ + if(me.sendCvars) + { + printf("Sending cvar: %s -> %s\n", cvarnamestring, cvar_string(cvarnamestring)); + if(gamestatus & (GAME_CONNECTED | GAME_ISSERVER)) + { + cmd(sprintf("\nsendcvar %s\n", cvarnamestring)); + } + } +} diff --git a/qcsrc/menu/xonotic/util.qh b/qcsrc/menu/xonotic/util.qh index 3371dd811..33ecb8c4d 100644 --- a/qcsrc/menu/xonotic/util.qh +++ b/qcsrc/menu/xonotic/util.qh @@ -49,3 +49,5 @@ string _Nex_ExtResponseSystem_PromotedServers; float _Nex_ExtResponseSystem_PromotedServersNeedsRefresh; string _Nex_ExtResponseSystem_RecommendedServers; float _Nex_ExtResponseSystem_RecommendedServersNeedsRefresh; + +void CheckSendCvars(entity me, string cvarnamestring);