diff --git a/src/net/torvald/terrarum/SavegameCollection.kt b/src/net/torvald/terrarum/SavegameCollection.kt index 675f0ac5a..24fc8248a 100644 --- a/src/net/torvald/terrarum/SavegameCollection.kt +++ b/src/net/torvald/terrarum/SavegameCollection.kt @@ -67,17 +67,26 @@ class SavegameCollectionPair(player: SavegameCollection?, world: SavegameCollect val wcf = world.files[wc] val wcm = wcf.getLastModifiedTime() + printdbg(this, "pc=$pc, wc=$wc, pcm=$pcm, wcm=$wcm") + if (playerDiskNotDamaged(pcf) && worldDiskNotDamaged(wcf)) { + + printdbg(this, "pcf.autosaved=${pcf.isAutosaved()}, wcf.autosaved=${wcf.isAutosaved()}") + when (pcf.isAutosaved().toInt(1) or wcf.isAutosaved().toInt()) { 3 -> { - autoPlayer = pcf - autoWorld = wcf + if (!::autoPlayer.isInitialized && !::autoWorld.isInitialized) { + autoPlayer = pcf + autoWorld = wcf + } pc += 1 wc += 1 } 0 -> { - manualPlayer = pcf - manualWorld = wcf + if (!::manualPlayer.isInitialized && !::manualWorld.isInitialized) { + manualPlayer = pcf + manualWorld = wcf + } pc += 1 wc += 1 } @@ -92,7 +101,6 @@ class SavegameCollectionPair(player: SavegameCollection?, world: SavegameCollect wc += 1 } } - } diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortal.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortal.kt index 88409a08c..ac5556b5e 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortal.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortal.kt @@ -109,6 +109,14 @@ class UIWorldPortal : UICanvas( } } + private fun cleanUpWorldDict() { + // remove dupes, etc + INGAME.actorNowPlaying?.let { + val avList = (it.actorValue.getAsString(AVKey.WORLD_PORTAL_DICT) ?: "").split(',').filter { it.isNotBlank() }.toSet() + it.actorValue[AVKey.WORLD_PORTAL_DICT] = avList.joinToString(",") + } + } + override fun show() { super.show() transitionPanel.forcePosition(0) @@ -117,6 +125,7 @@ class UIWorldPortal : UICanvas( // add current world to the player's worldportaldict addWorldToPlayersDict(INGAME.world.worldIndex) + cleanUpWorldDict() } override fun hide() {