diff --git a/resources/Terrains.xml b/resources/Terrains.xml index ea2704e001ed0bba764c518bfc86ab957829c308..d1594205ce0628140673ad4723c92a6039017776 100644 --- a/resources/Terrains.xml +++ b/resources/Terrains.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> <Terrains> - <Terrain id="G_PLAIN" name="Plaine" FR="1" FRS="1" PDR="1" Desc="Plaine de bon sens"> + <Terrain id="G_PLAIN" name="Plaine" FR="1" FRS="1" PDR="1" Desc="Plaine de bon sens" f_default="../resources/Skins/plaine.bmp"> </Terrain> - <Terrain id="G_RIVER" name="Riviere" FR="0" FRS="1" PDR="1" Desc="River, arrete de river"> + <Terrain id="G_RIVER" name="Riviere" FR="0" FRS="1" PDR="1" Desc="River, arrete de river" f_default="../resources/Skins/eau.bmp"> </Terrain> - <Terrain id="G_FOREST" name="Foret" FR="1" FRS="1" PDR="2" Desc="Le frère de Fopart"> + <Terrain id="G_FOREST" name="Foret" FR="1" FRS="1" PDR="2" Desc="Le frère de Fopart" f_default="../resources/Skins/foret.bmp"> </Terrain> - <Terrain id="G_MOUNT" name="Montagne" FR="0" FRS="0" PDR="0" Desc="Montagne est plus haut que tontagne"> + <Terrain id="G_MOUNT" name="Montagne" FR="0" FRS="0" PDR="0" Desc="Montagne est plus haut que tontagne" f_default="../resources/Skins/montagne.bmp"> </Terrain> -</Terrains> \ No newline at end of file +</Terrains> diff --git a/src/ClassesXML.c b/src/ClassesXML.c index 24040a8f6a6562ed3bf7edefe870a04c3d75c950..d99e167f25711515d5c88b23826110fe003ca0d7 100644 --- a/src/ClassesXML.c +++ b/src/ClassesXML.c @@ -9,7 +9,7 @@ * \brief Fichier contenant le code des fonctions d'aquisition des classes. */ -int /*Classe**/ Remplir_Classes(FILE* Classes_log, char *filename) /* Remplit le tableau de classes à partir du fichier XML */ +Classe* Remplir_Classes(FILE* Classes_log, char *filename) /* Remplit le tableau de classes à partir du fichier XML */ { fprintf(Classes_log,"I) Chargement du fichier XML - Definition des noeuds\n"); @@ -199,13 +199,13 @@ int /*Classe**/ Remplir_Classes(FILE* Classes_log, char *filename) /* Remplit le /* Ajout de la classe remplie au tableau */ - //ListeClasse[i] = Classe_en_cours; + ListeClasse[i] = Classe_en_cours; } roxml_free_node(rootXML); roxml_free_node(Classes); - return /*ListeClasse*/ 0; + return ListeClasse; } diff --git a/src/ClassesXML.h b/src/ClassesXML.h index a0063d913573a64666e194088787d572befe4b52..5194a56d119be9028a60ce4351e49224610d2a55 100644 --- a/src/ClassesXML.h +++ b/src/ClassesXML.h @@ -11,6 +11,6 @@ #include "classe.h" #include "structures.h" -/*Classe**/int Remplir_Classes(FILE* Classes_log, char *filename); +Classe* Remplir_Classes(FILE* Classes_log, char *filename); #endif // CLASSESXML_H_INCLUDED diff --git a/src/TerrainsXML.c b/src/TerrainsXML.c index 2e7edfa42e00c2a9da5d8905e29fedb127508005..e7cdd1479aea799bd8df66a7d9a54172c63084ac 100644 --- a/src/TerrainsXML.c +++ b/src/TerrainsXML.c @@ -46,26 +46,18 @@ Terrain* Remplir_Terrains(FILE* Terrains_XML_log, char *filename) /* Remplit le Terrain Terrain_en_cours; node_t *TerrainXML; - char *id_text, *name_text, *FR_text, *FRS_text, *PDR_text, *DESC_text; + char *id_text, *name_text, *FR_text, *FRS_text, *PDR_text, *DESC_text, *texture_text; int FR_int=0, FRS_int=0, PDR_int=0; TerrainXML = roxml_get_chld(TerrainsXML, NULL, i); - node_t *ID, *NAME, *FR, *FRS, *PDR, *DESC; - - ID = roxml_get_attr(TerrainXML, "id", 0); - NAME = roxml_get_attr(TerrainXML, "name", 0); - FR = roxml_get_attr(TerrainXML, "FR", 0); - FRS = roxml_get_attr(TerrainXML, "FRS", 0); - PDR = roxml_get_attr(TerrainXML, "PDR", 0); - DESC = roxml_get_attr(TerrainXML, "Desc", 0); - - id_text = roxml_get_content(ID, NULL, 0, NULL); - name_text = roxml_get_content(NAME, NULL, 0, NULL); - FR_text = roxml_get_content(FR, NULL, 0, NULL); - FRS_text = roxml_get_content(FRS, NULL, 0, NULL); - PDR_text = roxml_get_content(PDR, NULL, 0, NULL); - DESC_text = roxml_get_content(DESC, NULL, 0, NULL); + id_text = roxml_get_content(roxml_get_attr(TerrainXML, "id", 0), NULL, 0, NULL); + name_text = roxml_get_content(roxml_get_attr(TerrainXML, "name", 0), NULL, 0, NULL); + FR_text = roxml_get_content(roxml_get_attr(TerrainXML, "FR", 0), NULL, 0, NULL); + FRS_text = roxml_get_content(roxml_get_attr(TerrainXML, "FRS", 0), NULL, 0, NULL); + PDR_text = roxml_get_content(roxml_get_attr(TerrainXML, "PDR", 0), NULL, 0, NULL); + DESC_text = roxml_get_content(roxml_get_attr(TerrainXML, "Desc", 0), NULL, 0, NULL); + texture_text = roxml_get_content(roxml_get_attr(TerrainXML, "f_default", 0), NULL, 0, NULL); fprintf(Terrains_XML_log,"Id : %s\n", id_text); fprintf(Terrains_XML_log,"Nom : %s\n", name_text); @@ -73,6 +65,7 @@ Terrain* Remplir_Terrains(FILE* Terrains_XML_log, char *filename) /* Remplit le fprintf(Terrains_XML_log,"FRS : %s\n", FRS_text); fprintf(Terrains_XML_log,"PDR : %s\n", PDR_text); fprintf(Terrains_XML_log,"DESC : %s\n", DESC_text); + fprintf(Terrains_XML_log,"Texture : %s\n", texture_text); /* Convertion des caractéristiques lues vers les types de la struct Case */ FR_int = atoi(FR_text); @@ -106,17 +99,11 @@ Terrain* Remplir_Terrains(FILE* Terrains_XML_log, char *filename) /* Remplit le Terrain_en_cours.PD_requis=PDR_int; strcpy(Terrain_en_cours.nomTerrain, name_text); + strcpy(Terrain_en_cours.skin_default, texture_text); /* Ajout du terrain rempli au tableau */ fprintf(Terrains_XML_log,"Insertion du terrain %d dans le tableau\n", i+1); ListeTerrains[i] = Terrain_en_cours; - - /* Libération des noeuds */ - roxml_free_node(ID); - roxml_free_node(NAME); - roxml_free_node(FR); - roxml_free_node(FRS); - roxml_free_node(PDR); } roxml_free_node(rootXML); diff --git a/src/main.c b/src/main.c index bb8964b3b122f983ac32e1f586103806e6f0d891..cf42786680526100815a787be916173dd8de505a 100644 --- a/src/main.c +++ b/src/main.c @@ -7,7 +7,6 @@ #include "SDL.h" #include "roxml.h" #include "carte.h" -#include "skinsXML.h" int init_jeu(char *filename){ /* crée les différents types de terrains, de classes et d'attaques en lisant dans un fichier */ FILE *fichier_init; @@ -81,12 +80,27 @@ int main() char *Map_A = ExtraireCarte(4); printf("Map en version texte : %s\n", Map_A); -Terrain *Terrains_A = Librairie_Terrains("../resources/Terrains.xml"); -printf("info Terrain: %d\n", Terrains_A[1].franchissable); -Librairie_Classes("../resources/Classes.xml"); +/* -------------------------------------*/ +/* Creation d'un package de jeu */ +/* -------------------------------------*/ +Game_Package Pack_A; +Classe* Classes_Pack = Librairie_Classes("../resources/Classes.xml"); +Terrain* Terrains_Pack = Librairie_Terrains("../resources/Terrains.xml"); + + +Pack_A.Classes_Package = Classes_Pack; +Pack_A.Terrains_Package = Terrains_Pack; + + + + +/* -------------------------------------*/ +/* -------------------------------------*/ + +printf("On a : %s\n",Pack_A.Terrains_Package[0].skin_default); main_SDL(Map_A); diff --git a/src/structures.h b/src/structures.h index db2f1e061ef2889e7690d5d4e515f0af9e579808..de2f7972db7429e29c5e2edb46b74ed9234294fa 100644 --- a/src/structures.h +++ b/src/structures.h @@ -50,6 +50,13 @@ typedef enum {faux, vrai} boolean; char charac_damaged[50]; } Skins_Charac; + typedef struct Skins_GUI{ + char charac_default[50]; + char charac_selected[50]; + char charac_healed[50]; + char charac_damaged[50]; +} Skins_GUI; + /*! \struct Type_terrain structures.h * \brief Definition de la structure Type_terrain @@ -60,6 +67,7 @@ typedef struct Terrain{ boolean franchissable;/*!< Le terrain est franchissable ou non par un personnage. */ boolean franchissable_sorts;/*!< Le terrain est franchissable ou non par un sort. */ unsigned short int PD_requis;/*!< Nombre de PD requis pour traverser le terrain. */ + char skin_default[50]; }Terrain; /*! \struct Case structures.h @@ -160,6 +168,14 @@ typedef struct Effet_Competence{ } Effet_Competence; +/*! \struct Classe structures.h + * \brief Definition de la structure Game_Package + * sizeof(Classe) = + */ +typedef struct Game_Package{ + Classe* Classes_Package; + Terrain* Terrains_Package; +}Game_Package;