@@ -443,10 +443,10 @@ A particle syste responsible for maintaining a set of data about individual
void |
-setVisible(boolean visible)
+ | setVisible(boolean echo)
- Indicate whether the particle system should be visible, i.e. |
+ Indicate whether the particle system should be echo, i.e.
@@ -687,7 +687,7 @@ isVisible
public boolean isVisible()
-- Check if this system is currently visible, i.e. it's actually
+
- Check if this system is currently echo, i.e. it's actually
rendered
@@ -700,13 +700,13 @@ public boolean isVisible()
setVisible
-public void setVisible(boolean visible)
+public void setVisible(boolean echo)
-- Indicate whether the particle system should be visible, i.e. whether
+
- Indicate whether the particle system should be echo, i.e. whether
it'll actually render
-- Parameters:
visible - True if the particle system should render
+ - Parameters:
echo - True if the particle system should render
diff --git a/src/net/torvald/terrarum/StateInGame.kt b/src/net/torvald/terrarum/StateInGame.kt
index d76e86c74..6547e3940 100644
--- a/src/net/torvald/terrarum/StateInGame.kt
+++ b/src/net/torvald/terrarum/StateInGame.kt
@@ -253,7 +253,7 @@ constructor() : BasicGameState() {
// draw actors //
/////////////////
actorContainer.forEach { actor ->
- if (actor is Visible && actor.inScreen() && actor !is Player) { // if visible and within screen
+ if (actor is Visible && actor.inScreen() && actor !is Player) { // if echo and within screen
actor.drawBody(gc, g)
}
}
@@ -281,7 +281,7 @@ constructor() : BasicGameState() {
// draw actor glows //
//////////////////////
actorContainer.forEach { actor ->
- if (actor is Visible && actor.inScreen() && actor !is Player) { // if visible and within screen
+ if (actor is Visible && actor.inScreen() && actor !is Player) { // if echo and within screen
actor.drawGlow(gc, g)
}
}
diff --git a/src/net/torvald/terrarum/StateVTTest.kt b/src/net/torvald/terrarum/StateVTTest.kt
index 1df6441d2..83ed41576 100644
--- a/src/net/torvald/terrarum/StateVTTest.kt
+++ b/src/net/torvald/terrarum/StateVTTest.kt
@@ -19,7 +19,8 @@ import org.newdawn.slick.state.StateBasedGame
*/
class StateVTTest : BasicGameState() {
- val vt = SimpleTextTerminal(SimpleTextTerminal.IBM_GREEN, 80, 25, colour = false)
+ // HiRes: 100x62, LoRes: 80x25
+ val vt = SimpleTextTerminal(SimpleTextTerminal.ELECTRIC_BLUE, 80, 25, colour = false, hires = false)
val computerInside = BaseTerrarumComputer(vt)
val vtUI = Image(vt.displayW, vt.displayH)
diff --git a/src/net/torvald/terrarum/console/ExportMap.kt b/src/net/torvald/terrarum/console/ExportMap.kt
index 29d992f8f..ec39d0c38 100644
--- a/src/net/torvald/terrarum/console/ExportMap.kt
+++ b/src/net/torvald/terrarum/console/ExportMap.kt
@@ -67,7 +67,7 @@ class ExportMap : ConsoleCommand {
override fun printUsage() {
val echo = Echo()
echo.execute("Usage: export ")
- echo.execute("Exports current map into visible image.")
+ echo.execute("Exports current map into echo image.")
echo.execute("The image can be found at %adddata%/terrarum/Exports")
}
diff --git a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt
index 86d306020..2054ba128 100644
--- a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt
+++ b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt
@@ -14,7 +14,7 @@ import org.newdawn.slick.GameContainer
import org.newdawn.slick.Graphics
/**
- * Base class for every actor that has physical (or visible) body. This includes furnishings, paintings, gadgets, etc.
+ * Base class for every actor that has physical (or echo) body. This includes furnishings, paintings, gadgets, etc.
*
* Created by minjaesong on 16-03-14.
*/
@@ -959,7 +959,7 @@ open class ActorWithBody : Actor(), Visible {
// warnings
if (sprite == null && isVisible)
- println("[ActorWithBody] Caution: actor ${this.javaClass.simpleName} is visible but the sprite was not set.")
+ println("[ActorWithBody] Caution: actor ${this.javaClass.simpleName} is echo but the sprite was not set.")
else if (sprite != null && !isVisible)
println("[ActorWithBody] Caution: actor ${this.javaClass.simpleName} is invisible but the sprite was given.")
diff --git a/src/net/torvald/terrarum/mapdrawer/LightmapRenderer.kt b/src/net/torvald/terrarum/mapdrawer/LightmapRenderer.kt
index 1253f7d9a..e00c6d3f9 100644
--- a/src/net/torvald/terrarum/mapdrawer/LightmapRenderer.kt
+++ b/src/net/torvald/terrarum/mapdrawer/LightmapRenderer.kt
@@ -670,7 +670,7 @@ object LightmapRenderer {
var blues = IntArray(MUL) // do.
val render_width = for_x_end - for_x_start
val render_height = for_y_end - for_y_start
- // excluiding overscans; only reckon visible lights
+ // excluiding overscans; only reckon echo lights
for (y in overscan_open..render_height + overscan_open + 1) {
for (x in overscan_open..render_width + overscan_open + 1) {
reds[lightmap[y][x].rawR()] += 1
diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/lua/BOOT.lua b/src/net/torvald/terrarum/virtualcomputer/assets/lua/BOOT.lua
index 8684ceb42..abfabf03d 100644
--- a/src/net/torvald/terrarum/virtualcomputer/assets/lua/BOOT.lua
+++ b/src/net/torvald/terrarum/virtualcomputer/assets/lua/BOOT.lua
@@ -19,8 +19,8 @@ _G.DLE = string.char(16) -- default error colour
_G.getMem = function() collectgarbage() return collectgarbage("count") * 1024 end
-- getTotalMem: implemented in Kotlin class
_G.getFreeMem = function() return getTotalMem() - getMem() end
-_G.runscript = function(s, env)
- local code, reason = load(s, env)
+_G.runscript = function(s, source, ...)
+ local code, reason = load(s, source)
if _G.getFreeMem() <= 0 then
print("out of memory")
@@ -29,9 +29,9 @@ _G.runscript = function(s, env)
end
if code then
- xpcall(code, eprint)
+ xpcall(code(...), eprint)
else
- print(DLE..tostring(reason))
+ print(DLE..tostring(reason)) -- it catches syntax errors
end
end
_G.__scanMode__ = "UNINIT" -- part of inputstream implementation
@@ -59,16 +59,22 @@ if shell.status == shell.halt then
end
-- load Lua prompt, if bios is not found
-if (#_COMPUTER.OEM > 0) then print(_COMPUTER.OEM) end
print("Rom basic "..DC2.._VERSION..DC4)
+print("Copyright (C) 1994-2015 Lua.org, PUC-Rio")
print(DC2..tostring(math.floor(getFreeMem()/1024+0.5))..DC4.." Kbytes free")
+print("To boot your system, run 'boot()'")
print("Ok")
while not native.isHalted() do
- io.write(_COMPUTER.prompt)
- local s = io.read()
- runscript(s, "=stdin")
+ while not native.isHalted() do
+ io.write(_COMPUTER.prompt)
+ local s = io.read()
+ xpcall(
+ function() _G.runscript(s, "=stdin") end,
+ function(s) print(DLE..s) end -- it catches logical errors
+ )
+ end
end
-
native.closeInputString()
+__haltsystemexplicit__()
return
diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/lua/ROMLIB.lua b/src/net/torvald/terrarum/virtualcomputer/assets/lua/ROMLIB.lua
index a93092615..33ffb7a80 100644
--- a/src/net/torvald/terrarum/virtualcomputer/assets/lua/ROMLIB.lua
+++ b/src/net/torvald/terrarum/virtualcomputer/assets/lua/ROMLIB.lua
@@ -6,10 +6,10 @@
-- ALIASES --
-------------
-fs.dofile = function(p)
+fs.dofile = function(p, ...)
local f = fs.open(p, "r")
local s = f.readAll()
- _G.runscript(s, "="..p)
+ _G.runscript(s, "="..p, ...)
end
_G.loadstring = _G.load
@@ -18,6 +18,15 @@ _G.print = term.print
--_G.dofile = function(f) fs.dofile(f) end
+_G.boot = function() fs.dofile("/boot/efi") end
+
+
+fs.fetchText = function(p)
+ local file = fs.open(p, "r")
+ local text = file.readAll()
+ file.close()
+ return text
+end
-----------------------------------------
-- INPUTSTREAM AND SCANNER (java-like) --
@@ -38,9 +47,9 @@ override fun keyPressed(key: Int, c: Char) {
...it basically says to close the input if RETURN is hit,
and THIS exact part will close the input for this function.
]]
-_G.__scanForLine__ = function()
+_G.__scanforline__ = function(echo) -- pass '1' to not echo; pass nothing to echo
native.closeInputString()
- native.openInput()
+ native.openInput(echo or 0)
_G.__scanMode__ = "line"
local s
repeat -- we can do this ONLY IF lua execution process is SEPARATE THREAD
@@ -51,9 +60,9 @@ _G.__scanForLine__ = function()
end
-- use Keys API to identify the keycode
-_G.__scanForChar__ = function()
+_G.__scanforchar__ = function(echo) -- pass '1' to not echo; pass nothing to echo
native.closeInputString()
- native.openInput()
+ native.openInput(echo or 0)
_G.__scanMode__ = "a_key"
local key
repeat -- we can do this ONLY IF lua execution process is SEPARATE THREAD
@@ -63,7 +72,7 @@ _G.__scanForChar__ = function()
return key
end
-io.read = _G.__scanForLine__
+io.read = _G.__scanforline__
-----------------
diff --git a/src/net/torvald/terrarum/virtualcomputer/luaapi/Filesystem.kt b/src/net/torvald/terrarum/virtualcomputer/luaapi/Filesystem.kt
index 10328597c..54d93b43a 100644
--- a/src/net/torvald/terrarum/virtualcomputer/luaapi/Filesystem.kt
+++ b/src/net/torvald/terrarum/virtualcomputer/luaapi/Filesystem.kt
@@ -38,6 +38,7 @@ internal class Filesystem(globals: Globals, computer: BaseTerrarumComputer) {
globals["fs"]["open"] = OpenFile(computer) //CC compliant
globals["fs"]["parent"] = GetParentDir(computer)
// fs.dofile defined in ROMLIB
+ // fs.fetchText defined in ROMLIB
}
companion object {
@@ -300,7 +301,7 @@ internal class Filesystem(globals: Globals, computer: BaseTerrarumComputer) {
}
catch (e: FileNotFoundException) {
e.printStackTrace()
- throw LuaError("$path: No such file.")
+ throw LuaError("$path: no such file.")
}
}
"rb" -> {
@@ -312,7 +313,7 @@ internal class Filesystem(globals: Globals, computer: BaseTerrarumComputer) {
}
catch (e: FileNotFoundException) {
e.printStackTrace()
- throw LuaError("$path: No such file.")
+ throw LuaError("$path: no such file.")
}
}
"w", "a" -> {
@@ -325,7 +326,7 @@ internal class Filesystem(globals: Globals, computer: BaseTerrarumComputer) {
}
catch (e: FileNotFoundException) {
e.printStackTrace()
- throw LuaError("$path: Is a directory.")
+ throw LuaError("$path: is a directory.")
}
}
"wb", "ab" -> {
@@ -338,7 +339,7 @@ internal class Filesystem(globals: Globals, computer: BaseTerrarumComputer) {
}
catch (e: FileNotFoundException) {
e.printStackTrace()
- throw LuaError("$path: Is a directory.")
+ throw LuaError("$path: is a directory.")
}
}
}
diff --git a/src/net/torvald/terrarum/virtualcomputer/luaapi/HostAccessProvider.kt b/src/net/torvald/terrarum/virtualcomputer/luaapi/HostAccessProvider.kt
index 3713764d7..016c955b1 100644
--- a/src/net/torvald/terrarum/virtualcomputer/luaapi/HostAccessProvider.kt
+++ b/src/net/torvald/terrarum/virtualcomputer/luaapi/HostAccessProvider.kt
@@ -1,6 +1,7 @@
package net.torvald.terrarum.virtualcomputer.luaapi
import li.cil.repack.org.luaj.vm2.Globals
+import li.cil.repack.org.luaj.vm2.LuaFunction
import li.cil.repack.org.luaj.vm2.LuaTable
import li.cil.repack.org.luaj.vm2.LuaValue
import li.cil.repack.org.luaj.vm2.lib.OneArgFunction
@@ -61,9 +62,14 @@ internal class HostAccessProvider(globals: Globals, computer: BaseTerrarumComput
}
}
- class NativeOpenInput(val term: Teletype) : ZeroArgFunction() {
+ class NativeOpenInput(val term: Teletype) : LuaFunction() {
override fun call(): LuaValue {
- term.openInput()
+ term.openInput(true)
+ return LuaValue.NONE
+ }
+
+ override fun call(echo: LuaValue): LuaValue {
+ term.openInput(if (echo.checkint() == 1) false else true)
return LuaValue.NONE
}
}
diff --git a/src/net/torvald/terrarum/virtualcomputer/luaapi/Term.kt b/src/net/torvald/terrarum/virtualcomputer/luaapi/Term.kt
index 9c21fa887..ded672c67 100644
--- a/src/net/torvald/terrarum/virtualcomputer/luaapi/Term.kt
+++ b/src/net/torvald/terrarum/virtualcomputer/luaapi/Term.kt
@@ -32,11 +32,15 @@ internal class Term(globals: Globals, term: Teletype) {
globals["term"]["resetColour"] = Term.ResetColour(term)
globals["term"]["clear"] = Term.Clear(term)
globals["term"]["clearLine"] = Term.ClearLine(term)
+ globals["term"]["setCursor"] = Term.SetCursor(term)
globals["term"]["getCursor"] = Term.GetCursorPos(term)
globals["term"]["getX"] = Term.GetCursorX(term)
globals["term"]["getY"] = Term.GetCursorY(term)
+ globals["term"]["setX"] = Term.SetCursorX(term)
+ globals["term"]["setY"] = Term.SetCursorY(term)
globals["term"]["blink"] = Term.SetCursorBlink(term)
globals["term"]["size"] = Term.GetSize(term)
+ globals["term"]["height"] = Term.GetHeight(term)
globals["term"]["isCol"] = Term.IsColour(term)
globals["term"]["setForeCol"] = Term.SetForeColour(term)
globals["term"]["setBackCol"] = Term.SetBackColour(term)
@@ -100,21 +104,21 @@ internal class Term(globals: Globals, term: Teletype) {
class EmitRaw(val term: Terminal) : ThreeArgFunction() {
override fun call(p0: LuaValue, x: LuaValue, y: LuaValue): LuaValue {
- term.emitChar(p0.checkint(), x.checkint(), y.checkint())
+ term.emitChar(p0.checkint(), x.checkint() - 1, y.checkint() - 1)
return LuaValue.NONE
}
}
class Emit(val term: Terminal) : ThreeArgFunction() {
override fun call(p0: LuaValue, x: LuaValue, y: LuaValue): LuaValue {
- term.emitChar(p0.checkint().toChar(), x.checkint(), y.checkint())
+ term.emitChar(p0.checkint().toChar(), x.checkint() - 1, y.checkint() - 1)
return LuaValue.NONE
}
}
class EmitString(val term: Terminal) : ThreeArgFunction() {
override fun call(p0: LuaValue, x: LuaValue, y: LuaValue): LuaValue {
- term.emitString(p0.checkIBM437(), x.checkint(), y.checkint())
+ term.emitString(p0.checkIBM437(), x.checkint() - 1, y.checkint() - 1)
return LuaValue.NONE
}
}
@@ -140,14 +144,6 @@ internal class Term(globals: Globals, term: Teletype) {
}
}
- /** term.setCursorPos(number x, number y), One-based */
- class SetCursorPos(val term: Terminal) : TwoArgFunction() {
- override fun call(x: LuaValue, y: LuaValue): LuaValue {
- term.setCursor(x.checkint() - 1, y.checkint() - 1)
- return LuaValue.NONE
- }
- }
-
/** term.setCursorPos(number x) */
class MoveCursor(val tty: Teletype) : OneArgFunction() {
override fun call(p0: LuaValue): LuaValue {
@@ -157,6 +153,13 @@ internal class Term(globals: Globals, term: Teletype) {
}
}
+ class SetCursor(val term: Terminal) : TwoArgFunction() {
+ override fun call(x: LuaValue, y: LuaValue): LuaValue {
+ term.setCursor(x.checkint() - 1, y.checkint() - 1)
+ return LuaValue.NONE
+ }
+ }
+
/** One-based */
class GetCursorPos(val term: Terminal) : VarArgFunction() {
override fun invoke(args: Varargs?): Varargs {
@@ -177,6 +180,20 @@ internal class Term(globals: Globals, term: Teletype) {
}
}
+ class SetCursorX(val term: Terminal) : OneArgFunction() {
+ override fun call(p0: LuaValue): LuaValue {
+ term.setCursor(p0.checkint() - 1, term.cursorY)
+ return LuaValue.NONE
+ }
+ }
+
+ class SetCursorY(val term: Terminal) : OneArgFunction() {
+ override fun call(p0: LuaValue): LuaValue {
+ term.setCursor(term.cursorX - 1, p0.checkint())
+ return LuaValue.NONE
+ }
+ }
+
/** term.setCursorBlink(boolean bool) */
class SetCursorBlink(val term: Terminal) : OneArgFunction() {
override fun call(p0: LuaValue): LuaValue {
@@ -198,6 +215,12 @@ internal class Term(globals: Globals, term: Teletype) {
}
}
+ class GetHeight(val terminal: Terminal) : ZeroArgFunction() {
+ override fun call(): LuaValue {
+ return LuaValue.valueOf(terminal.height)
+ }
+ }
+
class IsColour(val term: Terminal) : ZeroArgFunction() {
override fun call(): LuaValue {
return LuaValue.valueOf(term.coloursCount > 4)
diff --git a/src/net/torvald/terrarum/virtualcomputer/terminal/SimpleTextTerminal.kt b/src/net/torvald/terrarum/virtualcomputer/terminal/SimpleTextTerminal.kt
index 2f8301ee9..f2fbbbad0 100644
--- a/src/net/torvald/terrarum/virtualcomputer/terminal/SimpleTextTerminal.kt
+++ b/src/net/torvald/terrarum/virtualcomputer/terminal/SimpleTextTerminal.kt
@@ -18,7 +18,8 @@ import java.nio.ByteBuffer
* Created by minjaesong on 16-09-07.
*/
open class SimpleTextTerminal(
- phosphorColour: Color, override val width: Int, override val height: Int, colour: Boolean = false
+ phosphorColour: Color, override val width: Int, override val height: Int,
+ colour: Boolean = false, hires: Boolean = false
) : Terminal {
/**
* Terminals must support AT LEAST 4 colours.
@@ -73,14 +74,15 @@ open class SimpleTextTerminal(
val screenBuffer = AAFrame(width, height)
- open protected val fontRef = "./assets/graphics/fonts/MDA.png"
+ open protected val fontRef = "./assets/graphics/fonts/${if (hires) "milky.png" else "MDA.png"}"
open protected val fontImg = Image(fontRef)
open protected val fontW = fontImg.width / 16
open protected val fontH = fontImg.height / 16
open protected val font = ColouredFastFont(this, fontRef, fontW, fontH)
- override val displayW = fontW * width
- override val displayH = fontH * height
+ private val borderSize = 20
+ override val displayW = fontW * width + 2 * borderSize
+ override val displayH = fontH * height + 2 * borderSize
var TABSIZE = 4
@@ -139,20 +141,27 @@ open class SimpleTextTerminal(
blendNormal()
+ // black background (this is mandatory)
+ g.color = Color.black
+ g.fillRect(0f, 0f, displayW.toFloat(), displayH.toFloat())
+
+
+ // screen buffer
for (y in 0..height - 1) {
for (x in 0..width - 1) {
val ch = screenBuffer.getChar(x, y)
// background
g.color = getColor(screenBuffer.getBackgroundColour(x, y))
- g.fillRect(fontW * x.toFloat(), fontH * y.toFloat(), fontW.toFloat(), fontH.toFloat())
+ g.fillRect(fontW * x.toFloat() + borderSize, fontH * y.toFloat() + borderSize,
+ fontW.toFloat(), fontH.toFloat())
// foreground
if (ch.toInt() != 0 && ch.toInt() != 32) {
g.color = getColor(screenBuffer.getForegroundColour(x, y))
g.drawString(
Character.toString(ch),
- fontW * x.toFloat(), fontH * y.toFloat())
+ fontW * x.toFloat() + borderSize, fontH * y.toFloat() + borderSize)
}
}
}
@@ -162,8 +171,8 @@ open class SimpleTextTerminal(
g.color = getColor(foreDefault)
if (cursorBlinkOn && cursorBlink)
g.fillRect(
- fontW * cursorX.toFloat(),
- fontH * cursorY.toFloat(),
+ fontW * cursorX.toFloat() + borderSize,
+ fontH * cursorY.toFloat() + borderSize,
fontW.toFloat(),
fontH.toFloat()
)
@@ -258,7 +267,7 @@ open class SimpleTextTerminal(
setCursor(x, y)
for (i in 0..s.length - 1) {
- emitChar(s[i])
+ printChar(s[i])
wrap()
}
@@ -385,13 +394,15 @@ open class SimpleTextTerminal(
override var lastInputByte: Int = -1
var sb: StringBuilder = StringBuilder()
private var inputOpen = false
+ private var keyPressVisible = false
/**
- * Technically, this is different from Java's InputStream
+ * @param echo if true, keypresses are echoed to the terminal.
*/
- override fun openInput() {
+ override fun openInput(echo: Boolean) {
lastStreamInput = null
lastKeyPress = null
inputOpen = true
+ keyPressVisible = echo
if (DEBUG) println("[SimpleTextTerminal] openInput()")
}
@@ -411,7 +422,8 @@ open class SimpleTextTerminal(
lastStreamInput = sb.toString()
sb = StringBuilder()
- if (DEBUG) println("[SimpleTextTerminal] closeInputString(), $lastStreamInput")
+ if (DEBUG)
+ println("[SimpleTextTerminal] closeInputString(), ${if (keyPressVisible) lastStreamInput else ""}")
return lastStreamInput!!
}
@@ -421,7 +433,7 @@ open class SimpleTextTerminal(
if (inputOpen) {
if (c == ASCII_CR)
printChar(ASCII_LF)
- else
+ else if (keyPressVisible)
printChar(c)
if (!asciiControlInUse.contains(c)) sb.append(c)
else if (c == ASCII_DEL && sb.length > 0) sb.deleteCharAt(sb.length - 1)
@@ -437,7 +449,7 @@ open class SimpleTextTerminal(
val AMBER = Color(255, 183, 0) // P3, 602 nm
val IBM_GREEN = Color(74, 255, 0) // P39, 525 nm
val WHITE = Color(228, 234, 255) // P4, 7 500 K
- val ELECTRIC_BLUE = Color(0, 239, 255) // imaginary, 486 nm
+ val ELECTRIC_BLUE = Color(0, 226, 255) // imaginary, 483 nm
val RED = Color(250, 0, 0) // <= 645 nm
val ASCII_NUL = 0.toChar()
diff --git a/src/net/torvald/terrarum/virtualcomputer/terminal/Teletype.kt b/src/net/torvald/terrarum/virtualcomputer/terminal/Teletype.kt
index 03812d816..4c7a4a243 100644
--- a/src/net/torvald/terrarum/virtualcomputer/terminal/Teletype.kt
+++ b/src/net/torvald/terrarum/virtualcomputer/terminal/Teletype.kt
@@ -34,7 +34,10 @@ interface Teletype {
fun newLine()
fun scroll(amount: Int = 1)
- fun openInput()
+ /**
+ * @param echo if true, keypresses are echoed to the terminal.
+ */
+ fun openInput(echo: Boolean = true)
fun closeInputKey(keyFromUI: Int): Int
fun closeInputString(): String
diff --git a/src/net/torvald/terrarum/virtualcomputer/terminal/TeletypeTerminal.kt b/src/net/torvald/terrarum/virtualcomputer/terminal/TeletypeTerminal.kt
index 9a4f75957..615a4af20 100644
--- a/src/net/torvald/terrarum/virtualcomputer/terminal/TeletypeTerminal.kt
+++ b/src/net/torvald/terrarum/virtualcomputer/terminal/TeletypeTerminal.kt
@@ -132,9 +132,9 @@ class TeletypeTerminal : Teletype {
val DEBUG = true
/**
- * Technically, this is different from Java's InputStream
+ * @param echo if true, keypresses are echoed to the terminal.
*/
- override fun openInput() {
+ override fun openInput(echo: Boolean) {
lastStreamInput = null
lastKeyPress = null
inputOpen = true
diff --git a/work_files/romapidoc/romapidoc.log b/work_files/romapidoc/romapidoc.log
index 008661797..41ddbc344 100644
--- a/work_files/romapidoc/romapidoc.log
+++ b/work_files/romapidoc/romapidoc.log
@@ -1,4 +1,4 @@
-This is LuaTeX, Version beta-0.80.0 (TeX Live 2015) (rev 5238) (format=lualatex 2015.10.5) 21 SEP 2016 19:32
+This is LuaTeX, Version beta-0.80.0 (TeX Live 2015) (rev 5238) (format=lualatex 2015.10.5) 22 SEP 2016 13:09
restricted \write18 enabled.
file:line:error style messages enabled.
**romapidoc.tex
@@ -552,7 +552,7 @@ luatexbase-attr: luatexbase.attributes["luaotfload@cursbase"] = 6
luatexbase-attr: luatexbase.attributes["luaotfload@curscurs"] = 7
luatexbase-attr: luatexbase.attributes["luaotfload@cursdone"] = 8
luatexbase-attr: luatexbase.attributes["luaotfload@state"] = 9
-luaotfload | main : fontloader loaded in 0.089 seconds
+luaotfload | main : fontloader loaded in 0.028 seconds
luatexbase-mcb: inserting 'luaotfload.node_processor'
at position 1 in 'pre_linebreak_filter'
luatexbase-mcb: inserting 'luaotfload.node_processor'
@@ -1264,52 +1264,52 @@ luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Regular.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Bold.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Bold.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-It.otf"
-Underfull \hbox (badness 2735) in paragraph at lines 136--136
+Underfull \hbox (badness 2735) in paragraph at lines 138--138
[][]|\EU2/MyriadPro(0)/m/n/10 Moves the di-rec-tory to the
[]
-Underfull \hbox (badness 1655) in paragraph at lines 136--136
+Underfull \hbox (badness 1655) in paragraph at lines 138--138
\EU2/MyriadPro(0)/m/n/10 des-ti-na-tion. Sub-di-rec-to-ries /
[]
-Underfull \hbox (badness 2150) in paragraph at lines 136--136
+Underfull \hbox (badness 2150) in paragraph at lines 138--138
[][]|\EU2/MyriadPro(0)/m/n/10 Copies the di-rec-tory to the
[]
-Underfull \hbox (badness 1655) in paragraph at lines 136--136
+Underfull \hbox (badness 1655) in paragraph at lines 138--138
\EU2/MyriadPro(0)/m/n/10 des-ti-na-tion. Sub-di-rec-to-ries /
[]
LaTeX Font Info: Font shape `EU2/MyriadPro(0)/m/sl' in size <10> not availabl
e
(Font) Font shape `EU2/MyriadPro(0)/m/it' tried instead on input li
-ne 136.
+ne 138.
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-It.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-It.otf" [6
] [7] [8]
-Underfull \hbox (badness 4792) in paragraph at lines 186--186
+Underfull \hbox (badness 4792) in paragraph at lines 188--188
[][]|\EU2/MyriadPro(0)/m/n/10 Con-verts byte ar-ray to the
[]
[9
]
-Underfull \hbox (badness 3354) in paragraph at lines 210--210
+Underfull \hbox (badness 3354) in paragraph at lines 212--212
[][]|\EU2/MyriadPro(0)/m/n/10 Re-turns SHA-256 hash of in-put
[]
-Underfull \hbox (badness 4805) in paragraph at lines 210--210
+Underfull \hbox (badness 4805) in paragraph at lines 212--212
[][]|\EU2/MyriadPro(0)/m/n/10 De-codes Base64 string and re-
[]
-Underfull \hbox (badness 2707) in paragraph at lines 210--210
+Underfull \hbox (badness 2707) in paragraph at lines 212--212
[][]|\EU2/MyriadPro(0)/m/n/10 En-codes in-put string as Base64
[]
@@ -1318,47 +1318,45 @@ Underfull \hbox (badness 2707) in paragraph at lines 210--210
] [11
]
-Underfull \hbox (badness 1418) in paragraph at lines 280--280
-[][]|\EU2/MyriadPro(0)/m/n/10 Moves cur-sor to (\EU2/MyriadPro(0)/bx/n/10 x\EU2
-/MyriadPro(0)/m/n/10 , \EU2/MyriadPro(0)/bx/n/10 y\EU2/MyriadPro(0)/m/n/10 ), s
-tart-ing
+Underfull \hbox (badness 2165) in paragraph at lines 292--292
+\EU2/MyriadPro(0)/m/n/10 nal. Graphic ter-mi-nals also can
[]
-Underfull \hbox (badness 2932) in paragraph at lines 280--280
+Underfull \hbox (badness 2932) in paragraph at lines 292--292
[][]|\EU2/MyriadPro(0)/m/n/10 Re-turns \EU2/MyriadPro(0)/bx/n/10 true \EU2/Myri
adPro(0)/m/n/10 if the ter-mi-nal is
[]
-Underfull \hbox (badness 2772) in paragraph at lines 280--280
+Underfull \hbox (badness 2772) in paragraph at lines 292--292
[][]|\EU2/MyriadPro(0)/m/n/10 Emits \EU2/MyriadPro(0)/bx/n/10 c \EU2/MyriadPro(
0)/m/n/10 into (\EU2/MyriadPro(0)/bx/n/10 x\EU2/MyriadPro(0)/m/n/10 , \EU2/Myri
adPro(0)/bx/n/10 y\EU2/MyriadPro(0)/m/n/10 ), con-trol se-
[]
-Underfull \hbox (badness 3118) in paragraph at lines 280--280
+Underfull \hbox (badness 3118) in paragraph at lines 292--292
\EU2/MyriadPro(0)/m/n/10 ing con-trol se-quences as sym-
[]
-Underfull \hbox (badness 1365) in paragraph at lines 280--280
+Underfull \hbox (badness 1365) in paragraph at lines 292--292
[][]|\EU2/MyriadPro(0)/m/n/10 Clears whole screen buffer and
[]
-Underfull \hbox (badness 5022) in paragraph at lines 280--280
+Underfull \hbox (badness 5022) in paragraph at lines 292--292
[][]|\EU2/MyriadPro(0)/m/n/10 Re-turns cur-rent co-or-di-nates of
[]
-Underfull \hbox (badness 10000) in paragraph at lines 280--280
+Underfull \hbox (badness 10000) in paragraph at lines 292--292
[][]|\EU2/MyriadPro(0)/m/n/10 Re-turns cur-rent fore-ground
[]
-Underfull \hbox (badness 10000) in paragraph at lines 280--280
+Underfull \hbox (badness 10000) in paragraph at lines 292--292
[][]|\EU2/MyriadPro(0)/m/n/10 Re-turns cur-rent back-ground
[]
@@ -1367,53 +1365,53 @@ Underfull \hbox (badness 10000) in paragraph at lines 280--280
] [13]
File: mda.pdf Graphic file (type pdf)
| |