diff --git a/binaries/data/mods/public/gui/gamesetup/Controllers/GameSettingsController.js b/binaries/data/mods/public/gui/gamesetup/Controllers/GameSettingsController.js index b9257d0280..452afc33b2 100644 --- a/binaries/data/mods/public/gui/gamesetup/Controllers/GameSettingsController.js +++ b/binaries/data/mods/public/gui/gamesetup/Controllers/GameSettingsController.js @@ -74,7 +74,14 @@ class GameSettingsController { let settings = this.persistentMatchSettings.loadFile(); if (settings) + { this.parseSettings(settings); + // If the new settings led to AI & players conflict, remove the AI. + for (let guid in g_PlayerAssignments) + if (g_PlayerAssignments[guid].player !== -1 && + g_GameSettings.playerAI.get(g_PlayerAssignments[guid].player - 1)) + g_GameSettings.playerAI.set(g_PlayerAssignments[guid].player - 1, undefined); + } } this.updateLayout(); 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 900e46798b..0353909c92 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 @@ -70,6 +70,7 @@ PlayerSettingControls.PlayerAssignment = class PlayerAssignment extends GameSett if (this.assignedGUID === newGUID) return; this.assignedGUID = newGUID; + // Remove the AI from the slot if there was one. if (this.assignedGUID && g_GameSettings.playerAI.get(this.playerIndex)) { g_GameSettings.playerAI.setAI(this.playerIndex, undefined);