From eb1af7653b888008e31adf29e56e1a1864bf911e Mon Sep 17 00:00:00 2001 From: Romain Jegat <romain.jegat@insa-rennes.fr> Date: Fri, 29 Apr 2016 14:12:13 +0200 Subject: [PATCH] =?UTF-8?q?Cr=C3=A9ation=20d'une=20structure=20Game=5FPack?= =?UTF-8?q?age,=20qui=20sera=20fournie=20au=20controleur,=20et=20qui=20con?= =?UTF-8?q?tient=20tout=20l'univers=20du=20jeu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/Terrains.xml | 10 +++++----- src/ClassesXML.c | 6 +++--- src/ClassesXML.h | 2 +- src/TerrainsXML.c | 33 ++++++++++----------------------- src/main.c | 22 ++++++++++++++++++---- src/structures.h | 16 ++++++++++++++++ 6 files changed, 53 insertions(+), 36 deletions(-) diff --git a/resources/Terrains.xml b/resources/Terrains.xml index ea2704e..d159420 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 24040a8..d99e167 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 a0063d9..5194a56 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 2e7edfa..e7cdd14 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 bb8964b..cf42786 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 db2f1e0..de2f797 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; -- GitLab