diff --git a/CMakeLists.txt b/CMakeLists.txt index c4c0765..a4928ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,9 +16,11 @@ set(SOURCES src/player.c src/input.c src/tools.c + src/level.c ) set(ASSETS_cg + assets-cg/tileset.png ) fxconv_declare_assets(${ASSETS} ${ASSETS_fx} ${ASSETS_cg} WITH_METADATA) diff --git a/assets-cg/fxconv-metadata.txt b/assets-cg/fxconv-metadata.txt new file mode 100644 index 0000000..b4e6115 --- /dev/null +++ b/assets-cg/fxconv-metadata.txt @@ -0,0 +1,4 @@ +*.png: + type: bopti-image + profile: p8 + name_regex: (.*)\.png img_\1 diff --git a/assets-cg/tileset.png b/assets-cg/tileset.png new file mode 100644 index 0000000..c38990f Binary files /dev/null and b/assets-cg/tileset.png differ diff --git a/include/conf.h b/include/conf.h index ae94335..5525cb5 100644 --- a/include/conf.h +++ b/include/conf.h @@ -7,3 +7,7 @@ #define PLAYER_JUMP 7 #define PLAYER_COYOTE 3 #define GRAVITY 0.4 + +#define TILE_S 8 +#define TILESET_W 16 +#define TILESET_H 4 diff --git a/include/level.h b/include/level.h new file mode 100644 index 0000000..e568f9f --- /dev/null +++ b/include/level.h @@ -0,0 +1,11 @@ +#pragma once + +#include "type.h" + +struct Level { + int w, h, s; /* weigth, height, size */ + tile_t *data; +}; + +void level_init(void); +void level_draw(void); diff --git a/include/type.h b/include/type.h index b6d2f35..002b021 100644 --- a/include/type.h +++ b/include/type.h @@ -1,5 +1,7 @@ #pragma once +typedef int tile_t; + struct Vec2 { int x, y; }; diff --git a/levels/test.lua b/levels/test.lua new file mode 100644 index 0000000..13df7bd --- /dev/null +++ b/levels/test.lua @@ -0,0 +1,70 @@ +return { + version = "1.5", + luaversion = "5.1", + tiledversion = "1.7.2", + orientation = "orthogonal", + renderorder = "right-down", + width = 50, + height = 28, + tilewidth = 8, + tileheight = 8, + nextlayerid = 2, + nextobjectid = 1, + properties = {}, + tilesets = { + { + name = "tileset", + firstgid = 1, + filename = "../levels/tileset.tsx" + } + }, + layers = { + { + type = "tilelayer", + x = 0, + y = 0, + width = 50, + height = 28, + id = 1, + name = "Calque de Tuiles 1", + visible = true, + opacity = 1, + offsetx = 0, + offsety = 0, + parallaxx = 1, + parallaxy = 1, + properties = {}, + encoding = "lua", + 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 + } + } + } +} diff --git a/levels/test.tmx b/levels/test.tmx new file mode 100644 index 0000000..52cd621 --- /dev/null +++ b/levels/test.tmx @@ -0,0 +1,39 @@ + + + + + + + + +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 + + + diff --git a/levels/tileset.tsx b/levels/tileset.tsx new file mode 100644 index 0000000..d5344a4 --- /dev/null +++ b/levels/tileset.tsx @@ -0,0 +1,4 @@ + + + + diff --git a/src/level.c b/src/level.c new file mode 100644 index 0000000..18c2f0a --- /dev/null +++ b/src/level.c @@ -0,0 +1,138 @@ +#include "level.h" +#include "conf.h" +#include +#include +#include + +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)); +} diff --git a/src/main.c b/src/main.c index 15e2dc6..4459259 100644 --- a/src/main.c +++ b/src/main.c @@ -1,6 +1,7 @@ #include "main.h" #include "draw.h" #include "input.h" +#include "level.h" #include "player.h" static int running = 1; @@ -28,6 +29,7 @@ static void init(void) { input_init(); + level_init(); } static void @@ -41,6 +43,7 @@ static void draw(void) { dclear(C_WHITE); + level_draw(); player_draw(); dupdate(); }