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();