From 72f0fdb41b9257d3956a86ca601d715b0c9770d3 Mon Sep 17 00:00:00 2001 From: wraitii Date: Mon, 22 Mar 2021 12:26:48 +0000 Subject: [PATCH] GameSetup GUI cleanup - Renaming. - rename 'Controls' class to 'Controllers' to avoid ambiguity and mimic MVC lingo. - rename GameRegisterStanza into LobbyGameRegistration, and make it explicitly a controller. - rename GameSettingsFile to PersistentMatchSettings & move it to its own folder (since it could be reused independently of the controllers) - remove the StartGameController & move `launchGame` to the GameSettingsController (simplifies the control flow) - the GUI Object "setupWindow" was actually the GameSettingsPage, this is corrected. - the LoadingPage was showing the GameSettingsPage -> in the current code, it makes more sense to have both handle their own visibility. - make the NetMessages class independent of other gamesetup logic, so that it can be reused by other code. Remove the custom XML object. Differential Revision: https://code.wildfiregames.com/D3719 This was SVN commit r25101. --- .../GameSettingsController.js} | 84 ++++++++++++++----- .../{Controls => Controllers}/GuiData.js | 5 +- .../LobbyGameRegistration.js} | 14 ++-- .../PlayerAssignmentsController.js} | 12 +-- .../ReadyController.js} | 32 +++---- .../gamesetup/Controls/StartGameControl.js | 53 ------------ .../gui/gamesetup/NetMessages/NetMessages.js | 16 +--- .../Pages/AIConfigPage/AIConfigPage.js | 2 +- .../Pages/AIConfigPage/Controls/AIBehavior.js | 2 +- .../AIConfigPage/Controls/AIDifficulty.js | 2 +- .../AIConfigPage/Controls/AISelection.js | 2 +- .../GameSettings/GameSettingControl.js | 8 +- .../PerPlayer/Dropdowns/PlayerAssignment.js | 24 +++--- .../PerPlayer/Dropdowns/PlayerCiv.js | 2 +- .../PerPlayer/Dropdowns/PlayerColor.js | 2 +- .../PerPlayer/Dropdowns/PlayerTeam.js | 2 +- .../GameSettings/Single/Checkboxes/Cheats.js | 2 +- .../Single/Checkboxes/ExploredMap.js | 2 +- .../Single/Checkboxes/LastManStanding.js | 2 +- .../Single/Checkboxes/LockedTeams.js | 2 +- .../GameSettings/Single/Checkboxes/Nomad.js | 2 +- .../GameSettings/Single/Checkboxes/Rating.js | 2 +- .../Single/Checkboxes/RegicideGarrison.js | 2 +- .../Single/Checkboxes/RevealedMap.js | 2 +- .../GameSettings/Single/Checkboxes/Spies.js | 2 +- .../Single/Checkboxes/Treasures.js | 2 +- .../Single/Checkboxes/WorldPopulation.js | 2 +- .../GameSettings/Single/Dropdowns/Biome.js | 2 +- .../GameSettings/Single/Dropdowns/Daytime.js | 2 +- .../Single/Dropdowns/GameSpeed.js | 2 +- .../Single/Dropdowns/Landscape.js | 2 +- .../Single/Dropdowns/MapFilter.js | 12 +-- .../Single/Dropdowns/MapSelection.js | 8 +- .../GameSettings/Single/Dropdowns/MapSize.js | 2 +- .../GameSettings/Single/Dropdowns/MapType.js | 2 +- .../Single/Dropdowns/PlayerCount.js | 2 +- .../Single/Dropdowns/PopulationCap.js | 2 +- .../Single/Dropdowns/StartingResources.js | 2 +- .../Single/Dropdowns/TeamPlacement.js | 2 +- .../Single/Dropdowns/TriggerDifficulty.js | 2 +- .../Single/Dropdowns/WorldPopulationCap.js | 2 +- .../GameSettings/Single/Sliders/Ceasefire.js | 2 +- .../GameSettings/Single/Sliders/RelicCount.js | 2 +- .../Single/Sliders/RelicDuration.js | 2 +- .../Single/Sliders/SeaLevelRiseTime.js | 2 +- .../Single/Sliders/WonderDuration.js | 2 +- .../GameSettings/VictoryConditionCheckbox.js | 2 +- .../Pages/GameSetupPage/GameSetupPage.js | 9 +- .../Pages/GameSetupPage/GameSetupPage.xml | 5 +- .../Panels/Buttons/ReadyButton.js | 14 ++-- .../Panels/Buttons/ResetCivsButton.js | 4 +- .../Panels/Buttons/ResetTeamsButton.js | 4 +- .../Panels/Buttons/StartGameButton.js | 6 +- .../Panels/Chat/ChatInputAutocomplete.js | 6 +- .../Chat/ChatMessages/ClientConnection.js | 4 +- .../Chat/ChatMessages/GameSettingsChanged.js | 6 +- .../GameSetupPage/Panels/Chat/ChatPanel.js | 2 +- .../GameSetupPage/Panels/GameSettingsPanel.js | 10 +-- .../Pages/GameSetupPage/Panels/MapPreview.js | 2 +- .../GameSetupPage/Panels/SoundNotification.js | 2 +- .../Pages/LoadingPage/LoadingPage.js | 9 +- .../Pages/MapBrowserPage/MapBrowserPage.js | 8 +- .../PersistentMatchSettings.js} | 29 +++---- .../mods/public/gui/gamesetup/SetupWindow.js | 33 +++++--- .../mods/public/gui/gamesetup/gamesetup.xml | 5 +- 65 files changed, 240 insertions(+), 258 deletions(-) rename binaries/data/mods/public/gui/gamesetup/{Controls/GameSettingsControl.js => Controllers/GameSettingsController.js} (72%) rename binaries/data/mods/public/gui/gamesetup/{Controls => Controllers}/GuiData.js (59%) rename binaries/data/mods/public/gui/gamesetup/{NetMessages/GameRegisterStanza.js => Controllers/LobbyGameRegistration.js} (89%) rename binaries/data/mods/public/gui/gamesetup/{Controls/PlayerAssignmentsControl.js => Controllers/PlayerAssignmentsController.js} (92%) rename binaries/data/mods/public/gui/gamesetup/{Controls/ReadyControl.js => Controllers/ReadyController.js} (71%) delete mode 100644 binaries/data/mods/public/gui/gamesetup/Controls/StartGameControl.js rename binaries/data/mods/public/gui/gamesetup/{Controls/GameSettingsFile.js => Persistence/PersistentMatchSettings.js} (66%) diff --git a/binaries/data/mods/public/gui/gamesetup/Controls/GameSettingsControl.js b/binaries/data/mods/public/gui/gamesetup/Controllers/GameSettingsController.js similarity index 72% rename from binaries/data/mods/public/gui/gamesetup/Controls/GameSettingsControl.js rename to binaries/data/mods/public/gui/gamesetup/Controllers/GameSettingsController.js index f6052a414c..b9257d0280 100644 --- a/binaries/data/mods/public/gui/gamesetup/Controls/GameSettingsControl.js +++ b/binaries/data/mods/public/gui/gamesetup/Controllers/GameSettingsController.js @@ -1,14 +1,13 @@ /** - * 'Controller' for the GUI handling of gamesettings. + * Controller for the GUI handling of gamesettings. */ -class GameSettingsControl +class GameSettingsController { - constructor(setupWindow, netMessages, startGameControl, playerAssignmentsControl, mapCache) + constructor(setupWindow, netMessages, playerAssignmentsController, mapCache) { this.setupWindow = setupWindow; - this.startGameControl = startGameControl; this.mapCache = mapCache; - this.gameSettingsFile = new GameSettingsFile(this); + this.persistentMatchSettings = new PersistentMatchSettings(this); this.guiData = new GameSettingsGuiData(); @@ -16,6 +15,11 @@ class GameSettingsControl // may not have been received yet. this.loading = true; + // If this is true, the ready controller won't reset readiness. + // TODO: ideally the ready controller would be somewhat independent from this one, + // possibly by listening to gamesetup messages itself. + this.gameStarted = false; + this.updateLayoutHandlers = new Set(); this.settingsChangeHandlers = new Set(); this.loadingChangeHandlers = new Set(); @@ -23,15 +27,18 @@ class GameSettingsControl setupWindow.registerLoadHandler(this.onLoad.bind(this)); setupWindow.registerGetHotloadDataHandler(this.onGetHotloadData.bind(this)); - startGameControl.registerLaunchGameHandler(this.onLaunchGame.bind(this)); - setupWindow.registerClosePageHandler(this.onClose.bind(this)); - if (g_IsController && g_IsNetworked) - playerAssignmentsControl.registerClientJoinHandler(this.onClientJoin.bind(this)); - if (g_IsNetworked) + { + if (g_IsController) + playerAssignmentsController.registerClientJoinHandler(this.onClientJoin.bind(this)); + else + // In MP, the host launches the game and switches right away, + // clients switch when they receive the appropriate message. + netMessages.registerNetMessageHandler("start", this.switchToLoadingPage.bind(this)); netMessages.registerNetMessageHandler("gamesetup", this.onGamesetupMessage.bind(this)); + } } /** @@ -63,9 +70,9 @@ class GameSettingsControl { if (hotloadData) this.parseSettings(hotloadData.initAttributes); - else if (g_IsController && this.gameSettingsFile.enabled) + else if (g_IsController && this.persistentMatchSettings.enabled) { - let settings = this.gameSettingsFile.loadFile(); + let settings = this.persistentMatchSettings.loadFile(); if (settings) this.parseSettings(settings); } @@ -78,11 +85,6 @@ class GameSettingsControl this.setLoading(false); } - onClose() - { - this.gameSettingsFile.saveFile(); - } - onClientJoin() { /** @@ -226,10 +228,52 @@ class GameSettingsControl }); } - onLaunchGame() + /** + * Cheat prevention: + * + * 1. Ensure that the host cannot start the game unless all clients agreed on the game settings using the ready system. + * + * TODO: + * 2. Ensure that the host cannot start the game with InitAttributes different from the agreed ones. + * This may be achieved by: + * - Determining the seed collectively. + * - passing the agreed game settings to the engine when starting the game instance + * - rejecting new game settings from the server after the game launch event + */ + launchGame() { // Save the file before random settings are resolved. - this.gameSettingsFile.saveFile(); + this.savePersistentMatchSettings(); + + // Mark the game as started so the readyController won't reset state. + this.gameStarted = true; + + // This will resolve random settings & send game start messages. + // TODO: this will trigger observers, which is somewhat wasteful. + g_GameSettings.launchGame(g_PlayerAssignments); + + // Switch to the loading page right away, + // the GUI will otherwise show the unrandomised settings. + this.switchToLoadingPage(); + } + + switchToLoadingPage() + { + Engine.SwitchGuiPage("page_loading.xml", { + "attribs": g_GameSettings.toInitAttributes(), + "playerAssignments": g_PlayerAssignments + }); + } + + onClose() + { + this.savePersistentMatchSettings(); + } + + savePersistentMatchSettings() + { + // TODO: ought to only save a subset of settings. + this.persistentMatchSettings.saveFile(this.getSettings()); } } @@ -237,4 +281,4 @@ class GameSettingsControl /** * Wait (at most) this many milliseconds before sending network messages. */ -GameSettingsControl.prototype.Timeout = 400; +GameSettingsController.prototype.Timeout = 400; diff --git a/binaries/data/mods/public/gui/gamesetup/Controls/GuiData.js b/binaries/data/mods/public/gui/gamesetup/Controllers/GuiData.js similarity index 59% rename from binaries/data/mods/public/gui/gamesetup/Controls/GuiData.js rename to binaries/data/mods/public/gui/gamesetup/Controllers/GuiData.js index a69cd9a0ca..d0998144f9 100644 --- a/binaries/data/mods/public/gui/gamesetup/Controls/GuiData.js +++ b/binaries/data/mods/public/gui/gamesetup/Controllers/GuiData.js @@ -1,5 +1,6 @@ /** - * This class contains GUI-specific gamesetting data. + * This class contains network-synchronized data specific to GameSettingsController. + * It's split from GameSettingsController for convenience. */ class GameSettingsGuiData { @@ -10,7 +11,7 @@ class GameSettingsGuiData } /** - * Serialize for network transmission, settings persistence or convenience in other GUI files. + * Serialize for network transmission & settings persistence. */ Serialize() { diff --git a/binaries/data/mods/public/gui/gamesetup/NetMessages/GameRegisterStanza.js b/binaries/data/mods/public/gui/gamesetup/Controllers/LobbyGameRegistration.js similarity index 89% rename from binaries/data/mods/public/gui/gamesetup/NetMessages/GameRegisterStanza.js rename to binaries/data/mods/public/gui/gamesetup/Controllers/LobbyGameRegistration.js index 136a48f34e..3cd0837ae0 100644 --- a/binaries/data/mods/public/gui/gamesetup/NetMessages/GameRegisterStanza.js +++ b/binaries/data/mods/public/gui/gamesetup/Controllers/LobbyGameRegistration.js @@ -3,9 +3,9 @@ * this match is being setup so that others can join. * It informs of the lobby of some setting values and the participating clients. */ -class GameRegisterStanza +class LobbyGameRegistrationController { - constructor(initData, setupWindow, netMessages, mapCache) + constructor(initData, setupWindow, netMessages, mapCache, playerAssignmentsController) { this.mapCache = mapCache; @@ -21,6 +21,7 @@ class GameRegisterStanza // Events setupWindow.registerClosePageHandler(this.onClosePage.bind(this)); netMessages.registerNetMessageHandler("start", this.onGameStart.bind(this)); + playerAssignmentsController.registerPlayerAssignmentsChangeHandler(this.sendImmediately.bind(this)); g_GameSettings.map.watch(() => this.onSettingsChange(), ["map", "type"]); g_GameSettings.mapSize.watch(() => this.onSettingsChange(), ["size"]); @@ -38,9 +39,6 @@ class GameRegisterStanza onGameStart() { - if (!g_IsController || !Engine.HasXmppClient()) - return; - this.sendImmediately(); let clients = this.formatClientsForStanza(); Engine.SendChangeStateGame(clients.connectedPlayers, clients.list); @@ -60,8 +58,9 @@ class GameRegisterStanza if (!g_IsController || !Engine.HasXmppClient()) return; + // Already sending an update - do nothing. if (this.timer !== undefined) - clearTimeout(this.timer); + return; this.timer = setTimeout(this.sendImmediately.bind(this), this.Timeout); } @@ -88,6 +87,7 @@ class GameRegisterStanza "name": this.serverName, "hostUsername": Engine.LobbyGetNick(), "mapName": g_GameSettings.map.map, + // TODO: if the map name was always up-to-date we wouldn't need the mapcache here. "niceMapName": this.mapCache.getTranslatableMapName(g_GameSettings.map.type, g_GameSettings.map.map), "mapSize": g_GameSettings.map.type == "random" ? g_GameSettings.mapSize.size : "Default", "mapType": g_GameSettings.map.type, @@ -139,4 +139,4 @@ class GameRegisterStanza /** * Send the current game settings to the lobby bot if the settings didn't change for this number of milliseconds. */ -GameRegisterStanza.prototype.Timeout = 2000; +LobbyGameRegistrationController.prototype.Timeout = 2000; diff --git a/binaries/data/mods/public/gui/gamesetup/Controls/PlayerAssignmentsControl.js b/binaries/data/mods/public/gui/gamesetup/Controllers/PlayerAssignmentsController.js similarity index 92% rename from binaries/data/mods/public/gui/gamesetup/Controls/PlayerAssignmentsControl.js rename to binaries/data/mods/public/gui/gamesetup/Controllers/PlayerAssignmentsController.js index 3c8c40d97f..ffc2414591 100644 --- a/binaries/data/mods/public/gui/gamesetup/Controls/PlayerAssignmentsControl.js +++ b/binaries/data/mods/public/gui/gamesetup/Controllers/PlayerAssignmentsController.js @@ -1,14 +1,13 @@ /** * This class provides a property independent interface to g_PlayerAssignment events and actions. */ -class PlayerAssignmentsControl +class PlayerAssignmentsController { - constructor(setupWindow, netMessages, gameRegisterStanza) + constructor(setupWindow, netMessages) { this.clientJoinHandlers = new Set(); this.clientLeaveHandlers = new Set(); this.playerAssignmentsChangeHandlers = new Set(); - this.gameRegisterStanza = gameRegisterStanza; if (!g_IsNetworked) { @@ -147,9 +146,6 @@ class PlayerAssignmentsControl g_PlayerAssignments = newAssignments; this.updatePlayerAssignments(); - // Send at most one gameRegisterStanza after all handlers run in case a - // joining observer has been assigned to a playerslot. - this.gameRegisterStanza.sendImmediately?.(); } assignClient(guid, playerIndex) @@ -207,8 +203,8 @@ class PlayerAssignmentsControl } } -PlayerAssignmentsControl.prototype.ConfigNameSingleplayer = +PlayerAssignmentsController.prototype.ConfigNameSingleplayer = "playername.singleplayer"; -PlayerAssignmentsControl.prototype.ConfigAssignPlayers = +PlayerAssignmentsController.prototype.ConfigAssignPlayers = "gui.gamesetup.assignplayers"; diff --git a/binaries/data/mods/public/gui/gamesetup/Controls/ReadyControl.js b/binaries/data/mods/public/gui/gamesetup/Controllers/ReadyController.js similarity index 71% rename from binaries/data/mods/public/gui/gamesetup/Controls/ReadyControl.js rename to binaries/data/mods/public/gui/gamesetup/Controllers/ReadyController.js index 6c631586ed..ea38bb40a6 100644 --- a/binaries/data/mods/public/gui/gamesetup/Controls/ReadyControl.js +++ b/binaries/data/mods/public/gui/gamesetup/Controllers/ReadyController.js @@ -7,14 +7,14 @@ * Therefore assume the readystate from the user interface rather than trusting the server whether the current player is ready. * The server may set readiness to false but not to true. * - * The ReadyControl class stores the ready state of the current player and fires an event if the agreed settings changed. + * The ReadyController class stores the ready state of the current player and fires an event if the agreed settings changed. */ -class ReadyControl +class ReadyController { - constructor(netMessages, gameSettingsControl, startGameControl, playerAssignmentsControl) + constructor(netMessages, gameSettingsController, playerAssignmentsController) { - this.startGameControl = startGameControl; - this.playerAssignmentsControl = playerAssignmentsControl; + this.playerAssignmentsController = playerAssignmentsController; + this.gameSettingsController = gameSettingsController; this.resetReadyHandlers = new Set(); this.previousAssignments = {}; @@ -25,9 +25,9 @@ class ReadyControl this.readyState = this.NotReady; netMessages.registerNetMessageHandler("ready", this.onReadyMessage.bind(this)); - gameSettingsControl.registerSettingsChangeHandler(this.onSettingsChange.bind(this)); - playerAssignmentsControl.registerClientJoinHandler(this.onClientJoin.bind(this)); - playerAssignmentsControl.registerClientLeaveHandler(this.onClientLeave.bind(this)); + gameSettingsController.registerSettingsChangeHandler(this.onSettingsChange.bind(this)); + playerAssignmentsController.registerClientJoinHandler(this.onClientJoin.bind(this)); + playerAssignmentsController.registerClientLeaveHandler(this.onClientLeave.bind(this)); } registerResetReadyHandler(handler) @@ -53,7 +53,7 @@ class ReadyControl if (playerAssignment) { playerAssignment.status = message.status; - this.playerAssignmentsControl.updatePlayerAssignments(); + this.playerAssignmentsController.updatePlayerAssignments(); } } @@ -90,15 +90,15 @@ class ReadyControl if (playerAssignment) { playerAssignment.status = ready; - this.playerAssignmentsControl.updatePlayerAssignments(); + this.playerAssignmentsController.updatePlayerAssignments(); } } resetReady() { // The gameStarted check is only necessary to allow the host to - // determine the Seed and random items after clicking start - if (!g_IsNetworked || this.startGameControl.gameStarted) + // determine random items after clicking start. + if (!g_IsNetworked || this.gameSettingsController.gameStarted) return; for (let handler of this.resetReadyHandlers) @@ -107,7 +107,7 @@ class ReadyControl if (g_IsController) { Engine.ClearAllPlayerReady(); - this.playerAssignmentsControl.updatePlayerAssignments(); + this.playerAssignmentsController.updatePlayerAssignments(); } else if (this.readyState != this.StayReady) this.setReady(this.NotReady, false); @@ -119,8 +119,8 @@ class ReadyControl } } -ReadyControl.prototype.NotReady = 0; +ReadyController.prototype.NotReady = 0; -ReadyControl.prototype.Ready = 1; +ReadyController.prototype.Ready = 1; -ReadyControl.prototype.StayReady = 2; +ReadyController.prototype.StayReady = 2; diff --git a/binaries/data/mods/public/gui/gamesetup/Controls/StartGameControl.js b/binaries/data/mods/public/gui/gamesetup/Controls/StartGameControl.js deleted file mode 100644 index 174f24bf7c..0000000000 --- a/binaries/data/mods/public/gui/gamesetup/Controls/StartGameControl.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Cheat prevention: - * - * 1. Ensure that the host cannot start the game unless all clients agreed on the game settings using the ready system. - * - * TODO: - * 2. Ensure that the host cannot start the game with InitAttributes different from the agreed ones. - * This may be achieved by: - * - Determining the seed collectively. - * - passing the agreed game settings to the engine when starting the game instance - * - rejecting new game settings from the server after the game launch event - */ -class StartGameControl -{ - constructor(netMessages) - { - this.gameLaunchHandlers = new Set(); - - // This may be read from publicly - this.gameStarted = false; - - // In MP, the host launches the game and switches right away, - // clients switch when they receive the appropriate message. - netMessages.registerNetMessageHandler("start", this.switchToLoadingPage.bind(this)); - } - - registerLaunchGameHandler(handler) - { - this.gameLaunchHandlers.add(handler); - } - - launchGame() - { - this.gameStarted = true; - - for (let handler of this.gameLaunchHandlers) - handler(); - - g_GameSettings.launchGame(g_PlayerAssignments); - - // Switch to the loading page right away, - // the GUI will otherwise show the unrandomised settings. - this.switchToLoadingPage(); - } - - switchToLoadingPage() - { - Engine.SwitchGuiPage("page_loading.xml", { - "attribs": g_GameSettings.toInitAttributes(), - "playerAssignments": g_PlayerAssignments - }); - } -} diff --git a/binaries/data/mods/public/gui/gamesetup/NetMessages/NetMessages.js b/binaries/data/mods/public/gui/gamesetup/NetMessages/NetMessages.js index 8592b6c48e..b7205c78ad 100644 --- a/binaries/data/mods/public/gui/gamesetup/NetMessages/NetMessages.js +++ b/binaries/data/mods/public/gui/gamesetup/NetMessages/NetMessages.js @@ -1,5 +1,5 @@ /** - * This class enables other classes to subscribe to specific CNetMessage types (see NetMessage.h, NetMessages.h) sent by the CNetServer. + * Convenience wrapper to poll messages from the C++ NetClient. */ class NetMessages { @@ -9,11 +9,6 @@ class NetMessages for (let messageType of this.MessageTypes) this.netMessageHandlers[messageType] = new Set(); - - this.registerNetMessageHandler("netwarn", addNetworkWarning); - - Engine.GetGUIObjectByName("netMessages").onTick = this.onTick.bind(this); - setupWindow.registerClosePageHandler(this.onClosePage.bind(this)); } registerNetMessageHandler(messageType, handler) @@ -32,7 +27,7 @@ class NetMessages error("Unknown net message type: " + uneval(messageType)); } - onTick() + pollPendingMessages() { while (true) { @@ -49,15 +44,10 @@ class NetMessages error("Unrecognized net message type " + message.type); } } - - onClosePage() - { - Engine.DisconnectNetworkGame(); - } } /** - * Messages types are present here if and only if they are sent by NetClient.cpp. + * List of message types sent by C++ (keep this in sync with NetClient.cpp). */ NetMessages.prototype.MessageTypes = [ "chat", diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/AIConfigPage/AIConfigPage.js b/binaries/data/mods/public/gui/gamesetup/Pages/AIConfigPage/AIConfigPage.js index 9583f89da9..c3d1ab862e 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/AIConfigPage/AIConfigPage.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/AIConfigPage/AIConfigPage.js @@ -9,7 +9,7 @@ SetupWindowPages.AIConfigPage = class { constructor(setupWindow) { - this.gameSettingsControl = setupWindow.controls.gameSettingsControl; + this.gameSettingsController = setupWindow.controls.gameSettingsController; this.playerIndex = undefined; this.row = 0; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/AIConfigPage/Controls/AIBehavior.js b/binaries/data/mods/public/gui/gamesetup/Pages/AIConfigPage/Controls/AIBehavior.js index f76d35c315..efca635153 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/AIConfigPage/Controls/AIBehavior.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/AIConfigPage/Controls/AIBehavior.js @@ -21,7 +21,7 @@ AIGameSettingControls.AIBehavior = class extends AIGameSettingControlDropdown onSelectionChange(itemIdx) { g_GameSettings.playerAI.setBehavior(this.playerIndex, this.dropdown.list_data[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/AIConfigPage/Controls/AIDifficulty.js b/binaries/data/mods/public/gui/gamesetup/Pages/AIConfigPage/Controls/AIDifficulty.js index 2b51fe24fd..37580ba1fb 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/AIConfigPage/Controls/AIDifficulty.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/AIConfigPage/Controls/AIDifficulty.js @@ -21,7 +21,7 @@ AIGameSettingControls.AIDifficulty = class extends AIGameSettingControlDropdown onSelectionChange(itemIdx) { g_GameSettings.playerAI.setDifficulty(this.playerIndex, this.dropdown.list_data[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/AIConfigPage/Controls/AISelection.js b/binaries/data/mods/public/gui/gamesetup/Pages/AIConfigPage/Controls/AISelection.js index 455fb2e4d7..bb3dcf4c2b 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/AIConfigPage/Controls/AISelection.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/AIConfigPage/Controls/AISelection.js @@ -31,7 +31,7 @@ AIGameSettingControls.AISelection = class extends AIGameSettingControlDropdown onSelectionChange(itemIdx) { g_GameSettings.playerAI.setAI(this.playerIndex, this.dropdown.list_data[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/GameSettingControl.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/GameSettingControl.js index 6ef119d438..d08bcbae4f 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/GameSettingControl.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/GameSettingControl.js @@ -21,11 +21,11 @@ class GameSettingControl /* extends Profilable /* Uncomment to profile controls this.playerIndex = playerIndex; this.setupWindow = setupWindow; - this.gameSettingsControl = setupWindow.controls.gameSettingsControl; + this.gameSettingsController = setupWindow.controls.gameSettingsController; this.mapCache = setupWindow.controls.mapCache; this.mapFilters = setupWindow.controls.mapFilters; this.netMessages = setupWindow.controls.netMessages; - this.playerAssignmentsControl = setupWindow.controls.playerAssignmentsControl; + this.playerAssignmentsController = setupWindow.controls.playerAssignmentsController; } // enabled and hidden should only be modified through their setters or @@ -51,7 +51,7 @@ class GameSettingControl /* extends Profilable /* Uncomment to profile controls this.setupWindow.registerLoadHandler(this.onLoad.bind(this)); if (this.onPlayerAssignmentsChange) - this.playerAssignmentsControl.registerPlayerAssignmentsChangeHandler(this.onPlayerAssignmentsChange.bind(this)); + this.playerAssignmentsController.registerPlayerAssignmentsChangeHandler(this.onPlayerAssignmentsChange.bind(this)); } setTitle(titleCaption) @@ -84,7 +84,7 @@ class GameSettingControl /* extends Profilable /* Uncomment to profile controls { this.hidden = hidden; // Trigger a layout update to reposition items. - this.gameSettingsControl.updateLayout(); + this.gameSettingsController.updateLayout(); } updateVisibility() diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/PerPlayer/Dropdowns/PlayerAssignment.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/PerPlayer/Dropdowns/PlayerAssignment.js index 8b78bbffa4..900e46798b 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/PerPlayer/Dropdowns/PlayerAssignment.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/PerPlayer/Dropdowns/PlayerAssignment.js @@ -73,7 +73,7 @@ PlayerSettingControls.PlayerAssignment = class PlayerAssignment extends GameSett if (this.assignedGUID && g_GameSettings.playerAI.get(this.playerIndex)) { g_GameSettings.playerAI.setAI(this.playerIndex, undefined); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } this.render(); } @@ -118,8 +118,8 @@ PlayerSettingControls.PlayerAssignment = class PlayerAssignment extends GameSett onSelectionChange(itemIdx) { this.values.Handler[itemIdx].onSelectionChange( - this.gameSettingsControl, - this.playerAssignmentsControl, + this.gameSettingsController, + this.playerAssignmentsController, this.playerIndex, this.values.Value[itemIdx]); } @@ -150,7 +150,7 @@ PlayerSettingControls.PlayerAssignment.prototype.AutocompleteOrder = 100; }; } - onSelectionChange(gameSettingsControl, playerAssignmentsControl, playerIndex, guidToAssign) + onSelectionChange(gameSettingsController, playerAssignmentsController, playerIndex, guidToAssign) { let sourcePlayer = g_PlayerAssignments[guidToAssign].player - 1; if (sourcePlayer >= 0) @@ -167,8 +167,8 @@ PlayerSettingControls.PlayerAssignment.prototype.AutocompleteOrder = 100; } } - playerAssignmentsControl.assignPlayer(guidToAssign, playerIndex); - gameSettingsControl.setNetworkInitAttributes(); + playerAssignmentsController.assignPlayer(guidToAssign, playerIndex); + gameSettingsController.setNetworkInitAttributes(); } isSelected(pData, guid, value) @@ -198,9 +198,9 @@ PlayerSettingControls.PlayerAssignment.prototype.AutocompleteOrder = 100; }; } - onSelectionChange(gameSettingsControl, playerAssignmentsControl, playerIndex, value) + onSelectionChange(gameSettingsController, playerAssignmentsController, playerIndex, value) { - playerAssignmentsControl.unassignClient(playerIndex + 1); + playerAssignmentsController.unassignClient(playerIndex + 1); g_GameSettings.playerAI.set(playerIndex, { "bot": value, @@ -208,7 +208,7 @@ PlayerSettingControls.PlayerAssignment.prototype.AutocompleteOrder = 100; "behavior": Engine.ConfigDB_GetValue("user", "gui.gamesetup.aibehavior"), }); - gameSettingsControl.setNetworkInitAttributes(); + gameSettingsController.setNetworkInitAttributes(); } isSelected(pData, guid, value) @@ -237,13 +237,13 @@ PlayerSettingControls.PlayerAssignment.prototype.AutocompleteOrder = 100; }; } - onSelectionChange(gameSettingsControl, playerAssignmentsControl, playerIndex) + onSelectionChange(gameSettingsController, playerAssignmentsController, playerIndex) { - playerAssignmentsControl.unassignClient(playerIndex + 1); + playerAssignmentsController.unassignClient(playerIndex + 1); g_GameSettings.playerAI.setAI(playerIndex, undefined); - gameSettingsControl.setNetworkInitAttributes(); + gameSettingsController.setNetworkInitAttributes(); } isSelected(pData, guid, value) diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/PerPlayer/Dropdowns/PlayerCiv.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/PerPlayer/Dropdowns/PlayerCiv.js index b163f61e46..d754c883b0 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/PerPlayer/Dropdowns/PlayerCiv.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/PerPlayer/Dropdowns/PlayerCiv.js @@ -63,7 +63,7 @@ PlayerSettingControls.PlayerCiv = class PlayerCiv extends GameSettingControlDrop onSelectionChange(itemIdx) { g_GameSettings.playerCiv.setValue(this.playerIndex, this.values.civ[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/PerPlayer/Dropdowns/PlayerColor.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/PerPlayer/Dropdowns/PlayerColor.js index 875fcbf595..9eeb8c1bd0 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/PerPlayer/Dropdowns/PlayerColor.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/PerPlayer/Dropdowns/PlayerColor.js @@ -36,7 +36,7 @@ PlayerSettingControls.PlayerColor = class PlayerColor extends GameSettingControl onSelectionChange(itemIdx) { g_GameSettings.playerColor.setColor(this.playerIndex, this.values[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/PerPlayer/Dropdowns/PlayerTeam.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/PerPlayer/Dropdowns/PlayerTeam.js index 9d469187d3..e7e865cd37 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/PerPlayer/Dropdowns/PlayerTeam.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/PerPlayer/Dropdowns/PlayerTeam.js @@ -39,7 +39,7 @@ PlayerSettingControls.PlayerTeam = class PlayerTeam extends GameSettingControlDr onSelectionChange(itemIdx) { g_GameSettings.playerTeam.setValue(this.playerIndex, itemIdx - 1); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Cheats.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Cheats.js index 1baf6e6fc2..cbac92f2de 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Cheats.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Cheats.js @@ -26,7 +26,7 @@ GameSettingControls.Cheats = class Cheats extends GameSettingControlCheckbox onPress(checked) { g_GameSettings.cheats.setEnabled(!g_IsNetworked || checked); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/ExploredMap.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/ExploredMap.js index a5e5e2b66c..d924a7b4e7 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/ExploredMap.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/ExploredMap.js @@ -17,7 +17,7 @@ GameSettingControls.ExploredMap = class ExploredMap extends GameSettingControlCh onPress(checked) { g_GameSettings.mapExploration.setExplored(checked); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/LastManStanding.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/LastManStanding.js index 08cecc2d16..2cee31dd7b 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/LastManStanding.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/LastManStanding.js @@ -18,7 +18,7 @@ GameSettingControls.LastManStanding = class LastManStanding extends GameSettingC onPress(checked) { g_GameSettings.lastManStanding.setEnabled(checked); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/LockedTeams.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/LockedTeams.js index 47d5df28f1..430c3d7462 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/LockedTeams.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/LockedTeams.js @@ -22,7 +22,7 @@ GameSettingControls.LockedTeams = class LockedTeams extends GameSettingControlCh onPress(checked) { g_GameSettings.lockedTeams.setEnabled(checked); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Nomad.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Nomad.js index 028e8937ad..ade0b756c6 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Nomad.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Nomad.js @@ -17,7 +17,7 @@ GameSettingControls.Nomad = class Nomad extends GameSettingControlCheckbox onPress(checked) { g_GameSettings.nomad.setEnabled(checked); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Rating.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Rating.js index 84641ae920..47b4a56fa0 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Rating.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Rating.js @@ -19,7 +19,7 @@ GameSettingControls.Rating = class Rating extends GameSettingControlCheckbox onPress(checked) { g_GameSettings.rating.setEnabled(checked); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/RegicideGarrison.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/RegicideGarrison.js index dcf17b033c..b9435e8ebe 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/RegicideGarrison.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/RegicideGarrison.js @@ -19,7 +19,7 @@ GameSettingControls.RegicideGarrison = class RegicideGarrison extends GameSettin onPress(checked) { g_GameSettings.regicideGarrison.setEnabled(checked); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/RevealedMap.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/RevealedMap.js index cb9e771724..22e763a33c 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/RevealedMap.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/RevealedMap.js @@ -17,7 +17,7 @@ GameSettingControls.RevealedMap = class RevealedMap extends GameSettingControlCh onPress(checked) { g_GameSettings.mapExploration.setRevealed(checked); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Spies.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Spies.js index 59095c5088..6ac316cb21 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Spies.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Spies.js @@ -18,7 +18,7 @@ GameSettingControls.Spies = class Spies extends GameSettingControlCheckbox onPress(checked) { g_GameSettings.disableSpies.setEnabled(checked); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Treasures.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Treasures.js index a489b11782..dd94b546ea 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Treasures.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Treasures.js @@ -17,7 +17,7 @@ GameSettingControls.Treasures = class Treasures extends GameSettingControlCheckb onPress(checked) { g_GameSettings.disableTreasures.setEnabled(checked); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/WorldPopulation.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/WorldPopulation.js index 615aff9c9b..4ba9735edb 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/WorldPopulation.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/WorldPopulation.js @@ -17,7 +17,7 @@ GameSettingControls.WorldPopulation = class WorldPopulation extends GameSettingC onPress(checked) { g_GameSettings.population.setPopCap(checked); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/Biome.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/Biome.js index 1ac80aefbf..669f17224e 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/Biome.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/Biome.js @@ -46,7 +46,7 @@ GameSettingControls.Biome = class Biome extends GameSettingControlDropdown onSelectionChange(itemIdx) { g_GameSettings.biome.setBiome(this.dropdown.list_data[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/Daytime.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/Daytime.js index b0a03769f4..6d8956668d 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/Daytime.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/Daytime.js @@ -49,7 +49,7 @@ GameSettingControls.Daytime = class Daytime extends GameSettingControlDropdown onSelectionChange(itemIdx) { g_GameSettings.daytime.setValue(this.values.Id[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/GameSpeed.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/GameSpeed.js index 94e8ed94ae..13265aeb08 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/GameSpeed.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/GameSpeed.js @@ -41,7 +41,7 @@ GameSettingControls.GameSpeed = class GameSpeed extends GameSettingControlDropdo onSelectionChange(itemIdx) { g_GameSettings.gameSpeed.setSpeed(this.dropdown.list_data[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/Landscape.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/Landscape.js index e9a3ea1e57..9df166f704 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/Landscape.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/Landscape.js @@ -70,7 +70,7 @@ GameSettingControls.Landscape = class Landscape extends GameSettingControlDropdo onSelectionChange(itemIdx) { g_GameSettings.landscape.setValue(this.values.Id[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/MapFilter.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/MapFilter.js index 1712bc5fe6..ea652281fb 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/MapFilter.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/MapFilter.js @@ -6,7 +6,7 @@ GameSettingControls.MapFilter = class MapFilter extends GameSettingControlDropdo this.values = undefined; - this.gameSettingsControl.guiData.mapFilter.watch(() => this.render(), ["filter"]); + this.gameSettingsController.guiData.mapFilter.watch(() => this.render(), ["filter"]); g_GameSettings.map.watch(() => this.checkMapTypeChange(), ["type"]); } @@ -33,10 +33,10 @@ GameSettingControls.MapFilter = class MapFilter extends GameSettingControlDropdo else this.values = undefined; - if (this.values && this.values.Name.indexOf(this.gameSettingsControl.guiData.mapFilter.filter) === -1) + if (this.values && this.values.Name.indexOf(this.gameSettingsController.guiData.mapFilter.filter) === -1) { - this.gameSettingsControl.guiData.mapFilter.filter = this.values.Name[this.values.Default]; - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.guiData.mapFilter.filter = this.values.Name[this.values.Default]; + this.gameSettingsController.setNetworkInitAttributes(); } this.render(); } @@ -44,7 +44,7 @@ GameSettingControls.MapFilter = class MapFilter extends GameSettingControlDropdo render() { // Index may have changed, reset. - this.setSelectedValue(this.gameSettingsControl.guiData.mapFilter.filter); + this.setSelectedValue(this.gameSettingsController.guiData.mapFilter.filter); this.setHidden(!this.values); } @@ -55,7 +55,7 @@ GameSettingControls.MapFilter = class MapFilter extends GameSettingControlDropdo onSelectionChange(itemIdx) { - this.gameSettingsControl.guiData.mapFilter.filter = this.values.Name[itemIdx]; + this.gameSettingsController.guiData.mapFilter.filter = this.values.Name[itemIdx]; } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/MapSelection.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/MapSelection.js index a9a52655f0..3b65db5d5a 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/MapSelection.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/MapSelection.js @@ -9,7 +9,7 @@ GameSettingControls.MapSelection = class MapSelection extends GameSettingControl g_GameSettings.map.watch(() => this.render(), ["map"]); g_GameSettings.map.watch(() => this.updateMapList(), ["type"]); - this.gameSettingsControl.guiData.mapFilter.watch(() => this.updateMapList(), ["filter"]); + this.gameSettingsController.guiData.mapFilter.watch(() => this.updateMapList(), ["filter"]); this.randomItem = { "file": this.RandomMapId, @@ -45,7 +45,7 @@ GameSettingControls.MapSelection = class MapSelection extends GameSettingControl let values = this.mapFilters.getFilteredMaps( g_GameSettings.map.type, - this.gameSettingsControl.guiData.mapFilter.filter, + this.gameSettingsController.guiData.mapFilter.filter, false); values.sort(sortNameIgnoreCase); @@ -65,7 +65,7 @@ GameSettingControls.MapSelection = class MapSelection extends GameSettingControl if (this.values.file.indexOf(g_GameSettings.map.map) === -1) { g_GameSettings.map.selectMap(this.values.file[this.values.Default]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } // The index may have changed: reset. this.setSelectedValue(g_GameSettings.map.map); @@ -87,7 +87,7 @@ GameSettingControls.MapSelection = class MapSelection extends GameSettingControl return; this.reRenderTimeout = setTimeout(() => { g_GameSettings.map.selectMap(this.values.file[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); delete this.reRenderTimeout; }, 0); } diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/MapSize.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/MapSize.js index 560c449de5..26869cb75b 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/MapSize.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/MapSize.js @@ -31,7 +31,7 @@ GameSettingControls.MapSize = class MapSize extends GameSettingControlDropdown onSelectionChange(itemIdx) { g_GameSettings.mapSize.setSize(g_MapSizes.Tiles[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/MapType.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/MapType.js index ea1b1208ee..d6d70697a1 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/MapType.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/MapType.js @@ -43,7 +43,7 @@ GameSettingControls.MapType = class MapType extends GameSettingControlDropdown onSelectionChange(itemIdx) { g_GameSettings.map.setType(g_MapTypes.Name[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/PlayerCount.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/PlayerCount.js index f37e2afbcc..abad30741a 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/PlayerCount.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/PlayerCount.js @@ -25,7 +25,7 @@ GameSettingControls.PlayerCount = class PlayerCount extends GameSettingControlDr onSelectionChange(itemIdx) { g_GameSettings.playerCount.setNb(this.values[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/PopulationCap.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/PopulationCap.js index eefee7c95c..c048b21431 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/PopulationCap.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/PopulationCap.js @@ -44,7 +44,7 @@ GameSettingControls.PopulationCap = class PopulationCap extends GameSettingContr onSelectionChange(itemIdx) { g_GameSettings.population.setPopCap(false, g_PopulationCapacities.Population[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/StartingResources.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/StartingResources.js index 2e139ffda9..72e220d3d9 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/StartingResources.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/StartingResources.js @@ -42,7 +42,7 @@ GameSettingControls.StartingResources = class StartingResources extends GameSett onSelectionChange(itemIdx) { g_GameSettings.startingResources.setResources(g_StartingResources.Resources[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/TeamPlacement.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/TeamPlacement.js index 2b9841a4a7..77ad7ff966 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/TeamPlacement.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/TeamPlacement.js @@ -45,7 +45,7 @@ GameSettingControls.TeamPlacement = class TeamPlacement extends GameSettingContr onSelectionChange(itemIdx) { g_GameSettings.teamPlacement.setValue(this.values.Id[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/TriggerDifficulty.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/TriggerDifficulty.js index d14e33d015..86de2737d6 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/TriggerDifficulty.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/TriggerDifficulty.js @@ -33,7 +33,7 @@ GameSettingControls.TriggerDifficulty = class TriggerDifficulty extends GameSett onSelectionChange(itemIdx) { g_GameSettings.triggerDifficulty.setValue(this.values.Difficulty[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/WorldPopulationCap.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/WorldPopulationCap.js index 74c63009f6..9f5a479c1f 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/WorldPopulationCap.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/WorldPopulationCap.js @@ -39,7 +39,7 @@ GameSettingControls.WorldPopulationCap = class WorldPopulationCap extends GameSe onSelectionChange(itemIdx) { g_GameSettings.population.setPopCap(true, g_WorldPopulationCapacities.Population[itemIdx]); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/Ceasefire.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/Ceasefire.js index 1cd3d94c6e..83781fff4e 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/Ceasefire.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/Ceasefire.js @@ -27,7 +27,7 @@ GameSettingControls.Ceasefire = class Ceasefire extends GameSettingControlSlider onValueChange(value) { g_GameSettings.ceasefire.setValue(value); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/RelicCount.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/RelicCount.js index e4a2fd376d..7c26a06489 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/RelicCount.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/RelicCount.js @@ -30,7 +30,7 @@ GameSettingControls.RelicCount = class RelicCount extends GameSettingControlSlid onValueChange(value) { g_GameSettings.relic.setCount(value); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/RelicDuration.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/RelicDuration.js index 0fc75c2116..2bc25cfb23 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/RelicDuration.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/RelicDuration.js @@ -30,7 +30,7 @@ GameSettingControls.RelicDuration = class RelicDuration extends GameSettingContr onValueChange(value) { g_GameSettings.relic.setDuration(value); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/SeaLevelRiseTime.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/SeaLevelRiseTime.js index e5637526ef..2ed9ddbf16 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/SeaLevelRiseTime.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/SeaLevelRiseTime.js @@ -27,7 +27,7 @@ GameSettingControls.SeaLevelRiseTime = class SeaLevelRiseTime extends GameSettin onValueChange(value) { g_GameSettings.seaLevelRise.setValue(value); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/WonderDuration.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/WonderDuration.js index dc67da172b..caddb823d0 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/WonderDuration.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/WonderDuration.js @@ -30,7 +30,7 @@ GameSettingControls.WonderDuration = class WonderDuration extends GameSettingCon onValueChange(value) { g_GameSettings.wonder.setDuration(value); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } }; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/VictoryConditionCheckbox.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/VictoryConditionCheckbox.js index 4762d1bbda..9db1ce6e75 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/VictoryConditionCheckbox.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/VictoryConditionCheckbox.js @@ -26,6 +26,6 @@ class VictoryConditionCheckbox extends GameSettingControlCheckbox onPress(checked) { g_GameSettings.victoryConditions.setEnabled(this.victoryCondition, checked); - this.gameSettingsControl.setNetworkInitAttributes(); + this.gameSettingsController.setNetworkInitAttributes(); } } diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSetupPage.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSetupPage.js index ab26d4e45f..4ef968920d 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSetupPage.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSetupPage.js @@ -44,6 +44,13 @@ SetupWindowPages.GameSetupPage = class }; } + setupWindow.controls.gameSettingsController.registerLoadingChangeHandler((loading) => this.onLoadingChange(loading)); + Engine.ProfileStop(); } -} + + onLoadingChange(loading) + { + Engine.GetGUIObjectByName("gameSetupPage").hidden = loading; + } +}; diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSetupPage.xml b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSetupPage.xml index 1d06ac4fe2..8614c5de86 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSetupPage.xml +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSetupPage.xml @@ -1,5 +1,5 @@ -