mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-10 22:01:52 +09:00
x mark on save failed
This commit is contained in:
@@ -332,20 +332,14 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) {
|
||||
// 1. lighten the IO burden
|
||||
// 2. cannot sync up the "counter" to determine whether both are finished
|
||||
uiAutosaveNotifier.setAsOpen()
|
||||
try {
|
||||
WriteSavegame.immediate(WriteSavegame.SaveMode.PLAYER, playerDisk, getPlayerSaveFiledesc(playerSavefileName), this, false, true) {
|
||||
makeSavegameBackupCopy(getPlayerSaveFiledesc(playerSavefileName))
|
||||
WriteSavegame.immediate(WriteSavegame.SaveMode.PLAYER, playerDisk, getPlayerSaveFiledesc(playerSavefileName), this, false, true) {
|
||||
makeSavegameBackupCopy(getPlayerSaveFiledesc(playerSavefileName))
|
||||
|
||||
WriteSavegame.immediate(WriteSavegame.SaveMode.WORLD, worldDisk, getWorldSaveFiledesc(worldSavefileName), this, false, true) {
|
||||
makeSavegameBackupCopy(getWorldSaveFiledesc(worldSavefileName)) // don't put it on the postInit() or render(); must be called using callback
|
||||
uiAutosaveNotifier.setAsClose()
|
||||
}
|
||||
WriteSavegame.immediate(WriteSavegame.SaveMode.WORLD, worldDisk, getWorldSaveFiledesc(worldSavefileName), this, false, true) {
|
||||
makeSavegameBackupCopy(getWorldSaveFiledesc(worldSavefileName)) // don't put it on the postInit() or render(); must be called using callback
|
||||
uiAutosaveNotifier.setAsClose()
|
||||
}
|
||||
}
|
||||
catch (e: Throwable) {
|
||||
e.printStackTrace()
|
||||
uiAutosaveNotifier.setAsError()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -183,13 +183,7 @@ class WorldSavingThread(val disk: VirtualDisk, val outFile: File, val ingame: Te
|
||||
WriteSavegame.savingStatus = 255
|
||||
|
||||
|
||||
try {
|
||||
callback()
|
||||
}
|
||||
catch (e: Throwable) {
|
||||
e.printStackTrace()
|
||||
ingame.uiAutosaveNotifier.setAsError()
|
||||
}
|
||||
callback()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -208,12 +202,6 @@ class PlayerSavingThread(val disk: VirtualDisk, val outFile: File, val ingame: T
|
||||
WritePlayer(ingame.actorGamer, disk)
|
||||
VDUtil.dumpToRealMachine(disk, outFile)
|
||||
|
||||
try {
|
||||
callback()
|
||||
}
|
||||
catch (e: Throwable) {
|
||||
e.printStackTrace()
|
||||
ingame.uiAutosaveNotifier.setAsError()
|
||||
}
|
||||
callback()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,8 +56,15 @@ class UIAutosaveNotifier : UICanvas() {
|
||||
val offY = App.scr.tvSafeGraphicsHeight + 9f // +9 to align to quickslot and watch UI
|
||||
|
||||
val text = if (errored) Lang["ERROR_GENERIC_TEXT"].replace(".","") else Lang["MENU_IO_SAVING"]
|
||||
if (!errored) {
|
||||
batch.color = normalCol
|
||||
batch.draw(spin, offX, offY)
|
||||
}
|
||||
else {
|
||||
batch.color = errorCol
|
||||
batch.draw(spinner.get(0,4), offX, offY)
|
||||
}
|
||||
batch.color = if (errored) errorCol else normalCol
|
||||
if (!errored) batch.draw(spin, offX, offY)// else RED_X_SYMBOL
|
||||
App.fontGame.draw(batch, text, offX + 30f, offY)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user