press '0' to reset all state
This commit is contained in:
parent
28393b2cae
commit
3f916e6414
|
@ -565,7 +565,7 @@ Keyboard-ctrl-map:
|
|||
# carriage-return
|
||||
0d 00
|
||||
# 1e
|
||||
# ^a ^s ^d ^f ^g ^h ^j ^j ^l ^\
|
||||
# ^a ^s ^d ^f ^g ^h ^j ^k ^l ^\
|
||||
01 13 04 06 07 08 0a 0b 0c 00 00 00 00 1c
|
||||
# 2c
|
||||
# ^z ^x ^c ^v ^b ^n ^m ^/
|
||||
|
|
46
hest-life.mu
46
hest-life.mu
|
@ -200,8 +200,9 @@ fn draw-linear-point screen: (addr screen), u: float, x0: int, y0: int, x1: int,
|
|||
fn edit keyboard: (addr keyboard), _self: (addr environment) {
|
||||
var self/esi: (addr environment) <- copy _self
|
||||
var key/eax: byte <- read-key keyboard
|
||||
compare key, 0x20/space
|
||||
# space: play/pause
|
||||
{
|
||||
compare key, 0x20/space
|
||||
break-if-!=
|
||||
var play?/eax: (addr boolean) <- get self, play?
|
||||
compare *play?, 0/false
|
||||
|
@ -213,6 +214,13 @@ fn edit keyboard: (addr keyboard), _self: (addr environment) {
|
|||
copy-to *play?, 1/true
|
||||
return
|
||||
}
|
||||
# 0: back to start
|
||||
{
|
||||
compare key, 0x30/0
|
||||
break-if-!=
|
||||
clear-environment self
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
fn pause _self: (addr environment) {
|
||||
|
@ -275,6 +283,42 @@ fn initialize-environment _self: (addr environment) {
|
|||
flush self
|
||||
}
|
||||
|
||||
fn clear-environment _self: (addr environment) {
|
||||
var self/esi: (addr environment) <- copy _self
|
||||
var tick/eax: (addr int) <- get self, tick
|
||||
copy-to *tick, 0
|
||||
var zoom/eax: (addr int) <- get self, zoom
|
||||
#? copy-to *zoom, 4
|
||||
var play?/eax: (addr boolean) <- get self, play?
|
||||
copy-to *play?, 1/true
|
||||
var data-ah/eax: (addr handle array handle array cell) <- get self, data
|
||||
var data/eax: (addr array handle array cell) <- lookup *data-ah
|
||||
var y/ecx: int <- copy 0
|
||||
{
|
||||
compare y, 0xc0
|
||||
break-if->=
|
||||
var row-ah/eax: (addr handle array cell) <- index data, y
|
||||
var row/eax: (addr array cell) <- lookup *row-ah
|
||||
var x/edx: int <- copy 0
|
||||
{
|
||||
compare x, 0x100
|
||||
break-if->=
|
||||
var dest/eax: (addr cell) <- index row, x
|
||||
clear-object dest
|
||||
x <- increment
|
||||
loop
|
||||
}
|
||||
y <- increment
|
||||
loop
|
||||
}
|
||||
set self, 0x80, 0x5f, 1/alive
|
||||
set self, 0x81, 0x5f, 1/alive
|
||||
set self, 0x7f, 0x60, 1/alive
|
||||
set self, 0x80, 0x60, 1/alive
|
||||
set self, 0x80, 0x61, 1/alive
|
||||
flush self
|
||||
}
|
||||
|
||||
fn set _self: (addr environment), _x: int, _y: int, _val: boolean {
|
||||
var self/esi: (addr environment) <- copy _self
|
||||
var data-ah/eax: (addr handle array handle array cell) <- get self, data
|
||||
|
|
Loading…
Reference in New Issue