diff --git a/assets-cg/example.png b/assets-cg/example.png
deleted file mode 100644
index 8826800..0000000
Binary files a/assets-cg/example.png and /dev/null differ
diff --git a/assets-cg/fxconv-metadata.txt b/assets-cg/fxconv-metadata.txt
deleted file mode 100644
index 8f2955b..0000000
--- a/assets-cg/fxconv-metadata.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-tileset.png:
- type: bopti-image
- name: img_tileset
- profile: p4
diff --git a/assets-cg/icon-sel.png b/assets-cg/icon-sel.png
deleted file mode 100644
index 7137b50..0000000
Binary files a/assets-cg/icon-sel.png and /dev/null differ
diff --git a/assets-cg/icon-uns.png b/assets-cg/icon-uns.png
deleted file mode 100644
index 3c99f62..0000000
Binary files a/assets-cg/icon-uns.png and /dev/null differ
diff --git a/assets-cg/test.lua b/assets-cg/test.lua
deleted file mode 100644
index 34903cc..0000000
--- a/assets-cg/test.lua
+++ /dev/null
@@ -1,70 +0,0 @@
-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 = "test.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 = {
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 50, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 49, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 14, 14, 14, 14,
- 26, 26, 26, 26, 26, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 26, 26, 26, 26, 26,
- 40, 41, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 39, 40,
- 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 62, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 61, 62, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 62, 63, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 61, 62, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 62, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 61, 62, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 62, 63, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 13, 14,
- 14, 38, 2, 2, 2, 2, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 37, 14,
- 14, 14, 14, 14, 14, 14, 14, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 18, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 13, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 18, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 18, 13, 14, 14, 14, 14, 14, 14, 14
- }
- }
- }
-}
diff --git a/assets-cg/test.tmx b/assets-cg/test.tmx
deleted file mode 100644
index bf9c421..0000000
--- a/assets-cg/test.tmx
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
diff --git a/assets-cg/test.tsx b/assets-cg/test.tsx
deleted file mode 100644
index 08679a8..0000000
--- a/assets-cg/test.tsx
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/assets-cg/test.world b/assets-cg/test.world
deleted file mode 100644
index 3507a0c..0000000
--- a/assets-cg/test.world
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "maps": [
- ],
- "onlyShowAdjacentMaps": false,
- "type": "world"
-}
diff --git a/assets-cg/test2.lua b/assets-cg/test2.lua
deleted file mode 100644
index 74f3c82..0000000
--- a/assets-cg/test2.lua
+++ /dev/null
@@ -1,56 +0,0 @@
-return {
- version = "1.5",
- luaversion = "5.1",
- tiledversion = "1.7.2",
- orientation = "orthogonal",
- renderorder = "right-down",
- width = 25,
- height = 14,
- tilewidth = 16,
- tileheight = 16,
- nextlayerid = 2,
- nextobjectid = 1,
- properties = {},
- tilesets = {
- {
- name = "test",
- firstgid = 1,
- filename = "test.tsx"
- }
- },
- layers = {
- {
- type = "tilelayer",
- x = 0,
- y = 0,
- width = 25,
- height = 14,
- id = 1,
- name = "Calque de Tuiles 1",
- visible = true,
- opacity = 1,
- offsetx = 0,
- offsety = 0,
- parallaxx = 1,
- parallaxy = 1,
- properties = {},
- encoding = "lua",
- data = {
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- }
- }
- }
-}
diff --git a/assets-cg/test2.tmx b/assets-cg/test2.tmx
deleted file mode 100644
index e4282cd..0000000
--- a/assets-cg/test2.tmx
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
diff --git a/assets-cg/tileset.png b/assets-cg/tileset.png
deleted file mode 100644
index 9c20b93..0000000
Binary files a/assets-cg/tileset.png and /dev/null differ
diff --git a/assets-fx/example.png b/assets-fx/example.png
deleted file mode 100644
index b26ba9a..0000000
Binary files a/assets-fx/example.png and /dev/null differ
diff --git a/assets-fx/fxconv-metadata.txt b/assets-fx/fxconv-metadata.txt
deleted file mode 100644
index d435d5f..0000000
--- a/assets-fx/fxconv-metadata.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-example.png:
- type: bopti-image
- name: img_example
diff --git a/assets-fx/icon.png b/assets-fx/icon.png
deleted file mode 100644
index c92f12a..0000000
Binary files a/assets-fx/icon.png and /dev/null differ
diff --git a/include/input.h b/include/input.h
deleted file mode 100644
index 8f85a3f..0000000
--- a/include/input.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#pragma once
-
-/* FROM FISFOR */
-/* use this to get user input, NOT gint/keyboard.h */
-
-typedef enum Key {
- K_A,
- K_B,
- K_UP,
- K_DOWN,
- K_LEFT,
- K_RIGHT,
- K_EXIT,
- K_X,
- K_Y,
- K_COUNT
-} Key;
-typedef enum KeyState { KS_UP, KS_RELEASE, KS_DOWN, KS_PRESS } KeyState;
-
-typedef struct Input {
- int keys[K_COUNT];
- KeyState states[K_COUNT];
-} Input;
-
-/* called by main.c once */
-void input_init(void);
-
-/* call this to update key states once per frame */
-void input_step(void);
-
-int input_down(Key);
-int input_pressed(Key);
-int input_up(Key);
-int input_released(Key);
diff --git a/include/main.h b/include/main.h
deleted file mode 100644
index a01cee7..0000000
--- a/include/main.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#pragma once
-
-#define TILE_S 8
-#define TILESET_W 12
-#define TILESET_H 6
-
-/* Yup, it's exactly the code from frozen frenzy™. */
-
-/* used for tiles */
-typedef int tile_t;
-
-/* struct for a pair of int values */
-typedef struct Vec2 {
- int x, y;
-} Vec2;
-
-/* struct for a pair of float values */
-typedef struct FVec2 {
- float x, y;
-} FVec2;
-
-/* struct for player's data */
-typedef struct Player {
- Vec2 pos;
- Vec2 spawn;
- FVec2 spd;
-} Player;
-
-/* dynamic level data */
-typedef struct Level {
- int width, height;
- tile_t *data;
-} Level;
-
-/* struct for rem movement and collision check */
-typedef struct Res_Mov {
- Player player;
- Vec2 moved;
-} Res_Mov;
diff --git a/include/player.h b/include/player.h
deleted file mode 100644
index 8a862d4..0000000
--- a/include/player.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#pragma once
-#include "main.h"
-
-#define PLAYER_SIZE 12
-
-#define PLAYER_ACC 1
-#define BASE_FRIC 0.2
-#define GRAVITY 0.4
-#define JUMP_H 7
-#define COYOTE_TIME 3
-
-Player player_reset(Player player, Level level);
-Vec2 search(tile_t x, Level level);
-int convert_all(tile_t x, tile_t y, Level level);
-int collide_pixel(Vec2 pos, tile_t obj, Level level);
-int collide(Vec2 pos, int h, tile_t obj, Level level);
-Res_Mov move(Player player, Level level);
-Player player_reset(Player player, Level level);
diff --git a/src/input.c b/src/input.c
deleted file mode 100644
index 795ffba..0000000
--- a/src/input.c
+++ /dev/null
@@ -1,70 +0,0 @@
-#include "input.h"
-#include
-
-static Input input;
-
-void
-input_init(void)
-{
- int i = K_COUNT;
- while (i-- > 0) {
- input.states[i] = KS_UP;
- }
- input.keys[K_A] = KEY_SHIFT;
- input.keys[K_B] = KEY_ALPHA;
- input.keys[K_X] = KEY_OPTN;
- input.keys[K_Y] = KEY_SQUARE;
- input.keys[K_LEFT] = KEY_LEFT;
- input.keys[K_RIGHT] = KEY_RIGHT;
- input.keys[K_UP] = KEY_UP;
- input.keys[K_DOWN] = KEY_DOWN;
- input.keys[K_EXIT] = KEY_MENU;
-}
-
-void
-input_step(void)
-{
- int i = K_COUNT;
- clearevents();
- while (i-- > 0) {
- const int kdown = keydown(input.keys[i]);
- KeyState *const state = &input.states[i];
- const KeyState prev_state = input.states[i];
- switch (prev_state) {
- case KS_UP:
- case KS_RELEASE:
- *state = (kdown) ? (KS_PRESS) : (KS_UP);
- break;
- case KS_DOWN:
- case KS_PRESS:
- *state = (kdown) ? (KS_DOWN) : (KS_RELEASE);
- break;
- default:
- break;
- }
- }
-}
-
-int
-input_down(Key k)
-{
- return input.states[k] == KS_DOWN || input.states[k] == KS_PRESS;
-}
-
-int
-input_pressed(Key k)
-{
- return input.states[k] == KS_PRESS;
-}
-
-int
-input_up(Key k)
-{
- return !input_down(k);
-}
-
-int
-input_released(Key k)
-{
- return input.states[k] == KS_RELEASE;
-}
diff --git a/src/main.c b/src/main.c
deleted file mode 100644
index c5089a0..0000000
--- a/src/main.c
+++ /dev/null
@@ -1,225 +0,0 @@
-#include
-#include
-#include
-#include
-
-#include "input.h"
-#include "main.h"
-#include "player.h"
-
-int
-main(void)
-{
- extern bopti_image_t img_tileset;
-
- Level level = {
- .width = 50,
- .height = 28,
- };
-
- /* dynamic level size */
- level.data =
- (tile_t *)malloc(level.width * level.height * sizeof(tile_t));
-
- tile_t data[] = {
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 50, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 49, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 14, 14, 14, 14, 26, 26, 26,
- 26, 26, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 25, 26, 26, 26, 26, 26, 40, 41, 64, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 39, 40, 14, 18, 65, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14, 14, 18, 65, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 65, 13, 14, 14, 18, 65, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 65, 13, 14, 14, 18, 65, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 65, 13, 14, 14, 18, 65, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 61, 62, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 65, 13, 14, 14, 18, 65, 61, 62, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 65, 13, 14, 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 65, 13, 14, 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 65, 13, 14, 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 61, 62, 63, 0, 0, 0, 0, 0, 0, 0,
- 65, 13, 14, 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,
- 13, 14, 14, 18, 65, 61, 62, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13,
- 14, 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14,
- 14, 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 62, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14, 14,
- 18, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14, 14, 18,
- 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14, 14, 18, 65,
- 61, 62, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 61, 62, 63, 0, 0, 0, 0, 0, 0, 65, 13, 14, 14, 18, 65, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14, 14, 18, 65, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 65, 13, 14, 14, 18, 66, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 66, 13, 14, 14, 38, 2, 2, 2, 2, 2,
- 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 2, 2, 2, 2, 2, 37, 14, 14, 14, 14, 14, 14, 14, 14, 18,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 18, 1,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 13,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 18, 13, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 18, 13, 14,
- 14, 14, 14, 14, 14, 14};
-
- memcpy(level.data, data, sizeof(data));
-
- input_init();
- Player player = {.pos = {50, 50}, .spawn = {0, 0}, .spd = {0, 0}};
- Vec2 camera = {0, 0};
-
- int running = 1;
- int jumping = 1;
- int airbreak = 1;
- int coyote = 0;
-
- while (running) {
-
- /* camera thing */
-
- dclear(C_WHITE);
-
- camera.x = player.pos.x - 190;
-
- if (camera.x < 2) {
- camera.x = 2;
- }
- if (camera.x > level.width * TILE_S - 398) {
- camera.x = level.width * TILE_S - 398;
- }
- camera.y = player.pos.y - 104;
-
- if (camera.y < 0) {
- camera.y = 0;
- }
- if (camera.y > level.height * TILE_S - 224) {
- camera.y = level.height * TILE_S - 224;
- }
-
- /* tiles */
- for (int m = 0; m < level.height; ++m) {
- for (int n = 0; n < level.width; ++n) {
- tile_t tile = level.data[n + m * level.width];
- dsubimage(n * TILE_S - camera.x,
- m * TILE_S - camera.y, &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); */
- }
- }
-
- drect(player.pos.x - camera.x, player.pos.y - camera.y,
- player.pos.x + PLAYER_SIZE - camera.x - 1,
- player.pos.y + PLAYER_SIZE - camera.y - 1, C_BLACK);
-
- dprint(10, 10, C_BLACK, "%d", jumping);
-
- /* input */
- input_step();
-
- Vec2 mov = {
- .x = input_down(K_RIGHT) - input_down(K_LEFT),
- .y = 0,
- };
-
- /* on the ground */
- if (collide((Vec2){player.pos.x, player.pos.y + 1}, 0, 1,
- level)) {
- jumping = 0;
- airbreak = 0;
- coyote = COYOTE_TIME;
- } else {
- --coyote;
- }
-
- /* JUMP */
- if (input_pressed(K_A) && coyote > 0) {
- player.spd.y = -JUMP_H;
- jumping = 2;
- coyote = 0;
- airbreak = 0;
- }
-
- /* airbreak */
- if (!airbreak && (!input_down(K_A) || player.spd.y > 0)) {
- airbreak = 1;
- }
-
- /* moving */
- player.spd.x *= (1 - BASE_FRIC); /* friction */
- player.spd.x += mov.x * PLAYER_ACC; /* idem */
- player.spd.y += GRAVITY + (GRAVITY * airbreak); /* gravity */
-
- if (player.spd.x > -0.2 && player.spd.x < 0.2) {
- player.spd.x = 0;
- }
- if (player.spd.y > -0.2 && player.spd.y < 0.2) {
- player.spd.y = 0;
- }
-
- Res_Mov position = move(player, level); /* i'm crying rn */
- player = position.player;
-
- /* if the player collide with a wall */
- if (position.moved.x) {
- player.spd.x = 0;
- }
- if (position.moved.y) {
- player.spd.y = 0;
- }
-
- /* exit */
- if (input_pressed(K_EXIT)) {
- break;
- }
-
- dupdate();
- }
- return 1;
-}
diff --git a/src/player.c b/src/player.c
deleted file mode 100644
index 1df39e7..0000000
--- a/src/player.c
+++ /dev/null
@@ -1,143 +0,0 @@
-#include
-
-#include "player.h"
-
-int
-sign(int n)
-{
- /* I do not know well C lmao */
-
- if (n > 0) {
- return 1;
- } else {
- return -1;
- }
-}
-
-Vec2
-search(tile_t x, Level level)
-{
- /* Search for x in a given matrix. */
- /* If x is found, return it coordinates */
- Vec2 coordinates = {0, 0};
- for (int m = 0; m < level.width; ++m) {
- for (int n = 0; n < level.height; ++n) {
- if (level.data[m + n * level.width] == x) {
- coordinates.x = m * TILE_S;
- coordinates.y = n * TILE_S;
- return coordinates;
- }
- }
- }
- return coordinates;
-}
-
-int
-convert_all(tile_t x, tile_t y, Level level)
-{
- /* convert all instance of a tile */
- for (int i = 0; i < level.width * level.height; ++i) {
- if (level.data[i] == x) {
- level.data[i] = y;
- }
- }
- return 1;
-}
-
-int
-collide_pixel(Vec2 pos, tile_t obj, Level level)
-{
- /* Check if there's something in (x, y) */
- const int position = pos.x / TILE_S + pos.y / TILE_S * level.width;
- const int uwu = level.data[position];
-
- if (position < 0 || position > level.width * level.height || uwu == 0) {
- return 0;
- }
-
- /* others */
- if (obj != 1) {
- if (uwu == obj) {
- return position;
- } else {
- return 0;
- }
- }
-
- /* solids */
- if ((uwu - 1) % TILESET_W <= 6) {
- return 1;
- } else {
- return 0;
- }
-}
-
-int
-collide(Vec2 pos, int h, tile_t obj, Level level)
-{
- /* tl = top left */
- /* br = bottom right */
- const Vec2 pos_tl = (Vec2){pos.x + h, pos.y + h};
- const Vec2 pos_br =
- (Vec2){pos.x + PLAYER_SIZE - h - 1, pos.y + PLAYER_SIZE - h - 1};
- const Vec2 middle =
- (Vec2){pos.x + PLAYER_SIZE / 2, pos.y + PLAYER_SIZE / 2};
-
- /* Check if there's something in */
- /* the square (x, y, x + 15, y + 15) */
- /* The size of the hitbox changes with h */
-
- if (collide_pixel(pos_tl, obj, level) ||
- collide_pixel(pos_br, obj, level) ||
- collide_pixel((Vec2){pos_tl.x, pos_br.y}, obj, level) ||
- collide_pixel((Vec2){pos_br.x, pos_tl.y}, obj, level) ||
- collide_pixel((Vec2){middle.x, pos_tl.y}, obj, level) ||
- collide_pixel((Vec2){middle.x, pos_br.y}, obj, level) ||
- collide_pixel((Vec2){pos_tl.x, middle.y}, obj, level) ||
- collide_pixel((Vec2){pos_br.x, middle.y}, obj, level)) {
- return 1;
- }
- return 0;
-}
-
-Res_Mov
-move(Player player, Level level)
-{
- /* move the player */
- Vec2 moved = {0, 0};
-
- if (player.spd.x == 0 && player.spd.y == 0) {
- return (Res_Mov){player, moved};
- }
-
- int Ispd_x = player.spd.x;
- player.pos.x += Ispd_x;
- if (collide(player.pos, 0, 1, level)) {
- float sign_x = sign(player.spd.x);
- while (collide(player.pos, 0, 1, level) == 1) {
- player.pos.x -= sign_x;
- }
- moved.x = 1;
- }
-
- int Ispd_y = player.spd.y;
- player.pos.y += Ispd_y;
- if (collide(player.pos, 0, 1, level)) {
- float sign_y = sign(player.spd.y);
- while (collide(player.pos, 0, 1, level) == 1) {
- player.pos.y -= sign_y;
- }
- moved.y = 1;
- }
- return (Res_Mov){player, moved};
-}
-
-Player
-player_reset(Player player, Level level)
-{
- /* reset the level */
- player.spawn = search(52, level);
- player.pos = player.spawn;
- player.spd = (FVec2){0, 0};
- return player;
-}