From dd9ecf09e5da1ea4412cf3b05736ecc99106af7c Mon Sep 17 00:00:00 2001
From: Henri Montjoie <henri.montjoie@insa-rennes.fr>
Date: Mon, 16 May 2016 22:56:38 +0200
Subject: [PATCH] fonction du controleur pour l'affichage des cases
 atteignables

---
 src/controleur.c | 17 +++++++++++++++++
 src/controleur.h |  1 +
 2 files changed, 18 insertions(+)

diff --git a/src/controleur.c b/src/controleur.c
index 8641be1..e3bdc26 100644
--- a/src/controleur.c
+++ b/src/controleur.c
@@ -514,6 +514,7 @@ Personnage * trouverPersonnage(Case * c){
 void deplacement_personnage(int numPerso, int x_pixel, int y_pixel){
     int x=x_case_cliquee(x_pixel, y_pixel);
     int y=y_case_cliquee(x_pixel, y_pixel);
+    int i,j;
     if(numPerso<=NB_PERSO){
         deplacement_unitaire(getCurrentJoueur(getListJoueur(partieGlobale))->groupe[numPerso-1],trouverCase(getCarte(partieGlobale),x,y));
     }
@@ -522,6 +523,22 @@ void deplacement_personnage(int numPerso, int x_pixel, int y_pixel){
     }
 }
 
+/*!
+ * \fn boolean case_accessible(int numPerso, int x_pixel, int y_pixel)
+ * \brief fonction qui dit si une case distante est accessible a un personnage au vu de ses points de deplacements et du terrain
+ *
+ * \param Le numero du personnage a deplacer, les coordonnees ou l'utilisateur a clique
+ * \return vrai ou faux
+ */
+boolean case_accessible(int numPerso, int x_pixel, int y_pixel){
+    int x=x_case_cliquee(x_pixel, y_pixel);
+    int y=y_case_cliquee(x_pixel, y_pixel);
+    if(numPerso<=NB_PERSO){
+        return deplacement_possible(getCurrentJoueur(getListJoueur(partieGlobale))->groupe[numPerso-1], trouverCase(getCarte(partieGlobale),x,y), getCarte(partieGlobale));
+    }else{
+        return deplacement_possible(getCurrentJoueur(getListJoueur(partieGlobale))->groupe[numPerso-1-NB_PERSO], trouverCase(getCarte(partieGlobale),x,y), getCarte(partieGlobale));
+    }
+}
 
   /*!
  * \fn char * obtenirNomJoueurCourant()
diff --git a/src/controleur.h b/src/controleur.h
index 9ffa57a..68cd476 100644
--- a/src/controleur.h
+++ b/src/controleur.h
@@ -43,6 +43,7 @@ void obtenirPositionPersonnage(int numero, int * x, int * y);
 Personnage * trouverPersonnage(Case * c);
 
 void deplacement_personnage(int numPerso,int x,int y);
+boolean case_accessible(int numPerso, int x_pixel, int y_pixel);
 
 char * obtenirNomJoueurCourant();
 char * obtenirNomClassePersonnage(int numero);
-- 
GitLab