From 42ea79bcc2df636511204209467b14cb2d550980 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Fri, 3 Sep 2021 09:31:43 +0900 Subject: [PATCH] savegame cracker update --- .../terrarum/debuggerapp/SavegameCracker.kt | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/net/torvald/terrarum/debuggerapp/SavegameCracker.kt b/src/net/torvald/terrarum/debuggerapp/SavegameCracker.kt index 6b4a2eba7..512582327 100644 --- a/src/net/torvald/terrarum/debuggerapp/SavegameCracker.kt +++ b/src/net/torvald/terrarum/debuggerapp/SavegameCracker.kt @@ -22,7 +22,7 @@ private val ESC = 27.toChar() */ class SavegameCracker( val args: Array, - val stdin: InputStream = System.`in`, + val readFun: () -> String = { Scanner(System.`in`).nextLine() }, val stdout: PrintStream = System.out, val stderr: PrintStream = System.out, val charset: Charset = Common.CHARSET, @@ -39,8 +39,6 @@ class SavegameCracker( private var file: File? = null private var disk: VirtualDisk? = null - private val scanner = Scanner(stdin) - private fun println(vararg o: Any?) = stdout.println(o.map { it.toString() }.joinToString("\t")) private fun print(vararg o: Any?) = stdout.print(o.map { it.toString() }.joinToString("\t")) private fun printerrln(vararg o: Any?) = stderr.println(colourCodes[1] + o.map { it.toString() }.joinToString("\t") + colourCodes[0]) @@ -89,7 +87,7 @@ class SavegameCracker( private fun runInterpreter() { print(prompt) - val line = scanner.nextLine() + val line = readFun().trim() val args = tokenise(line) // println(args.mapIndexed { index, s -> if (index == 0) "$ccNoun$s$cc0" else "$ccVerb$s$cc0" }.joinToString(" ")) @@ -142,7 +140,11 @@ class SavegameCracker( letdisk { it.entries.forEach { i, entry -> if (i != 0) - println(ccNoun + i.toString(10).padStart(11, ' '), ccNoun2 + entry.filename.toCanonicalString(charset), ccConst + entry.contents.getSizePure() + " bytes") + println( + ccNoun + i.toString(10).padStart(11, ' ') + " " + + ccNoun2 + (entry.filename.toCanonicalString(charset) + " " + cc0).padEnd(18, '.') + " " + + ccConst + entry.contents.getSizePure() + " bytes" + ) } val entryCount = it.entries.size - 1 println("${cc0}$entryCount ${if (entryCount != 1) "Entries" else "Entry"}, total ${it.usedBytes}/${it.capacity} bytes") @@ -157,9 +159,9 @@ class SavegameCracker( } @Command("Exits the program") - fun exit(args: List) { - this.exit = true - } + fun exit(args: List) { this.exit = true } + @Command("Exits the program") + fun quit(args: List) = exit(args) @Command("Exports contents of the entry into a real file", "entry-id output-file") fun export(args: List) {