From a7396c5ffc7c2f918116ecd5ba6dd7888bfb4681 Mon Sep 17 00:00:00 2001 From: JOLIMAITRE Matthieu Date: Sat, 3 Sep 2022 14:25:18 +0200 Subject: [PATCH] fixed grid display --- src/view.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/view.rs b/src/view.rs index a07d0fb..48ce9aa 100644 --- a/src/view.rs +++ b/src/view.rs @@ -123,8 +123,8 @@ fn handle_inputs(receiver: &mpsc::Receiver, view_origin: &mut Pos, del fn grid_layer(canvas: &mut Canvas, view_origin: Pos) { canvas.layer(|local_pos| { - let Pos { x, y } = local_pos + view_origin; - match (x % 16 == 0, y % 8 == 0) { + let Pos { x, y } = screen_pos_to_world(local_pos, view_origin); + match (x % 16 == 0, dmod(y, 16) <= 1) { (true, true) => Some('┼'), (true, _) => Some('│'), (_, true) => Some('─'), @@ -178,7 +178,11 @@ where }) } -fn screen_pos_to_world(mut pos: Pos, screen_origin: Pos) -> Pos { +fn screen_pos_to_world(mut pos: Pos, view_origin: Pos) -> Pos { pos.y *= 2; - pos + screen_origin + pos + view_origin +} + +fn dmod(a: i32, module: i32) -> i32 { + ((a % module) + module) % module }