From a5d1724dfa122569502d8242199ceaa9060c1b94 Mon Sep 17 00:00:00 2001
From: antoinemeyer5 <antoine.meyer54@gmail.com>
Date: Thu, 23 Jun 2022 10:10:15 +0200
Subject: [PATCH] concatenation de code pour les collisions, changement des
 points de vie

---
 travail_de_groupe/chef_oeuvre/src/map.h    |  3 +
 travail_de_groupe/chef_oeuvre/src/player.c | 75 ++++++++--------------
 2 files changed, 28 insertions(+), 50 deletions(-)

diff --git a/travail_de_groupe/chef_oeuvre/src/map.h b/travail_de_groupe/chef_oeuvre/src/map.h
index a9b6c58..adbfbc6 100644
--- a/travail_de_groupe/chef_oeuvre/src/map.h
+++ b/travail_de_groupe/chef_oeuvre/src/map.h
@@ -5,6 +5,9 @@
 
 #define MAPSIZE 20
 
+#define TREE 1
+#define WATER 2
+
 extern int map[MAPSIZE][MAPSIZE];
 
 void readMapFromFile(char * filename);
diff --git a/travail_de_groupe/chef_oeuvre/src/player.c b/travail_de_groupe/chef_oeuvre/src/player.c
index 4b31b13..f17ae94 100644
--- a/travail_de_groupe/chef_oeuvre/src/player.c
+++ b/travail_de_groupe/chef_oeuvre/src/player.c
@@ -33,14 +33,21 @@ int getPositionYInMap(int y){
     return y2;
 }
 
-int checkCollisionsTree(int dot1, int dot2){
+int checkCollisionsTypeGround(int dot1, int dot2, int typeGround){
     int coll = 0;
-    if(dot1==1 || dot2==1){
+    if(dot1==typeGround || dot2==typeGround){
         coll = 1;
     }
     return coll;
 }
 
+void checkCollisionsFire(int dot1, int dot2){
+    if((dot1==1 || dot2==1) && player.invisible==0){
+        player.currentHP = player.currentHP - 1;
+        player.invisible = 1;
+    }
+}
+
 int collisionsLeftPlayer(){
     int collision = 0;
     int dotTopLeft = giveCaseBelowPosition(player.x, player.y);
@@ -51,17 +58,10 @@ int collisionsLeftPlayer(){
     if(player.x <= 0){
         collision = 1;
     }
-    //collision tree
-    collision = checkCollisionsTree(dotTopLeft, dotDownLeft);
-    //collision water
-    if(dotTopLeft==2 || dotDownLeft==2){
-        collision = 1;
-    }
-    //collision fire
-    if((fireTopLeft==1 || fireDownLeft==1) && player.invisible==0){
-        player.currentHP = player.currentHP - 1;
-        player.invisible = 1;
-    }
+    //collisions
+    collision = checkCollisionsTypeGround(dotTopLeft, dotDownLeft, TREE);
+    collision = checkCollisionsTypeGround(dotTopLeft, dotDownLeft, WATER);
+    checkCollisionsFire(fireTopLeft, fireDownLeft);
     return collision;
 }
 
@@ -75,17 +75,10 @@ int collisionsRightPlayer(){
     if(player.x + player.w >= MAPSIZE * CELLSIZE){
         collision = 1;
     }
-    //collision tree
-    collision = checkCollisionsTree(dotTopRight, dotDownRight);
-    //collision water
-    if(dotTopRight==2 || dotDownRight==2){
-        collision = 1;
-    }
-    //collision fire
-    if((fireTopRight==1 || fireDownRight==1) && player.invisible==0){
-        player.currentHP = player.currentHP - 1;
-        player.invisible = 1;
-    }
+    //collisions
+    collision = checkCollisionsTypeGround(dotTopRight, dotDownRight, TREE);
+    collision = checkCollisionsTypeGround(dotTopRight, dotDownRight, WATER);
+    checkCollisionsFire(fireTopRight, fireDownRight);
     return collision;
 }
 
@@ -99,19 +92,10 @@ int collisionsUpPlayer(){
     if(player.y <= 0){
         collision = 1;
     }
-    //collision tree
-    if(dotTopRight==1 || dotTopLeft==1){
-        collision = 1;
-    }
-    //collision water
-    if(dotTopRight==2 || dotTopLeft==2){
-        collision = 1;
-    }
-    //collision fire
-    if((fireTopRight==1 || fireTopLeft==1) && player.invisible==0){
-        player.currentHP = player.currentHP - 1;
-        player.invisible = 1;
-    }
+    //collisions
+    collision = checkCollisionsTypeGround(dotTopRight, dotTopLeft, TREE);
+    collision = checkCollisionsTypeGround(dotTopRight, dotTopLeft, WATER);
+    checkCollisionsFire(fireTopRight, fireTopLeft);
     return collision;
 }
 
@@ -125,19 +109,10 @@ int collisionsDownPlayer(){
     if(player.y + player.h >= MAPSIZE * CELLSIZE){
         collision = 1;
     }
-    //collision tree
-    if(dotDownRight==1 || dotDownLeft==1){
-        collision = 1;
-    }
-    //collision water
-    if(dotDownRight==2 || dotDownLeft==2){
-        collision = 1;
-    }
-    //collision fire
-    if((fireDownRight==1 || fireDownLeft==1) && player.invisible==0){
-        player.currentHP = player.currentHP - 1;
-        player.invisible = 1;
-    }
+    //collisions
+    collision = checkCollisionsTypeGround(dotDownRight, dotDownLeft, TREE);
+    collision = checkCollisionsTypeGround(dotDownRight, dotDownLeft, WATER);
+    checkCollisionsFire(fireDownRight, fireDownLeft);
     return collision;
 }
 
-- 
GitLab