fix display of the welcome text
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / dialog_firstrun.c
index 5b3e0d1077698f1c8155a013211ce166802a9819..9ab7eb6da59d5cd98e8deb84b7daca53b091b319 100644 (file)
@@ -4,7 +4,7 @@ CLASS(XonoticFirstRunDialog) EXTENDS(XonoticRootDialog)
        ATTRIB(XonoticFirstRunDialog, title, string, _("Welcome"))
        ATTRIB(XonoticFirstRunDialog, color, vector, SKINCOLOR_DIALOG_FIRSTRUN)
        ATTRIB(XonoticFirstRunDialog, intendedWidth, float, 0.6)
-       ATTRIB(XonoticFirstRunDialog, rows, float, 11)
+       ATTRIB(XonoticFirstRunDialog, rows, float, 16)
        ATTRIB(XonoticFirstRunDialog, columns, float, 3)
        ATTRIB(XonoticFirstRunDialog, name, string, "FirstRun")
        ATTRIB(XonoticFirstRunDialog, playerNameLabel, entity, NULL)
@@ -15,14 +15,34 @@ ENDCLASS(XonoticFirstRunDialog)
 #endif
 
 #ifdef IMPLEMENTATION
+float CheckFirstRunButton(entity me)
+{
+       if(cvar_string("_cl_name") != "Player")
+               return 1;
+       if(cvar_string("prvm_language") != prvm_language)
+               return 1; // OK will then reopen the dialog in another language
+       return 0;
+}
+
 void XonoticFirstRunDialog_fill(entity me)
 {
        entity e;
        entity label, box;
+
        me.TR(me);
-               me.TD(me, 2, 3, e = makeXonoticTextLabel(0, _("Please answer a few initial questions to enhance the game experience.")));
+               me.TD(me, 2, 3, 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.")));
                e.allowWrap = 1;
        me.TR(me);
+
+       me.TR(me);
+               me.TD(me, 1, 3, e = makeXonoticTextLabel(0, _("Text language:")));
+       me.TR(me);
+               me.TD(me, 3, 3, e = makeXonoticLanguageList());
+                       e.name = "languageselector_firstrun";
+                       e.doubleClickCommand = "saveconfig; menu_restart; togglemenu";
+       me.TR(me);
+       me.TR(me);
+
        me.TR(me);
                me.TD(me, 1, 0.5, me.playerNameLabel = makeXonoticTextLabel(0, _("Name:")));
                        me.playerNameLabelAlpha = me.playerNameLabel.alpha;
@@ -34,6 +54,7 @@ void XonoticFirstRunDialog_fill(entity me)
                me.TD(me, 1, 3.0, box = makeXonoticInputBox(1, "_cl_name"));
                        box.forbiddenCharacters = "\r\n\\\"$"; // don't care, isn't getting saved
                        box.maxLength = -127; // negative means encoded length in bytes
+                       box.saveImmediately = 1;
                        label.textEntity = box;
        me.TR(me);
                me.TD(me, 5, 1, e = makeXonoticColorpicker(box));
@@ -42,12 +63,10 @@ void XonoticFirstRunDialog_fill(entity me)
        me.TR(me);
        me.TR(me);
        me.TR(me);
-       me.TR(me);
-       me.TR(me);
 
        // because of the language selector, this is a menu_restart!
        me.gotoRC(me, me.rows - 1, 0);
                me.TD(me, 1, me.columns, e = makeXonoticCommandButton(_("Save settings"), '0 0 0', "saveconfig; menu_restart; togglemenu", COMMANDBUTTON_APPLY));
-               setDependentStringNotEqual(e, "_cl_name", "Player");
+               setDependentWeird(e, CheckFirstRunButton);
 }
 #endif