about summary refs log tree commit diff stats
path: root/hest-life.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-05-16 13:24:58 -0700
committerKartik K. Agaram <vc@akkartik.com>2021-05-16 13:24:58 -0700
commitc3eddb915403cc92832dcb5373bd6e9af6affcc0 (patch)
tree4f06fe5d87766ff83be37c7c0fa7cb3d09fd4bc6 /hest-life.mu
parent9a531aef5f38dc75c48adccb3ae210f2076142ea (diff)
downloadmu-c3eddb915403cc92832dcb5373bd6e9af6affcc0.tar.gz
render differently at different zoom levels
Diffstat (limited to 'hest-life.mu')
-rw-r--r--hest-life.mu13
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