]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/menu/xonotic/dialog_firstrun.c
Update Luma simple items. Minor color changes
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / dialog_firstrun.c
1 #ifdef INTERFACE
2 CLASS(XonoticFirstRunDialog) EXTENDS(XonoticRootDialog)
3         METHOD(XonoticFirstRunDialog, fill, void(entity)) // to be overridden by user to fill the dialog with controls
4         ATTRIB(XonoticFirstRunDialog, title, string, _("Welcome"))
5         ATTRIB(XonoticFirstRunDialog, color, vector, SKINCOLOR_DIALOG_FIRSTRUN)
6         ATTRIB(XonoticFirstRunDialog, intendedWidth, float, 0.7)
7         ATTRIB(XonoticFirstRunDialog, rows, float, 16)
8         ATTRIB(XonoticFirstRunDialog, columns, float, 6)
9         ATTRIB(XonoticFirstRunDialog, name, string, "FirstRun")
10         ATTRIB(XonoticFirstRunDialog, playerNameLabel, entity, NULL)
11         ATTRIB(XonoticFirstRunDialog, playerNameLabelAlpha, float, 0)
12
13         ATTRIB(XonoticFirstRunDialog, closable, float, 0)
14 ENDCLASS(XonoticFirstRunDialog)
15 #endif
16
17 #ifdef IMPLEMENTATION
18 float CheckFirstRunButton(entity me)
19 {
20         if(cvar_string("_cl_name") != "Player")
21                 return 1;
22
23         if(cvar_string("_menu_prvm_language") != prvm_language)
24                 return 1; // OK will then reopen the dialog in another language
25
26         if(cvar_string("cl_allow_uid2name") != "-1")
27                 return 1;
28
29         return 0;
30 }
31
32 void XonoticFirstRunDialog_fill(entity me)
33 {
34         entity e;
35         entity label, box;
36
37         me.TR(me);
38         me.TR(me);
39                 me.TDempty(me, 1);
40                 me.TD(me, 2, 4, e = makeXonoticTextLabel(0, _("Welcome to Xonotic, please select your language preference and enter your player name to get started.  You can change these options later through the menu system.")));
41                 e.allowWrap = 1;
42         me.TR(me);
43
44         me.TR(me);
45         me.TR(me);
46                 me.TD(me, 1, 0.5, me.playerNameLabel = makeXonoticTextLabel(0, _("Name:")));
47                         me.playerNameLabelAlpha = me.playerNameLabel.alpha;
48                 me.TD(me, 1, 3.25, label = makeXonoticTextLabel(0, string_null));
49                         label.allowCut = 1;
50                         label.allowColors = 1;
51                         label.alpha = 1;
52         me.TR(me);
53                 me.TD(me, 1, 3.75, box = makeXonoticInputBox(1, "_cl_name"));
54                         box.forbiddenCharacters = "\r\n\\\"$"; // don't care, isn't getting saved
55                         box.maxLength = -127; // negative means encoded length in bytes
56                         box.saveImmediately = 1;
57                         label.textEntity = box;
58         me.TR(me);
59                 me.TD(me, 5, 1.25, e = makeXonoticColorpicker(box));
60                 me.TD(me, 5, 2.5, e = makeXonoticCharmap(box));
61         me.TR(me);
62         me.TR(me);
63         me.TR(me);
64         me.TR(me);
65
66         me.gotoRC(me, 3, 4); me.setFirstColumn(me, me.currentColumn);
67         me.TR(me);
68                 me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Text language:")));
69         me.TR(me);
70                 me.TD(me, 6, 2, e = makeXonoticLanguageList());
71                         e.name = "languageselector_firstrun";
72                         e.doubleClickCommand = "prvm_language \"$_menu_prvm_language\"; saveconfig; menu_restart";
73         me.TR(me);
74         me.TR(me);
75
76         me.gotoRC(me, me.rows - 4, 0);
77         me.TD(me, 1, me.columns, e = makeXonoticTextLabel(0.5, _("Allow player statistics to use your nickname at stats.xonotic.org?")));
78
79         me.gotoRC(me, me.rows - 3, 0);
80         me.TDempty(me, 1.5);
81         me.TD(me, 1, 1, e = makeXonoticRadioButton(1, "cl_allow_uid2name", "1", ZCTX(_("ALWU2N^Yes"))));
82         me.TD(me, 1, 1, e = makeXonoticRadioButton(1, "cl_allow_uid2name", "0", ZCTX(_("ALWU2N^No"))));
83         me.TD(me, 1, 1, e = makeXonoticRadioButton(1, "cl_allow_uid2name", "-1", ZCTX(_("ALWU2N^Undecided"))));
84
85         // because of the language selector, this is a menu_restart!
86         me.gotoRC(me, me.rows - 1, 0);
87         me.TD(me, 1, me.columns, e = makeXonoticCommandButton(_("Save settings"), '0 0 0', "prvm_language \"$_menu_prvm_language\"; saveconfig; menu_restart", COMMANDBUTTON_APPLY));
88                 setDependentWeird(e, CheckFirstRunButton);
89 }
90 #endif