diff --git a/app.c b/app.c
index 94df354..18e78e2 100644
--- a/app.c
+++ b/app.c
@@ -138,6 +138,7 @@ typedef struct Collision {
#define NB_COLLISIONS 10
Collision collisions[NB_COLLISIONS] = {};
+int nb_collisions = 0;
Collision collision_union(Collision rec1, Collision rec2)
{
@@ -190,6 +191,21 @@ Collision collision_rec(Collision fix, int i, int scale)
return col;
}
+void reset_collisions()
+{
+ nb_collisions = 0;
+}
+void add_collisions(int x, int y, int width, int height)
+{
+ if (nb_collisions >= NB_COLLISIONS) return;
+ collisions[nb_collisions++] = (Collision) {
+ .x = x,
+ .y = y,
+ .width = width,
+ .height = height,
+ };
+}
+
void set_velocity(float x, float y)
{
velocity = (v2){x, y};
@@ -235,32 +251,31 @@ int collision(v2 point, int x, int y, int w, int h)
void init()
{
pengers_init();
- int col_id = 0;
- collisions[col_id++] = (Collision) {
+ collisions[nb_collisions++] = (Collision) {
.x = 100,
.y = 400,
.width = 50,
.height = 100,
};
- collisions[col_id++] = (Collision) {
+ collisions[nb_collisions++] = (Collision) {
.x = 150,
.y = 450,
.width = 500,
.height = 50,
};
- collisions[col_id++] = (Collision) {
+ collisions[nb_collisions++] = (Collision) {
.x = 650,
.y = 400,
.width = 50,
.height = 100,
};
- collisions[col_id++] = (Collision) {
+ collisions[nb_collisions++] = (Collision) {
.x = 280,
.y = 200,
.width = 75,
.height = 75,
};
- collisions[col_id++] = (Collision) {
+ collisions[nb_collisions++] = (Collision) {
.x = 445,
.y = 200,
.width = 75,
@@ -340,7 +355,7 @@ void draw(float dt)
rebondi(&penger_pos, scale);
- for (int i = 0; i < NB_COLLISIONS; i++) {
+ for (int i = 0; i < nb_collisions; i++) {
Collision col = collision_rec(collisions[i], i, scale);
x_collide = x_collide || (col.height > 1);
}
@@ -403,7 +418,7 @@ void draw(float dt)
}
// draw collisions box
- for (int i = 0; i < NB_COLLISIONS; i++) {
+ for (int i = 0; i < nb_collisions; i++) {
for (int y = collisions[i].y; y < collisions[i].y + collisions[i].height; y++) {
for (int x = collisions[i].x; x < collisions[i].x + collisions[i].width; x++) {
if ((y/2 + x/3)%8 < 4)
diff --git a/build.sh b/build.sh
index 1b939ad..53df774 100755
--- a/build.sh
+++ b/build.sh
@@ -5,7 +5,7 @@ if [[ "$1" == "clear" ]]; then
exit
fi;
-export_sym="init draw key_pressed key_released set_velocity set_mouse get_pos_x get_pos_y draw_player deco_player BUFFER width height id nb_players dir"
+export_sym="init draw key_pressed key_released set_velocity set_mouse get_pos_x get_pos_y draw_player deco_player reset_collisions add_collisions BUFFER width height id nb_players dir"
export_cmd=""
for e in $export_sym; do
export_cmd="$export_cmd -Wl,--export=$e";
@@ -31,7 +31,7 @@ id=0
for p in $(ls museum); do
file=$(echo $p | sed "s/\.png$//g")
./png2c "museum/"$p $id > museum.c/$file.c
- pengers_html+=$'
\n'
+ pengers_html+=$'
\n'
pengers_include+='#include "museum.c/'$file$'.c"\n'
((id=id+1))
done
diff --git a/load.js b/load.js
index c93fbc4..8c8922b 100644
--- a/load.js
+++ b/load.js
@@ -50,7 +50,6 @@ const connection = new WebSocket(document.URL.replace('http', 'ws').replace('696
connection.onopen = (e) => { console.log("connection to server opened"); };
connection.onmessage = (e) => {
var req = JSON.parse(e.data);
- console.log(req);
if (req.name == 'pseudo') {
if (req.value != "") is_connected = true;
document.getElementById('players').innerHTML = req.value;