From f2ba925d36dd3ef7c9f615f6ef2a7bf9ba4557a3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?No=C3=A9?= <noe.artru@polytechnique.org>
Date: Wed, 3 May 2023 22:10:38 +0200
Subject: [PATCH] Press shift to remove projectiles

---
 projet-code/scenes_inf443/base/src/ball.cpp  | 7 +++++++
 projet-code/scenes_inf443/base/src/ball.hpp  | 1 +
 projet-code/scenes_inf443/base/src/scene.cpp | 3 +++
 3 files changed, 11 insertions(+)

diff --git a/projet-code/scenes_inf443/base/src/ball.cpp b/projet-code/scenes_inf443/base/src/ball.cpp
index b6fcb67..7a32f47 100644
--- a/projet-code/scenes_inf443/base/src/ball.cpp
+++ b/projet-code/scenes_inf443/base/src/ball.cpp
@@ -18,6 +18,13 @@ void ball::initialize(int n)
 	}
 }
 
+void ball::reset() {
+	N = 0;
+	pos.resize(N);
+	v.resize(N);
+	color.resize(N);
+}
+
 void ball::add_ball(vec3 new_pos, vec3 new_dir) {
 	N++;
 	pos.resize(N);
diff --git a/projet-code/scenes_inf443/base/src/ball.hpp b/projet-code/scenes_inf443/base/src/ball.hpp
index c1fa967..1e8fd58 100644
--- a/projet-code/scenes_inf443/base/src/ball.hpp
+++ b/projet-code/scenes_inf443/base/src/ball.hpp
@@ -16,6 +16,7 @@ struct ball {
 	void initialize(int n);
 	void simulate(float dt, float terrain_length);
 	void add_ball(vec3 new_pos, vec3 new_dir);
+	void reset();
 };
 
 vec3 terrain_orientation(float x, float y, float terrain_length);
diff --git a/projet-code/scenes_inf443/base/src/scene.cpp b/projet-code/scenes_inf443/base/src/scene.cpp
index 7278b0f..2502873 100644
--- a/projet-code/scenes_inf443/base/src/scene.cpp
+++ b/projet-code/scenes_inf443/base/src/scene.cpp
@@ -381,6 +381,9 @@ void scene_structure::mouse_click_event()
 void scene_structure::keyboard_event()
 {
 	camera_control.action_keyboard(environment.camera_view);
+	if(camera_control.inputs->keyboard.shift) {
+		projectiles.reset();
+	}
 }
 void scene_structure::idle_frame()
 {
-- 
GitLab