]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/menu/xonotic/dialog_firstrun.qc
Merge branch 'master' into terencehill/translation_system_improvements_2
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / dialog_firstrun.qc
1 #ifndef DIALOG_FIRSTRUN_H
2 #define DIALOG_FIRSTRUN_H
3 #include "rootdialog.qc"
4 CLASS(XonoticFirstRunDialog, XonoticRootDialog)
5         METHOD(XonoticFirstRunDialog, fill, void(entity)); // to be overridden by user to fill the dialog with controls
6         ATTRIB(XonoticFirstRunDialog, title, string, _("Welcome"))
7         ATTRIB(XonoticFirstRunDialog, color, vector, SKINCOLOR_DIALOG_FIRSTRUN)
8         ATTRIB(XonoticFirstRunDialog, intendedWidth, float, 0.7)
9         ATTRIB(XonoticFirstRunDialog, rows, float, 16)
10         ATTRIB(XonoticFirstRunDialog, columns, float, 6)
11         ATTRIB(XonoticFirstRunDialog, name, string, "FirstRun")
12         ATTRIB(XonoticFirstRunDialog, playerNameLabel, entity, NULL)
13         ATTRIB(XonoticFirstRunDialog, playerNameLabelAlpha, float, 0)
14
15         ATTRIB(XonoticFirstRunDialog, closable, float, 0)
16 ENDCLASS(XonoticFirstRunDialog)
17 #endif
18
19 #ifdef IMPLEMENTATION
20 float CheckFirstRunButton(entity me)
21 {
22         if(cvar_string("_cl_name") != cvar_defstring("_cl_name"))
23                 return 1;
24
25         if(cvar_string("_menu_prvm_language") != prvm_language)
26                 return 1; // OK will then reopen the dialog in another language
27
28         if(cvar_string("cl_allow_uid2name") != "-1")
29                 return 1;
30
31         return 0;
32 }
33
34 void firstRun_setLanguage(entity me)
35 {
36         if(prvm_language != cvar_string("_menu_prvm_language"))
37                 localcmd("\nprvm_language \"$_menu_prvm_language\"; saveconfig; menu_restart\n");
38 }
39
40 void XonoticFirstRunDialog_fill(entity me)
41 {
42         entity e;
43         entity label, box;
44
45         me.TR(me);
46         me.TR(me);
47                 me.TDempty(me, 1);
48                 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.")));
49                 e.allowWrap = 1;
50         me.TR(me);
51
52         me.TR(me);
53         me.TR(me);
54                 me.TD(me, 1, 0.5, me.playerNameLabel = makeXonoticTextLabel(0, _("Name:")));
55                         me.playerNameLabelAlpha = me.playerNameLabel.alpha;
56                 me.TD(me, 1, 3.25, label = makeXonoticTextLabel(0, string_null));
57                         label.allowCut = 1;
58                         label.allowColors = 1;
59                         label.alpha = 1;
60         me.TR(me);
61                 me.TD(me, 1, 3.75, box = makeXonoticInputBox_T(1, "_cl_name",
62                         _("Name under which you will appear in the game")));
63                         box.forbiddenCharacters = "\r\n\\\"$"; // don't care, isn't getting saved
64                         box.maxLength = -127; // negative means encoded length in bytes
65                         box.saveImmediately = 0;  // Sorry, can't do this, it spams "name" commands.
66                         box.enableClearButton = 0;
67                         label.textEntity = box;
68         me.TR(me);
69                 me.TD(me, 5, 1.25, e = makeXonoticColorpicker(box));
70                 me.TD(me, 5, 2.5, e = makeXonoticCharmap(box));
71         me.TR(me);
72         me.TR(me);
73         me.TR(me);
74         me.TR(me);
75
76         me.gotoRC(me, 3, 4); me.setFirstColumn(me, me.currentColumn);
77         me.TR(me);
78                 me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Text language:")));
79         me.TR(me);
80                 me.TD(me, 6, 2, e = makeXonoticLanguageList());
81                         e.name = "languageselector_firstrun";
82                         e.setLanguage = firstRun_setLanguage;
83         me.TR(me);
84         me.TR(me);
85
86         me.gotoRC(me, me.rows - 4, 0);
87         me.TD(me, 1, me.columns, e = makeXonoticTextLabel(0.5, _("Allow player statistics to use your nickname at stats.xonotic.org?")));
88
89         me.gotoRC(me, me.rows - 3, 0);
90         me.TDempty(me, 1.5);
91         me.TD(me, 1, 1, e = makeXonoticRadioButton(1, "cl_allow_uid2name", "1", _("Yes")));
92         me.TD(me, 1, 1, e = makeXonoticRadioButton(1, "cl_allow_uid2name", "0", _("No")));
93         me.TD(me, 1, 1, e = makeXonoticRadioButton(1, "cl_allow_uid2name", "-1", _("Undecided")));
94
95         // because of the language selector, this is a menu_restart!
96         me.gotoRC(me, me.rows - 1, 0);
97         me.TD(me, 1, me.columns, e = makeXonoticCommandButton(_("Save settings"), '0 0 0', "prvm_language \"$_menu_prvm_language\"; saveconfig; menu_restart", COMMANDBUTTON_APPLY));
98                 setDependentWeird(e, CheckFirstRunButton);
99 }
100 #endif