From 0ceebe9dd6c7e19cc6276bf14780a6434892b7f7 Mon Sep 17 00:00:00 2001
From: Henri Montjoie <henri.montjoie@insa-rennes.fr>
Date: Sat, 14 May 2016 19:42:52 +0200
Subject: [PATCH] menage+correction d'un oubli

---
 .../ElderInternalIgnition.cbp                 |  7 ---
 src/affichage.c                               | 30 ++++++---
 src/affichage.h                               | 44 ++++++++++++-
 src/controleur.c                              | 61 +++++++++++--------
 src/controleur.h                              |  9 +--
 src/controleurSDL.c                           | 51 ----------------
 src/controleurSDL.h                           | 38 ------------
 src/structures.h                              | 36 -----------
 8 files changed, 103 insertions(+), 173 deletions(-)
 delete mode 100644 src/controleurSDL.c
 delete mode 100644 src/controleurSDL.h

diff --git a/ElderInternalIgnition/ElderInternalIgnition.cbp b/ElderInternalIgnition/ElderInternalIgnition.cbp
index 51b9d8e..828e460 100644
--- a/ElderInternalIgnition/ElderInternalIgnition.cbp
+++ b/ElderInternalIgnition/ElderInternalIgnition.cbp
@@ -59,17 +59,14 @@
 			<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/attaques.c">
 			<Option compilerVar="CC" />
 		</Unit>
 		<Unit filename="../src/attaques.h" />
-
 		<Unit filename="../src/carte.c">
 			<Option compilerVar="CC" />
 		</Unit>
@@ -90,10 +87,6 @@
 			<Option compilerVar="CC" />
 		</Unit>
 		<Unit filename="../src/controleur.h" />
-		<Unit filename="../src/controleurSDL.c">
-			<Option compilerVar="CC" />
-		</Unit>
-		<Unit filename="../src/controleurSDL.h" />
 		<Unit filename="../src/deplacements.c">
 			<Option compilerVar="CC" />
 		</Unit>
diff --git a/src/affichage.c b/src/affichage.c
index fd8714f..f98560c 100644
--- a/src/affichage.c
+++ b/src/affichage.c
@@ -5,7 +5,6 @@
 
 #include "affichage.h"
 #include "controleur.h"
-#include "controleurSDL.h"
 
 /*!
 * \file affichage.c
@@ -65,6 +64,13 @@ int main_affichage()
     return 0;
 }
 
+/*!
+ * \fn int perso_suivant(int numPerso)
+ * \brief permet de changer de personnage
+ *
+ * \param le numéro du personnage actuel (1,2, ou 3 pour le 1er joueur, 4,5, ou 6 pour le 2eme)
+ * \return le numéro du personnage suivant (respectivement 2,3,1 et 5,6,4)
+ */
 int perso_suivant(int numPerso)
 {
     if (numPerso==NB_PERSO) numPerso=1;
@@ -73,6 +79,13 @@ int perso_suivant(int numPerso)
     return numPerso;
 }
 
+/*!
+ * \fn int actualiser_num_perso(int numPerso)
+ * \brief permet de changer le personnage actuel lorsqu'on change de joueur
+ *
+ * \param le numéro du personnage actuel (1,2,3 pour le 1er joueur, 4,5,6 pour le 2eme)
+ * \return le numéro du 1er personnage du joueur suivant (4 ou 1)
+ */
 int actualiser_num_perso(int numPerso)
 {
     if (numPerso<=NB_PERSO) numPerso=NB_PERSO+1;
@@ -153,13 +166,13 @@ int afficher_cartes_personnalisees()
 
 
 /*!
- * \fn char* afficherListeClasses(char** nomsClasses, char** skinsClasses, int nbChoix, TTF_Font* police,SDL_Color couleurTexte)
+ * \fn char* afficherListeClasses(char** nomsClasses, char** skinsClasses, int nbChoix)
  * \brief Fonction permettant le choix de la classe d'un personnage par le joueur
  *
- * \param le tableau contenant les noms des classes, le tableau contenant les adresses de leurs images, le nombre de classes, et la police et la couleur dans lesquelles écrire les noms
+ * \param le tableau contenant les noms des classes, le tableau contenant les adresses de leurs images, et le nombre de classes
  * \return le nom de la classe choisie (ou "fermer" si l'utilisateur ferme la fenetre)
  */
-char* afficherListeClasses(char** nomsClasses, char** skinsClasses, int nbChoix, TTF_Font* police,SDL_Color couleurTexte)
+char* afficherListeClasses(char** nomsClasses, char** skinsClasses, int nbChoix)
 {
     int i, quitter;
     char* classeChoisie;
@@ -170,6 +183,8 @@ char* afficherListeClasses(char** nomsClasses, char** skinsClasses, int nbChoix,
     SDL_Rect positionsTextes[nbChoix];
     SDL_Rect positionsSkins[nbChoix];
     SDL_Color couleurNoire = {0, 0, 0};
+    SDL_Color couleurTexte = {255,255,255};
+    TTF_Font* police = TTF_OpenFont("../resources/fonts/arial.ttf",26);
 
     for(i=0; i<nbChoix; i++)
     {
@@ -226,6 +241,7 @@ char* afficherListeClasses(char** nomsClasses, char** skinsClasses, int nbChoix,
         SDL_FreeSurface(tabSkins[i]);
     }
     SDL_FreeSurface(fenetre);
+    TTF_CloseFont(police);
     return classeChoisie;
 }
 
@@ -581,7 +597,7 @@ int affichage_menu_configuration()
             }
             if(j!=0&&p!=0)
             {
-                classeChoisie=afficherListeClasses(obtenirNomsClasses(), obtenirSkinsClasses(), nombre_classes, police, couleurBlanche);
+                classeChoisie=afficherListeClasses(obtenirNomsClasses(), obtenirSkinsClasses(), nombre_classes);
                 if(classeChoisie!="fermer")
                 {
                     numClassePerso[p-1][j-1]=ajouterPersonnage(classeChoisie, p-1, j);
@@ -805,7 +821,7 @@ int affichage_carte()
             etat=FERMER;
             break;
         case SDL_MOUSEBUTTONDOWN:
-            if(event.button.y>pos_bouton1.y&&event.button.y<pos_bouton1.y+bouton1->h)
+            if(event.button.y>pos_bouton1.y&&event.button.y<pos_bouton1.y+bouton1->h&&event.button.x>LARGEUR_CARTE*LARGEUR_CASE)
             {
                 perso_actuel=perso_suivant(perso_actuel);
                 sprintf(buffer_PV, "PV: %d/%d", obtenirPVPersonnage(perso_actuel),obtenirPVMaxPersonnage(perso_actuel));
@@ -829,7 +845,7 @@ int affichage_carte()
                 }
                 SDL_SetColorKey( perso[perso_actuel], SDL_SRCCOLORKEY, SDL_MapRGB( perso[perso_actuel]->format, 0, 0, 255));
             }
-            if(event.button.y>pos_bouton2.y&&event.button.y<pos_bouton2.y+bouton2->h)
+            if(event.button.y>pos_bouton2.y&&event.button.y<pos_bouton2.y+bouton2->h&&event.button.x>LARGEUR_CARTE*LARGEUR_CASE)
             {
                 finDuTour();
                 debutDuTour();
diff --git a/src/affichage.h b/src/affichage.h
index 36d480d..4324049 100644
--- a/src/affichage.h
+++ b/src/affichage.h
@@ -2,8 +2,6 @@
 * \file affichage.h
 * \brief Fichier contenant les signatures des fonctions liees a l'affichage par SDL.
 */
-
-
 #ifndef SDL_H_INCLUDED
 #define SDL_H_INCLUDED
 
@@ -19,6 +17,12 @@
 
 int main_affichage();
 
+int perso_suivant(int numPerso);
+int actualiser_num_perso(int numPerso);
+
+int afficher_cartes_personnalisees();
+char* afficherListeClasses(char** nomsClasses, char** skinsClasses, int nbChoix);
+
 int saisie_noms_joueurs();
 
 int affichage_menu_configuration();
@@ -29,6 +33,40 @@ int affichage_carte();
 
 int afficher_menu();
 
-int afficher_cartes_personnalisees();
+/*! \enum EtatsJeu
+ * \brief Definition du type EtatsJeu.
+ */
+ /*
+  * Les états du jeu sont basés sur le scénarion définit dans la documentation.
+  * Il y en a éventuellement à ajouter ou à supprimer.
+  * Je pense notament aux états JxPy attaque ou deplacement.
+  * Il me semble que c'est un état différent à chaque fois, mais peut être qu'on peut
+  * tout réunir dans l'état TOUR_JxPy. Dites moi ce que vous en pensez.
+  * En tout cas les premiers états jusqu'à CONFIGURATION devraient permettre de rendre la V2.
+  */
+typedef enum    {SAISIE_JOUEURS,
+                LANCEMENT,
+                CONFIGURATION,
+                TOUR_J1P1,
+                J1P1_DEPLACEMENT,
+                J1P1_ATTAQUE,
+                TOUR_J1P2,
+                J1P2_DEPLACEMENT,
+                J1P2_ATTAQUE,
+                TOUR_J1P3,
+                J1P3_DEPLACEMENT,
+                J1P3_ATTAQUE,
+                TOUR_J2P1,
+                J2P1_DEPLACEMENT,
+                J2P1_ATTAQUE,
+                TOUR_J2P2,
+                J2P2_DEPLACEMENT,
+                J2P2_ATTAQUE,
+                TOUR_J2P3,
+                J2P3_DEPLACEMENT,
+                J2P3_ATTAQUE,
+                VICTOIRE,
+                FERMER
+                }EtatsJeu;
 
 #endif
diff --git a/src/controleur.c b/src/controleur.c
index 47d124b..aaa28ad 100644
--- a/src/controleur.c
+++ b/src/controleur.c
@@ -16,8 +16,6 @@
 #include "classe.h"
 #include "gamePackage.h"
 #include "roxml.h"
-#include "affichage.h"
-#include "structures.h"
 
 Partie * partieGlobale;
 Game_Package packGlobal;
@@ -54,6 +52,40 @@ void initJeu(){
     }
  }
 
+ /*!
+ * \fn int x_case_cliquee(int x_pixel, int y_pixel)
+ * \brief La fonction retourne la colonne d'une case à partir de sa position en pixels
+ *
+ * \param les coordonnées x et y de la case en pixels
+ * \return la colonne de la case
+ */
+int x_case_cliquee(int x_pixel, int y_pixel)
+{
+    return x_pixel/LARGEUR_CASE;
+}
+/*!
+ * \fn int y_case_cliquee(int x_pixel, int y_pixel)
+ * \brief La fonction retourne la ligne d'une case à partir de sa position en pixels
+ *
+ * \param les coordonnées x et y de la case en pixels
+ * \return la ligne de la case
+ */
+int y_case_cliquee(int x_pixel, int y_pixel)
+{
+    int i, x_case, y_case;
+    x_case = x_pixel/LARGEUR_CASE;
+    y_case = y_pixel/HAUTEUR_CASE;
+    for(i=1;i<LARGEUR_CARTE;i+=2)
+    {
+           if(x_case==i)
+            {
+                y_case=(y_pixel-HAUTEUR_CASE/2)/HAUTEUR_CASE;
+            }
+    }
+    return y_case;
+}
+
+
   /*!
  * \fn  int nbClasses()
  * \brief Fonction renvoyer le nombre de classes contenues dans le package du jeu
@@ -109,19 +141,6 @@ void initJeu(){
     return tabSkinsClasses;
  }
 
- char ** obtenirSkinsTerrains(){
-    int i;
-    //Allocation du tableau contenant les chaines de charactères
-    char ** tabSkinsTerrains = malloc((getNbTerrains(packGlobal))*sizeof(char *));
-    for(i=0;i<getNbTerrains(packGlobal);i++){
-        tabSkinsTerrains[i]= malloc(TAILLE_CHEMIN*sizeof(char));
-    }
-        //Copie des chemin des skins dans le tableau
-    for(i=0;i<getNbTerrains(packGlobal);i++){
-        strncpy(tabSkinsTerrains[i],packGlobal.Terrains_Package[i].skin_default, TAILLE_CHEMIN);
-    }
-    return tabSkinsTerrains;
- }
 
    /*!
  * \fn void freeClasses()
@@ -169,18 +188,6 @@ char ** obtenirNomsCartes(){
     return tabNomsCartes;
 }
 
-
-  /*!
- * \fn char ** obtenirLignesCarte(int numCarte)
- * \brief Fonction renvoyant le tableau des lignes de la carte numéro numCarte
- *
- * \return un tableau de chaine de charactères (char**).
- */
-char ** obtenirLignesCarte(int numCarte){
-    return packGlobal.Cartes_Package[numCarte-1].lignes;
-}
-
-
   /*!
  * \fn char ** obtenirDescriptionCarte()
  * \brief Fonction renvoyant un tableau de chaine de caractères contenant les descriptions des Cartes.
diff --git a/src/controleur.h b/src/controleur.h
index 1e04ed4..454e740 100644
--- a/src/controleur.h
+++ b/src/controleur.h
@@ -4,23 +4,24 @@
 */
 
 #include "structures.h"
+#include "affichage.h"
 
 #ifndef CONTROLEUR_H
 #define CONTROLEUR_H
 
 void initJeu();
 
- char ** obtenirSkinsTerrains();
- char ** obtenirLignesCarte(int numCarte);
-
 void ajouterUnJoueur(char * nomDuJoueur, EtatsJeu * etat);
 
+int y_case_cliquee(int x_pixel, int y_pixel);
+int x_case_cliquee(int x_pixel, int y_pixel);
+
 int nbClasses();
 char ** obtenirNomsClasses();
 char ** obtenirSkinsClasses();
 void freeClasses(char ** tab);
 
-int nbCartes();
+ int nbCartes();
 char ** obtenirNomsCartes();
 char ** obtenirDescriptionCarte();
 void freeCartes(char **);
diff --git a/src/controleurSDL.c b/src/controleurSDL.c
deleted file mode 100644
index 46a28c8..0000000
--- a/src/controleurSDL.c
+++ /dev/null
@@ -1,51 +0,0 @@
-#include <stdlib.h>
-#include <SDL/SDL.h>
-#include "structures.h"
-#include "partie.h"
-#include "joueur.h"
-#include "joueurList.h"
-#include "personnage.h"
-#include "case.h"
-#include "deplacements.h"
-#include "affichage.h"
-#include "controleurSDL.h"
-#include "controleur.h"
-
-/*!
-* \file controleurSDL.c
-* \brief Fichier contenant le code des fonctions du controleur pour l'affichage avec SDL
-*/
-
-
-/*!
- * \fn int x_case_cliquee(int x_pixel, int y_pixel)
- * \brief La fonction retourne la colonne d'une case à partir de sa position en pixels
- *
- * \param les coordonnées x et y de la case en pixels
- * \return la colonne de la case
- */
-int x_case_cliquee(int x_pixel, int y_pixel)
-{
-    return x_pixel/LARGEUR_CASE;
-}
-/*!
- * \fn int y_case_cliquee(int x_pixel, int y_pixel)
- * \brief La fonction retourne la ligne d'une case à partir de sa position en pixels
- *
- * \param les coordonnées x et y de la case en pixels
- * \return la ligne de la case
- */
-int y_case_cliquee(int x_pixel, int y_pixel)
-{
-    int i, x_case, y_case;
-    x_case = x_pixel/LARGEUR_CASE;
-    y_case = y_pixel/HAUTEUR_CASE;
-    for(i=1;i<LARGEUR_CARTE;i+=2)
-    {
-           if(x_case==i)
-            {
-                y_case=(y_pixel-HAUTEUR_CASE/2)/HAUTEUR_CASE;
-            }
-    }
-    return y_case;
-}
diff --git a/src/controleurSDL.h b/src/controleurSDL.h
deleted file mode 100644
index 9762664..0000000
--- a/src/controleurSDL.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*!
-* \file controleurSDL.h
-* \brief Fichier contenant les signatures des fonctions du controleur pour l'affichage avec SDL.
-*/
-
-
-#ifndef CONTROLEUR_SDL_H_INCLUDED
-#define CONTROLEUR_SDL_H_INCLUDED
-
-
-int y_case_cliquee(int x_pixel, int y_pixel);
-
-int x_case_cliquee(int x_pixel, int y_pixel);
-
-
-
-void deplacement_personnage(int x, int y);
-
-Case* get_case_perso(int num);
-
-int get_position_perso_x(int num);
-
-int get_position_perso_y(int num);
-
-void init_controleur();
-
-Case* deplacement_brillance(int x,int y);
-
-int get_position_case_y(Case * Case);
-
-int get_position_case_x(Case * Case);
-
-void persosuivant();
-int persoactuel();
-
-
-
-#endif
diff --git a/src/structures.h b/src/structures.h
index 16f3a27..c606279 100644
--- a/src/structures.h
+++ b/src/structures.h
@@ -44,42 +44,6 @@
  */
 typedef enum {faux, vrai} boolean;
 
-/*! \enum boolean
- * \brief Definition du type EtatsJeu.
- */
- /*
-  * Les états du jeu sont basés sur le scénarion définit dans la documentation.
-  * Il y en a éventuellement à ajouter ou à supprimer.
-  * Je pense notament aux états JxPy attaque ou deplacement.
-  * Il me semble que c'est un état différent à chaque fois, mais peut être qu'on peut
-  * tout réunir dans l'état TOUR_JxPy. Dites moi ce que vous en pensez.
-  * En tout cas les premiers états jusqu'à CONFIGURATION devraient permettre de rendre la V2.
-  */
-typedef enum    {SAISIE_JOUEURS,
-                LANCEMENT,
-                CONFIGURATION,
-                TOUR_J1P1,
-                J1P1_DEPLACEMENT,
-                J1P1_ATTAQUE,
-                TOUR_J1P2,
-                J1P2_DEPLACEMENT,
-                J1P2_ATTAQUE,
-                TOUR_J1P3,
-                J1P3_DEPLACEMENT,
-                J1P3_ATTAQUE,
-                TOUR_J2P1,
-                J2P1_DEPLACEMENT,
-                J2P1_ATTAQUE,
-                TOUR_J2P2,
-                J2P2_DEPLACEMENT,
-                J2P2_ATTAQUE,
-                TOUR_J2P3,
-                J2P3_DEPLACEMENT,
-                J2P3_ATTAQUE,
-                VICTOIRE,
-                FERMER
-                }EtatsJeu;
-
 /*! \struct Skins_Charac structures.h
  * \brief Definition de la structure Skins_Charac
  * sizeof(Skins_Charac) = 200 octets
-- 
GitLab