added snapshot to versioning scheme

This commit is contained in:
minjaesong
2023-10-04 21:42:15 +09:00
parent 652dfe39eb
commit 3d34363525
11 changed files with 111 additions and 7 deletions

View File

@@ -526,14 +526,18 @@ class UIItemPlayerCells(
loadable.rebuild()
loadable.getFile(SAVEGAMEINFO)?.bytes?.let {
var lastPlayTime0 = 0L
var genver = ""
JsonFetcher.readFromJsonString(ByteArray64Reader(it, Common.CHARSET)).forEachSiblings { name, value ->
if (name == "worldCurrentlyPlaying") worldUUID = UUID.fromString(value.asString())
if (name == "totalPlayTime") totalPlayTime = parseDuration(value.asLong())
if (name == "lastPlayTime") lastPlayTime0 = value.asLong()
if (name == "genver") versionString = value.asLong().let { "${it.ushr(48)}.${it.ushr(24).and(0xFFFFFF)}.${it.and(0xFFFFFF)}" }
if (name == "genver") genver = value.asLong().let { "${it.ushr(48)}.${it.ushr(24).and(0xFFFFFF)}.${it.and(0xFFFFFF)}" }
}
val snap = loadable.getSaveSnapshotVersion()
versionString = genver + (if (snap != null) "-$snap" else "")
App.savegamePlayersName[playerUUID]?.let { if (it.isNotBlank()) playerName = it else "(name)" }
App.savegameWorldsName[worldUUID]?.let { if (it.isNotBlank()) worldName = it }
lastPlayTime = Instant.ofEpochSecond(lastPlayTime0)
@@ -749,6 +753,7 @@ class UIItemWorldCells(
private val metaFile: EntryFile?
private val saveName: String
private val saveMode: Int
private val snapshot: String
private val isQuick: Boolean
private val isAuto: Boolean
private var saveDamaged: Boolean = false
@@ -760,6 +765,7 @@ class UIItemWorldCells(
saveName = skimmer.getDiskName(Common.CHARSET)
saveMode = skimmer.getSaveMode()
snapshot = skimmer.getSaveSnapshotVersion()?.toString() ?: ""
isQuick = (saveMode % 2 == 1)
isAuto = (saveMode.ushr(1) != 0)

View File

@@ -447,12 +447,16 @@ class UILoadManage(val full: UILoadSavegame) : UICanvas() {
if (!this.initialised) this.rebuild()
this.getFile(SAVEGAMEINFO)!!.bytes.let {
var lastPlayTime = 0L
var versionString = ""
var genver = ""
val isAuto = (this.getSaveMode() and 0b10 != 0)
JsonFetcher.readFromJsonString(ByteArray64Reader(it, Common.CHARSET)).forEachSiblings { name, value ->
if (name == "lastPlayTime") lastPlayTime = value.asLong()
if (name == "genver") versionString = value.asLong().let { "${it.ushr(48)}.${it.ushr(24).and(0xFFFFFF)}.${it.and(0xFFFFFF)}" }
if (name == "genver") genver = value.asLong().let { "${it.ushr(48)}.${it.ushr(24).and(0xFFFFFF)}.${it.and(0xFFFFFF)}" }
}
val snap = this.getSaveSnapshotVersion()?.toString()
// val versionString = genver + (if (snap != null) "-$snap" else "")
val versionString = if (snap != null) "$snap" else genver
return SavegameMeta(
lastPlayTime,

View File

@@ -80,6 +80,7 @@ class UINewCharacter(val remoCon: UIRemoCon) : UICanvas() {
disk.saveMode = 2 // auto, no quick
disk.capacity = 0L
disk.saveOrigin = VDSaveOrigin.INGAME
disk.snapshot = TerrarumAppConfiguration.VERSION_SNAPSHOT
WritePlayer(player, disk, null, time_t)
VDUtil.dumpToRealMachine(disk, outFile)