From c4959e36aec3d41695762ca90db9c1090d5b7f6b Mon Sep 17 00:00:00 2001
From: Henri Montjoie <henri.montjoie@insa-rennes.fr>
Date: Sat, 23 Apr 2016 00:47:59 +0200
Subject: [PATCH] possibilite de controler plusieurs personnages

---
 resources/archer.bmp | Bin 0 -> 15606 bytes
 src/Classes_XML_log  |  52 +++++++++++++++++++++++++++++++++++++++++++
 src/SDL.c            |  11 ++++++---
 src/Terrains_XML_log |  43 +++++++++++++++++++++++++++++++++++
 src/controleurSDL.c  |  11 ++++++---
 src/controleurSDL.h  |   4 +++-
 src/main.c           |   6 ++---
 7 files changed, 117 insertions(+), 10 deletions(-)
 create mode 100644 resources/archer.bmp

diff --git a/resources/archer.bmp b/resources/archer.bmp
new file mode 100644
index 0000000000000000000000000000000000000000..511a7f2984b6b64f924d81b05f337c554fb053f9
GIT binary patch
literal 15606
zcmeI%KWJTL9LDh*5ZcfX<DZ(_W~$ZNMh%og7DXgdm4bsoK`NaB4z&(iH-$P>ac~d`
z3JyZS)!nh6#7P%1V{ws=-HJHm`nmV9FQ+HzMSF{R1LyGO<#*omp3~?1dw%bG?!8@k
z<>s@!(Xp&Q?(gM){-%2U(fC!@f1J(VXh1jUT9<(?16>BX40IXjGSFq9%fSDefsfz1
zxV`Q5Ph~Blxm!nTymdOB`aew`|ERmZ+SGvQ?bVa(pRMV&lPCJktCPfcEpL(=i(nw2
zu3z8S*jNu8(sFftkennT`qt!0<V|vKkwFr!t*tG6(7=v2E|u#>*(mom6Ecag$?pvs
zgn}lBT7ylUB?*Gq6o2(Wb61%^xv+ck1X59yB_>F$FH#Gak><=Kp*ARbk{Pna1Sk3b
zhAWc`W5Dl8o+p2ZH6{Of4$HE87>wF-shE`@b!(3KWl5emb8&J#_v8r-g5Ze$sC61T
zvW@Kc54lm}tjT(@C#+uHtOSknPy{VpbZX*ry>E(NO*(_Fy4N%r0Oe}`sne(5{k|$L
z@^H~f9?f)$L0x(C#*S#_I9v*y*o}yAojUjV+>w=L5_TnqkdkY15!`?}J~wx~r7cjX
zfBx=fD$oRefr3^Q7rImw&CkE|&SLL%?S(5pJ$d$9r*R~7`}XZas)Zd|xf;uAD8-aq
zEK`k1K9I+cyr>5St;q%I*mIY1b>Xq)IJ>?v2r|nm**XeWHi2YbPk9sVp~Y7b5wFj9
zvGU--M_XK~F_^pCLyJ@TY#q}F7B%`&6xX2n&D^OL69u4%Z*tYMC58)8v21>Re*Z^T
ziPu!!FkbsotSmJnS#-GazXNJ7)>O6CtGW;c(5Y1ejeZSIYEqw(oH7(|xGMB36hT7=
zExQ~p9sx-~9$PwJ8m>UO+T!vYi>rqHFcj(k`0X#vTZue%MZ6|Pbg8##JQJJ_2X8@{
zS?Vxcsxf7`i#;Wvyn|@gi;XyzmlmjU7y-3#_&{m-5E7@Nyh1L*0-^#nIN24&E`fUQ
zjb-iYFU}kHniFV7T*_t$(E1vtVDu<v)!<hW9y(B#Sl-d$GE%rg6hMP0yan_Ml3!Vg
zK0#Sr5>+0%>j8z?74_NiW@cvk{l4-GQOmDzWe?$(mAJb83$72Y4XQ$;lShH_Vj>t9
zwZ$(!rVi7G%N}B8xY&ef<HkU%%`zg($BDwF8e1(}r8@M22B;2!#Hmkz|8p>?j*CcW
zn%6O|>?H9~9r`X)b`@y296t7kOC5r$stB!aha!X!H2D`7qAV_4sYa(R#kJv$qy5k=
zj!M3NHTNqDoBGAkAKv?)KAYy$cm|<)0<Js<7w=fsd~6MITnk;4^JV12ZC$x!{_vLD
zxhnad(#j{DVTe14Sz!5SSw05inz9^vH>yL=8IErZ_xaW{cl{L9gR@Iv(fe73>_FKQ
zwBbu?bY$u2TYgo@Md2fdU(=vzf#OS8K;^{*)1a&7J9ts*&?l%mxehH}2wHwXV}~HM
zmpUAJb!0{P1uX?uxQ5PN-mGeU$^3_({Hi~C<|}l{FKE#(E-e)ZO%N_D3HVjjemFPx
zK%h=Nv)1cPp<@f#@hfQh(lQ<vec|F%J-=^EPapM}VQT6=P@#+9_!T<#3DUQUa64BG
zzl&1!e(wig6`?hujK?x8Y|4I~&l@eX%*^^ygv?@DC0v{ent;gCaK$oE*9HTC;YwMS
zX@$$CQBM&@9->42hnrFp7t2BvI)1fgW_@LGRbp04q0`><(dJ+iE$gd!H8CzYDZ=en
zYZw8gCR=D_hZpQ9()z03EE`CZOPsbNQ3m<NtZFNeNC^2EEwNLW92^4$Cv`YxP7Rj=
zg2*pvdOs@a?<8!mKm~_ES!K{dcPB36HJ4wJ&8)nm0SdP7A!X*?3gE=7@#VL-prZDP
g+5PCWy(qrZ+-0E4K$n3o16>BX40IXjG9Uwg18-BTKmY&$

literal 0
HcmV?d00001

diff --git a/src/Classes_XML_log b/src/Classes_XML_log
index e69de29..e2cc38a 100644
--- a/src/Classes_XML_log
+++ b/src/Classes_XML_log
@@ -0,0 +1,52 @@
+Fichier decrivant le deroulement de la procedure d'aquisition des classes
+
+I) Chargement du fichier XML - Definition des noeuds
+Le fichier contient 5 classes
+II) Chargement des classes
+1) Memoire allouee avec succes 
+La memoire allouee fait 80 octets
+
+Chargement de la classe numero 1
+Id : C_MAGE
+Nom : Mage
+PV : 100
+PM : 150
+MV : 2
+DESC : Le feu, ça brûle 
+Insertion de la classe 1 dans le tableau
+
+Chargement de la classe numero 2
+Id : C_WAR
+Nom : Guerrier
+PV : 200
+PM : 150
+MV : 2
+DESC : Aime beaucoup le street art
+Insertion de la classe 2 dans le tableau
+
+Chargement de la classe numero 3
+Id : C_HEAL
+Nom : Guerrisseur
+PV : 100
+PM : 150
+MV : 2
+DESC : Heal est des notres
+Insertion de la classe 3 dans le tableau
+
+Chargement de la classe numero 4
+Id : C_ROGUE
+Nom : Voleur
+PV : 100
+PM : 150
+MV : 2
+DESC : 60 minutes, ça vaut l'heure
+Insertion de la classe 4 dans le tableau
+
+Chargement de la classe numero 5
+Id : C_ARCHER
+Nom : Archer
+PV : 100
+PM : 150
+MV : 2
+DESC : Gérard, de son prénom
+Insertion de la classe 5 dans le tableau
diff --git a/src/SDL.c b/src/SDL.c
index 436ca95..b3461c8 100644
--- a/src/SDL.c
+++ b/src/SDL.c
@@ -162,7 +162,7 @@ int main_SDL()
                 quitter=1;
                 break;
             case SDL_MOUSEBUTTONDOWN:
-                deplacement_personnage(0,event.button.x,event.button.y);
+                deplacement_personnage(event.button.x,event.button.y);
                 break;
             case SDL_MOUSEMOTION:
                 if(event.motion.x<LARGEUR_CARTE*LARGEUR_CASE&&event.motion.y<HAUTEUR_CARTE*HAUTEUR_CASE)
@@ -173,6 +173,9 @@ int main_SDL()
                 break;
             case SDL_KEYDOWN:/* Si c'est un événement de type "touche pressée" */
                 switch(event.key.keysym.sym){
+                    case SDLK_n:
+                        persosuivant();
+                        break;
                     case SDLK_ESCAPE:
                         quitter=1;
                         break;
@@ -181,8 +184,10 @@ int main_SDL()
                 }
              break;
         }
-        Position_Perso[0].x=get_position_perso_x(0);
-        Position_Perso[0].y=get_position_perso_y(0);
+        for(i=0;i<NB_PERSO;i++){
+            Position_Perso[i].x=get_position_perso_x(i);
+            Position_Perso[i].y=get_position_perso_y(i);
+        }
         Position_Case_brillante.x=x_case_brillante;
         Position_Case_brillante.y=y_case_brillante;
         SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,0,0,0));
diff --git a/src/Terrains_XML_log b/src/Terrains_XML_log
index e69de29..716eba7 100644
--- a/src/Terrains_XML_log
+++ b/src/Terrains_XML_log
@@ -0,0 +1,43 @@
+Fichier decrivant le deroulement de la procedure d'aquisition des Terrains
+
+I) Chargement du fichier Terrains XML  - Definition des noeuds
+Le fichier contient 4 terrains
+II) Chargement des terrains
+1) Memoire allouee avec succes 
+La memoire allouee fait 64 octets
+
+Chargement du terrain numero 1
+Id : G_PLAIN
+Nom : Plaine
+FR : 1
+FRS : 1
+PDR : 1
+DESC : Plaine de bon sens
+Insertion du terrain 1 dans le tableau
+
+Chargement du terrain numero 2
+Id : G_RIVER
+Nom : Riviere
+FR : 0
+FRS : 1
+PDR : 1
+DESC : River, arrete de river
+Insertion du terrain 2 dans le tableau
+
+Chargement du terrain numero 3
+Id : G_FOREST
+Nom : Foret
+FR : 1
+FRS : 1
+PDR : 2
+DESC : Le frère de Fopart
+Insertion du terrain 3 dans le tableau
+
+Chargement du terrain numero 4
+Id : G_MOUNT
+Nom : Montagne
+FR : 0
+FRS : 0
+PDR : 0
+DESC : Montagne est plus haut que tontagne
+Insertion du terrain 4 dans le tableau
diff --git a/src/controleurSDL.c b/src/controleurSDL.c
index fb1f44d..1d96957 100644
--- a/src/controleurSDL.c
+++ b/src/controleurSDL.c
@@ -18,6 +18,7 @@
 
 Carte Carte_actuelle;
 Personnage ListePersos[NB_PERSO];
+int perso_actuel=0;
 
 
 void init_controleur(SDL_Rect Position_Case[])
@@ -27,7 +28,8 @@ void init_controleur(SDL_Rect Position_Case[])
      {
        init_case(&Carte_actuelle[i],Position_Case[i].x,Position_Case[i].y,NULL);
      }
-    init_personnage(&ListePersos[0],NULL,&Carte_actuelle[0]);
+    for(i=0;i<NB_PERSO;i++)
+    init_personnage(&ListePersos[i],NULL,&Carte_actuelle[i]);
 }
 
 int x_case_cliquee(int x_pixel, int y_pixel)
@@ -63,13 +65,16 @@ Case * trouverCase(Carte c, int x, int y)
     }
 }
 
+persosuivant(){
+    perso_actuel++;
+}
 
-void deplacement_personnage(int num, int x, int y)
+void deplacement_personnage(int x, int y)
 {
     if(x<LARGEUR_CARTE*LARGEUR_CASE&&y<HAUTEUR_CARTE*HAUTEUR_CASE)
     {
         Case* case_cliquee = trouverCase(Carte_actuelle,x_case_cliquee(x,y),y_case_cliquee(x,y));
-        Personnage* perso = &ListePersos[num];
+        Personnage* perso = &ListePersos[perso_actuel];
         if (case_a_cote(perso,case_cliquee,HAUTEUR_CASE,LARGEUR_CASE)==vrai)
         {
             deplacer_personnage(perso, case_cliquee);
diff --git a/src/controleurSDL.h b/src/controleurSDL.h
index fcd7168..41d571d 100644
--- a/src/controleurSDL.h
+++ b/src/controleurSDL.h
@@ -13,7 +13,7 @@ int x_case_cliquee(int x_pixel, int y_pixel);
 
 Case * trouverCase(Carte c, int x, int y);
 
-void deplacement_personnage(int num, int x, int y);
+void deplacement_personnage(int x, int y);
 
 Case* get_case_perso(int num);
 
@@ -29,5 +29,7 @@ int get_position_case_y(Case * Case);
 
 int get_position_case_x(Case * Case);
 
+void persosuivant();
+
 #endif
 
diff --git a/src/main.c b/src/main.c
index 3d2e395..f73765d 100644
--- a/src/main.c
+++ b/src/main.c
@@ -71,12 +71,12 @@ int main()
 init_jeu("../resources/Init_jeu.xml");
 
 
-/* Pour Henri <3 */
-
+/* Pour Henri <3
 printf("La case choisie est : %c\n",LireCarte("../resources/Maps.txt",3)[0]);
+ */
 
 
-//main_SDL();
+main_SDL();
 
 
 
-- 
GitLab