From 9db073ff257c4955b5cb1858e72a7843b7252612 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Fri, 12 Feb 2021 10:47:12 +0200 Subject: [PATCH] getComplexRuleset now accepts list of mods and not gameParameters --- core/src/com/unciv/logic/GameInfo.kt | 2 +- core/src/com/unciv/logic/GameStarter.kt | 2 +- core/src/com/unciv/models/ruleset/Ruleset.kt | 2 -- core/src/com/unciv/ui/mapeditor/GameParametersScreen.kt | 2 +- core/src/com/unciv/ui/newgamescreen/GameOptionsTable.kt | 2 +- core/src/com/unciv/ui/newgamescreen/ModCheckboxTable.kt | 2 +- core/src/com/unciv/ui/newgamescreen/NewGameScreen.kt | 4 ++-- 7 files changed, 7 insertions(+), 9 deletions(-) diff --git a/core/src/com/unciv/logic/GameInfo.kt b/core/src/com/unciv/logic/GameInfo.kt index 0932f0326f..99c3efabc4 100644 --- a/core/src/com/unciv/logic/GameInfo.kt +++ b/core/src/com/unciv/logic/GameInfo.kt @@ -258,7 +258,7 @@ class GameInfo { // will be done here, and not in CivInfo.setTransients or CityInfo fun setTransients() { tileMap.gameInfo = this - ruleSet = RulesetCache.getComplexRuleset(gameParameters) + ruleSet = RulesetCache.getComplexRuleset(gameParameters.mods) // any mod the saved game lists that is currently not installed causes null pointer // exceptions in this routine unless it contained no new objects or was very simple. // Player's fault, so better complain early: diff --git a/core/src/com/unciv/logic/GameStarter.kt b/core/src/com/unciv/logic/GameStarter.kt index 83aa6820fb..5902754553 100644 --- a/core/src/com/unciv/logic/GameStarter.kt +++ b/core/src/com/unciv/logic/GameStarter.kt @@ -20,7 +20,7 @@ object GameStarter { val gameInfo = GameInfo() gameInfo.gameParameters = gameSetupInfo.gameParameters - val ruleset = RulesetCache.getComplexRuleset(gameInfo.gameParameters) + val ruleset = RulesetCache.getComplexRuleset(gameInfo.gameParameters.mods) if (gameSetupInfo.mapParameters.name != "") { gameInfo.tileMap = MapSaver.loadMap(gameSetupInfo.mapFile!!) diff --git a/core/src/com/unciv/models/ruleset/Ruleset.kt b/core/src/com/unciv/models/ruleset/Ruleset.kt index ca412fbb74..e3a133d424 100644 --- a/core/src/com/unciv/models/ruleset/Ruleset.kt +++ b/core/src/com/unciv/models/ruleset/Ruleset.kt @@ -371,8 +371,6 @@ object RulesetCache :HashMap() { return newRuleset } - fun getComplexRuleset(gameParameters: GameParameters): Ruleset = - getComplexRuleset(gameParameters.mods) } class Specialist: NamedStats() { diff --git a/core/src/com/unciv/ui/mapeditor/GameParametersScreen.kt b/core/src/com/unciv/ui/mapeditor/GameParametersScreen.kt index 1a8f384b47..6786122f16 100644 --- a/core/src/com/unciv/ui/mapeditor/GameParametersScreen.kt +++ b/core/src/com/unciv/ui/mapeditor/GameParametersScreen.kt @@ -17,7 +17,7 @@ import com.unciv.ui.utils.* */ class GameParametersScreen(var mapEditorScreen: MapEditorScreen): IPreviousScreen, PickerScreen() { override var gameSetupInfo = mapEditorScreen.gameSetupInfo.clone() - override var ruleset = RulesetCache.getComplexRuleset(gameSetupInfo.gameParameters) + override var ruleset = RulesetCache.getComplexRuleset(gameSetupInfo.gameParameters.mods) var playerPickerTable = PlayerPickerTable(this, gameSetupInfo.gameParameters) var gameOptionsTable = GameOptionsTable(this) { desiredCiv: String -> playerPickerTable.update(desiredCiv) } diff --git a/core/src/com/unciv/ui/newgamescreen/GameOptionsTable.kt b/core/src/com/unciv/ui/newgamescreen/GameOptionsTable.kt index 4b631c8042..39d1ea74d6 100644 --- a/core/src/com/unciv/ui/newgamescreen/GameOptionsTable.kt +++ b/core/src/com/unciv/ui/newgamescreen/GameOptionsTable.kt @@ -164,7 +164,7 @@ class GameOptionsTable(val previousScreen: IPreviousScreen, val updatePlayerPick fun reloadRuleset() { ruleset.clear() - val newRuleset = RulesetCache.getComplexRuleset(gameParameters) + val newRuleset = RulesetCache.getComplexRuleset(gameParameters.mods) ruleset.add(newRuleset) ruleset.mods += gameParameters.mods ruleset.modOptions = newRuleset.modOptions diff --git a/core/src/com/unciv/ui/newgamescreen/ModCheckboxTable.kt b/core/src/com/unciv/ui/newgamescreen/ModCheckboxTable.kt index fc923b8f8e..e7c8c42796 100644 --- a/core/src/com/unciv/ui/newgamescreen/ModCheckboxTable.kt +++ b/core/src/com/unciv/ui/newgamescreen/ModCheckboxTable.kt @@ -41,7 +41,7 @@ class ModCheckboxTable(val gameParameters: GameParameters, val screen: CameraSta var isCompatibleWithCurrentRuleset = true var complexModLinkErrors = "" try { - val newRuleset = RulesetCache.getComplexRuleset(gameParameters) + val newRuleset = RulesetCache.getComplexRuleset(gameParameters.mods) newRuleset.modOptions.isBaseRuleset = true // This is so the checkModLinks finds all connections complexModLinkErrors = newRuleset.checkModLinks() if (complexModLinkErrors != "") isCompatibleWithCurrentRuleset = false diff --git a/core/src/com/unciv/ui/newgamescreen/NewGameScreen.kt b/core/src/com/unciv/ui/newgamescreen/NewGameScreen.kt index c1f56e77f9..198d64c0b3 100644 --- a/core/src/com/unciv/ui/newgamescreen/NewGameScreen.kt +++ b/core/src/com/unciv/ui/newgamescreen/NewGameScreen.kt @@ -37,7 +37,7 @@ class GameSetupInfo(var gameId:String, var gameParameters: GameParameters, var m class NewGameScreen(previousScreen:CameraStageBaseScreen, _gameSetupInfo: GameSetupInfo?=null): IPreviousScreen, PickerScreen() { override val gameSetupInfo = _gameSetupInfo ?: GameSetupInfo() - override var ruleset = RulesetCache.getComplexRuleset(gameSetupInfo.gameParameters) // needs to be set because the gameoptionstable etc. depend on this + override var ruleset = RulesetCache.getComplexRuleset(gameSetupInfo.gameParameters.mods) // needs to be set because the gameoptionstable etc. depend on this var newGameOptionsTable = GameOptionsTable(this) { desiredCiv: String -> playerPickerTable.update(desiredCiv) } // Has to be defined before the mapOptionsTable, since the mapOptionsTable refers to it on init @@ -145,7 +145,7 @@ class NewGameScreen(previousScreen:CameraStageBaseScreen, _gameSetupInfo: GameSe fun updateRuleset() { ruleset.clear() - ruleset.add(RulesetCache.getComplexRuleset(gameSetupInfo.gameParameters)) + ruleset.add(RulesetCache.getComplexRuleset(gameSetupInfo.gameParameters.mods)) } fun lockTables() {