2 CLASS(NexuizPlayerList) EXTENDS(NexuizListBox)
3 ATTRIB(NexuizPlayerList, rowsPerItem, float, 1)
4 METHOD(NexuizPlayerList, resizeNotify, void(entity, vector, vector, vector, vector))
5 METHOD(NexuizPlayerList, drawListBoxItem, void(entity, float, vector, float))
6 ATTRIB(NexuizPlayerList, realFontSize, vector, '0 0 0')
7 ATTRIB(NexuizPlayerList, columnNameOrigin, float, 0)
8 ATTRIB(NexuizPlayerList, columnNameSize, float, 0)
9 ATTRIB(NexuizPlayerList, realUpperMargin, float, 0)
10 ATTRIB(NexuizPlayerList, origin, vector, '0 0 0')
11 ATTRIB(NexuizPlayerList, itemAbsSize, vector, '0 0 0')
12 METHOD(NexuizPlayerList, setPlayerList, void(entity, string))
13 METHOD(NexuizPlayerList, getPlayerList, string(entity, float, float))
14 ATTRIB(NexuizPlayerList, playerList, float, -1)
15 ENDCLASS(NexuizPlayerList)
16 entity makeNexuizPlayerList();
21 #define PLAYERPARM_SCORE 0
22 #define PLAYERPARM_PING 1
23 #define PLAYERPARM_TEAM 2
24 #define PLAYERPARM_NAME 3
25 #define PLAYERPARM_COUNT 4
27 entity makeNexuizPlayerList()
30 me = spawnNexuizPlayerList();
31 me.configureNexuizListBox(me);
35 void setPlayerListNexuizPlayerList(entity me, string plist)
37 dprint(plist,"------------\n");
43 me.nItems = tokenizebyseparator(plist, "\n");
44 for(i = 0; i < me.nItems; ++i)
46 bufstr_set(buf, i * PLAYERPARM_COUNT + PLAYERPARM_NAME, argv(i)); // -666 100 "^4Nex ^2Player"
49 for(i = 0; i < me.nItems; ++i)
51 s = bufstr_get(buf, i * PLAYERPARM_COUNT + PLAYERPARM_NAME);
56 bufstr_set(buf, i * PLAYERPARM_COUNT + PLAYERPARM_SCORE, argv(0)); // -666
57 bufstr_set(buf, i * PLAYERPARM_COUNT + PLAYERPARM_PING, argv(1)); // 100
58 bufstr_set(buf, i * PLAYERPARM_COUNT + PLAYERPARM_TEAM, argv(2)); // 0 for spec, else 1, 2, 3, 4
59 bufstr_set(buf, i * PLAYERPARM_COUNT + PLAYERPARM_NAME, argv(3)); // ^4Nex ^2Player
63 bufstr_set(buf, i * PLAYERPARM_COUNT + PLAYERPARM_SCORE, argv(0)); // -666
64 bufstr_set(buf, i * PLAYERPARM_COUNT + PLAYERPARM_PING, argv(1)); // 100
65 bufstr_set(buf, i * PLAYERPARM_COUNT + PLAYERPARM_TEAM, "-1");
66 bufstr_set(buf, i * PLAYERPARM_COUNT + PLAYERPARM_NAME, argv(2)); // ^4Nex ^2Player
72 string getPlayerListNexuizPlayerList(entity me, float i, float key)
74 return bufstr_get(me.playerList, i * PLAYERPARM_COUNT + key);
77 void resizeNotifyNexuizPlayerList(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
79 me.origin = absOrigin;
80 me.itemAbsSize = '0 0 0';
81 resizeNotifyNexuizListBox(me, relOrigin, relSize, absOrigin, absSize);
83 me.realFontSize_y = me.fontSize / (me.itemAbsSize_y = (absSize_y * me.itemHeight));
84 me.realFontSize_x = me.fontSize / (me.itemAbsSize_x = (absSize_x * (1 - me.controlWidth)));
85 me.realUpperMargin = 0.5 * (1 - me.realFontSize_y);
87 me.columnNameOrigin = me.realFontSize_x;
88 me.columnNameSize = 1 - 2 * me.realFontSize_x;
91 void drawListBoxItemNexuizPlayerList(entity me, float i, vector absSize, float isSelected)
97 t = stof(me.getPlayerList(me, i, PLAYERPARM_TEAM));
99 rgb = colormapPaletteColor(4, 0);
101 rgb = colormapPaletteColor(13, 0);
103 rgb = colormapPaletteColor(12, 0);
105 rgb = colormapPaletteColor(9, 0);
109 s = me.getPlayerList(me, i, PLAYERPARM_NAME);
112 s = strdecolorize(s);
114 s = draw_TextShortenToWidth(s, me.columnNameSize / me.realFontSize_x, rgb == '1 1 1');
116 draw_Text(me.realUpperMargin2 * eY + (me.columnNameOrigin + 0.00 * (me.columnNameSize - draw_TextWidth(s, 1) * me.realFontSize_x)) * eX, s, me.realFontSize, rgb, 1, rgb == '1 1 1');