15{
16 bool pure_available;
17 float m, pure_violations, freeslots, numh, maxp, numb, sflags;
18 string s, typestr, versionstr, k, v,
modname;
19
20
21
22
27 strfree(me.currentServerPlayers);
28 strfree(me.currentServerNumPlayers);
29 strfree(me.currentServerNumBots);
30 strfree(me.currentServerNumFreeSlots);
32 strfree(me.currentServerVersion);
33
34
38
39
40
41
43 me.infoTab.nameLabel.setText(me.infoTab.nameLabel, me.currentServerName);
44
46 me.infoTab.cnameLabel.setText(me.infoTab.cnameLabel, me.currentServerCName);
47
48 pure_available = false;
49 pure_violations = -1;
50 typestr = _("N/A");
51 versionstr = _("N/A");
52
55 if(m >= 2)
56 {
59 }
60 freeslots = -1;
61 sflags = -1;
63 bool ToSSpecified = false;
64 for(int j = 2; j < m; ++j)
65 {
67 break;
70 if(k == "P")
71 {
72 pure_available = true;
73 pure_violations =
stof(v);
74 }
75 else if(k == "S")
76 {
78 }
79 else if(k == "F")
80 {
82 }
83 else if(k == "M")
84 {
86 }
87 else if(k == "T")
88 {
89 ToSSpecified = true;
90 string downloadurl = v;
91 if (downloadurl == "INVALID")
92 {
93 me.ToSTab.textBox.setText(me.ToSTab.textBox, _("No Terms of Service specified"));
94 }
95 else
96 {
97 downloadurl = strreplace("|", ":", downloadurl);
98 me.ToSTab.loadToS(me.ToSTab, downloadurl);
99 }
100 }
101 }
102
103 if (!ToSSpecified)
104 {
105 me.ToSTab.textBox.setText(me.ToSTab.textBox, _("No Terms of Service specified"));
106 }
107
108#ifdef COMPAT_NO_MOD_IS_XONOTIC
111#endif
112
114 if(s != "data")
116
119
120 me.currentServerType =
strzone(typestr);
121 me.infoTab.typeLabel.setText(me.infoTab.typeLabel, me.currentServerType);
122
124 me.infoTab.mapLabel.setText(me.infoTab.mapLabel, me.currentServerMap);
125
127 me.infoTab.rawPlayerList.setPlayerList(me.infoTab.rawPlayerList, me.currentServerPlayers);
128
132 me.currentServerNumPlayers =
strzone(sprintf(
"%d/%d", numh, maxp));
133 me.infoTab.numPlayersLabel.setText(me.infoTab.numPlayersLabel, me.currentServerNumPlayers);
134
136 me.currentServerNumBots =
strzone(s);
137 me.infoTab.numBotsLabel.setText(me.infoTab.numBotsLabel, me.currentServerNumBots);
138
139 if(freeslots < 0) { freeslots = maxp - numh - numb; }
141 me.currentServerNumFreeSlots =
strzone(s);
142 me.infoTab.numFreeSlotsLabel.setText(me.infoTab.numFreeSlotsLabel, me.currentServerNumFreeSlots);
143
145 me.currentServerMod =
strzone(me.currentServerMod);
146 me.infoTab.modLabel.setText(me.infoTab.modLabel, me.currentServerMod);
147
148 me.currentServerVersion =
strzone(versionstr);
149 me.infoTab.versionLabel.setText(me.infoTab.versionLabel, me.currentServerVersion);
150
151 me.currentServerPure = ((!pure_available) ? _("N/A") : (pure_violations == 0) ? _("Official") : sprintf(_("%d modified"), pure_violations));
152 me.currentServerPure =
strzone(me.currentServerPure);
153 me.infoTab.pureLabel.setText(me.infoTab.pureLabel, me.currentServerPure);
154
155 s = crypto_getencryptlevel(me.currentServerCName);
156 if(s == "")
157 {
158 if(
cvar(
"crypto_aeslevel") >= 3)
159 me.currentServerEncrypt = _("N/A (auth library missing, can't connect)");
160 else
161 me.currentServerEncrypt = _("N/A (auth library missing)");
162 }
164 {
165 case 0:
166 if(
cvar(
"crypto_aeslevel") >= 3)
167 me.currentServerEncrypt = _("Not supported (can't connect)");
168 else
169 me.currentServerEncrypt = _("Not supported (won't encrypt)");
170 break;
171 case 1:
172 if(
cvar(
"crypto_aeslevel") >= 2)
173 me.currentServerEncrypt = _("Supported (will encrypt)");
174 else
175 me.currentServerEncrypt = _("Supported (won't encrypt)");
176 break;
177 case 2:
178 if(
cvar(
"crypto_aeslevel") >= 1)
179 me.currentServerEncrypt = _("Requested (will encrypt)");
180 else
181 me.currentServerEncrypt = _("Requested (won't encrypt)");
182 break;
183 case 3:
184 if(
cvar(
"crypto_aeslevel") <= 0)
185 me.currentServerEncrypt = _("Required (can't connect)");
186 else
187 me.currentServerEncrypt = _("Required (will encrypt)");
188 break;
189 }
190 me.infoTab.encryptLabel.setText(me.infoTab.encryptLabel, me.currentServerEncrypt);
192
193 s = crypto_getidfp(me.currentServerCName);
194 if (!s) { s = _("N/A"); }
195 me.currentServerID =
strzone(s);
196 me.infoTab.idLabel.setText(me.infoTab.idLabel, me.currentServerID);
197
198 s = crypto_getkeyfp(me.currentServerCName);
199 if (!s) { s = _("N/A"); }
200 me.currentServerKey =
strzone(s);
201 me.infoTab.keyLabel.setText(me.infoTab.keyLabel, me.currentServerKey);
202
204 me.currentServerStatsStatus =
strzone(me.currentServerStatsStatus);
205 me.infoTab.statsLabel.setText(me.infoTab.statsLabel, me.currentServerStatsStatus);
206}
const int SERVERFLAG_PLAYERSTATS
const int SERVERFLAG_PLAYERSTATS_CUSTOM
#define tokenizebyseparator
string MapInfo_Type_ToText(Gametype t)
Gametype MapInfo_Type_FromString(string gtype, bool dowarn, bool is_q3compat)