diff options
Diffstat (limited to 'src/level.c')
| -rw-r--r-- | src/level.c | 51 |
1 files changed, 51 insertions, 0 deletions
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 <stdlib.h> + +#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); +} |
