From d5cc4f654fc50502c9e4f9ebbe310b9158d5b0a4 Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Mon, 13 Jan 2025 15:20:37 +0500 Subject: feat: level struct and basic functions for initialization (wip) --- src/level.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/level.c (limited to 'src/level.c') diff --git a/src/level.c b/src/level.c new file mode 100644 index 0000000..fbe6260 --- /dev/null +++ b/src/level.c @@ -0,0 +1,51 @@ +#include "level.h" + +#include + +#include "raylib.h" + +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++; + } + } + + level->width = width; + level->height = height; + + return level; +} + +void SE_RenderLevel(Level *level) { + int cell_size = 10; + + for (int x = 0; x < level->width; x++) { + for (int y = 0; y < level->height; y++) { + DrawRectangleLines(cell_size * x, cell_size * y, cell_size, cell_size, + LIGHTGRAY); + } + } + + for (int i = 0; i < level->width * level->height; i++) { + Vector3 *vector = level->vectors[i]; + DrawRectangle(vector->x, vector->y, 2, 2, BLACK); + } +} + +void SE_FreeLevel(Level *level) { + for (int i = 0; i < level->width * level->height; i++) { + Vector3 *v = level->vectors[i]; + free(v); + } + free(level); +} -- cgit v1.2.3