From 77f230ff1ab974bb4ae10bb89333724540696394 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sat, 8 Apr 2023 22:03:06 +0300 Subject: [PATCH] Fixed json loading errors in latest version due to tab names changing --- core/src/com/unciv/models/metadata/GameSettings.kt | 3 ++- .../screens/overviewscreen/EmpireOverviewScreen.kt | 13 +++++++------ .../ui/screens/overviewscreen/EmpireOverviewTab.kt | 5 +---- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/core/src/com/unciv/models/metadata/GameSettings.kt b/core/src/com/unciv/models/metadata/GameSettings.kt index dacf165906..cc9af31277 100644 --- a/core/src/com/unciv/models/metadata/GameSettings.kt +++ b/core/src/com/unciv/models/metadata/GameSettings.kt @@ -92,7 +92,8 @@ class GameSettings { var enableEspionageOption = false - var lastOverviewPage = EmpireOverviewCategories.Cities // serializes same as the String we had before + // This is a string not an enum so if tabs change it won't screw up the json serialization + var lastOverviewPage = EmpireOverviewCategories.Cities.name /** Orientation for mobile platforms */ var displayOrientation = ScreenOrientation.Landscape diff --git a/core/src/com/unciv/ui/screens/overviewscreen/EmpireOverviewScreen.kt b/core/src/com/unciv/ui/screens/overviewscreen/EmpireOverviewScreen.kt index c464d6eb55..a935085e86 100644 --- a/core/src/com/unciv/ui/screens/overviewscreen/EmpireOverviewScreen.kt +++ b/core/src/com/unciv/ui/screens/overviewscreen/EmpireOverviewScreen.kt @@ -3,13 +3,13 @@ package com.unciv.ui.screens.overviewscreen import com.badlogic.gdx.graphics.Color import com.unciv.Constants import com.unciv.logic.civilization.Civilization +import com.unciv.ui.components.KeyCharAndCode +import com.unciv.ui.components.TabbedPager import com.unciv.ui.images.ImageGetter +import com.unciv.ui.screens.basescreen.BaseScreen +import com.unciv.ui.screens.basescreen.RecreateOnResize import com.unciv.ui.screens.overviewscreen.EmpireOverviewCategories.EmpireOverviewTabState import com.unciv.ui.screens.overviewscreen.EmpireOverviewTab.EmpireOverviewTabPersistableData -import com.unciv.ui.screens.basescreen.BaseScreen -import com.unciv.ui.components.KeyCharAndCode -import com.unciv.ui.screens.basescreen.RecreateOnResize -import com.unciv.ui.components.TabbedPager class EmpireOverviewScreen( private var viewingPlayer: Civilization, @@ -39,7 +39,7 @@ class EmpireOverviewScreen( } init { - val selectCategory = defaultCategory ?: game.settings.lastOverviewPage + val selectCategory = defaultCategory ?: EmpireOverviewCategories.values().firstOrNull { it.name == game.settings.lastOverviewPage } val iconSize = Constants.defaultFontSize.toFloat() globalShortcuts.add(KeyCharAndCode.BACK) { game.popScreen() } @@ -83,7 +83,8 @@ class EmpireOverviewScreen( override fun recreate(): BaseScreen { updatePersistState(pageObjects) - return EmpireOverviewScreen(viewingPlayer, game.settings.lastOverviewPage) + return EmpireOverviewScreen(viewingPlayer, + EmpireOverviewCategories.values().firstOrNull { it.name == game.settings.lastOverviewPage }) } fun resizePage(tab: EmpireOverviewTab) { diff --git a/core/src/com/unciv/ui/screens/overviewscreen/EmpireOverviewTab.kt b/core/src/com/unciv/ui/screens/overviewscreen/EmpireOverviewTab.kt index 126ebe0d04..150aa20d26 100644 --- a/core/src/com/unciv/ui/screens/overviewscreen/EmpireOverviewTab.kt +++ b/core/src/com/unciv/ui/screens/overviewscreen/EmpireOverviewTab.kt @@ -16,10 +16,7 @@ abstract class EmpireOverviewTab ( open val persistableData = persistedData ?: EmpireOverviewTabPersistableData() override fun activated(index: Int, caption: String, pager: TabbedPager) { - overviewScreen.game.settings.lastOverviewPage = - // shouldn't throw because EmpireOverviewScreen takes the TabbedPager - // captions directly from EmpireOverviewCategories.name - EmpireOverviewCategories.valueOf(caption) + overviewScreen.game.settings.lastOverviewPage = caption } /** Override if the tab can _select_ something specific.