139 lines
6.8 KiB
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));
|
|
}
|