diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-05-16 13:24:58 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-05-16 13:24:58 -0700 |
commit | c3eddb915403cc92832dcb5373bd6e9af6affcc0 (patch) | |
tree | 4f06fe5d87766ff83be37c7c0fa7cb3d09fd4bc6 | |
parent | 9a531aef5f38dc75c48adccb3ae210f2076142ea (diff) | |
download | mu-c3eddb915403cc92832dcb5373bd6e9af6affcc0.tar.gz |
render differently at different zoom levels
-rw-r--r-- | hest-life.mu | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/hest-life.mu b/hest-life.mu index 9648792f..d3e4cc85 100644 --- a/hest-life.mu +++ b/hest-life.mu @@ -20,13 +20,24 @@ fn main screen: (addr screen), keyboard: (addr keyboard), data-disk: (addr disk) } type environment { - zoom: int + zoom: int # 0 = 1024 px per cell; 5 = 4px per cell; each step adjusts by a factor of 4 tick: int } fn render screen: (addr screen), _self: (addr environment) { clear-screen screen var self/esi: (addr environment) <- copy _self + var zoom/eax: (addr int) <- get self, zoom + compare *zoom, 0 + { + break-if-!= + render0 screen, self + return + } +} + +fn render0 screen: (addr screen), _self: (addr environment) { + var self/esi: (addr environment) <- copy _self # cell border draw-vertical-line screen, 0xc0/x, 0/ymin, 0x300/ymax, 0x16/color=dark-grey draw-vertical-line screen, 0x340/x, 0/ymin, 0x300/ymax, 0x16/color=dark-grey |