2 CLASS(NexuizServerInfoDialog) EXTENDS(NexuizDialog)
3 METHOD(NexuizServerInfoDialog, fill, void(entity))
4 METHOD(NexuizServerInfoDialog, loadServerInfo, void(entity, float))
5 ATTRIB(NexuizServerInfoDialog, title, string, "Server Information")
6 ATTRIB(NexuizServerInfoDialog, color, vector, SKINCOLOR_DIALOG_SERVERINFO)
7 ATTRIB(NexuizServerInfoDialog, intendedWidth, float, 0.60)
8 ATTRIB(NexuizServerInfoDialog, rows, float, 11)
9 ATTRIB(NexuizServerInfoDialog, columns, float, 12)
11 ATTRIB(NexuizServerInfoDialog, currentServerName, string, string_null)
12 ATTRIB(NexuizServerInfoDialog, currentServerCName, string, string_null)
13 ATTRIB(NexuizServerInfoDialog, currentServerType, string, string_null)
14 ATTRIB(NexuizServerInfoDialog, currentServerMap, string, string_null)
15 ATTRIB(NexuizServerInfoDialog, currentServerPlayers, string, string_null)
16 ATTRIB(NexuizServerInfoDialog, currentServerNumPlayers, string, string_null)
17 ATTRIB(NexuizServerInfoDialog, currentServerNumBots, string, string_null)
18 ATTRIB(NexuizServerInfoDialog, currentServerMod, string, string_null)
19 ATTRIB(NexuizServerInfoDialog, currentServerVersion, string, string_null)
20 ATTRIB(NexuizServerInfoDialog, currentServerPing, string, string_null)
22 ATTRIB(NexuizServerInfoDialog, nameLabel, entity, NULL)
23 ATTRIB(NexuizServerInfoDialog, cnameLabel, entity, NULL)
24 ATTRIB(NexuizServerInfoDialog, typeLabel, entity, NULL)
25 ATTRIB(NexuizServerInfoDialog, mapLabel, entity, NULL)
26 ATTRIB(NexuizServerInfoDialog, rawPlayerList, entity, NULL)
27 ATTRIB(NexuizServerInfoDialog, numPlayersLabel, entity, NULL)
28 ATTRIB(NexuizServerInfoDialog, numBotsLabel, entity, NULL)
29 ATTRIB(NexuizServerInfoDialog, modLabel, entity, NULL)
30 ATTRIB(NexuizServerInfoDialog, versionLabel, entity, NULL)
31 ATTRIB(NexuizServerInfoDialog, pingLabel, entity, NULL)
32 ENDCLASS(NexuizServerInfoDialog)
34 float SLIST_FIELD_NAME;
35 float SLIST_FIELD_CNAME;
36 float SLIST_FIELD_QCSTATUS;
37 float SLIST_FIELD_MAP;
38 float SLIST_FIELD_PLAYERS;
39 float SLIST_FIELD_NUMHUMANS;
40 float SLIST_FIELD_MAXPLAYERS;
41 float SLIST_FIELD_NUMBOTS;
42 float SLIST_FIELD_MOD;
43 float SLIST_FIELD_PING;
44 string CURRENT_IP; //used by join button
45 void Join_Click(entity me);
49 void loadServerInfoNexuizServerInfoDialog(entity me, float i)
52 string s, typestr, versionstr, numh, maxp;
54 SLIST_FIELD_NAME = gethostcacheindexforkey("name");
55 me.currentServerName = strzone(gethostcachestring(SLIST_FIELD_NAME, i));
56 me.nameLabel.setText(me.nameLabel, me.currentServerName);
58 SLIST_FIELD_CNAME = gethostcacheindexforkey("cname");
59 me.currentServerCName = strzone(gethostcachestring(SLIST_FIELD_CNAME, i));
60 CURRENT_IP = me.currentServerCName; //used by join button
61 me.cnameLabel.setText(me.cnameLabel, me.currentServerCName);
63 SLIST_FIELD_QCSTATUS = gethostcacheindexforkey("qcstatus");
64 s = gethostcachestring(SLIST_FIELD_QCSTATUS, i);
65 m = tokenizebyseparator(s, ":");
76 me.currentServerType = strzone(typestr);
77 me.typeLabel.setText(me.typeLabel, me.currentServerType);
80 SLIST_FIELD_MAP = gethostcacheindexforkey("map");
81 me.currentServerMap = strzone(gethostcachestring(SLIST_FIELD_MAP, i));
82 me.mapLabel.setText(me.mapLabel, me.currentServerMap);
84 SLIST_FIELD_PLAYERS = gethostcacheindexforkey("players");
85 me.currentServerPlayers = strzone(gethostcachestring(SLIST_FIELD_PLAYERS, i));
86 me.rawPlayerList.setPlayerList(me.rawPlayerList, me.currentServerPlayers);
88 SLIST_FIELD_NUMHUMANS = gethostcacheindexforkey("numhumans");
89 numh = ftos(gethostcachenumber(SLIST_FIELD_NUMHUMANS, i));
90 SLIST_FIELD_MAXPLAYERS = gethostcacheindexforkey("maxplayers");
91 maxp = ftos(gethostcachenumber(SLIST_FIELD_MAXPLAYERS, i));
92 me.currentServerNumPlayers = strzone(strcat(numh,"/",maxp));
93 me.numPlayersLabel.setText(me.numPlayersLabel, me.currentServerNumPlayers);
95 SLIST_FIELD_NUMBOTS = gethostcacheindexforkey("numbots");
96 s = ftos(gethostcachenumber(SLIST_FIELD_NUMBOTS, i));
97 me.currentServerNumBots = strzone(s);
98 me.numBotsLabel.setText(me.numBotsLabel, me.currentServerNumBots);
100 SLIST_FIELD_MOD = gethostcacheindexforkey("mod");
101 me.currentServerMod = strzone(gethostcachestring(SLIST_FIELD_MOD, i));
102 me.modLabel.setText(me.modLabel, me.currentServerMod);
104 me.currentServerVersion = strzone(versionstr);
105 me.versionLabel.setText(me.versionLabel, me.currentServerVersion);
107 SLIST_FIELD_PING = gethostcacheindexforkey("ping");
108 s = ftos(gethostcachenumber(SLIST_FIELD_PING, i));
109 me.currentServerPing = strzone(s);
110 me.pingLabel.setText(me.pingLabel, me.currentServerPing);
113 void fillNexuizServerInfoDialog(entity me)
117 me.TD(me, 1, me.columns, e = makeNexuizTextLabel(0.5, ""));
118 e.colorL = SKINCOLOR_SERVERINFO_NAME;
122 me.TD(me, 1, me.columns, e = makeNexuizTextLabel(0.5, ""));
123 e.colorL = SKINCOLOR_SERVERINFO_IP;
128 me.TD(me, 1, 6, e = makeNexuizTextLabel(0, "Players:"));
130 me.TD(me, me.rows - 4, 5.5, e = makeNexuizPlayerList());
131 me.rawPlayerList = e;
133 me.gotoRC(me, 1, 6); me.setFirstColumn(me, me.currentColumn);
136 me.TD(me, 1, 1.75, e = makeNexuizTextLabel(0, "Type:"));
137 me.TD(me, 1, 4.5, e = makeNexuizTextLabel(0, ""));
141 me.TD(me, 1, 1.75, e = makeNexuizTextLabel(0, "Map:"));
142 me.TD(me, 1, 4.5, e = makeNexuizTextLabel(0, ""));
146 me.TD(me, 1, 1.75, e = makeNexuizTextLabel(0, "Players:"));
147 me.TD(me, 1, 4.5, e = makeNexuizTextLabel(0, ""));
149 me.numPlayersLabel = e;
151 me.TD(me, 1, 1.75, e = makeNexuizTextLabel(0, "Bots:"));
152 me.TD(me, 1, 4.5, e = makeNexuizTextLabel(0, ""));
156 me.TD(me, 1, 1.75, e = makeNexuizTextLabel(0, "Mod:"));
157 me.TD(me, 1, 4.5, e = makeNexuizTextLabel(0, ""));
161 me.TD(me, 1, 1.75, e = makeNexuizTextLabel(0, "Version:"));
162 me.TD(me, 1, 4.5, e = makeNexuizTextLabel(0, ""));
166 me.TD(me, 1, 1.75, e = makeNexuizTextLabel(0, "Ping:"));
167 me.TD(me, 1, 4.5, e = makeNexuizTextLabel(0, ""));
171 me.gotoRC(me, me.rows - 1, 0);
173 me.TD(me, 1, me.columns - 6, e = makeNexuizButton("OK", '0 0 0'));
174 e.onClick = Dialog_Close;
175 e.onClickEntity = me;
176 me.TD(me, 1, me.columns - 6, e = makeNexuizButton("Join!", '0 0 0'));
177 e.onClick = Join_Click;
178 e.onClickEntity = me;
181 void Join_Click(entity me)
183 localcmd("connect ", CURRENT_IP, "\n");