mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-11 19:14:05 +09:00
fixed a bug where a dynamic item would not get saved/loaded at all
This commit is contained in:
@@ -23,6 +23,8 @@ class DiskSkimmer(
|
||||
noInit: Boolean = false
|
||||
): SimpleFileSystem {
|
||||
|
||||
override fun getBackingFile() = diskFile
|
||||
|
||||
/*
|
||||
|
||||
init:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.torvald.terrarum.savegame
|
||||
|
||||
import java.io.File
|
||||
import java.nio.charset.Charset
|
||||
|
||||
/**
|
||||
@@ -9,4 +10,5 @@ interface SimpleFileSystem {
|
||||
fun getEntry(id: EntryID): DiskEntry?
|
||||
fun getFile(id: EntryID): EntryFile?
|
||||
fun getDiskName(charset: Charset): String
|
||||
fun getBackingFile(): File?
|
||||
}
|
||||
@@ -63,7 +63,7 @@ object VDUtil {
|
||||
if (diskSpecVersion != specversion)
|
||||
throw RuntimeException("Unsupported disk format version: current internal version is $specversion; the file's version is $diskSpecVersion")
|
||||
|
||||
val vdisk = VirtualDisk(diskSize, diskName)
|
||||
val vdisk = VirtualDisk(diskSize, diskName, infile)
|
||||
|
||||
vdisk.__internalSetFooter__(footers)
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package net.torvald.terrarum.savegame
|
||||
|
||||
import net.torvald.terrarum.App.printdbg
|
||||
import net.torvald.terrarum.serialise.Common
|
||||
import java.io.File
|
||||
import java.io.IOException
|
||||
import java.nio.charset.Charset
|
||||
import java.util.*
|
||||
@@ -125,8 +126,12 @@ val specversion = 254.toByte()
|
||||
class VirtualDisk(
|
||||
/** capacity of 0 makes the disk read-only */
|
||||
var capacity: Long,
|
||||
var diskName: ByteArray = ByteArray(NAME_LENGTH)
|
||||
var diskName: ByteArray = ByteArray(NAME_LENGTH),
|
||||
var origin: File? = null
|
||||
): SimpleFileSystem {
|
||||
|
||||
override fun getBackingFile() = origin
|
||||
|
||||
var extraInfoBytes = ByteArray(16)
|
||||
val entries = HashMap<EntryID, DiskEntry>()
|
||||
var isReadOnly: Boolean
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package net.torvald.terrarum.savegame.finder
|
||||
|
||||
import net.torvald.terrarum.savegame.*
|
||||
import net.torvald.terrarum.serialise.Common
|
||||
import java.awt.BorderLayout
|
||||
import java.awt.Dimension
|
||||
import java.awt.event.KeyEvent
|
||||
@@ -676,5 +677,5 @@ ${String(file.contents.bytes.sliceArray64(0L..minOf(PREVIEW_MAX_BYTES, file.cont
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
VirtualDiskCracker(Charset.forName("CP437"))
|
||||
VirtualDiskCracker(Common.CHARSET)
|
||||
}
|
||||
Reference in New Issue
Block a user