From 557fa0312ef34865a8d50f40c2deab636b44ba9a Mon Sep 17 00:00:00 2001 From: wraitii Date: Sun, 15 May 2022 06:34:17 +0000 Subject: [PATCH] Fix non-visual autostart, as well as client/host autostart. Follows 8eecc39e71. Piping the autostart through a GUI page is easy but requires using the GUI in non-visual mode, which is problematic since it's not initialized. The GUI is not needed, only its ability to load scripts, so this diff fixes the problem by adding an 'entrypoint' script in the new `autostart` folder that gets called with this unique ability, setting things up properly. The mod mod gets a placeholder. Other changes: - Fix some issues with networked autostart: - Players were not assigned slots. - The host didn't actually wait for other players. - Move gamesettings from `gui/gamesettings/` to `gamesettings/`. This moves attributes as well. - Move autostart files from `gui/autostart/` to ` autostart/`. Note that `gui/autostart/` still exists as it's used in the tutorial button from the main menu. - Rename the JSI_VFS functions to be explicitly about their function: the ability to write and the potential restricted folders. - Don't require `autostart` when using `--autostart-client` in non-visual mode. Starting the autostart client/host has poor UX in some situations, but improving that feature is beyond the scope of this diff. Suggestions for future work: - Some files in gui/common should probably be moved elsewhere - Template loading code is duplicated - The gamesetup code still needs work for proper UI/logic separation. Help & comments by: smiley Reported by: vladislav / Langbart Fixes #6513 Differential Revision: https://code.wildfiregames.com/D4628 This was SVN commit r26879. --- .../data/mods/mod/autostart/entrypoint.js | 23 ++++ .../data/mods/public/autostart/autostart.js | 29 +++++ .../mods/public/autostart/autostart_client.js | 54 +++++++++ .../mods/public/autostart/autostart_host.js | 85 ++++++++++++++ .../data/mods/public/autostart/entrypoint.js | 58 ++++++++++ .../{gui => }/gamesettings/GameSetting.js | 0 .../{gui => }/gamesettings/GameSettings.js | 0 .../gamesettings/attributes/Biome.js | 0 .../gamesettings/attributes/CampaignData.js | 0 .../gamesettings/attributes/Ceasefire.js | 0 .../gamesettings/attributes/Cheats.js | 0 .../gamesettings/attributes/CircularMap.js | 0 .../gamesettings/attributes/Daytime.js | 0 .../gamesettings/attributes/DisableSpies.js | 0 .../attributes/DisableTreasures.js | 0 .../gamesettings/attributes/GameSpeed.js | 0 .../gamesettings/attributes/Landscape.js | 0 .../attributes/LastManStanding.js | 0 .../gamesettings/attributes/LockedTeams.js | 0 .../{gui => }/gamesettings/attributes/Map.js | 0 .../gamesettings/attributes/MapExploration.js | 0 .../gamesettings/attributes/MapName.js | 0 .../gamesettings/attributes/MapPreview.js | 0 .../gamesettings/attributes/MapSize.js | 0 .../gamesettings/attributes/MatchID.js | 0 .../gamesettings/attributes/Nomad.js | 0 .../gamesettings/attributes/PlayerAI.js | 0 .../gamesettings/attributes/PlayerCiv.js | 0 .../gamesettings/attributes/PlayerColor.js | 0 .../gamesettings/attributes/PlayerCount.js | 0 .../gamesettings/attributes/PlayerName.js | 0 .../gamesettings/attributes/PlayerTeam.js | 0 .../gamesettings/attributes/Population.js | 0 .../gamesettings/attributes/Rating.js | 0 .../attributes/RegicideGarrison.js | 0 .../gamesettings/attributes/Relic.js | 0 .../gamesettings/attributes/SeaLevelRise.js | 0 .../gamesettings/attributes/Seeds.js | 0 .../gamesettings/attributes/StartingCamera.js | 0 .../attributes/StartingResources.js | 0 .../gamesettings/attributes/TeamPlacement.js | 0 .../attributes/TriggerDifficulty.js | 0 .../gamesettings/attributes/TriggerScripts.js | 0 .../attributes/VictoryConditions.js | 0 .../gamesettings/attributes/Wonder.js | 0 .../mods/public/gui/autostart/autostart.js | 12 -- .../mods/public/gui/autostart/autostart.xml | 5 +- .../public/gui/autostart/autostart_client.js | 54 --------- .../public/gui/autostart/autostart_client.xml | 7 -- .../public/gui/autostart/autostart_host.js | 61 ---------- .../public/gui/autostart/autostart_host.xml | 10 -- .../campaigns/default_menu/CampaignMenu.xml | 4 +- .../mods/public/gui/gamesetup/gamesetup.xml | 4 +- .../data/mods/public/gui/page_autostart.xml | 2 +- .../mods/public/gui/page_autostart_client.xml | 10 -- .../mods/public/gui/page_autostart_host.xml | 10 -- source/graphics/MapGenerator.cpp | 4 +- source/gui/Scripting/ScriptFunctions.cpp | 4 +- source/main.cpp | 16 ++- source/ps/GameSetup/GameSetup.cpp | 105 +++++++++++++++++- source/ps/GameSetup/GameSetup.h | 2 +- source/ps/scripting/JSInterface_VFS.cpp | 6 +- source/ps/scripting/JSInterface_VFS.h | 8 +- .../simulation2/components/CCmpAIManager.cpp | 2 +- .../simulation2/system/ComponentManager.cpp | 2 +- 65 files changed, 381 insertions(+), 196 deletions(-) create mode 100644 binaries/data/mods/mod/autostart/entrypoint.js create mode 100644 binaries/data/mods/public/autostart/autostart.js create mode 100644 binaries/data/mods/public/autostart/autostart_client.js create mode 100644 binaries/data/mods/public/autostart/autostart_host.js create mode 100644 binaries/data/mods/public/autostart/entrypoint.js rename binaries/data/mods/public/{gui => }/gamesettings/GameSetting.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/GameSettings.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/Biome.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/CampaignData.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/Ceasefire.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/Cheats.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/CircularMap.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/Daytime.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/DisableSpies.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/DisableTreasures.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/GameSpeed.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/Landscape.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/LastManStanding.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/LockedTeams.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/Map.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/MapExploration.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/MapName.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/MapPreview.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/MapSize.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/MatchID.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/Nomad.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/PlayerAI.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/PlayerCiv.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/PlayerColor.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/PlayerCount.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/PlayerName.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/PlayerTeam.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/Population.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/Rating.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/RegicideGarrison.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/Relic.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/SeaLevelRise.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/Seeds.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/StartingCamera.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/StartingResources.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/TeamPlacement.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/TriggerDifficulty.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/TriggerScripts.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/VictoryConditions.js (100%) rename binaries/data/mods/public/{gui => }/gamesettings/attributes/Wonder.js (100%) delete mode 100644 binaries/data/mods/public/gui/autostart/autostart.js delete mode 100644 binaries/data/mods/public/gui/autostart/autostart_client.js delete mode 100644 binaries/data/mods/public/gui/autostart/autostart_client.xml delete mode 100644 binaries/data/mods/public/gui/autostart/autostart_host.js delete mode 100644 binaries/data/mods/public/gui/autostart/autostart_host.xml delete mode 100644 binaries/data/mods/public/gui/page_autostart_client.xml delete mode 100644 binaries/data/mods/public/gui/page_autostart_host.xml diff --git a/binaries/data/mods/mod/autostart/entrypoint.js b/binaries/data/mods/mod/autostart/entrypoint.js new file mode 100644 index 0000000000..d926af8159 --- /dev/null +++ b/binaries/data/mods/mod/autostart/entrypoint.js @@ -0,0 +1,23 @@ +/** + * This file is called from the visual & non-visual paths when autostarting. + * To avoid relying on the GUI, this script has access to a special 'LoadScript' function. + * See implementation in the public mod for more details. + */ + +function autostartClient(initData) +{ + throw new Error("Autostart is not implemented in the 'mod' mod"); +} + +function autostartHost(initData, networked = false) +{ + throw new Error("Autostart is not implemented in the 'mod' mod"); +} + +/** + * @returns false if the loop should carry on. + */ +function onTick() +{ + return true; +} diff --git a/binaries/data/mods/public/autostart/autostart.js b/binaries/data/mods/public/autostart/autostart.js new file mode 100644 index 0000000000..20d282ca4a --- /dev/null +++ b/binaries/data/mods/public/autostart/autostart.js @@ -0,0 +1,29 @@ +class AutoStart +{ + constructor(initData) + { + this.settings = new GameSettings().init(); + this.settings.fromInitAttributes(initData.attribs); + + this.playerAssignments = initData.playerAssignments; + + this.settings.launchGame(this.playerAssignments, initData.storeReplay); + + this.onLaunch(); + } + + onTick() + { + } + + /** + * In the visual autostart path, we need to show the loading screen. + */ + onLaunch() + { + Engine.SwitchGuiPage("page_loading.xml", { + "attribs": this.settings.finalizedAttributes, + "playerAssignments": this.playerAssignments + }); + } +} diff --git a/binaries/data/mods/public/autostart/autostart_client.js b/binaries/data/mods/public/autostart/autostart_client.js new file mode 100644 index 0000000000..17a694c3e5 --- /dev/null +++ b/binaries/data/mods/public/autostart/autostart_client.js @@ -0,0 +1,54 @@ +class AutoStartClient +{ + constructor(initData) + { + this.playerAssignments = {}; + + try + { + Engine.StartNetworkJoin(initData.playerName, initData.ip, initData.port, initData.storeReplay); + } + catch (e) + { + const message = sprintf(translate("Cannot join game: %(message)s."), { "message": e.message }); + messageBox(400, 200, message, translate("Error")); + } + } + + onTick() + { + while (true) + { + const message = Engine.PollNetworkClient(); + if (!message) + break; + + switch (message.type) + { + case "players": + this.playerAssignments = message.newAssignments; + Engine.SendNetworkReady(2); + break; + case "start": + this.onLaunch(message); + // Process further pending netmessages in the session page. + return true; + default: + } + } + return false; + } + + /** + * In the visual autostart path, we need to show the loading screen. + * Overload this as appropriate, the default implementation works for the public mod. + */ + onLaunch(message) + { + Engine.SwitchGuiPage("page_loading.xml", { + "attribs": message.initAttributes, + "isRejoining": true, + "playerAssignments": this.playerAssignments + }); + } +} diff --git a/binaries/data/mods/public/autostart/autostart_host.js b/binaries/data/mods/public/autostart/autostart_host.js new file mode 100644 index 0000000000..ed9b09c523 --- /dev/null +++ b/binaries/data/mods/public/autostart/autostart_host.js @@ -0,0 +1,85 @@ +class AutoStartHost +{ + constructor(initData) + { + this.launched = false; + this.maxPlayers = initData.maxPlayers; + this.storeReplay = initData.storeReplay; + this.playerAssignments = {}; + + this.initAttribs = initData.attribs; + + try + { + // Stun and password not implemented for autostart. + Engine.StartNetworkHost(initData.playerName, initData.port, false, "", initData.storeReplay); + } + catch (e) + { + const message = sprintf(translate("Cannot host game: %(message)s."), { "message": e.message }); + messageBox(400, 200, message, translate("Error")); + } + } + + /** + * Handles a simple implementation of player assignments. + * Should not need be overloaded in mods unless you want to change that logic. + */ + onTick() + { + while (true) + { + const message = Engine.PollNetworkClient(); + if (!message) + break; + + switch (message.type) + { + case "players": + this.playerAssignments = message.newAssignments; + Engine.SendNetworkReady(2); + let max = 0; + for (const uid in this.playerAssignments) + { + max = Math.max(this.playerAssignments[uid].player, max); + if (this.playerAssignments[uid].player == -1) + Engine.AssignNetworkPlayer(++max, uid); + } + break; + case "ready": + this.playerAssignments[message.guid].status = message.status; + break; + case "start": + return true; + default: + } + } + + if (!this.launched && Object.keys(this.playerAssignments).length == this.maxPlayers) + { + for (const uid in this.playerAssignments) + if (this.playerAssignments[uid].player == -1 || this.playerAssignments[uid].status == 0) + return false; + this.onLaunch(); + } + return false; + } + + /** + * In the visual autostart path, we need to show the loading screen. + * Overload this as appropriate. + */ + onLaunch() + { + this.launched = true; + + this.settings = new GameSettings().init(); + this.settings.fromInitAttributes(this.initAttribs); + this.settings.playerCount.setNb(Object.keys(this.playerAssignments).length); + this.settings.launchGame(this.playerAssignments, this.storeReplay); + Engine.SwitchGuiPage("page_loading.xml", { + "attribs": this.initAttribs, + "playerAssignments": this.playerAssignments + }); + } +} diff --git a/binaries/data/mods/public/autostart/entrypoint.js b/binaries/data/mods/public/autostart/entrypoint.js new file mode 100644 index 0000000000..423e7bec43 --- /dev/null +++ b/binaries/data/mods/public/autostart/entrypoint.js @@ -0,0 +1,58 @@ +/** + * Implement autostart for the public mod. + * We want to avoid relying on too many specific files, so we'll mock a few engine functions. + * Depending on the path, these may get overwritten with the real function. + */ + +Engine.HasXmppClient = () => false; +Engine.SetRankedGame = () => {}; +Engine.TextureExists = () => false; +Engine.PushGuiPage = () => {}; +Engine.SwitchGuiPage = () => {}; + +var translateObjectKeys = () => {} +var translate = x => x; +var translateWithContext = x => x; + +// Required for functions such as sprintf. +Engine.LoadScript("globalscripts/"); +// MsgBox is used in the failure path. +// TODO: clean this up and show errors better in the non-visual path. +Engine.LoadScript("gui/common/functions_msgbox.js"); + +var autostartInstance; + +function autostartClient(initData) +{ + autostartInstance = new AutoStartClient(initData); +} + +/** + * This path depends on files currently stored under gui/, which should be moved. + * The best place would probably be a new 'engine' mod, independent from the 'mod' mod and the public mod. + */ +function autostartHost(initData, networked = false) +{ + Engine.LoadScript("gui/common/color.js"); + Engine.LoadScript("gui/common/functions_utility.js"); + Engine.LoadScript("gui/common/Observable.js"); + Engine.LoadScript("gui/common/settings.js"); + + Engine.LoadScript("gui/maps/MapCache.js") + + Engine.LoadScript("gamesettings/"); + Engine.LoadScript("gamesettings/attributes/"); + + if (networked) + autostartInstance = new AutoStartHost(initData); + else + autostartInstance = new AutoStart(initData); +} + +/** + * @returns false if the loop should carry on. + */ +function onTick() +{ + return autostartInstance.onTick(); +} diff --git a/binaries/data/mods/public/gui/gamesettings/GameSetting.js b/binaries/data/mods/public/gamesettings/GameSetting.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/GameSetting.js rename to binaries/data/mods/public/gamesettings/GameSetting.js diff --git a/binaries/data/mods/public/gui/gamesettings/GameSettings.js b/binaries/data/mods/public/gamesettings/GameSettings.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/GameSettings.js rename to binaries/data/mods/public/gamesettings/GameSettings.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/Biome.js b/binaries/data/mods/public/gamesettings/attributes/Biome.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/Biome.js rename to binaries/data/mods/public/gamesettings/attributes/Biome.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/CampaignData.js b/binaries/data/mods/public/gamesettings/attributes/CampaignData.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/CampaignData.js rename to binaries/data/mods/public/gamesettings/attributes/CampaignData.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/Ceasefire.js b/binaries/data/mods/public/gamesettings/attributes/Ceasefire.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/Ceasefire.js rename to binaries/data/mods/public/gamesettings/attributes/Ceasefire.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/Cheats.js b/binaries/data/mods/public/gamesettings/attributes/Cheats.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/Cheats.js rename to binaries/data/mods/public/gamesettings/attributes/Cheats.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/CircularMap.js b/binaries/data/mods/public/gamesettings/attributes/CircularMap.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/CircularMap.js rename to binaries/data/mods/public/gamesettings/attributes/CircularMap.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/Daytime.js b/binaries/data/mods/public/gamesettings/attributes/Daytime.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/Daytime.js rename to binaries/data/mods/public/gamesettings/attributes/Daytime.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/DisableSpies.js b/binaries/data/mods/public/gamesettings/attributes/DisableSpies.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/DisableSpies.js rename to binaries/data/mods/public/gamesettings/attributes/DisableSpies.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/DisableTreasures.js b/binaries/data/mods/public/gamesettings/attributes/DisableTreasures.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/DisableTreasures.js rename to binaries/data/mods/public/gamesettings/attributes/DisableTreasures.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/GameSpeed.js b/binaries/data/mods/public/gamesettings/attributes/GameSpeed.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/GameSpeed.js rename to binaries/data/mods/public/gamesettings/attributes/GameSpeed.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/Landscape.js b/binaries/data/mods/public/gamesettings/attributes/Landscape.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/Landscape.js rename to binaries/data/mods/public/gamesettings/attributes/Landscape.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/LastManStanding.js b/binaries/data/mods/public/gamesettings/attributes/LastManStanding.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/LastManStanding.js rename to binaries/data/mods/public/gamesettings/attributes/LastManStanding.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/LockedTeams.js b/binaries/data/mods/public/gamesettings/attributes/LockedTeams.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/LockedTeams.js rename to binaries/data/mods/public/gamesettings/attributes/LockedTeams.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/Map.js b/binaries/data/mods/public/gamesettings/attributes/Map.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/Map.js rename to binaries/data/mods/public/gamesettings/attributes/Map.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/MapExploration.js b/binaries/data/mods/public/gamesettings/attributes/MapExploration.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/MapExploration.js rename to binaries/data/mods/public/gamesettings/attributes/MapExploration.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/MapName.js b/binaries/data/mods/public/gamesettings/attributes/MapName.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/MapName.js rename to binaries/data/mods/public/gamesettings/attributes/MapName.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/MapPreview.js b/binaries/data/mods/public/gamesettings/attributes/MapPreview.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/MapPreview.js rename to binaries/data/mods/public/gamesettings/attributes/MapPreview.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/MapSize.js b/binaries/data/mods/public/gamesettings/attributes/MapSize.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/MapSize.js rename to binaries/data/mods/public/gamesettings/attributes/MapSize.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/MatchID.js b/binaries/data/mods/public/gamesettings/attributes/MatchID.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/MatchID.js rename to binaries/data/mods/public/gamesettings/attributes/MatchID.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/Nomad.js b/binaries/data/mods/public/gamesettings/attributes/Nomad.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/Nomad.js rename to binaries/data/mods/public/gamesettings/attributes/Nomad.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/PlayerAI.js b/binaries/data/mods/public/gamesettings/attributes/PlayerAI.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/PlayerAI.js rename to binaries/data/mods/public/gamesettings/attributes/PlayerAI.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/PlayerCiv.js b/binaries/data/mods/public/gamesettings/attributes/PlayerCiv.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/PlayerCiv.js rename to binaries/data/mods/public/gamesettings/attributes/PlayerCiv.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/PlayerColor.js b/binaries/data/mods/public/gamesettings/attributes/PlayerColor.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/PlayerColor.js rename to binaries/data/mods/public/gamesettings/attributes/PlayerColor.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/PlayerCount.js b/binaries/data/mods/public/gamesettings/attributes/PlayerCount.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/PlayerCount.js rename to binaries/data/mods/public/gamesettings/attributes/PlayerCount.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/PlayerName.js b/binaries/data/mods/public/gamesettings/attributes/PlayerName.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/PlayerName.js rename to binaries/data/mods/public/gamesettings/attributes/PlayerName.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/PlayerTeam.js b/binaries/data/mods/public/gamesettings/attributes/PlayerTeam.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/PlayerTeam.js rename to binaries/data/mods/public/gamesettings/attributes/PlayerTeam.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/Population.js b/binaries/data/mods/public/gamesettings/attributes/Population.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/Population.js rename to binaries/data/mods/public/gamesettings/attributes/Population.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/Rating.js b/binaries/data/mods/public/gamesettings/attributes/Rating.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/Rating.js rename to binaries/data/mods/public/gamesettings/attributes/Rating.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/RegicideGarrison.js b/binaries/data/mods/public/gamesettings/attributes/RegicideGarrison.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/RegicideGarrison.js rename to binaries/data/mods/public/gamesettings/attributes/RegicideGarrison.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/Relic.js b/binaries/data/mods/public/gamesettings/attributes/Relic.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/Relic.js rename to binaries/data/mods/public/gamesettings/attributes/Relic.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/SeaLevelRise.js b/binaries/data/mods/public/gamesettings/attributes/SeaLevelRise.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/SeaLevelRise.js rename to binaries/data/mods/public/gamesettings/attributes/SeaLevelRise.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/Seeds.js b/binaries/data/mods/public/gamesettings/attributes/Seeds.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/Seeds.js rename to binaries/data/mods/public/gamesettings/attributes/Seeds.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/StartingCamera.js b/binaries/data/mods/public/gamesettings/attributes/StartingCamera.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/StartingCamera.js rename to binaries/data/mods/public/gamesettings/attributes/StartingCamera.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/StartingResources.js b/binaries/data/mods/public/gamesettings/attributes/StartingResources.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/StartingResources.js rename to binaries/data/mods/public/gamesettings/attributes/StartingResources.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/TeamPlacement.js b/binaries/data/mods/public/gamesettings/attributes/TeamPlacement.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/TeamPlacement.js rename to binaries/data/mods/public/gamesettings/attributes/TeamPlacement.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/TriggerDifficulty.js b/binaries/data/mods/public/gamesettings/attributes/TriggerDifficulty.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/TriggerDifficulty.js rename to binaries/data/mods/public/gamesettings/attributes/TriggerDifficulty.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/TriggerScripts.js b/binaries/data/mods/public/gamesettings/attributes/TriggerScripts.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/TriggerScripts.js rename to binaries/data/mods/public/gamesettings/attributes/TriggerScripts.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/VictoryConditions.js b/binaries/data/mods/public/gamesettings/attributes/VictoryConditions.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/VictoryConditions.js rename to binaries/data/mods/public/gamesettings/attributes/VictoryConditions.js diff --git a/binaries/data/mods/public/gui/gamesettings/attributes/Wonder.js b/binaries/data/mods/public/gamesettings/attributes/Wonder.js similarity index 100% rename from binaries/data/mods/public/gui/gamesettings/attributes/Wonder.js rename to binaries/data/mods/public/gamesettings/attributes/Wonder.js diff --git a/binaries/data/mods/public/gui/autostart/autostart.js b/binaries/data/mods/public/gui/autostart/autostart.js deleted file mode 100644 index d5b33cd0ed..0000000000 --- a/binaries/data/mods/public/gui/autostart/autostart.js +++ /dev/null @@ -1,12 +0,0 @@ -function init(initData) -{ - let settings = new GameSettings().init(); - settings.fromInitAttributes(initData.attribs); - - settings.launchGame(initData.playerAssignments, initData.storeReplay); - - Engine.SwitchGuiPage("page_loading.xml", { - "attribs": settings.finalizedAttributes, - "playerAssignments": initData.playerAssignments - }); -} diff --git a/binaries/data/mods/public/gui/autostart/autostart.xml b/binaries/data/mods/public/gui/autostart/autostart.xml index 6a0999d272..7e8efdd6fc 100644 --- a/binaries/data/mods/public/gui/autostart/autostart.xml +++ b/binaries/data/mods/public/gui/autostart/autostart.xml @@ -2,7 +2,8 @@