Skip to content
Snippets Groups Projects
Commit 3b920c69 authored by ColinDrieu's avatar ColinDrieu
Browse files

Code des fonctions permettant d'acceder aux ressources

et aux coordonnées d'un personnage en fonction de son
numéro dans la SDL.
parent f2ef9413
No related branches found
No related tags found
No related merge requests found
...@@ -361,7 +361,6 @@ char * obtenirRessourcePersonnage(int x, int y){ ...@@ -361,7 +361,6 @@ char * obtenirRessourcePersonnage(int x, int y){
int i; int i;
Joueur * actuel = NULL; Joueur * actuel = NULL;
char * ressource = malloc(TAILLE_CHEMIN*sizeof(char)); char * ressource = malloc(TAILLE_CHEMIN*sizeof(char));
ressource = NULL;
//Test Personnage sur la case. //Test Personnage sur la case.
if(!personnagePresent(x,y)){ if(!personnagePresent(x,y)){
return NULL; return NULL;
...@@ -401,6 +400,63 @@ char * obtenirRessourcePersonnage(int x, int y){ ...@@ -401,6 +400,63 @@ char * obtenirRessourcePersonnage(int x, int y){
} }
} }
/*!
* \fn char * obtenirRessourcePersonnageNum(int numero)
* \brief La fonction renvoie la ressource d'un Personnage dont le numero est celui définit dans la sdl.
*
* \param Le numero du personnage definit dans la sdl.
* \return la ressource du personnage, NULL si le personnage n'est pas trouvé.
*/
char * obtenirRessourcePersonnageNum(int numero){
Joueur * actuel = NULL;
char * ressource = malloc(TAILLE_CHEMIN*sizeof(char));
actuel = getCurrentJoueur(getListJoueur(partieGlobale));
if ((numero>0)&&(numero<=3)){
setOnFirstJoueur(getListJoueur(partieGlobale));
strncpy(ressource,getClasse(getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),numero-1))->skins.charac_default,TAILLE_CHEMIN);
setOnJoueur(getListJoueur(partieGlobale),actuel);
return ressource;
}
else if ((numero>3)&&(numero<=6)){
setOnFirstJoueur(getListJoueur(partieGlobale));
nextJoueur(getListJoueur(partieGlobale));
strncpy(ressource,getClasse(getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),numero-4))->skins.charac_default,TAILLE_CHEMIN);
setOnJoueur(getListJoueur(partieGlobale),actuel);
return ressource;
}
else{
setOnJoueur(getListJoueur(partieGlobale),actuel);
return NULL;
}
}
/*!
* \fn void * obtenirPositionPersonnage(int numero, int * x, int * y)
* \brief La fonction modifie les parrametres x et y en entrée en fonction des coordonnées du Personnage dont le numero en parrametre
* est celui définit dans la sdl.
*
* \param Le numero du personnage definit dans la sdl, des pointeurs vers des int x et y pour récupérer les coordonnées.
*/
void obtenirPositionPersonnage(int numero, int * x, int * y){
Joueur * actuel = NULL;
actuel = getCurrentJoueur(getListJoueur(partieGlobale));
if ((numero>0)&&(numero<=3)){
setOnFirstJoueur(getListJoueur(partieGlobale));
*x=get_x(getPosition(getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),numero-1)));
*y=get_y(getPosition(getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),numero-1)));
setOnJoueur(getListJoueur(partieGlobale),actuel);
}
else if ((numero>3)&&(numero<=6)){
setOnFirstJoueur(getListJoueur(partieGlobale));
nextJoueur(getListJoueur(partieGlobale));
*x=get_x(getPosition(getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),numero-4)));
*y=get_y(getPosition(getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),numero-4)));
setOnJoueur(getListJoueur(partieGlobale),actuel);
}
}
/*! /*!
* \fn Personnage * trouverPersonnage(Case * c) * \fn Personnage * trouverPersonnage(Case * c)
* \brief La fonction renvoie un pointeur vers le personnage présent sur la case en parrammetre. * \brief La fonction renvoie un pointeur vers le personnage présent sur la case en parrammetre.
...@@ -618,7 +674,7 @@ char ** obtenirNomsAttaquesPersonnage(int numero){ ...@@ -618,7 +674,7 @@ char ** obtenirNomsAttaquesPersonnage(int numero){
// Je met ici mes tests réalisés dans le main pour éviter de les réécrire si jamais il y a un problème. // Je met ici mes tests réalisés dans le main pour éviter de les réécrire si jamais il y a un problème.
// Si vous voulez tester aussi, à recopier dans le main avant l'appel à initJeu(). // Si vous voulez tester aussi, à recopier dans le main avant l'appel à initJeu().
void testControlleurConsole(){ void testControlleurConsole(){
int i,j,n; int i,j,n,x,y;
EtatsJeu state = SAISIE_JOUEURS; EtatsJeu state = SAISIE_JOUEURS;
extern Partie * partieGlobale; extern Partie * partieGlobale;
extern Game_Package packGlobal; extern Game_Package packGlobal;
...@@ -664,13 +720,16 @@ void testControlleurConsole(){ ...@@ -664,13 +720,16 @@ void testControlleurConsole(){
else{ else{
n=4+getIndicePersonnage((getListJoueur(partieGlobale)->lastNodeJoueur->j),trouverPersonnage(getCase(getCarte(partieGlobale),i,j))); n=4+getIndicePersonnage((getListJoueur(partieGlobale)->lastNodeJoueur->j),trouverPersonnage(getCase(getCarte(partieGlobale),i,j)));
} }
obtenirPositionPersonnage(n,&x,&y);
printf("Position : %d:%d\n",x,y);
printf("%s\n", obtenirNomClassePersonnage(n)); printf("%s\n", obtenirNomClassePersonnage(n));
printf("%s\n", obtenirPVPersonnage(n)); printf("%s\n", obtenirRessourcePersonnageNum(n));
printf("%s\n", obtenirPVMaxPersonnage(n)); printf("%d\n", obtenirPVPersonnage(n));
printf("%s\n", obtenirManaPersonnage(n)); printf("%d\n", obtenirPVMaxPersonnage(n));
printf("%s\n", obtenirManaMaxPersonnage(n)); printf("%d\n", obtenirManaPersonnage(n));
printf("%s\n", obtenirPDPersonnage(n)); printf("%d\n", obtenirManaMaxPersonnage(n));
printf("%s\n", obtenirPDMaxPersonnage(n)); printf("%d\n", obtenirPDPersonnage(n));
printf("%d\n", obtenirPDMaxPersonnage(n));
} }
} }
} }
......
...@@ -36,6 +36,8 @@ char * ObtenirRessourceTerrain(int x, int y); ...@@ -36,6 +36,8 @@ char * ObtenirRessourceTerrain(int x, int y);
int personnagePresent(int x, int y); int personnagePresent(int x, int y);
char * obtenirRessourcePersonnage(int x, int y); char * obtenirRessourcePersonnage(int x, int y);
char * obtenirRessourcePersonnageNum(int numero);
void obtenirPositionPersonnage(int numero, int * x, int * y);
Personnage * trouverPersonnage(Case * c); Personnage * trouverPersonnage(Case * c);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment