]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/xonotic/dialog_multiplayer_profile.qc
menu: #undef IMPLEMENTATION
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / dialog_multiplayer_profile.qc
index 1adfb015eff1d85e192034eab19ce93c93f351cb..68154221878670c8c7bcdd642bf5a6c0f07d24fa 100644 (file)
@@ -1,22 +1,21 @@
-#ifdef INTERFACE
-CLASS(XonoticProfileTab) EXTENDS(XonoticTab)
-       METHOD(XonoticProfileTab, fill, void(entity))
-       METHOD(XonoticProfileTab, draw, void(entity))
-       ATTRIB(XonoticProfileTab, title, string, _("Profile"))
-       ATTRIB(XonoticProfileTab, intendedWidth, float, 0.9)
-       ATTRIB(XonoticProfileTab, rows, float, 23)
-       ATTRIB(XonoticProfileTab, columns, float, 6.1) // added extra .2 for center space
-       ATTRIB(XonoticProfileTab, playerNameLabel, entity, NULL)
-       ATTRIB(XonoticProfileTab, playerNameLabelAlpha, float, SKINALPHA_HEADER)
-ENDCLASS(XonoticProfileTab)
-entity makeXonoticProfileTab();
-#endif
+#include "dialog_multiplayer_profile.qh"
+
+#include "playermodel.qh"
+#include "statslist.qh"
+#include "languagelist.qh"
+#include "textlabel.qh"
+#include "commandbutton.qh"
+#include "inputbox.qh"
+#include "colorpicker.qh"
+#include "charmap.qh"
+#include "colorbutton.qh"
+#include "checkbox.qh"
+#include "radiobutton.qh"
 
-#ifdef IMPLEMENTATION
 entity makeXonoticProfileTab()
 {
        entity me;
-       me = spawnXonoticProfileTab();
+       me = NEW(XonoticProfileTab);
        me.configureDialog(me);
        return me;
 }
@@ -32,6 +31,15 @@ void XonoticProfileTab_fill(entity me)
 {
        entity e, pms, label, box;
        float i;
+       entity profileApplyButton = makeXonoticCommandButton(_("Apply immediately"), '0 0 0',
+               "color -1 -1;"
+               "name \"$_cl_name\";"
+               "playermodel $_cl_playermodel;"
+               "playerskin $_cl_playerskin;"
+               "sendcvar cl_allow_uidtracking;"
+               "sendcvar cl_allow_uid2name;"
+               , COMMANDBUTTON_APPLY);
+       profileApplyButton.disableOnClick = true;
 
        // ==============
        //  NAME SECTION
@@ -48,11 +56,13 @@ void XonoticProfileTab_fill(entity me)
                        label.fontSize = SKINFONTSIZE_TITLE;
 
        me.gotoRC(me, 2.5, 0);
-               me.TD(me, 1, 3.0, box = makeXonoticInputBox(1, "_cl_name"));
+               me.TD(me, 1, 3.0, box = makeXonoticInputBox_T(1, "_cl_name",
+                       _("Name under which you will appear in the game")));
                        box.forbiddenCharacters = "\r\n\\\"$"; // don't care, isn't getting saved
                        box.maxLength = -127; // negative means encoded length in bytes
-                       box.saveImmediately = 1;
+                       box.saveImmediately = 0;  // Sorry, can't do this, it spams "name" commands.
                        box.enableClearButton = 0;
+                       box.applyButton = profileApplyButton;
                        label.textEntity = box;
        me.TR(me);
                me.TD(me, 5, 1, e = makeXonoticColorpicker(box));
@@ -73,10 +83,12 @@ void XonoticProfileTab_fill(entity me)
                me.TD(me, 1, 0.3, e = makeXonoticButton("<<", '0 0 0'));
                        e.onClick = PlayerModelSelector_Prev_Click;
                        e.onClickEntity = pms;
+                       e.applyButton = profileApplyButton;
                me.TD(me, 11.5, 1.4, pms);
                me.TD(me, 1, 0.3, e = makeXonoticButton(">>", '0 0 0'));
                        e.onClick = PlayerModelSelector_Next_Click;
                        e.onClickEntity = pms;
+                       e.applyButton = profileApplyButton;
 
        //me.setFirstColumn(me, me.currentColumn + 2); // MODEL LEFT, COLOR RIGHT
        me.gotoRC(me, me.currentRow, 0); me.setFirstColumn(me, me.currentColumn); // MODEL RIGHT, COLOR LEFT
@@ -87,6 +99,7 @@ void XonoticProfileTab_fill(entity me)
                        if(mod(i, 5) == 0)
                                me.TR(me);
                        me.TDNoMargin(me, 1, 0.2, e = makeXonoticColorButton(1, 0, i), '0 1 0');
+                               e.applyButton = profileApplyButton;
                }
        me.TR(me);
        me.TR(me);
@@ -96,6 +109,7 @@ void XonoticProfileTab_fill(entity me)
                        if(mod(i, 5) == 0)
                                me.TR(me);
                        me.TDNoMargin(me, 1, 0.2, e = makeXonoticColorButton(2, 1, i), '0 1 0');
+                               e.applyButton = profileApplyButton;
                }
 
        // ====================
@@ -109,10 +123,12 @@ void XonoticProfileTab_fill(entity me)
        me.TR(me);
                me.TDempty(me, 0.25);
                me.TD(me, 1, 2.5, e = makeXonoticCheckBox(0, "cl_allow_uidtracking", _("Allow player statistics to track your client")));
+                       e.applyButton = profileApplyButton;
        me.TR(me);
                me.TDempty(me, 0.25);
                me.TD(me, 1, 2.5, e = makeXonoticCheckBox(0, "cl_allow_uid2name", _("Allow player statistics to use your nickname")));
-               setDependent(e, "cl_allow_uidtracking", 1, 1);
+                       e.applyButton = profileApplyButton;
+                       setDependent(e, "cl_allow_uidtracking", 1, 1);
        me.gotoRC(me, 4, 3.1); // TOP RIGHT
        //me.gotoRC(me, 12.5, 3.1); // BOTTOM RIGHT
        //me.gotoRC(me, 12.5, 0); // BOTTOM LEFT
@@ -142,9 +158,9 @@ void XonoticProfileTab_fill(entity me)
        #if 0
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Gender:")));
                me.TD(me, 1, 2, e = makeXonoticTextSlider("_cl_gender"));
-                       e.addValue(e, ZCTX(_("GENDER^Undisclosed")), "0");
-                       e.addValue(e, ZCTX(_("GENDER^Female")), "1");
-                       e.addValue(e, ZCTX(_("GENDER^Male")), "2");
+                       e.addValue(e, _("Undisclosed"), "0");
+                       e.addValue(e, _("Female"), "1");
+                       e.addValue(e, _("Male"), "2");
                        e.configureXonoticTextSliderValues(e);
        #else
                        me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Gender")));
@@ -159,6 +175,5 @@ void XonoticProfileTab_fill(entity me)
        #endif
 
        me.gotoRC(me, me.rows - 1, 0);
-               me.TD(me, 1, me.columns, makeXonoticCommandButton(_("Apply immediately"), '0 0 0', "color -1 -1;name \"$_cl_name\";sendcvar cl_weaponpriority;sendcvar cl_autoswitch;sendcvar cl_forceplayermodels;sendcvar cl_forceplayermodelsfromxonotic;playermodel $_cl_playermodel;playerskin $_cl_playerskin", COMMANDBUTTON_APPLY));
+               me.TD(me, 1, me.columns, profileApplyButton);
 }
-#endif