]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/menu/xonotic/dialog_firstrun.qc
menu: #undef IMPLEMENTATION
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / dialog_firstrun.qc
1 #include "dialog_firstrun.qh"
2
3 #include "textlabel.qh"
4 #include "inputbox.qh"
5 #include "languagelist.qh"
6 #include "radiobutton.qh"
7 #include "colorpicker.qh"
8 #include "charmap.qh"
9 #include "commandbutton.qh"
10
11 float CheckFirstRunButton(entity me)
12 {
13         if(cvar_string("_cl_name") != cvar_defstring("_cl_name"))
14                 return 1;
15
16         if(cvar_string("_menu_prvm_language") != prvm_language)
17                 return 1; // OK will then reopen the dialog in another language
18
19         if(cvar_string("cl_allow_uid2name") != "-1")
20                 return 1;
21
22         return 0;
23 }
24
25 void firstRun_setLanguage(entity me)
26 {
27         if(prvm_language != cvar_string("_menu_prvm_language"))
28                 localcmd("\nprvm_language \"$_menu_prvm_language\"; saveconfig; menu_restart\n");
29 }
30
31 void XonoticFirstRunDialog_fill(entity me)
32 {
33         entity e;
34         entity label, box;
35
36         me.TR(me);
37         me.TR(me);
38                 me.TDempty(me, 1);
39                 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.")));
40                 e.allowWrap = 1;
41         me.TR(me);
42
43         me.TR(me);
44         me.TR(me);
45                 me.TD(me, 1, 0.5, me.playerNameLabel = makeXonoticTextLabel(0, _("Name:")));
46                         me.playerNameLabelAlpha = me.playerNameLabel.alpha;
47                 me.TD(me, 1, 3.25, label = makeXonoticTextLabel(0, string_null));
48                         label.allowCut = 1;
49                         label.allowColors = 1;
50                         label.alpha = 1;
51         me.TR(me);
52                 me.TD(me, 1, 3.75, box = makeXonoticInputBox_T(1, "_cl_name",
53                         _("Name under which you will appear in the game")));
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 = 0;  // Sorry, can't do this, it spams "name" commands.
57                         box.enableClearButton = 0;
58                         label.textEntity = box;
59         me.TR(me);
60                 me.TD(me, 5, 1.25, e = makeXonoticColorpicker(box));
61                 me.TD(me, 5, 2.5, e = makeXonoticCharmap(box));
62         me.TR(me);
63         me.TR(me);
64         me.TR(me);
65         me.TR(me);
66
67         me.gotoRC(me, 3, 4); me.setFirstColumn(me, me.currentColumn);
68         me.TR(me);
69                 me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Text language:")));
70         me.TR(me);
71                 me.TD(me, 6, 2, e = makeXonoticLanguageList());
72                         e.name = "languageselector_firstrun";
73                         e.setLanguage = firstRun_setLanguage;
74         me.TR(me);
75         me.TR(me);
76
77         me.gotoRC(me, me.rows - 4, 0);
78         me.TD(me, 1, me.columns, e = makeXonoticTextLabel(0.5, _("Allow player statistics to use your nickname at stats.xonotic.org?")));
79
80         me.gotoRC(me, me.rows - 3, 0);
81         me.TDempty(me, 1.5);
82         me.TD(me, 1, 1, e = makeXonoticRadioButton(1, "cl_allow_uid2name", "1", _("Yes")));
83         me.TD(me, 1, 1, e = makeXonoticRadioButton(1, "cl_allow_uid2name", "0", _("No")));
84         me.TD(me, 1, 1, e = makeXonoticRadioButton(1, "cl_allow_uid2name", "-1", _("Undecided")));
85
86         // because of the language selector, this is a menu_restart!
87         me.gotoRC(me, me.rows - 1, 0);
88         me.TD(me, 1, me.columns, e = makeXonoticCommandButton(_("Save settings"), '0 0 0', "prvm_language \"$_menu_prvm_language\"; saveconfig; menu_restart", COMMANDBUTTON_APPLY));
89                 setDependentWeird(e, CheckFirstRunButton);
90 }