From d740ead06e758a637908de709d0114840890f9f3 Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Sat, 18 Jan 2025 02:36:11 +0500 Subject: feat: side and point structs --- src/level.c | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) (limited to 'src/level.c') diff --git a/src/level.c b/src/level.c index c805c04..cda6594 100644 --- a/src/level.c +++ b/src/level.c @@ -1,5 +1,6 @@ #include "level.h" +#include #include #include "raylib.h" @@ -7,17 +8,8 @@ Level *SE_CreateLevel(int width, int height) { Level *level = malloc(sizeof(Level) + sizeof(Vector3) * width * height); - int i = 0; - - for (int x = 0; x < width; x++) { - for (int y = 0; y < height; y++) { - Vector3 *v = malloc(sizeof(Vector3)); - v->x = x * 10; - v->y = y * 10; - v->z = 0; - level->vectors[i] = v; - i++; - } + for (int i = 0; i < width * height; i++) { + level->sides[i] = NULL; } level->width = width; @@ -26,19 +18,21 @@ Level *SE_CreateLevel(int width, int height) { return level; } -void SE_RenderLevel(Level *level) { - int cell_size = 10; - +void SE_RenderLevel(Level *level, int zoomScale) { for (int i = 0; i < level->width * level->height; i++) { - Vector3 *vector = level->vectors[i]; - DrawRectangle(vector->x, vector->y, 2, 2, BLACK); + Side *side = level->sides[i]; + if (side == NULL) continue; + + DrawLine(side->a.x * zoomScale, side->a.y * zoomScale, + side->b.x * zoomScale, side->b.y * zoomScale, RED); } } void SE_FreeLevel(Level *level) { for (int i = 0; i < level->width * level->height; i++) { - Vector3 *v = level->vectors[i]; - free(v); + Side *side = level->sides[i]; + if (side == NULL) continue; + free(side); } free(level); } -- cgit v1.2.3