From f99cc0bf3a821574d8310620c5286bda081c4aa8 Mon Sep 17 00:00:00 2001
From: Marie Brunet Carteaux <marie.brunet@insa-rennes.fr>
Date: Thu, 12 May 2016 18:32:24 +0200
Subject: [PATCH] Modifs des fonctions de recup dans le controleur
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Ajout de la doxygen
Modifications du code (utilisation de strncpy pour les fonctions renvoyant un char *)
Début de code de la fonction recuperant les noms des attaques d'un personnage (commentee car non aboutie)
---
 src/controleur.c   | 88 ++++++++++++++++++++++++++++++++++++++--------
 src/deplacements.c |  3 ++
 src/structures.h   |  2 ++
 3 files changed, 79 insertions(+), 14 deletions(-)

diff --git a/src/controleur.c b/src/controleur.c
index 6cd7aaa..86bbd66 100644
--- a/src/controleur.c
+++ b/src/controleur.c
@@ -440,9 +440,9 @@ Personnage * trouverPersonnage(Case * c){
   /*!
  * \fn char * obtenirNomClassePersonnage(int numero)
  * \brief La fonction renvoie le nom de la classe du Personnage en parrametre.
- *        Le numero correspond au placement du personnage tel qu'il est définit dans la sdl et va de 1 à 6 :
- *        Exemples : Le Personnage 0 du joueur 2 dans le moteur correspond au numero 4 pour la sdl.
- *                   Le Personnage 1 du joueur 1 dans le moteur correspond au numero 2 pour la sdl.
+ *        Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6 :
+ *        Exemples : Le Personnage 0 du joueur 2 dans le moteur correspond au numero 4 pour la SDL.
+ *                   Le Personnage 1 du joueur 1 dans le moteur correspond au numero 2 pour la SDL.
  *
  * \param Le numero du personnage pour la SDL.
  * \return Un char * vers le nom de la classe du Personnage.
@@ -455,19 +455,28 @@ char * obtenirNomClassePersonnage(int numero){
 
     if ((numero>0)&&(numero<=3)){
         setOnFirstJoueur(getListJoueur(partieGlobale));
-        nomClasse = getNomClasse(getClasse(getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),numero-1)));
+        strncpy(nomClasse, getNomClasse(getClasse(getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),numero-1))), TAILLE_NOMS);
         setOnJoueur(getListJoueur(partieGlobale),actuel);
         return nomClasse;
     }
     else if ((numero>3)&&(numero<=6)){
         setOnFirstJoueur(getListJoueur(partieGlobale));
         nextJoueur(getListJoueur(partieGlobale));
-        nomClasse = getNomClasse(getClasse(getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),numero-4)));
+        strncpy(nomClasse, getNomClasse(getClasse(getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),numero-4))), TAILLE_NOMS);
         setOnJoueur(getListJoueur(partieGlobale),actuel);
         return nomClasse;
     }
 }
-
+  /*!
+ * \fn int obtenirPVPersonnage(int numero)
+ * \brief La fonction renvoie le PV du Personnage en parametre.
+ *        Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6 :
+ *        Exemples : Le Personnage 0 du joueur 2 dans le moteur correspond au numero 4 pour la SDL.
+ *                   Le Personnage 1 du joueur 1 dans le moteur correspond au numero 2 pour la SDL.
+ *
+ * \param Le numero du personnage pour la SDL.
+ * \return Un int vers le PV du Personnage.
+ */
 int obtenirPVPersonnage(int numero){
     Joueur * actuel = NULL;
     actuel = getCurrentJoueur(getListJoueur(partieGlobale));
@@ -491,7 +500,13 @@ int obtenirPVPersonnage(int numero){
     return PVPersonnage;
 }
 
-
+  /*!
+ * \fn int obtenirPVMaxPersonnage(int numero)
+ * \brief La fonction renvoie le PV max de la classe du Personnage en parametre.
+ *        Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6
+ * \param Le numero du personnage pour la SDL.
+ * \return Un int vers le PV max de la classe du Personnage.
+ */
 int obtenirPVMaxPersonnage(int numero){
     Joueur * actuel = NULL;
     actuel = getCurrentJoueur(getListJoueur(partieGlobale));
@@ -514,7 +529,13 @@ int obtenirPVMaxPersonnage(int numero){
     setOnJoueur(getListJoueur(partieGlobale), actuel);
     return PVMaxPersonnage;
 }
-
+  /*!
+ * \fn int obtenirManaPersonnage(int numero)
+ * \brief La fonction renvoie le mana du Personnage en parametre.
+ *        Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6
+ * \param Le numero du personnage pour la SDL.
+ * \return Un int vers le mana du Personnage.
+ */
 int obtenirManaPersonnage(int numero){
     Joueur * actuel = NULL;
     actuel = getCurrentJoueur(getListJoueur(partieGlobale));
@@ -537,7 +558,13 @@ int obtenirManaPersonnage(int numero){
     setOnJoueur(getListJoueur(partieGlobale), actuel);
     return ManaPersonnage;
 }
-
+  /*!
+ * \fn int obtenirManaMaxPersonnage(int numero)
+ * \brief La fonction renvoie le mana max de la classe du Personnage en parametre.
+ *        Le numero correspond au placement du personnage tel qu'il est defini dans la SDL et va de 1 à 6
+ * \param Le numero du personnage pour la SDL.
+ * \return Un int vers le mana max de la classe du Personnage.
+ */
 int obtenirManaMaxPersonnage(int numero){
     Joueur * actuel = NULL;
     actuel = getCurrentJoueur(getListJoueur(partieGlobale));
@@ -560,7 +587,13 @@ int obtenirManaMaxPersonnage(int numero){
     setOnJoueur(getListJoueur(partieGlobale), actuel);
     return ManaMaxPersonnage;
 }
-
+  /*!
+ * \fn int obtenirPDPersonnage(int numero)
+ * \brief La fonction renvoie le PD du Personnage en parametre.
+ *        Le numero correspond au placement du personnage tel qu'il est defini dans la SDL et va de 1 à 6
+ * \param Le numero du personnage pour la SDL.
+ * \return Un int vers le PD du Personnage.
+ */
 int obtenirPDPersonnage(int numero){
     Joueur * actuel = NULL;
     actuel = getCurrentJoueur(getListJoueur(partieGlobale));
@@ -583,7 +616,13 @@ int obtenirPDPersonnage(int numero){
     setOnJoueur(getListJoueur(partieGlobale), actuel);
     return PDPersonnage;
 }
-
+  /*!
+ * \fn int obtenirPDMaxPersonnage(int numero)
+ * \brief La fonction renvoie le PD max de la classe du Personnage en parametre.
+ *        Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6
+ * \param Le numero du personnage pour la SDL.
+ * \return Un int vers le PD max de la classe du Personnage.
+ */
 int obtenirPDMaxPersonnage(int numero){
     Joueur * actuel = NULL;
     actuel = getCurrentJoueur(getListJoueur(partieGlobale));
@@ -607,9 +646,30 @@ int obtenirPDMaxPersonnage(int numero){
     return PDMaxPersonnage;
 }
 
-char ** obtenirNomsAttaquesPersonnage(int numero){
-
-}
+  /*!
+ * \fn char ** obtenirNomsAttaquesPersonnage()
+ * \brief Fonction renvoyant un tableau de chaine de caractères contenant les noms des attaques des personnages.
+ *        L'ordre et l'index des descriptions dans le tableau correspond à l'ordre dans lequel ils sont définis
+ *        dans le fichier XML.
+ *
+ * \return un tableau de chaine de charactères (char**).
+ */
+/*char ** obtenirNomsAttaquesPersonnage(int numero){
+    int i;
+    char ** tabNomsAttPerso = malloc(NB_ATTAQUES_MAX * sizeof(char *));
+    for(i=0;i<NB_ATTAQUES_MAX;i++){
+        tabNomsAttPerso[i]= malloc(TAILLE_NOMS*sizeof(char));
+    }
+    if((numero>0) && (numero<=3)){
+       for(i=0;i<NB_ATTAQUES_MAX;i++){
+        strncpy(tabNomsAttPerso[i],packGlobal.Classes_Package->attaques->nom, TAILLE_NOMS);
+       }
+    }
+    else if ((numero>3)&&(numero>6)){
+        strncpy(tabNomsAttPerso[i],packGlobal.Classes_Package->attaques->nom, TAILLE_NOMS);
+    }
+    return tabNomsAttPerso;
+}*/
 
 // Je met ici mes tests réalisés dans le main pour éviter de les réécrire si jamais il y a un problème.
 // Si vous voulez tester aussi, à recopier dans le main avant l'appel à initJeu().
diff --git a/src/deplacements.c b/src/deplacements.c
index 113f3f7..3679811 100644
--- a/src/deplacements.c
+++ b/src/deplacements.c
@@ -51,6 +51,8 @@ int deplacement_unitaire(Personnage *perso,Case * destination, int hauteur_case
     return 1;
 }
 
+
+
 /* Cette fonction devrait plutot renvoyer un tableau ou une liste de cases ou le
 deplacement est possible, pour la surbrillance on verra ca plus tard avec une
 fonction d'affichage specifique. */
@@ -66,3 +68,4 @@ int affichage_deplacements_possibles(Personnage *perso, Carte *c){ /* Met en sur
     }
     return 0;
 }
+
diff --git a/src/structures.h b/src/structures.h
index 980793d..16f3a27 100644
--- a/src/structures.h
+++ b/src/structures.h
@@ -34,6 +34,8 @@
 #define HAUT_MAX_CARTE 10
 /*! \def TAILLE_CHEMIN */
 #define TAILLE_CHEMIN 50
+/*! \def NB_ATTAQUES_MAX */
+#define NB_ATTAQUES_MAX 3
 
 /*! \enum boolean
  * \brief Definition du type Boolean.
-- 
GitLab