#include "dialog_welcome.qh" #include "image.qh" #include "textlabel.qh" #include "textbox.qh" #include "radiobutton.qh" #include "commandbutton.qh" #include "slider.qh" void welcomeDialog_resetStrings(entity me) { if(me.serverinfo_name) strunzone(me.serverinfo_name); me.serverinfo_name = strzone(_("")); if(me.serverinfo_ip) strunzone(me.serverinfo_ip); me.serverinfo_ip = strzone(_("")); if(me.serverinfo_MOTD) strunzone(me.serverinfo_MOTD); me.serverinfo_MOTD = strzone(_("")); if(me.serverinfo_pic) strunzone(me.serverinfo_pic); me.serverinfo_pic = strzone("no_banner"); } void XonoticWelcomeDialog_configureDialog(entity me) { welcomeDialog_resetStrings(me); SUPER(XonoticWelcomeDialog).configureDialog(me); } void XonoticWelcomeDialog_readInputArgs(entity me, float argsbuf) { int i = 0; string s; welcomeDialog_resetStrings(me); if(argsbuf >= 0) while((s = bufstr_get(argsbuf, i)) != "") { if(s == "name") { if(me.serverinfo_name) strunzone(me.serverinfo_name); me.serverinfo_name = strzone(bufstr_get(argsbuf, i + 1)); ++i; } else if(s == "ip") { if(me.serverinfo_ip) strunzone(me.serverinfo_ip); me.serverinfo_ip = strzone(bufstr_get(argsbuf, i + 1)); ++i; } else if(s == "motd") { if(me.serverinfo_MOTD) strunzone(me.serverinfo_MOTD); me.serverinfo_MOTD = strzone(bufstr_get(argsbuf, i + 1)); ++i; } else if(s == "pic") { if(me.serverinfo_pic) strunzone(me.serverinfo_pic); me.serverinfo_pic = strzone(strcat("/", bufstr_get(argsbuf, i + 1))); ++i; } ++i; } me.serverinfo_name_ent.setText(me.serverinfo_name_ent, me.serverinfo_name); me.serverinfo_ip_ent.setText(me.serverinfo_ip_ent, me.serverinfo_ip); me.serverinfo_MOTD_ent.setText(me.serverinfo_MOTD_ent, me.serverinfo_MOTD); if(me.serverinfo_pic_ent.src) strunzone(me.serverinfo_pic_ent.src); me.serverinfo_pic_ent.src = strzone(me.serverinfo_pic); } void XonoticWelcomeDialog_fill(entity me) { entity e; me.TR(me); me.TD(me, 4, me.columns / 2, me.serverinfo_pic_ent = makeXonoticImage(string_null, 4.0/3.0)); me.gotoRC(me, 1, me.columns / 2); me.TD(me, 1, me.columns / 2, me.serverinfo_name_ent = makeXonoticTextLabel(0, "")); me.gotoRC(me, 2, me.columns / 2); me.TD(me, 1, me.columns / 2, me.serverinfo_ip_ent = makeXonoticTextLabel(0, "")); me.gotoRC(me, 4, 0); me.TD(me, me.rows - 4 - 1, me.columns, me.serverinfo_MOTD_ent = makeXonoticTextBox()); me.serverinfo_MOTD_ent.allowColors = 1; me.gotoRC(me, me.rows - 1, 0); me.TD(me, 1, me.columns / 2, e = makeXonoticCommandButton(_("Disconnect"), '0 0 0', "disconnect", COMMANDBUTTON_CLOSE)); me.TD(me, 1, me.columns / 2, e = makeXonoticButton(_("OK"), '0 0 0')); e.onClick = Dialog_Close; e.onClickEntity = me; e.preferredFocusPriority = 1; }