From e6bd426bb2af97a400b2b330c4b6e47e938fa131 Mon Sep 17 00:00:00 2001
From: ColinDrieu <colin.drieu@insa-rennes.fr>
Date: Tue, 10 May 2016 20:24:37 +0200
Subject: [PATCH] Correction du bug avec la fonction initialisant la position
 des personnages sur la carte.

---
 .../ElderInternalIgnition.cbp                 | 21 +++----
 src/attaques.c                                | 57 ++++++++++++++++++-
 src/controleur.c                              | 32 ++++++-----
 src/controleur.h                              |  1 +
 src/joueur.c                                  |  2 +-
 src/main.c                                    |  4 +-
 6 files changed, 85 insertions(+), 32 deletions(-)

diff --git a/ElderInternalIgnition/ElderInternalIgnition.cbp b/ElderInternalIgnition/ElderInternalIgnition.cbp
index aade842..d0e4cdf 100644
--- a/ElderInternalIgnition/ElderInternalIgnition.cbp
+++ b/ElderInternalIgnition/ElderInternalIgnition.cbp
@@ -15,7 +15,7 @@
 					<Add option="-g" />
 				</Compiler>
 				<Linker>
-					<Add library="..\Libs\SDL-1.2.15\lib\SDL_ttf.lib" />
+					<Add library="../Libs/SDL-1.2.15/lib/SDL_ttf.lib" />
 					<Add directory="../Libs/SDL-1.2.15" />
 				</Linker>
 			</Target>
@@ -40,10 +40,10 @@
 			<Add directory="../Libs/cmocka-1.0.0/include" />
 		</Compiler>
 		<Linker>
-			<Add library="..\Libs\libroxml-2.3.0\Build\libroxml.dll" />
-			<Add library=".\..\Libs\SDL-1.2.15\bin\SDL.dll" />
-			<Add library="..\Libs\cmocka-1.0.0\lib\cmocka.dll.a" />
-			<Add library="..\Libs\SDL-1.2.15\lib\SDL_ttf.lib" />
+			<Add library="../Libs/libroxml-2.3.0/Build/libroxml.dll" />
+			<Add library="./../Libs/SDL-1.2.15/bin/SDL.dll" />
+			<Add library="../Libs/cmocka-1.0.0/lib/cmocka.dll.a" />
+			<Add library="../Libs/SDL-1.2.15/lib/SDL_ttf.lib" />
 			<Add directory="./../Libs" />
 			<Add directory="../Libs/cmocka-1.0.0/lib" />
 		</Linker>
@@ -55,17 +55,14 @@
 			<Option compilerVar="CC" />
 		</Unit>
 		<Unit filename="../src/Interface.h" />
-		<Unit filename="../src/SDL.c">
-			<Option compilerVar="CC" />
-		</Unit>
-		<Unit filename="../src/SDL.h" />
-		<Unit filename="../src/SDL_bis.c">
-			<Option compilerVar="CC" />
-		</Unit>
 		<Unit filename="../src/TerrainsXML.c">
 			<Option compilerVar="CC" />
 		</Unit>
 		<Unit filename="../src/TerrainsXML.h" />
+		<Unit filename="../src/affichage.c">
+			<Option compilerVar="CC" />
+		</Unit>
+		<Unit filename="../src/affichage.h" />
 		<Unit filename="../src/carte.c">
 			<Option compilerVar="CC" />
 		</Unit>
diff --git a/src/attaques.c b/src/attaques.c
index 9073874..ad94b88 100644
--- a/src/attaques.c
+++ b/src/attaques.c
@@ -5,8 +5,32 @@
 #include "structures.h"
 
 
+/*!
+ * \fn attaquer(Personnage *attaquant, Attaque *attaque_select, Personnage *cible)
+ * \brief La fonction declenche une attaque partant d'un attaquant sur une cible.
+ *
+ * \param un personnage attaquant, une attaque, un personnage cible.
+ * \return Un entier.
+ */
+int attaquer(Personnage *attaquant, Attaque *attaque_select, Personnage *cible)
+{
+    int i=0;
+    for(i=0; i<5; i++)
+    {
+        ajouter_effet(attaquant, attaque_select->effets[i], cible);
+    }
+    return 0;
+}
 
-int attaquer(Personnage *attaquant, Personnage *cible)
+
+/*!
+ * \fn int ajouter_effet_perso(Effet *effet_select, Personnage *cible)
+ * \brief La fonction ajoute un effet sur un personnage.
+ *
+ * \param Un effet, un personnage cible.
+ * \return Un entier.
+ */
+int ajouter_effet_perso(Effet *effet_select, Personnage *cible)
 {
 
 
@@ -14,10 +38,37 @@ int attaquer(Personnage *attaquant, Personnage *cible)
 }
 
 
-int appliquer_effets(Personnage *cible)
+/*!
+ * \fn int appliquer_effet(Effet *effet_select, Personnage *cible)
+ * \brief La fonction applique un effet sur un personnage.
+ *
+ * \param Un effet, un personnage cible.
+ * \return Un entier.
+ */
+int appliquer_effet(Effet *effet_select, Personnage *cible)
 {
+    (cible->PV) -= (effet_select->valeur_degats)
 
+}
+
+
+/*!
+ * \fn Effet* init_effet()
+ * \brief La fonction initialise un effet.
+ *
+ * \return Un effet.
+ */
+Effet* init_effet()
+{
+    Effet* effet_A = malloc(sizeof(Effet));
+
+    effet_A->nb_tours = 0;
+    effet_A->valeur_degats = 0;
+    effet_A->valeur_degats_duree = 0;
+    effet_A->valeur_soin = 0;
+    effet_A->valeur_soin_duree = 0;
+
+    return effet_A;
 
-    return 0;
 }
 
diff --git a/src/controleur.c b/src/controleur.c
index 88cd8f2..07b8e0b 100644
--- a/src/controleur.c
+++ b/src/controleur.c
@@ -215,6 +215,7 @@ Case * trouverCase(Carte_Jeu * c, int x, int y){
  * \return L'indice de la classe du personnage si le Personnage a été correctement ajouté, -1 sinon.
  */
 int ajouterPersonnage(char * nomClasse, int numTab, int numJoueur){
+    Personnage * p = NULL;
     int i;
     i=0;
     //Recherche de la classe dans le Package
@@ -226,18 +227,16 @@ int ajouterPersonnage(char * nomClasse, int numTab, int numJoueur){
     }
 
     //Création du personnage
-    Personnage * p = default_personnage(i,packGlobal);
-
-    printf("La classe du personnage %d du joueur %d est %s\n", numTab+1, numJoueur, getClasse(p));
+	p = default_personnage(i,packGlobal);
 
     //Ajout du Personnage à l'équipe du Joueur
     switch (numJoueur){
     case 1:
-        setOnFirstJoueur(partieGlobale->participants);
+        setOnFirstJoueur(getListJoueur(partieGlobale));
         break;
     case 2:
-        setOnFirstJoueur(partieGlobale->participants);
-        nextJoueur(partieGlobale->participants);
+        setOnFirstJoueur(getListJoueur(partieGlobale));
+        nextJoueur(getListJoueur(partieGlobale));
         break;
     default:
         return -1;
@@ -269,6 +268,7 @@ int selectionnerCarte(char * nomCarte){
     while((strcmp(nomCarte,packGlobal.Cartes_Package[i].nom)!=0)&&(i<nbCartes())){
         i++;
     }
+
     if(i>=nbCartes()){
         return 0;
     }
@@ -276,22 +276,26 @@ int selectionnerCarte(char * nomCarte){
     if(initCarte(&packGlobal.Cartes_Package[i],getCarte(partieGlobale),&packGlobal)==0){
         return 0;
     }
-    printf("la carte selectionnee est %s\n",nomCarte);
+    return 1;
+}
+
+void initPositions(){
     // Positionnement des Personnages sur la Carte_Jeu.
-    setOnFirstJoueur(partieGlobale->participants);
+    int i;
+
+    setOnFirstJoueur(getListJoueur(partieGlobale));
 
     for(i=0;i<TAILLE_MAX_GROUPE;i++){
-        printf("test1\n");
-        setPosition(getCurrentJoueur(partieGlobale->participants)->groupe[i],&partieGlobale->c->Tab_Cases[6+i][0]); //le probleme est ici
-        printf("test2\n");
+        setPosition(getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),i),&partieGlobale->c->Tab_Cases[6+i][0]);
     }
-    nextJoueur(partieGlobale->participants);
+    nextJoueur(getListJoueur(partieGlobale));
     for(i=0;i<TAILLE_MAX_GROUPE;i++){
-        setPosition(getCurrentJoueur(partieGlobale->participants)->groupe[i],&partieGlobale->c->Tab_Cases[6+i][HAUT_MAX_CARTE-1]);
+        setPosition(getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),i),&partieGlobale->c->Tab_Cases[6+i][HAUT_MAX_CARTE-1]);
     }
-    return 1;
 }
 
 
 
 
+
+
diff --git a/src/controleur.h b/src/controleur.h
index ab085f7..308acd0 100644
--- a/src/controleur.h
+++ b/src/controleur.h
@@ -27,6 +27,7 @@ Case * trouverCase(Carte_Jeu * c, int x, int y);
 int ajouterPersonnage(char * nomClasse, int numTab, int numJoueur);
 
 int selectionnerCarte(char * nomCarte);
+void initPositions();
 
 
 #endif // CONTROLEUR_H
diff --git a/src/joueur.c b/src/joueur.c
index 58c5f36..e9cb79c 100644
--- a/src/joueur.c
+++ b/src/joueur.c
@@ -65,7 +65,7 @@ void setNomJoueur(Joueur * j, char * nom){
  * \return Un pointeur vers le Personnage du Joueur a l'indice i dans le tableau groupe, NULL si l'indice n'est pas dans le tableau.
  */
 Personnage * getPersonnage(Joueur * j, int i){
-    if(i<TAILLE_MAX_GROUPE-1){
+    if(i<TAILLE_MAX_GROUPE){
         return j->groupe[i];
     }
     return NULL;
diff --git a/src/main.c b/src/main.c
index df8557a..05e6271 100644
--- a/src/main.c
+++ b/src/main.c
@@ -10,6 +10,8 @@
 #include "carte.h"
 #include "Interface.h"
 #include "gamePackage.h"
+#include "joueur.h"
+#include "partie.h"
 
 
 /*!
@@ -87,8 +89,6 @@ int main(void)
 {
 
 //init_jeu("../resources/Init_jeu.xml");
-
-
     initJeu();
     //saisie_noms_joueurs(); /*lance le jeu à l'ecran "entrer nom joueur 1"*/
     affichage_ecran_accueil(); /*lance le jeu direct à l'ecran de lancement, sans rentrer les noms des joueurs*/
-- 
GitLab