Fixed json loading errors in latest version due to tab names changing

This commit is contained in:
Yair Morgenstern 2023-04-08 22:03:06 +03:00
parent 04d4def24f
commit 77f230ff1a
3 changed files with 10 additions and 11 deletions

View File

@ -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

View File

@ -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) {

View File

@ -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.