summaryrefslogtreecommitdiff
path: root/src/level.c
blob: cda65948925e987bf17afb189276e0fbe48c5b8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "level.h"

#include <stdio.h>
#include <stdlib.h>

#include "raylib.h"

Level *SE_CreateLevel(int width, int height) {
  Level *level = malloc(sizeof(Level) + sizeof(Vector3) * width * height);

  for (int i = 0; i < width * height; i++) {
    level->sides[i] = NULL;
  }

  level->width = width;
  level->height = height;

  return level;
}

void SE_RenderLevel(Level *level, int zoomScale) {
  for (int i = 0; i < level->width * level->height; i++) {
    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++) {
    Side *side = level->sides[i];
    if (side == NULL) continue;
    free(side);
  }
  free(level);
}