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 @@
-
-
+
+
+
diff --git a/binaries/data/mods/public/gui/autostart/autostart_client.js b/binaries/data/mods/public/gui/autostart/autostart_client.js
deleted file mode 100644
index 71172efafb..0000000000
--- a/binaries/data/mods/public/gui/autostart/autostart_client.js
+++ /dev/null
@@ -1,54 +0,0 @@
-class AutoStartClient
-{
- constructor(initData)
- {
- Engine.GetGUIObjectByName("ticker").onTick = this.onTick.bind(this);
-
- this.playerAssignments = {};
-
- try
- {
- Engine.StartNetworkJoin(initData.playerName, initData.ip, initData.port, initData.storeReplay);
- }
- catch (e)
- {
- messageBox(
- 400, 200,
- sprintf(translate("Cannot join game: %(message)s."), { "message": e.message }),
- translate("Error")
- );
- }
- }
-
- onTick()
- {
- while (true)
- {
- const message = Engine.PollNetworkClient();
- if (!message)
- break;
-
- switch (message.type)
- {
- case "players":
- this.playerAssignments = message.newAssignments;
- break;
- case "start":
- Engine.SwitchGuiPage("page_loading.xml", {
- "attribs": message.initAttributes,
- "isRejoining": true,
- "playerAssignments": this.playerAssignments
- });
-
- // Process further pending netmessages in the session page.
- return;
- default:
- }
- }
- }
-}
-
-function init(initData)
-{
- new AutoStartClient(initData);
-}
diff --git a/binaries/data/mods/public/gui/autostart/autostart_client.xml b/binaries/data/mods/public/gui/autostart/autostart_client.xml
deleted file mode 100644
index 04408e1171..0000000000
--- a/binaries/data/mods/public/gui/autostart/autostart_client.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/binaries/data/mods/public/gui/autostart/autostart_host.js b/binaries/data/mods/public/gui/autostart/autostart_host.js
deleted file mode 100644
index b456f6c52e..0000000000
--- a/binaries/data/mods/public/gui/autostart/autostart_host.js
+++ /dev/null
@@ -1,61 +0,0 @@
-class AutoStartHost
-{
- constructor(initData)
- {
- this.maxPlayers = initData.maxPlayers;
- this.storeReplay = initData.storeReplay;
- this.playerAssignments = {};
-
- Engine.GetGUIObjectByName("ticker").onTick = this.onTick.bind(this);
-
- try
- {
- // Stun and password not implemented for autostart.
- Engine.StartNetworkHost(initData.playerName, initData.port, false, "", initData.storeReplay);
- }
- catch (e)
- {
- messageBox(
- 400, 200,
- sprintf(translate("Cannot host game: %(message)s."), { "message": e.message }),
- translate("Error")
- );
- }
-
- this.settings = new GameSettings().init();
- this.settings.fromInitAttributes(initData.attribs);
- }
-
- onTick()
- {
- while (true)
- {
- const message = Engine.PollNetworkClient();
- if (!message)
- break;
-
- switch (message.type)
- {
- case "players":
- this.playerAssignments = message.newAssignments;
- break;
- default:
- }
- }
-
- if (Object.keys(this.playerAssignments).length == this.maxPlayers)
- {
- this.settings.launchGame(this.playerAssignments, this.storeReplay);
-
- Engine.SwitchGuiPage("page_loading.xml", {
- "attribs": this.settings.finalizedAttributes,
- "playerAssignments": this.playerAssignments
- });
- }
- }
-}
-
-function init(initData)
-{
- new AutoStartHost(initData);
-}
diff --git a/binaries/data/mods/public/gui/autostart/autostart_host.xml b/binaries/data/mods/public/gui/autostart/autostart_host.xml
deleted file mode 100644
index 82ea242eda..0000000000
--- a/binaries/data/mods/public/gui/autostart/autostart_host.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/binaries/data/mods/public/gui/campaigns/default_menu/CampaignMenu.xml b/binaries/data/mods/public/gui/campaigns/default_menu/CampaignMenu.xml
index cc25245fed..8e27dae1c8 100644
--- a/binaries/data/mods/public/gui/campaigns/default_menu/CampaignMenu.xml
+++ b/binaries/data/mods/public/gui/campaigns/default_menu/CampaignMenu.xml
@@ -3,8 +3,8 @@
-
-
+
+