Index: binaries/data/mods/public/gui/lobby/lobby.js =================================================================== --- binaries/data/mods/public/gui/lobby/lobby.js +++ binaries/data/mods/public/gui/lobby/lobby.js @@ -127,6 +127,15 @@ var g_AskedReconnect = false; /** + * Manage stacked cancel hotkey. Call first true condition onPress function. + */ +let g_CancelHotkey = [ + () => setLeaderboardVisibility(false), + () => setUserProfileVisibility(false), + () => setListBoxesUnselected() +]; + +/** * Processing of notifications sent by XmppClient.cpp. * * @returns true if the playerlist GUI must be updated. @@ -466,12 +475,12 @@ Engine.GetGUIObjectByName("middlePanel").size = "20%+5 " + (g_Dialog ? "18" : "40") + " 100%-255 100%-20"; Engine.GetGUIObjectByName("rightPanel").size = "100%-250 " + (g_Dialog ? "18" : "40") + " 100%-20 100%-20"; - Engine.GetGUIObjectByName("leftPanel").size = "20 " + (g_Dialog ? "18" : "40") + " 20% 100%-315"; + setLeftPanelExpanded(true); if (g_Dialog) { Engine.GetGUIObjectByName("lobbyDialogToggle").onPress = leaveLobby; - Engine.GetGUIObjectByName("cancelDialog").onPress = leaveLobby; + g_CancelHotkey.push(leaveLobby); } } @@ -702,7 +711,9 @@ let nickList = []; let ratingList = []; - let cleanPlayerList = Engine.GetPlayerList().map(player => { + let cleanPlayerList = [{name:"Feldfeld", presence:"playing", rating:"1842", role:"participant", isBuddy:true, isUser:false}, {name:"Liberty", presence:"available", rating:"1733", role:"participant", isBuddy:true, isUser:false}, {name:"PhyZic", presence:"playing", rating:"1724", role:"participant", isBuddy:true, isUser:false}, {name:"chrstgtr", presence:"playing", rating:"1657", role:"participant", isBuddy:true, isUser:false}, {name:"_zoro_", presence:"playing", rating:"1649", role:"participant", isBuddy:true, isUser:false}, {name:"nigel87", presence:"playing", rating:"1560", role:"participant", isBuddy:true, isUser:false}, {name:"camelius", presence:"playing", rating:"1525", role:"participant", isBuddy:true, isUser:false}, {name:"K4OS", presence:"playing", rating:"1457", role:"participant", isBuddy:true, isUser:false}, {name:"(-_-)", presence:"playing", rating:"1412", role:"participant", isBuddy:true, isUser:false}, {name:"mord", presence:"playing", rating:"1248", role:"participant", isBuddy:true, isUser:false}, {name:"phoenixdesk", presence:"playing", rating:"1242", role:"participant", isBuddy:true, isUser:false}, {name:"Beboo", presence:"playing", rating:"861", role:"participant", isBuddy:true, isUser:false}, {name:"FFFFFFF8", presence:"available", rating:"", role:"participant", isBuddy:true, isUser:false}, {name:"fsvn", presence:"available", rating:"", role:"participant", isBuddy:false, isUser:true}, {name:"mapkoc", presence:"away", rating:"", role:"moderator", isBuddy:true, isUser:false}, {name:"Grugnas", presence:"away", rating:"", role:"participant", isBuddy:true, isUser:false}, {name:"elexis", presence:"playing", rating:"", role:"moderator", isBuddy:true, isUser:false}, {name:"Hannibal_Baraq", presence:"playing", rating:"", role:"moderator", isBuddy:true, isUser:false}, {name:"user1", presence:"playing", rating:"", role:"moderator", isBuddy:true, isUser:false}, {name:"Hannibal_Barca", presence:"playing", rating:"1641", role:"participant", isBuddy:false, isUser:false}, {name:"mo", presence:"playing", rating:"1435", role:"participant", isBuddy:false, isUser:false}, {name:"googly_eyed_gator", presence:"playing", rating:"1381", role:"participant", isBuddy:false, isUser:false}, {name:"thenu", presence:"playing", rating:"1348", role:"participant", isBuddy:false, isUser:false}, {name:"Pluft", presence:"playing", rating:"1332", role:"participant", isBuddy:false, isUser:false}, {name:"lils", presence:"playing", rating:"1308", role:"participant", isBuddy:false, isUser:false}, {name:"ycswyw", presence:"available", rating:"1305", role:"participant", isBuddy:false, isUser:false}, {name:"JohnnyFresh", presence:"playing", rating:"1302", role:"participant", isBuddy:false, isUser:false}, {name:"Macaco", presence:"playing", rating:"1302", role:"participant", isBuddy:false, isUser:false}, {name:"LUPOX", presence:"playing", rating:"1292", role:"participant", isBuddy:false, isUser:false}, {name:"xdgamer", presence:"playing", rating:"1272", role:"participant", isBuddy:false, isUser:false}, {name:"Leoland", presence:"playing", rating:"1270", role:"participant", isBuddy:false, isUser:false}, {name:"aristide", presence:"available", rating:"1265", role:"participant", isBuddy:false, isUser:false}, {name:"xxcaedesxx2017", presence:"playing", rating:"1265", role:"participant", isBuddy:false, isUser:false}, {name:"theway", presence:"playing", rating:"1258", role:"participant", isBuddy:false, isUser:false}, {name:"mattipenna", presence:"playing", rating:"1257", role:"participant", isBuddy:false, isUser:false}, {name:"albertSBD", presence:"playing", rating:"1256", role:"participant", isBuddy:false, isUser:false}, {name:"Mr._P._Ness", presence:"playing", rating:"1246", role:"participant", isBuddy:false, isUser:false}, {name:"ezkiboi", presence:"playing", rating:"1220", role:"participant", isBuddy:false, isUser:false}, {name:"juniormaster", presence:"playing", rating:"1220", role:"participant", isBuddy:false, isUser:false}, {name:"mesakaro", presence:"playing", rating:"1197", role:"participant", isBuddy:false, isUser:false}, {name:"hereIam", presence:"playing", rating:"1180", role:"participant", isBuddy:false, isUser:false}, {name:"worwuk2", presence:"available", rating:"1174", role:"participant", isBuddy:false, isUser:false}, {name:"Poseidongr", presence:"playing", rating:"1168", role:"participant", isBuddy:false, isUser:false}, {name:"fernando1993", presence:"available", rating:"1167", role:"participant", isBuddy:false, isUser:false}, {name:"Edwarf", presence:"playing", rating:"1161", role:"participant", isBuddy:false, isUser:false}, {name:"MMGamer", presence:"available", rating:"1153", role:"participant", isBuddy:false, isUser:false}, {name:"karajme", presence:"available", rating:"1143", role:"participant", isBuddy:false, isUser:false}, {name:"JordiStc2", presence:"playing", rating:"1136", role:"participant", isBuddy:false, isUser:false}, {name:"alles", presence:"playing", rating:"1134", role:"participant", isBuddy:false, isUser:false}, {name:"Castri_sbd", presence:"playing", rating:"1107", role:"participant", isBuddy:false, isUser:false}, {name:"davidholmes", presence:"playing", rating:"1094", role:"participant", isBuddy:false, isUser:false}, {name:"GameStudio51", presence:"playing", rating:"1091", role:"participant", isBuddy:false, isUser:false}, {name:"cocoloco", presence:"playing", rating:"1062", role:"participant", isBuddy:false, isUser:false}, {name:"IrisRelay", presence:"playing", rating:"1022", role:"participant", isBuddy:false, isUser:false}, {name:"silius117", presence:"playing", rating:"1016", role:"participant", isBuddy:false, isUser:false}, {name:"Lupingo8", presence:"playing", rating:"992", role:"participant", isBuddy:false, isUser:false}, {name:"Ratings", presence:"available", rating:"", role:"moderator", isBuddy:false, isUser:false}, {name:"WFGbot", presence:"available", rating:"", role:"moderator", isBuddy:false, isUser:false}, {name:"Babavoi2", presence:"available", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"Belze", presence:"available", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"DontFearTheReaper", presence:"available", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"Dunedan", presence:"available", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"Aragorn1212", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"Artas13400", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"audedu35", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"cyrus1er", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"Exqua", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"Felillop", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"J3nder", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"javillop", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"Jojodio", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"Kamilues", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"kar23", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"Kotus", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"Krytecks", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"LapizLopez", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"LateinCecker", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"Lord_Blop", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"Pablopr3", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"Platon", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"rogeRabbit", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"WARAP_PIMP", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}, {name:"wojxik", presence:"playing", rating:"", role:"participant", isBuddy:false, isUser:false}]; + + cleanPlayerList = cleanPlayerList.map(player => { player.isBuddy = g_Buddies.indexOf(player.name) != -1; return player; }).sort((a, b) => { @@ -833,6 +844,10 @@ return; g_SelectedPlayer = playerList.list[playerList.selected]; + + if (!g_SelectedPlayer) + return; + lookupSelectedUserProfile("playersBox"); updateToggleBuddy(); selectGameFromPlayername(); @@ -840,18 +855,24 @@ function setLeaderboardVisibility(visible) { + if (visible == !Engine.GetGUIObjectByName("leaderboard").hidden) + return false; if (visible) Engine.SendGetBoardList(); lookupSelectedUserProfile(visible ? "leaderboardBox" : "playersBox"); Engine.GetGUIObjectByName("leaderboard").hidden = !visible; Engine.GetGUIObjectByName("fade").hidden = !visible; + return true; } function setUserProfileVisibility(visible) { + if (visible == !Engine.GetGUIObjectByName("profileFetch").hidden) + return false; Engine.GetGUIObjectByName("profileFetch").hidden = !visible; Engine.GetGUIObjectByName("fade").hidden = !visible; + return true; } /** @@ -862,6 +883,12 @@ Engine.SendGetProfile(Engine.GetGUIObjectByName("fetchInput").caption); } +function setLeftPanelExpanded(expanded) +{ + Engine.GetGUIObjectByName("profilePanel").hidden = expanded; + Engine.GetGUIObjectByName("leftPanel").size = "20 " +(g_Dialog ? "18" : "40") + " 20% 100%-105" + (expanded ? "" : "-205"); +} + /** * Display the profile of the selected player in the main window. * Displays N/A for all stats until updateProfile is called when the stats @@ -871,11 +898,11 @@ { let playerList = Engine.GetGUIObjectByName(guiObjectName); let playerName = playerList.list[playerList.selected]; - - Engine.GetGUIObjectByName("profileArea").hidden = !playerName && !Engine.GetGUIObjectByName("usernameText").caption; if (!playerName) return; + setLeftPanelExpanded(false); + Engine.SendGetProfile(playerName); Engine.GetGUIObjectByName("usernameText").caption = playerName; @@ -995,7 +1022,8 @@ g_SelectedGamePort = g_GameList[gamesBox.selected].port; } - g_GameList = Engine.GetGameList().map(game => { + g_GameList = [{name:"Grugnas's game", ip:"2.226.121.239", port:"20595", stunIP:"2.226.121.239", stunPort:"60195", hostUsername:"Grugnas", state:"init", nbp:"8", maxnbp:"8", players:"{\"-1\":\\[{\"Name\":\"PhyZic (1724)\"},{\"Name\":\"Feldfeld (1842)\"},{\"Name\":\"Hannibal_Barca (1641)\"},{\"Name\":\"chrstgtr (1657)\"},{\"Name\":\"Grugnas\"},{\"Name\":\"ycswyw (1305)\"},{\"Name\":\"phoenixdesk (1242)\"},{\"Name\":\"K4OS (1457)\"}],\"observer\":\\[{\"Name\":\"xdgamer (1272)\",\"Team\":\"observer\"},{\"Name\":\"samba (1159)\",\"Team\":\"observer\"},{\"Name\":\"Hercules55 (1262)\",\"Team\":\"observer\"},{\"Name\":\"mapkoc\",\"Team\":\"observer\"},{\"Name\":\"_zoro_ (1649)\",\"Team\":\"observer\"},{\"Name\":\"mattipenna (1257)\",\"Team\":\"observer\"},{\"Name\":\"nigel87 (1560)\",\"Team\":\"observer\"},{\"Name\":\"camelius (1525)\",\"Team\":\"observer\"},{\"Name\":\"rogeRabbit\",\"Team\":\"observer\"}]}", mapName:"maps/random/rivers", niceMapName:"Rivers", mapSize:"320", mapType:"random", victoryCondition:"conquest", startTime:"", hasBuddies:2, teamPlayers:{'-1':8}, teamPlayersOrg:{'-1':8}, noTeam:0, observerNum:9, buddySymbol:2, buddyNum:6, playerFilterFound:0, gameRating:1509}, {name:"1v1", ip:"202.153.80.114", port:"20595", stunIP:"202.153.80.114", stunPort:"6936", hostUsername:"(-_-)", state:"running", nbp:"2", maxnbp:"2", players:"{\"0\":\\[{\"Name\":\"(-_-) (1412)\",\"Team\":0}],\"1\":\\[{\"Name\":\"silius117 (1016)\",\"Team\":1}]}", mapName:"maps/random/mainland", niceMapName:"Mainland", mapSize:"192", mapType:"random", victoryCondition:"conquest", startTime:"1504891845", hasBuddies:2, teamPlayers:{0:1, 1:1}, teamPlayersOrg:{0:1, 1:1}, noTeam:0, observerNum:0, buddySymbol:2, buddyNum:1, playerFilterFound:0, gameRating:1214}, {name:"ezkiboi's game", ip:"86.4.116.222", port:"20595", stunIP:"86.4.116.222", stunPort:"20595", hostUsername:"ezkiboi", state:"running", nbp:"2", maxnbp:"2", players:"{\"-1\":\\[{\"Name\":\"ezkiboi\",\"Team\":-1},{\"Name\":\"Beboo (861)\",\"Team\":-1}]}", mapName:"maps/skirmishes/Alpine_Valleys_(2)", niceMapName:"Alpine Valleys (2)", mapSize:"Default", mapType:"skirmish", victoryCondition:"conquest", startTime:"1504892195", hasBuddies:2, teamPlayers:{'-1':2}, teamPlayersOrg:{'-1':2}, noTeam:0, observerNum:0, buddySymbol:2, buddyNum:1, playerFilterFound:0, gameRating:1031}, {name:"mord's game", ip:"77.180.235.85", port:"20595", stunIP:"77.180.235.85", stunPort:"20595", hostUsername:"mord", state:"running", nbp:"4", maxnbp:"4", players:"{\"0\":\\[{\"Name\":\"mord (1248)\",\"Team\":0},{\"Name\":\"Pluft (1332)\",\"Team\":0}],\"1\":\\[{\"Name\":\"mo (1435)\",\"Team\":1},{\"Name\":\"Lord_Blop\",\"Team\":1}]}", mapName:"maps/random/danubius", niceMapName:"Danubius", mapSize:"256", mapType:"random", victoryCondition:"capture_the_relic", startTime:"1504891436", hasBuddies:2, teamPlayers:{0:2, 1:2}, teamPlayersOrg:{0:2, 1:2}, noTeam:0, observerNum:0, buddySymbol:2, buddyNum:1, playerFilterFound:0, gameRating:1304}, {name:"Game of Thrones", ip:"79.26.139.123", port:"20595", stunIP:"79.26.139.123", stunPort:"58246", hostUsername:"ReGeoffrey", state:"init", nbp:"2", maxnbp:"3", players:"{\"observer\":\\[{\"Name\":\"trijeux2005\",\"Team\":\"observer\"},{\"Name\":\"davidholmes (1094)\",\"Team\":\"observer\"}],\"-1\":\\[{\"Name\":\"ReGeoffrey (1159)\"},{\"Name\":\"aristide (1265)\"}]}", mapName:"maps/skirmishes/Gambia River (3)", niceMapName:"Gambia River (3)", mapSize:"Default", mapType:"skirmish", victoryCondition:"conquest", startTime:"", hasBuddies:0, teamPlayers:{'-1':2}, teamPlayersOrg:{'-1':2}, noTeam:0, observerNum:2, buddySymbol:0, buddyNum:0, playerFilterFound:0, gameRating:1212}, {name:"mardukamm's game", ip:"151.63.243.242", port:"20595", stunIP:"151.63.243.242", stunPort:"28321", hostUsername:"mardukamm", state:"init", nbp:"2", maxnbp:"2", players:"{\"-1\":\\[{\"Name\":\"mardukamm\"},{\"Name\":\"Rulii (1189)\"}]}", mapName:"maps/scenarios/Aryanbactria", niceMapName:"Aryanistan", mapSize:"Default", mapType:"scenario", victoryCondition:"endless", startTime:"", hasBuddies:0, teamPlayers:{'-1':2}, teamPlayersOrg:{'-1':2}, noTeam:0, observerNum:0, buddySymbol:0, buddyNum:0, playerFilterFound:0, gameRating:1195}, {name:"Private", ip:"94.66.223.240", port:"20595", stunIP:"94.66.223.240", stunPort:"27971", hostUsername:"hereIam", state:"waiting", nbp:"1", maxnbp:"8", players:"{\"0\":\\[{\"Name\":\"hereIam (1180)\",\"Team\":0},{\"Name\":\"Audax\",\"Team\":0,\"AI\":\"petra\",\"AIDiff\":5},{\"Name\":\"Mago Barca\",\"Team\":0,\"AI\":\"petra\",\"AIDiff\":5},{\"Name\":\"Lucius Junius Brutus\",\"Team\":0,\"AI\":\"petra\",\"AIDiff\":5}],\"1\":\\[{\"Name\":\"juli147 (1050)\",\"Team\":1,\"Offline\":true,\"State\":\"defeated\"},{\"Name\":\"Cingetorix\",\"Team\":1,\"AI\":\"petra\",\"AIDiff\":5},{\"Name\":\"Artaxshacha II\",\"Team\":1,\"AI\":\"petra\",\"AIDiff\":5,\"State\":\"defeated\"},{\"Name\":\"Meleager\",\"Team\":1,\"AI\":\"petra\",\"AIDiff\":5}]}", mapName:"maps/random/marmara", niceMapName:"Marmara", mapSize:"320", mapType:"random", victoryCondition:"conquest_structures", startTime:"1504883800", hasBuddies:0, teamPlayers:{0:4, 1:2}, teamPlayersOrg:{0:4, 1:4}, noTeam:0, observerNum:1, buddySymbol:0, buddyNum:0, playerFilterFound:0, gameRating:1197}, {name:"Private_albert", ip:"81.38.254.175", port:"20595", stunIP:"81.38.254.175", stunPort:"20595", hostUsername:"albertSBD", state:"waiting", nbp:"3", maxnbp:"4", players:"{\"0\":\\[{\"Name\":\"albertSBD (1256)\",\"Team\":0},{\"Name\":\"Castri_sbd (1107)\",\"Team\":0}],\"1\":\\[{\"Name\":\"juniormaster (1220)\",\"Team\":1},{\"Name\":\"ReGeoffrey (1159)\",\"Team\":1,\"Offline\":true,\"State\":\"defeated\"}]}", mapName:"maps/random/guadalquivir_river", niceMapName:"Guadalquivir River", mapSize:"448", mapType:"random", victoryCondition:"conquest", startTime:"1504888757", hasBuddies:0, teamPlayers:{0:2, 1:1}, teamPlayersOrg:{0:2, 1:2}, noTeam:0, observerNum:0, buddySymbol:0, buddyNum:0, playerFilterFound:0, gameRating:1194}, {name:"\u0442\u0430\u0434\u0430\u0434\u0430\u0434\u0430\u043C", ip:"94.141.162.12", port:"20595", stunIP:"94.141.162.12", stunPort:"20595", hostUsername:"alles", state:"waiting", nbp:"1", maxnbp:"3", players:"{\"0\":\\[{\"Name\":\"alles (1134)\",\"Team\":0},{\"Name\":\"Aragorn1212\",\"Team\":0,\"Offline\":true}],\"1\":\\[{\"Name\":\"Kurush II the Great\",\"Team\":1,\"AI\":\"petra\",\"AIDiff\":2}]}", mapName:"maps/random/volcanic_lands", niceMapName:"Volcanic Lands", mapSize:"256", mapType:"random", victoryCondition:"conquest", startTime:"1504891342", hasBuddies:0, teamPlayers:{0:2, 1:1}, teamPlayersOrg:{0:2, 1:1}, noTeam:0, observerNum:0, buddySymbol:0, buddyNum:0, playerFilterFound:0, gameRating:1178}, {name:"1v1 or 2v2 any rating", ip:"72.192.93.80", port:"20595", stunIP:"72.192.93.80", stunPort:"20595", hostUsername:"theway", state:"running", nbp:"2", maxnbp:"2", players:"{\"0\":\\[{\"Name\":\"theway (1258)\",\"Team\":0}],\"1\":\\[{\"Name\":\"Leoland (1270)\",\"Team\":1}]}", mapName:"maps/random/mainland", niceMapName:"Mainland", mapSize:"256", mapType:"random", victoryCondition:"conquest", startTime:"1504891603", hasBuddies:0, teamPlayers:{0:1, 1:1}, teamPlayersOrg:{0:1, 1:1}, noTeam:0, observerNum:0, buddySymbol:0, buddyNum:0, playerFilterFound:0, gameRating:1264}, {name:"cocoloco's game", ip:"187.227.2.232", port:"20595", stunIP:"187.227.2.232", stunPort:"20595", hostUsername:"cocoloco", state:"running", nbp:"4", maxnbp:"4", players:"{\"0\":\\[{\"Name\":\"cocoloco (1062)\",\"Team\":0},{\"Name\":\"JohnnyFresh (1302)\",\"Team\":0}],\"1\":\\[{\"Name\":\"googly_eyed_gator (1381)\",\"Team\":1},{\"Name\":\"LateinCecker\",\"Team\":1}]}", mapName:"maps/random/ardennes_forest", niceMapName:"Ardennes Forest", mapSize:"256", mapType:"random", victoryCondition:"conquest", startTime:"1504890958", hasBuddies:0, teamPlayers:{0:2, 1:2}, teamPlayersOrg:{0:2, 1:2}, noTeam:0, observerNum:0, buddySymbol:0, buddyNum:0, playerFilterFound:0, gameRating:1236}, {name:"javillop's game", ip:"81.38.27.147", port:"20595", stunIP:"81.38.27.147", stunPort:"20595", hostUsername:"javillop", state:"running", nbp:"4", maxnbp:"6", players:"{\"-1\":\\[{\"Name\":\"javillop\"},{\"Name\":\"Felillop\"},{\"Name\":\"WARAP_PIMP\"},{\"Name\":\"Platon\"},{\"Name\":\"Antiochus VI Dionysus\",\"AI\":\"petra\",\"AIDiff\":5},{\"Name\":\"Player 6\"}]}", mapName:"maps/skirmishes/Two Seas (6)", niceMapName:"Two Seas (6)", mapSize:"Default", mapType:"skirmish", victoryCondition:"conquest", startTime:"1504887762", hasBuddies:0, teamPlayers:{'-1':6}, teamPlayersOrg:{'-1':6}, noTeam:0, observerNum:0, buddySymbol:0, buddyNum:0, playerFilterFound:0, gameRating:1200}, {name:"Kamilues's game", ip:"77.253.173.97", port:"20595", stunIP:"77.253.173.97", stunPort:"20595", hostUsername:"Kamilues", state:"running", nbp:"4", maxnbp:"4", players:"{\"0\":\\[{\"Name\":\"Kamilues\",\"Team\":0},{\"Name\":\"wojxik\",\"Team\":0}],\"1\":\\[{\"Name\":\"JordiStc2 (1136)\",\"Team\":1},{\"Name\":\"mesakaro (1197)\",\"Team\":1}]}", mapName:"maps/skirmishes/Greek Acropolis (4)", niceMapName:"Greek Acropolis (4)", mapSize:"Default", mapType:"skirmish", victoryCondition:"conquest", startTime:"1504892395", hasBuddies:0, teamPlayers:{0:2, 1:2}, teamPlayersOrg:{0:2, 1:2}, noTeam:0, observerNum:0, buddySymbol:0, buddyNum:0, playerFilterFound:0, gameRating:1183}, {name:"lils's game", ip:"84.238.145.154", port:"20595", stunIP:"84.238.145.154", stunPort:"20595", hostUsername:"lils", state:"running", nbp:"2", maxnbp:"2", players:"{\"-1\":\\[{\"Name\":\"GameStudio51 (1091)\",\"Team\":-1},{\"Name\":\"lils (1308)\",\"Team\":-1}]}", mapName:"maps/skirmishes/Death Canyon (2)", niceMapName:"Death Canyon (2)", mapSize:"Default", mapType:"skirmish", victoryCondition:"conquest_structures", startTime:"1504890275", hasBuddies:0, teamPlayers:{'-1':2}, teamPlayersOrg:{'-1':2}, noTeam:0, observerNum:0, buddySymbol:0, buddyNum:0, playerFilterFound:0, gameRating:1200}, {name:"Lupingo8's game", ip:"90.69.13.16", port:"20595", stunIP:"90.69.13.16", stunPort:"20595", hostUsername:"Lupingo8", state:"running", nbp:"2", maxnbp:"2", players:"{\"-1\":\\[{\"Name\":\"Lupingo8 (992)\",\"Team\":-1},{\"Name\":\"LUPOX (1292)\",\"Team\":-1}]}", mapName:"maps/skirmishes/Golden Island (2)", niceMapName:"Golden Island (2)", mapSize:"Default", mapType:"skirmish", victoryCondition:"conquest", startTime:"1504890679", hasBuddies:0, teamPlayers:{'-1':2}, teamPlayersOrg:{'-1':2}, noTeam:0, observerNum:0, buddySymbol:0, buddyNum:0, playerFilterFound:0, gameRating:1142}, {name:"Pablopr3's game", ip:"83.47.54.83", port:"20595", stunIP:"83.47.54.83", stunPort:"20595", hostUsername:"Pablopr3", state:"running", nbp:"2", maxnbp:"4", players:"{\"0\":\\[{\"Name\":\"Pablopr3\",\"Team\":0},{\"Name\":\"Jojodio\",\"Team\":0}],\"1\":\\[{\"Name\":\"Demosthenes\",\"Team\":1,\"AI\":\"petra\",\"AIDiff\":3},{\"Name\":\"Darayavahush II\",\"Team\":1,\"AI\":\"petra\",\"AIDiff\":3}]}", mapName:"maps/skirmishes/Forest Battle (4)", niceMapName:"Forest Battle (4)", mapSize:"Default", mapType:"skirmish", victoryCondition:"conquest", startTime:"1504891967", hasBuddies:0, teamPlayers:{0:2, 1:2}, teamPlayersOrg:{0:2, 1:2}, noTeam:0, observerNum:0, buddySymbol:0, buddyNum:0, playerFilterFound:0, gameRating:1200}, {name:"Poseidongr's game", ip:"85.72.236.78", port:"20595", stunIP:"85.72.236.78", stunPort:"20595", hostUsername:"Poseidongr", state:"running", nbp:"2", maxnbp:"2", players:"{\"-1\":\\[{\"Name\":\"Poseidongr (1168)\",\"Team\":-1},{\"Name\":\"Macaco (1302)\",\"Team\":-1}]}", mapName:"maps/random/hells_pass", niceMapName:"Hell's Pass", mapSize:"448", mapType:"random", victoryCondition:"conquest", startTime:"1504889563", hasBuddies:0, teamPlayers:{'-1':2}, teamPlayersOrg:{'-1':2}, noTeam:0, observerNum:0, buddySymbol:0, buddyNum:0, playerFilterFound:0, gameRating:1235}, {name:"PRIVATE", ip:"82.193.253.7", port:"20595", stunIP:"82.193.253.7", stunPort:"20595", hostUsername:"xxcaedesxx2017", state:"running", nbp:"2", maxnbp:"6", players:"{\"-1\":\\[{\"Name\":\"xxcaedesxx2017 (1265)\",\"Team\":-1},{\"Name\":\"J3nder\",\"Team\":-1},{\"Name\":\"Karatakos\",\"Team\":-1,\"AI\":\"petra\",\"AIDiff\":2},{\"Name\":\"Kunobelinos\",\"Team\":-1,\"AI\":\"petra\",\"AIDiff\":2},{\"Name\":\"Xsayarsa I\",\"Team\":-1,\"AI\":\"petra\",\"AIDiff\":2},{\"Name\":\"Ptolemy Epigone\",\"Team\":-1,\"AI\":\"petra\",\"AIDiff\":2}]}", mapName:"maps/skirmishes/Two Seas (6)", niceMapName:"Two Seas (6)", mapSize:"Default", mapType:"skirmish", victoryCondition:"conquest", startTime:"1504889619", hasBuddies:0, teamPlayers:{'-1':6}, teamPlayersOrg:{'-1':6}, noTeam:0, observerNum:0, buddySymbol:0, buddyNum:0, playerFilterFound:0, gameRating:1211}]; + g_GameList = g_GameList.map(game => { game.hasBuddies = 0; @@ -1069,7 +1097,7 @@ let gameName = escapeText(game.name); let mapTypeIdx = g_MapTypes.Name.indexOf(game.mapType); - if (game.ip == g_SelectedGameIP && game.port == g_SelectedGamePort) + if (gamesBox.selected > -1 && game.ip == g_SelectedGameIP && game.port == g_SelectedGamePort) selectedGameIndex = +i; list_buddy.push(game.hasBuddies ? coloredText(g_BuddySymbol, g_GameColors[game.state]) : ""); @@ -1161,6 +1189,17 @@ return g_GameList[gamesBox.list_data[gamesBox.selected]]; } +function setListBoxesUnselected() +{ + if (Engine.GetGUIObjectByName("gamesBox").selected == -1 && + Engine.GetGUIObjectByName("playersBox").selected == -1) + return false; + Engine.GetGUIObjectByName("gamesBox").selected = -1; + Engine.GetGUIObjectByName("playersBox").selected = -1; + setLeftPanelExpanded(true); + return true; +} + /** * Immediately rejoin and join gamesetups. Otherwise confirm late-observer join attempt. */ Index: binaries/data/mods/public/gui/lobby/lobby_panels.xml =================================================================== --- binaries/data/mods/public/gui/lobby/lobby_panels.xml +++ binaries/data/mods/public/gui/lobby/lobby_panels.xml @@ -8,6 +8,12 @@ + + + g_CancelHotkey.some(cancel => cancel()); + + + -