diff --git a/core/src/com/unciv/UncivGame.kt b/core/src/com/unciv/UncivGame.kt index d4f704bce8..d6b15fcd5e 100644 --- a/core/src/com/unciv/UncivGame.kt +++ b/core/src/com/unciv/UncivGame.kt @@ -242,7 +242,7 @@ open class UncivGame(val isConsoleMode: Boolean = false) : Game(), PlatformSpeci /** The new game info may have different mods or rulesets, which may use different resources that need to be loaded. */ private suspend fun initializeResources(newGameInfo: GameInfo) { withGLContext { - ImageGetter.setNewRuleset(newGameInfo.ruleset) + ImageGetter.setNewRuleset(newGameInfo.ruleset, true) } val fullModList = newGameInfo.gameParameters.getModsAndBaseRuleset() musicController.setModList(fullModList) @@ -337,7 +337,7 @@ open class UncivGame(val isConsoleMode: Boolean = false) : Game(), PlatformSpeci // Re-initialize translations, images etc. that may have been 'lost' when we were playing around in NewGameScreen val ruleset = worldScreen.gameInfo.ruleset translations.translationActiveMods = ruleset.mods - ImageGetter.setNewRuleset(ruleset) + ImageGetter.setNewRuleset(ruleset, true) setScreen(worldScreen) return worldScreen diff --git a/core/src/com/unciv/ui/images/ImageGetter.kt b/core/src/com/unciv/ui/images/ImageGetter.kt index 8724ef92be..bb2dac1a1c 100644 --- a/core/src/com/unciv/ui/images/ImageGetter.kt +++ b/core/src/com/unciv/ui/images/ImageGetter.kt @@ -80,7 +80,10 @@ object ImageGetter { fun reloadImages() = setNewRuleset(ruleset) /** Required every time the ruleset changes, in order to load mod-specific images */ - fun setNewRuleset(ruleset: Ruleset) { + fun setNewRuleset(ruleset: Ruleset, ignoreIfModsAreEqual: Boolean = false) { + if (ignoreIfModsAreEqual && ruleset.mods == ImageGetter.ruleset.mods) + return + ImageGetter.ruleset = ruleset textureRegionDrawables.clear()