interference/src/level.c

139 lines
6.8 KiB
C

#include "level.h"
#include "conf.h"
#include <gint/display.h>
#include <stdlib.h>
#include <string.h>
static struct Level level;
static void level_free(void);
static void level_load(void);
extern bopti_image_t img_tileset;
void
level_init(void)
{
level = (struct Level){
.w = 50,
.h = 28,
};
level.s = level.w * level.h;
level_free();
level_load();
}
void
level_draw(void)
{
for (int m = 0; m < level.h; ++m) {
for (int n = 0; n < level.w; ++n) {
tile_t tile = level.data[n + m * level.w];
dsubimage(n * TILE_S, m * TILE_S, &img_tileset,
((tile - 1) % TILESET_W) * TILE_S,
((tile - 1) / TILESET_W) * TILE_S, TILE_S,
TILE_S, 0);
/* dprint(n * TILE_S - camera.x, m * TILE_S - camera.y,
* C_BLACK, "%d", tile); */
}
}
}
static void
level_free(void)
{
level.data = (tile_t *)malloc(level.s * sizeof(tile_t));
}
static void
level_load(void)
{
/* TODO : LEVEL LOADING */
tile_t data[] = {
5, 6, 7, 8, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1,
2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 6, 7, 8, 21,
22, 23, 24, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18,
17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17,
18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 21, 22, 23, 24, 37, 38,
39, 40, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 29, 0, 0, 30, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 37, 38, 39, 40, 53, 54, 55,
56, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 45, 35, 36, 46, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 53, 54, 55, 56, 1, 2, 33, 34,
13, 13, 13, 13, 13, 19, 19, 19, 19, 19, 13, 13, 13, 13, 13, 13, 13,
13, 29, 0, 51, 52, 0, 30, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 33, 34, 1, 2, 17, 18, 49, 50, 13,
13, 13, 13, 19, 13, 13, 13, 13, 13, 19, 13, 13, 13, 13, 13, 13, 13,
45, 0, 0, 0, 0, 46, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 49, 50, 17, 18, 1, 2, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 29, 0,
0, 48, 48, 0, 0, 30, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 1, 2, 17, 18, 13, 13, 13, 13, 13,
13, 13, 4, 13, 13, 13, 4, 13, 13, 13, 13, 13, 13, 13, 45, 0, 0,
64, 64, 0, 0, 46, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 17, 18, 1, 2, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 29, 0, 0, 0, 64,
64, 0, 0, 0, 30, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 1, 2, 17, 18, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 45, 0, 0, 0, 64, 64,
0, 0, 0, 46, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 17, 18, 1, 2, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 29, 0, 0, 0, 0, 64, 64, 0,
0, 0, 0, 30, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 1, 2, 17, 18, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 45, 0, 0, 0, 0, 64, 64, 0, 0,
0, 0, 46, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 17, 18, 1, 2, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 29, 0, 0, 0, 0, 0, 64, 64, 0, 0, 0,
0, 0, 30, 3, 3, 19, 3, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 1, 2, 17, 18, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 45, 0, 0, 0, 0, 0, 64, 64, 0, 0, 0, 0,
0, 46, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 17, 18, 1, 2, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 29, 0, 0, 0, 0, 0, 0, 64, 64, 0, 0, 0, 0, 0,
0, 30, 13, 13, 13, 13, 13, 13, 4, 20, 4, 13, 13, 13, 13, 13, 13,
1, 2, 17, 18, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 45, 0, 0, 0, 0, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0,
46, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 17,
18, 1, 2, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
29, 0, 0, 0, 0, 0, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0,
30, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1, 2,
17, 18, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 45,
9, 10, 0, 0, 0, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 46,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 17, 18, 1,
2, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 29, 0, 25,
26, 0, 0, 0, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 19, 19,
4, 4, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1, 2, 17, 18,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 45, 0, 41, 42,
0, 0, 0, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 46, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 17, 18, 1, 2, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 29, 0, 0, 57, 58, 0,
0, 0, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1, 2, 17, 18, 13, 13,
13, 13, 13, 19, 19, 4, 4, 13, 13, 13, 45, 4, 4, 19, 4, 4, 0,
0, 0, 0, 64, 64, 0, 14, 0, 15, 0, 14, 0, 0, 0, 46, 13, 13,
13, 4, 20, 20, 19, 13, 13, 13, 13, 13, 17, 18, 1, 2, 33, 34, 13,
13, 13, 13, 13, 13, 13, 13, 13, 29, 0, 16, 0, 0, 0, 16, 0, 0,
0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 13, 13,
13, 13, 13, 13, 13, 13, 13, 33, 34, 1, 2, 17, 18, 49, 50, 13, 13,
13, 13, 13, 13, 13, 13, 13, 45, 0, 32, 0, 0, 0, 32, 0, 0, 0,
0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 13, 13, 13,
13, 13, 13, 13, 13, 13, 49, 50, 17, 18, 5, 6, 7, 8, 19, 13, 13,
13, 13, 13, 13, 13, 29, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 0,
64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 13, 13, 13,
13, 13, 13, 13, 19, 5, 6, 7, 8, 21, 22, 23, 24, 3, 13, 13, 13,
13, 13, 13, 13, 45, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 0, 64,
64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 13, 13, 13, 13,
13, 13, 13, 3, 21, 22, 23, 24, 37, 38, 39, 40, 1, 2, 1, 2, 1,
2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1,
2, 1, 2, 37, 38, 39, 40, 53, 54, 55, 56, 17, 18, 17, 18, 17, 18,
17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17,
18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18,
17, 18, 53, 54, 55, 56};
memcpy(level.data, data, sizeof(data));
}