diff --git a/src/TerrainsXML.c b/src/TerrainsXML.c index f93affde8d44a2780339e6998590af6b3f394f81..aeef591197fc284f2e40abcfd95355368ffe6e86 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 b5e5ccfffed425bbafc11dc07a70ec46088b32ec..d2cd413129283cf347d60bd407813ec6a92318af 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 bf16f048d67ea690a20abf4818475f27102139a2..e8d8215d564bf95ec518a251798c46a3c2f43d83 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 faa33806000cc8322e256c150da8fb9679b805e6..9ffa57a4976e8f6e21cf5946a35f8ecc9048e184 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 7856374eca6647503754a6e35447008e3b6adcda..0ce46d6d159005544535b099e05a3a552f437637 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){