1 #include "dialog_welcome.qh"
4 #include "textlabel.qh"
6 #include "radiobutton.qh"
7 #include "commandbutton.qh"
10 void welcomeDialog_resetStrings(entity me)
12 strcpy(me.serverinfo_name, _("Welcome"));
13 strcpy(me.serverinfo_MOTD, "");
16 float XonoticWelcomeDialog_keyDown(entity me, float key, float ascii, float shift)
26 return SUPER(XonoticWelcomeDialog).keyDown(me, key, ascii, shift);
30 // the same implentation in mousePress apparently works, but for some reason if you try to open
31 // the dialog again it doesn't show up and requires opening it a seconds time to show up
32 bool XonoticWelcomeDialog_mouseRelease(entity me, vector pos)
34 if (pos.x >= 0 && pos.y >= 0 && pos.x < 1 && pos.y < 1)
36 return SUPER(XonoticWelcomeDialog).mouseRelease(me, pos);
42 void XonoticWelcomeDialog_destroy(entity me)
44 cvar_set("_menu_welcome_dialog_available", "0");
47 void XonoticWelcomeDialog_readInputArgs(entity me, int argsbuf)
51 welcomeDialog_resetStrings(me);
53 while((s = bufstr_get(argsbuf, i)) != "")
56 strcpy(me.serverinfo_name, bufstr_get(argsbuf, ++i));
57 else if(s == "WELCOME")
58 strcpy(me.serverinfo_MOTD, bufstr_get(argsbuf, ++i));
61 welcomeDialog_resetStrings(me);
66 //me.serverinfo_name_ent.setText(me.serverinfo_name_ent, me.serverinfo_name);
67 me.serverinfo_MOTD_ent.setText(me.serverinfo_MOTD_ent, me.serverinfo_MOTD);
68 me.frame.setText(me.frame, me.serverinfo_name);
71 void XonoticWelcomeDialog_draw(entity me)
73 SUPER(XonoticWelcomeDialog).draw(me);
75 if (!(gamestatus & (GAME_ISSERVER | GAME_CONNECTED)))
78 if(me.serverinfo_MOTD == "" && gamestatus & (GAME_CONNECTED | GAME_ISSERVER))
80 // if serverinfo_MOTD is empty while connected it means we are connected to an old server
81 // in this case show the csqc welcome message and instantly close the dialog
82 localcmd("\n+show_info0; defer 2 -show_info0\n");
87 void XonoticWelcomeDialog_fill(entity me)
89 registercvar("_menu_welcome_dialog_available", "0", 0);
90 cvar_set("_menu_welcome_dialog_available", "1");
92 me.frame.allowColors = true; // allow color codes in the title
97 me.TD(me, me.rows - 1, me.columns, me.serverinfo_MOTD_ent = makeXonoticTextBox());
98 me.serverinfo_MOTD_ent.align = 0.5;
99 me.serverinfo_MOTD_ent.allowColors = true;
100 me.serverinfo_MOTD_ent.escapedNewLines = true;
101 me.gotoRC(me, me.rows - 1, 0);
102 me.TD(me, 1, me.columns, e = makeXonoticButton(_("OK"), '0 0 0'));
103 e.onClick = Dialog_Close;
104 e.onClickEntity = me;
105 e.preferredFocusPriority = 1;