mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-11 02:54:04 +09:00
savegame loading failure will display more helpful exception
This commit is contained in:
@@ -13,7 +13,6 @@ import net.torvald.EMDASH
|
|||||||
import net.torvald.getKeycapConsole
|
import net.torvald.getKeycapConsole
|
||||||
import net.torvald.getKeycapPC
|
import net.torvald.getKeycapPC
|
||||||
import net.torvald.spriteanimation.SpriteAnimation
|
import net.torvald.spriteanimation.SpriteAnimation
|
||||||
import net.torvald.terrarum.spriteassembler.ADProperties
|
|
||||||
import net.torvald.terrarum.*
|
import net.torvald.terrarum.*
|
||||||
import net.torvald.terrarum.App.printdbg
|
import net.torvald.terrarum.App.printdbg
|
||||||
import net.torvald.terrarum.langpack.Lang
|
import net.torvald.terrarum.langpack.Lang
|
||||||
@@ -25,6 +24,8 @@ import net.torvald.terrarum.savegame.EntryFile
|
|||||||
import net.torvald.terrarum.serialise.Common
|
import net.torvald.terrarum.serialise.Common
|
||||||
import net.torvald.terrarum.serialise.LoadSavegame
|
import net.torvald.terrarum.serialise.LoadSavegame
|
||||||
import net.torvald.terrarum.serialise.ReadPlayer
|
import net.torvald.terrarum.serialise.ReadPlayer
|
||||||
|
import net.torvald.terrarum.serialise.SaveLoadError
|
||||||
|
import net.torvald.terrarum.spriteassembler.ADProperties
|
||||||
import net.torvald.terrarum.spriteassembler.ADProperties.Companion.EXTRA_HEADROOM_X
|
import net.torvald.terrarum.spriteassembler.ADProperties.Companion.EXTRA_HEADROOM_X
|
||||||
import net.torvald.terrarum.spriteassembler.ADProperties.Companion.EXTRA_HEADROOM_Y
|
import net.torvald.terrarum.spriteassembler.ADProperties.Companion.EXTRA_HEADROOM_Y
|
||||||
import net.torvald.terrarum.ui.Movement
|
import net.torvald.terrarum.ui.Movement
|
||||||
@@ -554,16 +555,21 @@ class UIItemPlayerCells(
|
|||||||
// try to generate a texture
|
// try to generate a texture
|
||||||
if (skimmer.initialised && !hasTexture) {
|
if (skimmer.initialised && !hasTexture) {
|
||||||
skimmer.getFile(-1L)?.bytes?.let {
|
skimmer.getFile(-1L)?.bytes?.let {
|
||||||
val animFile = skimmer.getFile(-2L)!!
|
try {
|
||||||
val p = ReadPlayer(skimmer, ByteArray64Reader(it, Common.CHARSET))
|
val animFile = skimmer.getFile(-2L)!!
|
||||||
p.sprite = SpriteAnimation(p)
|
val p = ReadPlayer(skimmer, ByteArray64Reader(it, Common.CHARSET))
|
||||||
p.animDesc = ADProperties(ByteArray64Reader(animFile.bytes, Common.CHARSET))
|
p.sprite = SpriteAnimation(p)
|
||||||
p.reassembleSpriteFromDisk(skimmer, p.sprite, null, null)
|
p.animDesc = ADProperties(ByteArray64Reader(animFile.bytes, Common.CHARSET))
|
||||||
p.sprite!!.textureRegion.get(0,0).let {
|
p.reassembleSpriteFromDisk(skimmer, p.sprite, null, null)
|
||||||
thumb = it
|
p.sprite!!.textureRegion.get(0,0).let {
|
||||||
thumb!!.flip(false, false)
|
thumb = it
|
||||||
|
thumb!!.flip(false, false)
|
||||||
|
}
|
||||||
|
this.sprite = p.sprite
|
||||||
|
}
|
||||||
|
catch (e: Throwable) {
|
||||||
|
throw SaveLoadError(skimmer.diskFile, e)
|
||||||
}
|
}
|
||||||
this.sprite = p.sprite
|
|
||||||
}
|
}
|
||||||
|
|
||||||
hasTexture = true
|
hasTexture = true
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import net.torvald.terrarum.savegame.ByteArray64InputStream
|
|||||||
import net.torvald.terrarum.savegame.ByteArray64Reader
|
import net.torvald.terrarum.savegame.ByteArray64Reader
|
||||||
import net.torvald.terrarum.utils.*
|
import net.torvald.terrarum.utils.*
|
||||||
import org.apache.commons.codec.digest.DigestUtils
|
import org.apache.commons.codec.digest.DigestUtils
|
||||||
|
import java.io.File
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
import java.io.Reader
|
import java.io.Reader
|
||||||
import java.io.StringReader
|
import java.io.StringReader
|
||||||
@@ -327,3 +328,5 @@ object Common {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class SaveLoadError(file: File, cause: Throwable) : RuntimeException("An error occured while loading save file '${file.absolutePath}'", cause)
|
||||||
Reference in New Issue
Block a user