]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Begin adding "sendCvars" option support to menu
authorSamual Lenks <samual@xonotic.org>
Sat, 1 Feb 2014 23:01:21 +0000 (18:01 -0500)
committerSamual Lenks <samual@xonotic.org>
Sat, 1 Feb 2014 23:01:21 +0000 (18:01 -0500)
qcsrc/menu/xonotic/checkbox.c
qcsrc/menu/xonotic/checkbox_string.c
qcsrc/menu/xonotic/dialog_settings_game_view.c
qcsrc/menu/xonotic/inputbox.c
qcsrc/menu/xonotic/slider.c
qcsrc/menu/xonotic/textslider.c
qcsrc/menu/xonotic/util.qc
qcsrc/menu/xonotic/util.qh

index b1a1af1966dfd5b44f7bf2f26910443f09cc84c5..631a430dcc455947d8c63e83e0e24297ba5dd7ae 100644 (file)
@@ -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
index ecafefed646811efc4749056e41ec4812a9289a6..aeda757f0e83718cbca511cace58aa2c9fc04d85 100644 (file)
@@ -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
index 88588e560f32832deafef5ac58326c9b7b6718a0..3fd451265a5ace7bf43045e7cf84f14c7be7a606 100644 (file)
@@ -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:")));
index 78bab2bccb33418b146c79e75cf08fc4722211f2..5d7d179995028719bc107d1158edcd91678bc1e8 100644 (file)
@@ -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)
 {
index 0577207ca284bb56baf90ef001c83abb6c48975a..331a226f45c242fb1c75f803afddad1d01fbca0d 100644 (file)
@@ -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
index a4448f7debe19757ae7cc70ce21c3b61c0df3a8d..844b3efed531b4399d5cbce3bee17e01e37e1e70 100644 (file)
@@ -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);
index 222b862ea558c6373d00721a148290c2b9c33f81..4fbe824ece8530c3d3176e4d60c02f4063be1bdc 100644 (file)
@@ -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));
+               }
+       }
+}
index 3371dd8114637a90a4735b7204c7e59d87047e08..33ecb8c4d4c984754975c1b3ea1d5a8267da1c77 100644 (file)
@@ -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);