Skip to content
Snippets Groups Projects
Commit 55a75fe0 authored by Montjoie Henri's avatar Montjoie Henri
Browse files

ajout d'un attribut nbterrains et d'une fonction getSkinsterrains

parent f4fe4f69
No related branches found
No related tags found
No related merge requests found
......@@ -15,6 +15,7 @@
EtatsJeu etat;
char* nom_1;
char* nom_2;
int num_carte_selectionnee;
/*!
......@@ -54,8 +55,8 @@ int main_affichage()
affichage_menu_configuration();
break;
case TOUR_J1P1:
printf("et la normalement ca affiche la carte");
affichage_carte(NULL);
printf(obtenirLignesCarte(num_carte_selectionnee)[0]);
affichage_carte(obtenirLignesCarte(num_carte_selectionnee));
break;
default:
break;
......@@ -450,6 +451,7 @@ int affichage_menu_configuration()
{
c=i;
selectionnerCarte(obtenirNomsCartes()[c]);
num_carte_selectionnee=c+1;
}
}
if(event.button.x>posTextes[0].x&&event.button.x<posTextes[0].x+textes[0]->w)
......@@ -526,19 +528,19 @@ int affichage_menu_configuration()
/*!
* \fn int affichage_carte(char* Map)
* \fn int affichage_carte(char** Map)
* \brief fonction qui gre l'affichage pendant la partie
*
* \param la carte au format texte (une lettre = une case)
*/
int affichage_carte(char* Map)
{/*
int affichage_carte(char ** Map)
{
int i,j=0;
int nombre_classes=nbClasses();
int nombre_terrains=nbTerrains();
int nombre_terrains=4; //a changer
SDL_Event event;
SDL_Surface* ecran=NULL;
SDL_Surface* ecran=SDL_SetVideoMode(LARGEUR_CARTE*(LARGEUR_CASE+1), HAUTEUR_CARTE*(HAUTEUR_CASE+2), 32, SDL_HWSURFACE|SDL_DOUBLEBUF);;
SDL_Surface* classes[nombre_classes];
SDL_Surface* terrains[nombre_terrains];
SDL_Surface* persos[NB_PERSO*NB_JOUEURS];
......@@ -549,7 +551,7 @@ int affichage_carte(char* Map)
SDL_Rect Position_Case_brillante;
SDL_Rect Position_Guerrier_select;
for(i=0;i<nbClasses();i++){
for(i=0;i<nombre_classes;i++){
classes[i]=SDL_LoadBMP(obtenirSkinsClasses()[i]);
if (!classes[i])
{
......@@ -558,7 +560,15 @@ int affichage_carte(char* Map)
}
SDL_SetColorKey(classes[i], SDL_SRCCOLORKEY, SDL_MapRGB(classes[i]->format, 0, 0, 255));
}
for(i=0;i<nombre_terrains;i++){
terrains[i]=SDL_LoadBMP(obtenirSkinsTerrains()[i]);
if (!terrains[i])
{
printf("Unable to load bitmap: %s\n", SDL_GetError());
return 1;
}
SDL_SetColorKey(terrains[i], SDL_SRCCOLORKEY, SDL_MapRGB(terrains[i]->format, 0, 0, 255));
}
Guerrier_select = SDL_LoadBMP("../resources/Skins/guerrier_select.bmp");
if (!Guerrier_select)
{
......@@ -596,9 +606,9 @@ int affichage_carte(char* Map)
{
SDL_WaitEvent(&event);
switch(event.type) /* Test du type d'vnement */
/* {
{
case SDL_QUIT: /* Si c'est un vnement de type "Quitter" */
/* etat=FERMER;
etat=FERMER;
break;
case SDL_MOUSEBUTTONDOWN:
deplacement_personnage(event.button.x,event.button.y);
......@@ -611,7 +621,7 @@ int affichage_carte(char* Map)
}
break;
case SDL_KEYDOWN:/* Si c'est un vnement de type "touche presse" */
/* switch(event.key.keysym.sym){
switch(event.key.keysym.sym){
case SDLK_n:
persosuivant();
break;
......@@ -623,40 +633,52 @@ int affichage_carte(char* Map)
}
break;
}
for(i=0;i<NB_PERSO;i++){
/*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_Guerrier_select.x = get_position_case_x(&Position_Perso[persoactuel()]);
Position_Guerrier_select.y = get_position_case_y(&Position_Perso[persoactuel()]);
*/
SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,0,0,0));
for(i=0;i<LARGEUR_CARTE*HAUTEUR_CARTE;i++)
{
switch(Map[i])
for(i=0;i<HAUTEUR_CARTE;i++)
{
printf(Map[i]);
for(j=0;j<LARGEUR_CARTE;j++)
{
case 80: //"P" en ASCII
SDL_BlitSurface(plaine,NULL,ecran,&Position_Case[i]);
break;
case 70: //"F" en ASCII
SDL_BlitSurface(foret,NULL,ecran,&Position_Case[i]);
break;
case 69: //"E" en ASCII
SDL_BlitSurface(eau,NULL,ecran,&Position_Case[i]);
break;
case 77: //"M" en ASCII
SDL_BlitSurface(montagne,NULL,ecran,&Position_Case[i]);
break;
default:
break;
switch(Map[i][j])
{
case 80: //"P" en ASCII
printf("test1 \n");
SDL_BlitSurface(terrains[0],NULL,ecran,&Position_Case[i]);
printf("test \n");
break;
case 70: //"F" en ASCII
printf("test1 \n");
SDL_BlitSurface(terrains[1],NULL,ecran,&Position_Case[i]);
printf("test \n");
break;
case 82: //"R" en ASCII
printf("test1 \n");
SDL_BlitSurface(terrains[2],NULL,ecran,&Position_Case[i]);
printf("test \n");
break;
case 77: //"M" en ASCII
printf("test1 \n");
SDL_BlitSurface(terrains[3],NULL,ecran,&Position_Case[i]);
printf("test \n");
break;
default:
break;
}
}
}
for(i=0;i<NB_PERSO*NB_JOUEURS;i++)
{
//TODO
}
SDL_BlitSurface(Guerrier_select,NULL,ecran,&Position_Guerrier_select);
SDL_BlitSurface(Case_brillante,NULL,ecran,&Position_Case_brillante);
/*SDL_BlitSurface(Guerrier_select,NULL,ecran,&Position_Guerrier_select);
SDL_BlitSurface(Case_brillante,NULL,ecran,&Position_Case_brillante);*/
}
SDL_Flip(ecran);
......
......@@ -24,7 +24,7 @@ int affichage_menu_configuration();
int affichage_ecran_accueil();
int affichage_carte(char* Map);
int affichage_carte(char** Map);
int afficher_menu();
......
......@@ -109,6 +109,20 @@ 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()
* \brief La fonction libère un tableau de chaines de charactères alloué pour stocker les informations sur les classes.
......@@ -155,6 +169,18 @@ 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.
......
......@@ -10,6 +10,9 @@
void initJeu();
char ** obtenirSkinsTerrains();
char ** obtenirLignesCarte(int numCarte);
void ajouterUnJoueur(char * nomDuJoueur, EtatsJeu * etat);
int nbClasses();
......
......@@ -25,6 +25,7 @@ Game_Package Construire_Package()
Pack.nbClasses = getNbElements("../resources/Classes.xml");
Terrain* Terrains_Pack = Librairie_Terrains("../resources/Terrains.xml");
Pack.nbTerrains=getNbElements("../resources/Terrains.xml");
Skins_GUI* GUI_Pack = Get_Skins_GUI("../resources/GUI.xml");
......@@ -78,3 +79,6 @@ int getNbCartes(Game_Package pack){
return pack.nbCartes;
}
int getNbTerrains(Game_Package pack){
return pack.nbTerrains;
}
......@@ -12,7 +12,7 @@ int getNbElements(char * file);
int getNbClasses(Game_Package pack);
int getNbCartes(Game_Package pack);
int getNbTerrains(Game_Package pack);
#endif // GAME_PACKAGE_INCLUDED
......@@ -233,6 +233,7 @@ typedef struct Carte_A{
typedef struct Game_Package{
int nbCartes;
int nbClasses;
int nbTerrains;
Classe* Classes_Package;
Terrain* Terrains_Package;
Skins_GUI* GUI_Package;
......
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