From 9046ea9d64247a4e5a420b398bc80b3dbc228233 Mon Sep 17 00:00:00 2001 From: Henri Montjoie <henri.montjoie@insa-rennes.fr> Date: Sun, 15 May 2016 14:22:51 +0200 Subject: [PATCH] tentative de correction du pb d'initialisation --- src/TerrainsXML.c | 8 ++++---- src/affichage.c | 2 +- src/controleur.c | 12 +++++++++--- src/controleur.h | 2 ++ src/deplacements.c | 2 +- 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/TerrainsXML.c b/src/TerrainsXML.c index f93affd..aeef591 100644 --- a/src/TerrainsXML.c +++ b/src/TerrainsXML.c @@ -43,7 +43,7 @@ Terrain* Remplir_Terrains(FILE* Terrains_XML_log, char *filename) exit(EXIT_FAILURE); } fprintf(Terrains_XML_log,"1) Memoire allouee avec succes \n"); - fprintf(Terrains_XML_log,"La memoire allouee fait %lu octets\n",nb_terrains * sizeof(Terrain)); + fprintf(Terrains_XML_log,"La memoire allouee fait %u octets\n",nb_terrains * sizeof(Terrain)); /*--------------------------------------------------------------------------------------------------*/ @@ -83,14 +83,14 @@ Terrain* Remplir_Terrains(FILE* Terrains_XML_log, char *filename) /* Remplissage des caractéristiques de la classe en cours */ switch(FR_int){ case 0 : - Terrain_en_cours.franchissable=0; + Terrain_en_cours.franchissable=faux; break; case 1 : - Terrain_en_cours.franchissable=1; + Terrain_en_cours.franchissable=vrai; break; default : fprintf(Terrains_XML_log,"ERREUR : FR doit prendre la valeur 0 ou 1 !\n"); - Terrain_en_cours.franchissable=0; + Terrain_en_cours.franchissable=faux; } switch(FRS_int){ diff --git a/src/affichage.c b/src/affichage.c index b5e5ccf..d2cd413 100644 --- a/src/affichage.c +++ b/src/affichage.c @@ -849,7 +849,7 @@ int affichage_carte() } if(event.button.x<LARGEUR_CARTE*LARGEUR_CASE) { - deplacement_personnage(event.button.x,event.button.y); + deplacement_personnage(perso_actuel,event.button.x,event.button.y); } break; case SDL_MOUSEMOTION: diff --git a/src/controleur.c b/src/controleur.c index bf16f04..e8d8215 100644 --- a/src/controleur.c +++ b/src/controleur.c @@ -16,6 +16,7 @@ #include "classe.h" #include "gamePackage.h" #include "roxml.h" +#include "deplacements.h" Partie * partieGlobale; Game_Package packGlobal; @@ -295,6 +296,8 @@ int ajouterPersonnage(char * nomClasse, int numTab, int numJoueur){ */ int selectionnerCarte(char * nomCarte){ int i; + Game_Package copiePack = packGlobal; + Carte_Jeu copieCarte = *getCarte(partieGlobale); i=0; //Recherche de la Carte dans le Package while((strcmp(nomCarte,packGlobal.Cartes_Package[i].nom)!=0)&&(i<nbCartes())){ @@ -305,9 +308,12 @@ int selectionnerCarte(char * nomCarte){ return 0; } //Initialisation de la Carte_Jeu - if(initCarte(&packGlobal.Cartes_Package[i],getCarte(partieGlobale),&packGlobal)==0){ + if(initCarte(&(copiePack.Cartes_Package[i]),&copieCarte,&copiePack)==0){ + printf("erreur : la carte ne peut etre initialisee"); return 0; } + packGlobal=copiePack; + partieGlobale->c=&copieCarte; return 1; } @@ -516,10 +522,10 @@ 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); if(numPerso<=NB_PERSO){ - deplacement_unitaire(getCurrentJoueur(getListJoueur(partieGlobale))->groupe[numPerso-1]); + deplacement_unitaire(getCurrentJoueur(getListJoueur(partieGlobale))->groupe[numPerso-1],trouverCase(getCarte(partieGlobale),x,y)); } else{ - deplacement_unitaire(getCurrentJoueur(getListJoueur(partieGlobale))->groupe[numPerso-1-NB_PERSO]); + deplacement_unitaire(getCurrentJoueur(getListJoueur(partieGlobale))->groupe[numPerso-1-NB_PERSO],trouverCase(getCarte(partieGlobale),x,y)); } } diff --git a/src/controleur.h b/src/controleur.h index faa3380..9ffa57a 100644 --- a/src/controleur.h +++ b/src/controleur.h @@ -42,6 +42,8 @@ void obtenirPositionPersonnage(int numero, int * x, int * y); Personnage * trouverPersonnage(Case * c); +void deplacement_personnage(int numPerso,int x,int y); + char * obtenirNomJoueurCourant(); char * obtenirNomClassePersonnage(int numero); int obtenirPVPersonnage(int numero); diff --git a/src/deplacements.c b/src/deplacements.c index 7856374..0ce46d6 100644 --- a/src/deplacements.c +++ b/src/deplacements.c @@ -41,7 +41,7 @@ int deplacement_unitaire(Personnage *perso,Case * destination){ return 1; } if (case_franchissable(destination)==faux){ - printf("déplacement impossible : case infranchissable"); + printf("deplacement impossible : case infranchissable\n"); return 1; } if (case_a_cote(perso,destination)==vrai){ -- GitLab