From c44b040a906048820b0621e157601df61d2ca34e Mon Sep 17 00:00:00 2001 From: kdx Date: Sun, 19 Mar 2023 04:57:16 +0000 Subject: who needs textures? --- src/map.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/map.c b/src/map.c index cdaaf72..dc0826d 100644 --- a/src/map.c +++ b/src/map.c @@ -40,7 +40,7 @@ int map_get(int x, int y) { if (x < 0 || y < 0 || x >= map_width() || y >= map_height()) - return 0; + return 1; return maps[map_id][x + y * map_width()]; } @@ -48,17 +48,30 @@ int map_get_px(int x, int y) { if (x < 0 || y < 0) - return 0; + return 1; return map_get(x / TSIZE, y / TSIZE); } +static void +draw_outline(int x, int y) +{ + const int left = (map_get(x - 1, y) == 1); + const int right = (map_get(x + 1, y) == 1); + const int up = (map_get(x, y - 1) == 1); + const int down = (map_get(x, y + 1) == 1); + x *= TSIZE; + y *= TSIZE; + if (!left) LZY_DrawRect(x, y, 1, TSIZE); + if (!right) LZY_DrawRect(x + TSIZE - 1, y, 1, TSIZE); + if (!up) LZY_DrawRect(x, y, TSIZE, 1); + if (!down) LZY_DrawRect(x, y + TSIZE - 1, TSIZE, 1); +} + void map_draw(void) { for (int y = 0; y < map_height(); y++) for (int x = 0; x < map_width(); x++) - if (maps[map_id][x + y * map_width()] == 1) { - LZY_DrawSetColor(BLACK); - LZY_DrawTile(2, x * 16, y * 16); - } + if (map_get(x, y) == 1) + draw_outline(x, y); } -- cgit v1.2.3