-#ifdef INTERFACE
-CLASS(XonoticPlayerList) EXTENDS(XonoticListBox)
- ATTRIB(XonoticPlayerList, rowsPerItem, float, 1)
- METHOD(XonoticPlayerList, resizeNotify, void(entity, vector, vector, vector, vector))
- METHOD(XonoticPlayerList, drawListBoxItem, void(entity, float, vector, float))
- ATTRIB(XonoticPlayerList, realFontSize, vector, '0 0 0')
- ATTRIB(XonoticPlayerList, columnNameOrigin, float, 0)
- ATTRIB(XonoticPlayerList, columnNameSize, float, 0)
- ATTRIB(XonoticPlayerList, columnScoreOrigin, float, 0)
- ATTRIB(XonoticPlayerList, columnScoreSize, float, 0)
- ATTRIB(XonoticPlayerList, realUpperMargin, float, 0)
- ATTRIB(XonoticPlayerList, origin, vector, '0 0 0')
- ATTRIB(XonoticPlayerList, itemAbsSize, vector, '0 0 0')
- METHOD(XonoticPlayerList, setPlayerList, void(entity, string))
- METHOD(XonoticPlayerList, getPlayerList, string(entity, float, float))
- ATTRIB(XonoticPlayerList, playerList, float, -1)
-ENDCLASS(XonoticPlayerList)
-entity makeXonoticPlayerList();
-#endif
-
-#ifdef IMPLEMENTATION
+#include "playerlist.qh"
+
+.float realUpperMargin2;
const float PLAYERPARM_SCORE = 0;
const float PLAYERPARM_PING = 1;
entity makeXonoticPlayerList()
{
entity me;
- me = spawnXonoticPlayerList();
+ me = NEW(XonoticPlayerList);
me.configureXonoticListBox(me);
return me;
}
void XonoticPlayerList_setPlayerList(entity me, string plist)
{
- float buf,i,n;
+ int buf,i,n;
string s;
buf = buf_create();
me.itemAbsSize = '0 0 0';
SUPER(XonoticPlayerList).resizeNotify(me, relOrigin, relSize, absOrigin, absSize);
- me.realFontSize_y = me.fontSize / (me.itemAbsSize_y = (absSize_y * me.itemHeight));
- me.realFontSize_x = me.fontSize / (me.itemAbsSize_x = (absSize_x * (1 - me.controlWidth)));
- me.realUpperMargin = 0.5 * (1 - me.realFontSize_y);
+ me.itemAbsSize.y = absSize.y * me.itemHeight;
+ me.itemAbsSize.x = absSize.x * (1 - me.controlWidth);
+ me.realFontSize.y = me.fontSize / me.itemAbsSize.y;
+ me.realFontSize.x = me.fontSize / me.itemAbsSize.x;
+ me.realUpperMargin = 0.5 * (1 - me.realFontSize.y);
// this list does 1 char left and right margin
- me.columnScoreSize = 5 * me.realFontSize_x;
- me.columnNameSize = 1 - 3 * me.realFontSize_x - me.columnScoreSize;
+ me.columnScoreSize = 5 * me.realFontSize.x;
+ me.columnNameSize = 1 - 3 * me.realFontSize.x - me.columnScoreSize;
- me.columnNameOrigin = me.realFontSize_x;
- me.columnScoreOrigin = me.columnNameOrigin + me.columnNameSize + me.realFontSize_x;
+ me.columnNameOrigin = me.realFontSize.x;
+ me.columnScoreOrigin = me.columnNameOrigin + me.columnNameSize + me.realFontSize.x;
}
-void XonoticPlayerList_drawListBoxItem(entity me, float i, vector absSize, float isSelected)
+void XonoticPlayerList_drawListBoxItem(entity me, int i, vector absSize, bool isSelected, bool isFocused)
{
string s;
string score;
if((t = strstrofs(score, ",", 0)) >= 0)
score = substring(score, 0, t);
- if(stof(score) == -666)
+ if(stof(score) == FRAGS_SPECTATOR)
score = _("spectator");
}
score = draw_TextShortenToWidth(score, me.columnScoreSize, 0, me.realFontSize);
draw_Text(me.realUpperMargin2 * eY + (me.columnScoreOrigin + 1.00 * (me.columnScoreSize - draw_TextWidth(score, 1, me.realFontSize))) * eX, score, me.realFontSize, rgb, 1, 0);
}
-
-#endif