ATTRIB(XonoticServerList, rowsPerItem, float, 1)
METHOD(XonoticServerList, draw, void(entity))
METHOD(XonoticServerList, drawListBoxItem, void(entity, float, vector, float))
- METHOD(XonoticServerList, clickListBoxItem, void(entity, float, vector))
+ METHOD(XonoticServerList, doubleClickListBoxItem, void(entity, float, vector))
METHOD(XonoticServerList, resizeNotify, void(entity, vector, vector, vector, vector))
METHOD(XonoticServerList, keyDown, float(entity, float, float, float))
METHOD(XonoticServerList, toggleFavorite, void(entity, string))
ATTRIB(XonoticServerList, infoButton, entity, NULL)
ATTRIB(XonoticServerList, currentSortOrder, float, 0)
ATTRIB(XonoticServerList, currentSortField, float, -1)
- ATTRIB(XonoticServerList, lastClickedServer, float, -1)
- ATTRIB(XonoticServerList, lastClickedTime, float, 0)
ATTRIB(XonoticServerList, ipAddressBoxFocused, float, -1)
SLIST_CATEGORY(CAT_XPM, "CAT_NORMAL", "CAT_SERVERS", ZCTX(_("SLCAT^Competitive Mode"))) \
SLIST_CATEGORY(CAT_MODIFIED, "", "CAT_SERVERS", ZCTX(_("SLCAT^Modified Servers"))) \
SLIST_CATEGORY(CAT_OVERKILL, "", "CAT_SERVERS", ZCTX(_("SLCAT^Overkill Mode"))) \
- SLIST_CATEGORY(CAT_MINSTAGIB, "", "CAT_SERVERS", ZCTX(_("SLCAT^MinstaGib Mode"))) \
+ SLIST_CATEGORY(CAT_INSTAGIB, "", "CAT_SERVERS", ZCTX(_("SLCAT^InstaGib Mode"))) \
SLIST_CATEGORY(CAT_DEFRAG, "", "CAT_SERVERS", ZCTX(_("SLCAT^Defrag Mode")))
#define SLIST_CATEGORY_AUTOCVAR(name) autocvar_menu_slist_categories_##name##_override
} \
else \
{ \
- print(sprintf( \
+ printf( \
"RegisterSLCategories(): Improper override '%s' for category '%s'!\n", \
s, \
categories[i].cat_name \
- )); \
+ ); \
} \
} \
strunzone(categories[i].override_string); \
// old servers which don't report their mod name are considered modified now
case "": { return CAT_MODIFIED; }
- case "xpm": { return CAT_XPM; }
- case "minstagib": { return CAT_MINSTAGIB; }
+ case "xpm": { return CAT_XPM; }
+ case "minstagib":
+ case "instagib": { return CAT_INSTAGIB; }
case "overkill": { return CAT_OVERKILL; }
//case "nix": { return CAT_NIX; }
//case "newtoys": { return CAT_NEWTOYS; }
case "cts":
case "xdf": { return CAT_DEFRAG; }
- default: { dprint(sprintf("Found strange mod type: %s\n", modtype)); return CAT_MODIFIED; }
+ default: { dprintf("Found strange mod type: %s\n", modtype); return CAT_MODIFIED; }
}
}
}
void XonoticServerList_focusEnter(entity me)
{
+ SUPER(XonoticServerList).focusEnter(me);
if(time < me.nextRefreshTime)
{
//print("sorry, no refresh yet\n");
{
if(gethostcachestring(SLIST_FIELD_CNAME, i) == me.selectedServer)
{
- if(i != me.selectedItem)
- {
- me.lastClickedServer = -1;
- me.selectedItem = i;
- }
+ me.selectedItem = i;
found = 1;
break;
}
ipstr = netaddress_resolve(me.ipAddressBox.text, 26000);
if(ipstr != "")
{
+ m_play_click_sound(MENU_SOUND_SELECT);
me.toggleFavorite(me, me.ipAddressBox.text);
me.ipAddressBoxFocused = -1;
}
{
if (me.nItems != 0)
main.serverInfoDialog.loadServerInfo(main.serverInfoDialog, me.selectedItem);
- DialogOpenButton_Click(me, main.serverInfoDialog);
+
+ vector org = boxToGlobal(eY * (me.selectedItem * me.itemHeight - me.scrollPos), me.origin, me.size);
+ vector sz = boxToGlobalSize(eY * me.itemHeight + eX * (1 - me.controlWidth), me.size);
+ DialogOpenButton_Click_withCoords(me, main.serverInfoDialog, org, sz);
}
-void XonoticServerList_clickListBoxItem(entity me, float i, vector where)
+void XonoticServerList_doubleClickListBoxItem(entity me, float i, vector where)
{
- if(i == me.lastClickedServer)
- if(time < me.lastClickedTime + 0.3)
- {
- // DOUBLE CLICK!
- ServerList_Connect_Click(NULL, me);
- }
- me.lastClickedServer = i;
- me.lastClickedTime = time;
+ ServerList_Connect_Click(NULL, me);
}
void XonoticServerList_drawListBoxItem(entity me, float i, vector absSize, float isSelected)
{
float m, pure, freeslots, j, sflags;
string s, typestr, versionstr, k, v, modname;
- //print(sprintf("time: %f, i: %d, item: %d, nitems: %d\n", time, i, item, me.nItems));
+ //printf("time: %f, i: %d, item: %d, nitems: %d\n", time, i, item, me.nItems);
vector oldscale = draw_scale;
vector oldshift = draw_shift;
strcat(catent.cat_string, ":"),
#endif
me.realFontSize,
- '1 1 1',
- SKINALPHA_TEXT,
+ SKINCOLOR_SERVERLIST_CATEGORY,
+ SKINALPHA_SERVERLIST_CATEGORY,
0
);
SET_YRANGE(me.categoriesHeight / (me.categoriesHeight + 1), 1);
// list the mods here on which the pure server check actually works
if(modname != "Xonotic")
- if(modname != "MinstaGib")
+ if(modname != "InstaGib" || modname != "MinstaGib")
if(modname != "CTS")
if(modname != "NIX")
if(modname != "NewToys")
{
if(me.nItems != 0)
{
+ m_play_click_sound(MENU_SOUND_OPEN);
main.serverInfoDialog.loadServerInfo(main.serverInfoDialog, me.selectedItem);
DialogOpenButton_Click_withCoords(me, main.serverInfoDialog, org, sz);
return 1;