]> de.git.xonotic.org Git - voretournament/voretournament.git/blob - data/qcsrc/menu/voret/dialog_multiplayer_join_serverinfo.c
Tweak the Effects menu, and add iris adaptation to it as well.
[voretournament/voretournament.git] / data / qcsrc / menu / voret / dialog_multiplayer_join_serverinfo.c
1 #ifdef INTERFACE\r
2 CLASS(VoretServerInfoDialog) EXTENDS(VoretDialog)\r
3         METHOD(VoretServerInfoDialog, fill, void(entity))\r
4         METHOD(VoretServerInfoDialog, loadServerInfo, void(entity, float))\r
5         ATTRIB(VoretServerInfoDialog, title, string, "Server Information")\r
6         ATTRIB(VoretServerInfoDialog, color, vector, SKINCOLOR_DIALOG_SERVERINFO)\r
7         ATTRIB(VoretServerInfoDialog, intendedWidth, float, 0.68)\r
8         ATTRIB(VoretServerInfoDialog, rows, float, 11)\r
9         ATTRIB(VoretServerInfoDialog, columns, float, 12)\r
10 \r
11         ATTRIB(VoretServerInfoDialog, currentServerName, string, string_null)\r
12         ATTRIB(VoretServerInfoDialog, currentServerCName, string, string_null)\r
13         ATTRIB(VoretServerInfoDialog, currentServerType, string, string_null)\r
14         ATTRIB(VoretServerInfoDialog, currentServerMap, string, string_null)\r
15         ATTRIB(VoretServerInfoDialog, currentServerPlayers, string, string_null)\r
16         ATTRIB(VoretServerInfoDialog, currentServerNumPlayers, string, string_null)\r
17         ATTRIB(VoretServerInfoDialog, currentServerNumBots, string, string_null)\r
18         ATTRIB(VoretServerInfoDialog, currentServerMod, string, string_null)\r
19         ATTRIB(VoretServerInfoDialog, currentServerVersion, string, string_null)\r
20         ATTRIB(VoretServerInfoDialog, currentServerPing, string, string_null)\r
21 \r
22         ATTRIB(VoretServerInfoDialog, nameLabel, entity, NULL)\r
23         ATTRIB(VoretServerInfoDialog, cnameLabel, entity, NULL)\r
24         ATTRIB(VoretServerInfoDialog, typeLabel, entity, NULL)\r
25         ATTRIB(VoretServerInfoDialog, mapLabel, entity, NULL)\r
26         ATTRIB(VoretServerInfoDialog, rawPlayerList, entity, NULL)\r
27         ATTRIB(VoretServerInfoDialog, numPlayersLabel, entity, NULL)\r
28         ATTRIB(VoretServerInfoDialog, numBotsLabel, entity, NULL)\r
29         ATTRIB(VoretServerInfoDialog, modLabel, entity, NULL)\r
30         ATTRIB(VoretServerInfoDialog, versionLabel, entity, NULL)\r
31         ATTRIB(VoretServerInfoDialog, pingLabel, entity, NULL)\r
32 ENDCLASS(VoretServerInfoDialog)\r
33 \r
34 float SLIST_FIELD_NAME;\r
35 float SLIST_FIELD_CNAME;\r
36 float SLIST_FIELD_QCSTATUS;\r
37 float SLIST_FIELD_MAP;\r
38 float SLIST_FIELD_PLAYERS;\r
39 float SLIST_FIELD_NUMHUMANS;\r
40 float SLIST_FIELD_MAXPLAYERS;\r
41 float SLIST_FIELD_NUMBOTS;\r
42 float SLIST_FIELD_MOD;\r
43 float SLIST_FIELD_PING;\r
44 void Join_Click(entity btn, entity me);\r
45 #endif\r
46 \r
47 #ifdef IMPLEMENTATION\r
48 void loadServerInfoVoretServerInfoDialog(entity me, float i)\r
49 {\r
50         float m;\r
51         string s, typestr, versionstr, numh, maxp;\r
52 \r
53         SLIST_FIELD_NAME = gethostcacheindexforkey("name");\r
54         me.currentServerName = strzone(gethostcachestring(SLIST_FIELD_NAME, i));\r
55         me.nameLabel.setText(me.nameLabel, me.currentServerName);\r
56 \r
57         SLIST_FIELD_CNAME = gethostcacheindexforkey("cname");\r
58         me.currentServerCName = strzone(gethostcachestring(SLIST_FIELD_CNAME, i));\r
59         me.cnameLabel.setText(me.cnameLabel, me.currentServerCName);\r
60 \r
61         SLIST_FIELD_QCSTATUS = gethostcacheindexforkey("qcstatus");\r
62         s = gethostcachestring(SLIST_FIELD_QCSTATUS, i);\r
63         m = tokenizebyseparator(s, ":");\r
64         if(m > 1)\r
65         {\r
66                 typestr = argv (0);\r
67                 versionstr = argv(1);\r
68         }\r
69         else\r
70         {\r
71                 typestr = "N/A";\r
72                 versionstr = "N/A";\r
73         }\r
74         me.currentServerType = strzone(typestr);\r
75         me.typeLabel.setText(me.typeLabel, me.currentServerType);\r
76 \r
77 \r
78         SLIST_FIELD_MAP = gethostcacheindexforkey("map");\r
79         me.currentServerMap = strzone(gethostcachestring(SLIST_FIELD_MAP, i));\r
80         me.mapLabel.setText(me.mapLabel, me.currentServerMap);\r
81 \r
82         SLIST_FIELD_PLAYERS = gethostcacheindexforkey("players");\r
83         me.currentServerPlayers = strzone(gethostcachestring(SLIST_FIELD_PLAYERS, i));\r
84         me.rawPlayerList.setPlayerList(me.rawPlayerList, me.currentServerPlayers);\r
85 \r
86         SLIST_FIELD_NUMHUMANS = gethostcacheindexforkey("numhumans");\r
87         numh = ftos(gethostcachenumber(SLIST_FIELD_NUMHUMANS, i));\r
88         SLIST_FIELD_MAXPLAYERS = gethostcacheindexforkey("maxplayers");\r
89         maxp = ftos(gethostcachenumber(SLIST_FIELD_MAXPLAYERS, i));\r
90         me.currentServerNumPlayers = strzone(strcat(numh,"/",maxp));\r
91         me.numPlayersLabel.setText(me.numPlayersLabel, me.currentServerNumPlayers);\r
92 \r
93         SLIST_FIELD_NUMBOTS = gethostcacheindexforkey("numbots");\r
94         s = ftos(gethostcachenumber(SLIST_FIELD_NUMBOTS, i));\r
95         me.currentServerNumBots = strzone(s);\r
96         me.numBotsLabel.setText(me.numBotsLabel, me.currentServerNumBots);\r
97 \r
98         SLIST_FIELD_MOD = gethostcacheindexforkey("mod");\r
99         me.currentServerMod = strzone(gethostcachestring(SLIST_FIELD_MOD, i));\r
100         me.modLabel.setText(me.modLabel, me.currentServerMod);\r
101 \r
102         me.currentServerVersion = strzone(versionstr);\r
103         me.versionLabel.setText(me.versionLabel, me.currentServerVersion);\r
104 \r
105         SLIST_FIELD_PING = gethostcacheindexforkey("ping");\r
106         s = ftos(gethostcachenumber(SLIST_FIELD_PING, i));\r
107         me.currentServerPing = strzone(s);\r
108         me.pingLabel.setText(me.pingLabel, me.currentServerPing);\r
109 }\r
110 \r
111 void fillVoretServerInfoDialog(entity me)\r
112 {\r
113         entity e;\r
114         me.TR(me);\r
115                 me.TD(me, 1, me.columns, e = makeVoretTextLabel(0.5, ""));\r
116                         e.colorL = SKINCOLOR_SERVERINFO_NAME;\r
117                         e.allowCut = 1;\r
118                         me.nameLabel = e;\r
119         me.TR(me);\r
120                 me.TD(me, 1, me.columns, e = makeVoretTextLabel(0.5, ""));\r
121                         e.colorL = SKINCOLOR_SERVERINFO_IP;\r
122                         e.allowCut = 1;\r
123                         me.cnameLabel = e;\r
124 \r
125         me.TR(me);\r
126                 me.TD(me, 1, 5.5, e = makeVoretTextLabel(0, "Players:"));\r
127         me.TR(me);\r
128                 me.TD(me, me.rows - 4, 6, e = makeVoretPlayerList());\r
129                         me.rawPlayerList = e;\r
130 \r
131         me.gotoRC(me, 1, 6.25); me.setFirstColumn(me, me.currentColumn);\r
132 \r
133         me.TR(me);\r
134                 me.TD(me, 1, 1.75, e = makeVoretTextLabel(0, "Type:"));\r
135                 me.TD(me, 1, 4.0, e = makeVoretTextLabel(0, ""));\r
136                         e.allowCut = 1;\r
137                         me.typeLabel = e;\r
138         me.TR(me);\r
139                 me.TD(me, 1, 1.75, e = makeVoretTextLabel(0, "Map:"));\r
140                 me.TD(me, 1, 4.0, e = makeVoretTextLabel(0, ""));\r
141                         e.allowCut = 1;\r
142                         me.mapLabel = e;\r
143         me.TR(me);\r
144                 me.TD(me, 1, 1.75, e = makeVoretTextLabel(0, "Players:"));\r
145                 me.TD(me, 1, 4.0, e = makeVoretTextLabel(0, ""));\r
146                         e.allowCut = 1;\r
147                         me.numPlayersLabel = e;\r
148         me.TR(me);\r
149                 me.TD(me, 1, 1.75, e = makeVoretTextLabel(0, "Bots:"));\r
150                 me.TD(me, 1, 4.0, e = makeVoretTextLabel(0, ""));\r
151                         e.allowCut = 1;\r
152                         me.numBotsLabel = e;\r
153         me.TR(me);\r
154                 me.TD(me, 1, 1.75, e = makeVoretTextLabel(0, "Mod:"));\r
155                 me.TD(me, 1, 4.0, e = makeVoretTextLabel(0, ""));\r
156                         e.allowCut = 1;\r
157                         me.modLabel = e;\r
158         me.TR(me);\r
159                 me.TD(me, 1, 1.75, e = makeVoretTextLabel(0, "Version:"));\r
160                 me.TD(me, 1, 4.0, e = makeVoretTextLabel(0, ""));\r
161                         e.allowCut = 1;\r
162                         me.versionLabel = e;\r
163         me.TR(me);\r
164                 me.TD(me, 1, 1.75, e = makeVoretTextLabel(0, "Ping:"));\r
165                 me.TD(me, 1, 4.0, e = makeVoretTextLabel(0, ""));\r
166                         e.allowCut = 1;\r
167                         me.pingLabel = e;\r
168 \r
169         me.gotoRC(me, me.rows - 1, 0);\r
170 \r
171                 me.TD(me, 1, me.columns - 6, e = makeVoretButton("Close", '0 0 0'));\r
172                         e.onClick = Dialog_Close;\r
173                         e.onClickEntity = me;\r
174                 me.TD(me, 1, me.columns - 6, e = makeVoretButton("Join!", '0 0 0'));\r
175                         e.onClick = Join_Click;\r
176                         e.onClickEntity = me;\r
177 }\r
178 \r
179 void Join_Click(entity btn, entity me)\r
180 {\r
181         localcmd("connect ", me.currentServerCName, "\n");\r
182 }\r
183 \r
184 #endif\r