Skip to content
Snippets Groups Projects
Commit 80af79fa authored by Romain Jegat's avatar Romain Jegat
Browse files

Ajout de l'importation des adresses des images de cases - Exemple dans le main

parent 92c5f618
No related branches found
No related tags found
No related merge requests found
Pipeline #
......@@ -4,6 +4,7 @@
#include "structures.h"
#include "terrain.h"
#include "TerrainsXML.h"
#include "structures.h"
/*!
* \file classesXML.c
......@@ -126,3 +127,72 @@ Terrain* Remplir_Terrains(FILE* Terrains_XML_log, char *filename) /* Remplit le
/*!
* \fn Skins_Charac* Load_Skins_Terrain(char *filename)
* \brief Fonction qui extrait les noms des fichiers images des terrains.
*
* \return Un tableau de noms de fichiers.
*/
char * Load_Skins_Terrain(char *filename)
{
FILE* Skins_log = NULL;
Skins_log = fopen("Skin_XML_log", "w");
if (Skins_log != NULL)
{
node_t *rootXML, *Skins, *Terrains;
unsigned int i=0, nb_terrains=0;
rootXML = roxml_load_doc(filename); /* Ouvre le doc XML et cr le noeud de base */
Skins = roxml_get_chld(rootXML, NULL, 0);
Terrains = roxml_get_chld(Skins, NULL, 1);
nb_terrains = roxml_get_chld_nb(Terrains);
Skins_Terrain* Liste_Skins_Terrains = NULL;
Liste_Skins_Terrains = malloc(nb_terrains * sizeof(Skins_Terrain)); /* Allocation de la mmoire ncssaire et test*/
if (Liste_Skins_Terrains == NULL)
{
printf("Allocation impossible \n");
exit(EXIT_FAILURE);
}
/* -----------------------------------------------------------------------------------------------------------------------*/
for(i=0; i<nb_terrains; i++)
{
Skins_Terrain Skins_Terrain_en_cours;
node_t* Skin;
char *id_text, *default_text;
Skin = roxml_get_chld(Terrains, NULL, i);
id_text = roxml_get_content(roxml_get_attr(Skin, "id", 0), NULL, 0, NULL);
default_text = roxml_get_content(roxml_get_attr(Skin, "f_default", 0), NULL, 0, NULL);
//Tests
/*printf("TEST ID : %s\n\n",id_text);
printf("TEST default : %s\n\n",default_text);
*/
strcpy(Skins_Terrain_en_cours.terrain_id, id_text);
strcpy(Skins_Terrain_en_cours.terrain_default, default_text);
Liste_Skins_Terrains[i] = Skins_Terrain_en_cours;
//Tests
/*printf("ID : %s\n\n", Skins_Terrain_en_cours.terrain_id);
printf("Default : %s\n\n", Skins_Terrain_en_cours.terrain_default);
*/
}
fclose(Skins_log);
return Liste_Skins_Terrains;
}
else
{
fprintf(stderr,"Impossible d'ouvrir le fichier Skins_XML_log");
}
}
......@@ -5,8 +5,16 @@
#ifndef TERRAINS_XML_H_INCLUDED
#define TERRAINS_XML_H_INCLUDED
#include <roxml.h>
#include "structures.h"
typedef struct Skins_Terrain{
char terrain_id[15];
char terrain_default[50];
}Skins_Terrain;
Terrain* Remplir_Terrains(FILE* Terrains_XML_log, char *filename);
char * Load_Skins_Terrain(char *filename);
#endif // TERRAINS_XML_H_INCLUDED
......@@ -87,9 +87,11 @@ printf("Map en version texte : %s\n", Map_A);
Terrains_A = Librairie_Terrains("../resources/Terrains.XML");
printf("info Terrain: %d\n", Terrains_A[1].franchissable);
Skins_Charac *Images = Remplir_Skin_Charac("../resources/Skins.xml");
printf("Adresse du skin mage damaged : %s\n", Images[0].charac_damaged);
Skins_Charac *Images_persos = Load_Skin_Charac("../resources/Skins.xml");
printf("Adresse du skin mage damaged : %s\n", Images_persos[0].charac_id);
Skins_Terrain *Images_terrains = Load_Skins_Terrain("../resources/Skins.xml");
printf("Adresse du skin montagne : %s\n", Images_terrains[2].terrain_default);
main_SDL(Map_A);
......
......@@ -17,7 +17,7 @@
*
* \return un pointeur sur une collection de noms de fichiers.
*/
Skins_Charac* Remplir_Skin_Charac(char *filename)
Skins_Charac* Load_Skin_Charac(char *filename)
{
FILE* Skins_log = NULL;
......
......@@ -17,7 +17,7 @@
}Skins_Charac;
Skins_Charac* Remplir_Skin_Charac(char *filename);
Skins_Charac* Load_Skin_Charac(char *filename);
......
......@@ -166,6 +166,10 @@ typedef struct Effet_Competence{
NodeJoueur * lastNodeJoueur; /*!<Dernier noeud*/
}ListJoueur;
/*! \struct Partie structures.h
* \brief Definition de la structure Partie
*
......
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