Index: ./gui/lobby/lobby.js
===================================================================
--- ./gui/lobby/lobby.js
+++ ./gui/lobby/lobby.js
@@ -321,12 +321,14 @@
function updatePlayerList()
{
let playersBox = Engine.GetGUIObjectByName("playersBox");
+ let buddys = Engine.ConfigDB_GetValue("user", "lobby.buddys");
let sortBy = playersBox.selected_column || "name";
let sortOrder = playersBox.selected_column_order || 1;
if (playersBox.selected > -1)
g_SelectedPlayer = playersBox.list[playersBox.selected];
+ let buddyList = [];
let playerList = [];
let presenceList = [];
let nickList = [];
@@ -336,6 +338,10 @@
let sortA, sortB;
switch (sortBy)
{
+ case 'buddy':
+ sortA = buddys.split("|").indexOf(a.name);
+ sortB = buddys.split("|").indexOf(b.name);
+ break;
case 'rating':
sortA = +a.rating;
sortB = +b.rating;
@@ -372,12 +378,17 @@
let coloredPresence = '[color="' + statusColor + '"]' + g_PlayerStatuses[presence].status + "[/color]";
let coloredRating = '[color="' + statusColor + '"]' + rating + "[/color]";
+ if (buddys.split("|").indexOf(player.name) >=0)
+ buddyList.push('[color="120 120 120"]![/color]');
+ else
+ buddyList.push('[color="120 120 120"].[/color]');
playerList.push(coloredName);
presenceList.push(coloredPresence);
ratingList.push(coloredRating);
nickList.push(player.name);
}
+ playersBox.list_buddy = buddyList;
playersBox.list_name = playerList;
playersBox.list_status = presenceList;
playersBox.list_rating = ratingList;
@@ -389,6 +400,25 @@
}
/**
+ * Toggle buddy state for a player in playerlist within the user config
+ */
+function toggleBuddy()
+{
+ var buddys = Engine.ConfigDB_GetValue("user", "lobby.buddys");
+ let playerList = Engine.GetGUIObjectByName("playersBox");
+ let name = playerList.list[playerList.selected];
+
+ if (buddys.split("|").indexOf(name) >=0)
+ buddys = buddys.replace("|"+name, "");
+ else
+ buddys = buddys + "|" + name;
+
+ Engine.ConfigDB_CreateValue("user", "lobby.buddys", buddys);
+ Engine.ConfigDB_WriteValueToFile("user", "lobby.buddys", buddys, "config/user.cfg");
+ updatePlayerList();
+}
+
+/**
* Display the profile of the selected player.
* Displays N/A for all stats until updateProfile is called when the stats
* are actually received from the bot.
Index: ./gui/lobby/lobby.xml
===================================================================
--- ./gui/lobby/lobby.xml
+++ ./gui/lobby/lobby.xml
@@ -36,10 +36,13 @@
size="0 0 100% 100%"
font="sans-bold-stroke-13"
>
+
+ B
+
Status
-
+
Name
@@ -48,6 +51,7 @@
displayProfile("lobbylist");
+ toggleBuddy();
updatePlayerList();