mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-12 03:24:06 +09:00
vital metre mockup
Former-commit-id: c49f7ba80cff854db6d79af1c9d50d77b0bae76d Former-commit-id: bd62a24bfd4c9737e2f23b0bae1756df62a19acf
This commit is contained in:
@@ -71,7 +71,7 @@ internal class Term(globals: Globals, term: Teletype) {
|
||||
class WriteString(val tty: Teletype) : LuaFunction() {
|
||||
override fun call(p0: LuaValue): LuaValue {
|
||||
if (tty is Terminal)
|
||||
tty.writeString(p0.checkIBM437())
|
||||
tty.writeString(p0.checkIBM437(), tty.cursorX, tty.cursorY)
|
||||
else
|
||||
tty.writeChars(p0.checkIBM437())
|
||||
return LuaValue.NONE
|
||||
@@ -89,7 +89,7 @@ internal class Term(globals: Globals, term: Teletype) {
|
||||
class PrintString(val tty: Teletype) : LuaFunction() {
|
||||
override fun call(p0: LuaValue): LuaValue {
|
||||
if (tty is Terminal)
|
||||
tty.printString(p0.checkIBM437())
|
||||
tty.printString(p0.checkIBM437(), tty.cursorX, tty.cursorY)
|
||||
else
|
||||
tty.printChars(p0.checkIBM437())
|
||||
return LuaValue.NONE
|
||||
|
||||
@@ -106,34 +106,35 @@ class GraphicsTerminal(private val host: TerrarumComputer) : Terminal {
|
||||
|
||||
override fun emitChar(c: Char, xx: Int, yy: Int) {
|
||||
wrap() // needed
|
||||
var x = xx
|
||||
var y = yy
|
||||
var nx = xx
|
||||
var ny = yy
|
||||
// wrap argument cursor
|
||||
if (xx < 0 && yy <= 0) {
|
||||
x = 0
|
||||
y = 0
|
||||
nx = 0
|
||||
ny = 0
|
||||
}
|
||||
else if (cursorX >= width) {
|
||||
println("arstenioarstoneirastneo")
|
||||
x = 0
|
||||
y += 1
|
||||
nx = 0
|
||||
ny += 1
|
||||
}
|
||||
else if (cursorX < 0) {
|
||||
x = width - 1
|
||||
y -= 1
|
||||
nx = width - 1
|
||||
ny -= 1
|
||||
}
|
||||
// auto scroll up
|
||||
if (cursorY >= height) {
|
||||
scroll()
|
||||
y -= 1
|
||||
ny -= 1
|
||||
}
|
||||
|
||||
println("xx: $xx, yy: $yy")
|
||||
println("nx: $nx, ny: $ny")
|
||||
|
||||
videoCard.drawChar(
|
||||
c,
|
||||
x * PeripheralVideoCard.blockW,
|
||||
y * PeripheralVideoCard.blockH,
|
||||
nx * PeripheralVideoCard.blockW,
|
||||
ny * PeripheralVideoCard.blockH,
|
||||
CLUT16_TO_64[foreColour]
|
||||
)
|
||||
}
|
||||
|
||||
@@ -195,7 +195,7 @@ open class SimpleTextTerminal(
|
||||
override fun printChar(c: Char) {
|
||||
wrap()
|
||||
if (c >= ' ' && c.toInt() != 127) {
|
||||
emitChar(c)
|
||||
emitChar(c, cursorX, cursorY)
|
||||
cursorX += 1
|
||||
}
|
||||
else {
|
||||
@@ -206,7 +206,7 @@ open class SimpleTextTerminal(
|
||||
ASCII_LF -> newLine()
|
||||
ASCII_FF -> clear()
|
||||
ASCII_CR -> { cursorX = 0 }
|
||||
ASCII_DEL -> { cursorX -= 1; wrap(); emitChar(colourKey.shl(8)) }
|
||||
ASCII_DEL -> { cursorX -= 1; wrap(); emitChar(colourKey.shl(8), cursorX, cursorY) }
|
||||
ASCII_DC1, ASCII_DC2, ASCII_DC3, ASCII_DC4 -> { foreColour = c - ASCII_DC1 }
|
||||
ASCII_DLE -> { foreColour = errorColour }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user