22 | 22 | function init(attribs) |
23 | 23 | { |
24 | 24 | // Play menu music |
25 | 25 | initMusic(); |
26 | 26 | global.music.setState(global.music.states.MENU); |
27 | 27 | |
28 | 28 | g_Name = Engine.LobbyGetNick(); |
29 | 29 | |
30 | 30 | g_mapSizes = initMapSizes(); |
31 | 31 | g_mapSizes.shortNames.splice(0, 0, translateWithContext("map size", "Any")); |
32 | 32 | g_mapSizes.tiles.splice(0, 0, ""); |
33 | 33 | |
34 | 34 | var mapSizeFilter = Engine.GetGUIObjectByName("mapSizeFilter"); |
35 | 35 | mapSizeFilter.list = g_mapSizes.shortNames; |
36 | 36 | mapSizeFilter.list_data = g_mapSizes.tiles; |
37 | 37 | |
38 | 38 | // Setup number-of-players filter |
39 | 39 | var playersArray = Array(g_MaxPlayers).fill(0).map((v, i) => i + 1); // 1, 2, ... MaxPlayers |
40 | 40 | var playersNumberFilter = Engine.GetGUIObjectByName("playersNumberFilter"); |
41 | 41 | playersNumberFilter.list = [translateWithContext("player number", "Any")].concat(playersArray); |
42 | 42 | playersNumberFilter.list_data = [""].concat(playersArray); |
43 | 43 | |
44 | 44 | var mapTypeFilter = Engine.GetGUIObjectByName("mapTypeFilter"); |
45 | 45 | mapTypeFilter.list = [translateWithContext("map", "Any")].concat(g_mapTypesText); |
46 | 46 | mapTypeFilter.list_data = [""].concat(g_mapTypes); |
47 | 47 | |
49 | 52 | Engine.SendGetGameList(); |
50 | 53 | Engine.SendGetBoardList(); |
51 | 54 | |
52 | 55 | // When rejoining the lobby after a game, we don't need to process presence changes |
53 | 56 | Engine.LobbyClearPresenceUpdates(); |
54 | 57 | updatePlayerList(); |
55 | 58 | |
56 | 59 | updateSubject(Engine.LobbyGetRoomSubject()); |
57 | 60 | |
58 | 61 | resetFilters(); |
59 | 62 | } |
60 | 63 | |
61 | 64 | //////////////////////////////////////////////////////////////////////////////////////////////// |
62 | 65 | // Xmpp client connection management |
63 | 66 | //////////////////////////////////////////////////////////////////////////////////////////////// |
64 | 67 | |
65 | 68 | |
66 | 69 | function lobbyStop() |
67 | 70 | { |
68 | 71 | Engine.StopXmppClient(); |
69 | 72 | } |
70 | 73 | |
71 | 74 | function lobbyConnect() |
72 | 75 | { |
73 | 76 | Engine.ConnectXmppClient(); |
74 | 77 | } |