fix: loading a game would load the oldest backup save

This commit is contained in:
minjaesong
2023-06-26 21:43:25 +09:00
parent 1ef479124e
commit 73a8198378
2 changed files with 22 additions and 5 deletions

View File

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

View File

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