From 4b2ff8c1ed9921fe1cf575355e5210b7bf60f871 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?No=C3=A9?= <noe.artru@polytechnique.org>
Date: Tue, 23 May 2023 10:44:53 +0200
Subject: [PATCH] Bug fix for hitbox

---
 projet-code/scenes_inf443/base/src/bat.cpp    | 2 +-
 projet-code/scenes_inf443/base/src/hitbox.cpp | 6 +++---
 projet-code/scenes_inf443/base/src/hitbox.hpp | 4 ++--
 projet-code/scenes_inf443/base/src/scene.cpp  | 2 +-
 4 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/projet-code/scenes_inf443/base/src/bat.cpp b/projet-code/scenes_inf443/base/src/bat.cpp
index e6dc8bc..81c9184 100644
--- a/projet-code/scenes_inf443/base/src/bat.cpp
+++ b/projet-code/scenes_inf443/base/src/bat.cpp
@@ -22,7 +22,7 @@ void bat::initialize_mvt(vec3 p, numarray<vec3> key_positions, numarray<float> k
 	timer_mvt.t = timer_mvt.t_min;
 
 	//bat hitbox
-	bat_hitbox.initialize_hitbox(1, { {0,0,0} }, { size*6 }, pos);
+	bat_hitbox.initialize_hitbox(1, { {0,0,0} }, { size*6 });
 }
 
 void bat::update_mvt()
diff --git a/projet-code/scenes_inf443/base/src/hitbox.cpp b/projet-code/scenes_inf443/base/src/hitbox.cpp
index 4773626..e7cc36c 100644
--- a/projet-code/scenes_inf443/base/src/hitbox.cpp
+++ b/projet-code/scenes_inf443/base/src/hitbox.cpp
@@ -1,16 +1,16 @@
 #include "hitbox.hpp"
 
-void hitbox::initialize_hitbox(int _N, std::vector<vec3> _center, std::vector<double> _r, vec3 shift) {
+void hitbox::initialize_hitbox(int _N, std::vector<vec3> _center, std::vector<double> _r) {
 	N = _N;
 	center.resize(N);
 	r.resize(N);
 	for (int i = 0; i < N; i++) {
-		center[i] = _center[i] + shift;
+		center[i] = _center[i];
 		r[i] = _r[i];
 	}
 }
 
-bool hitbox::is_in_hitbox(vec3 pos) {
+bool hitbox::is_in_hitbox(vec3 pos, vec3 shift) {
 	for (int i = 0; i < N; i++) {
 		if (norm(pos - center[i]) < r[i]) return true;
 	}
diff --git a/projet-code/scenes_inf443/base/src/hitbox.hpp b/projet-code/scenes_inf443/base/src/hitbox.hpp
index 2e31385..02386f9 100644
--- a/projet-code/scenes_inf443/base/src/hitbox.hpp
+++ b/projet-code/scenes_inf443/base/src/hitbox.hpp
@@ -10,6 +10,6 @@ struct hitbox {
 	std::vector<vec3> center;
 	std::vector<double> r;
 
-	void initialize_hitbox(int _N, std::vector<vec3> _center, std::vector<double> _r, vec3 shift);
-	bool is_in_hitbox(vec3 pos);
+	void initialize_hitbox(int _N, std::vector<vec3> _center, std::vector<double> _r);
+	bool is_in_hitbox(vec3 pos, vec3 shift);
 };
\ No newline at end of file
diff --git a/projet-code/scenes_inf443/base/src/scene.cpp b/projet-code/scenes_inf443/base/src/scene.cpp
index 4d1c51f..d53454a 100644
--- a/projet-code/scenes_inf443/base/src/scene.cpp
+++ b/projet-code/scenes_inf443/base/src/scene.cpp
@@ -291,7 +291,7 @@ void scene_structure::display_projectiles() {
 	projectiles.simulate(timer.scale * 0.03f);
 	for (int i = 0; i < projectiles.N; i++) {
 		for (int j = 0; j < bats.N; j++) {
-			if (bats.bats_prop[j].bat_hitbox.is_in_hitbox(projectiles.projectiles_prop[i].pos)) bats.bats_prop[j].isdead = true;
+			if (bats.bats_prop[j].bat_hitbox.is_in_hitbox(projectiles.projectiles_prop[i].pos, bats.bats_prop[j].pos)) bats.bats_prop[j].isdead = true;
 		}
 
 		projectiles.mesh.model.translation = projectiles.projectiles_prop[i].pos;
-- 
GitLab