From c3eddb915403cc92832dcb5373bd6e9af6affcc0 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Sun, 16 May 2021 13:24:58 -0700 Subject: [PATCH] render differently at different zoom levels --- hest-life.mu | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/hest-life.mu b/hest-life.mu index 9648792f..d3e4cc85 100644 --- a/hest-life.mu +++ b/hest-life.mu @@ -20,12 +20,23 @@ 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