From 12087cfa9ea9d89eb146916c94836256299d9535 Mon Sep 17 00:00:00 2001 From: Romain Jegat <romain.jegat@insa-rennes.fr> Date: Sat, 2 Apr 2016 13:33:44 +0200 Subject: [PATCH] Avancement sur ClassesXML - Conversion, remplissage --- src/ClassesXML.c | 37 +++++++++++++++++++++++++------------ src/classe.c | 7 +------ 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/src/ClassesXML.c b/src/ClassesXML.c index 12611ce..450a2b5 100644 --- a/src/ClassesXML.c +++ b/src/ClassesXML.c @@ -5,13 +5,11 @@ #include "structures.h" - - - Classe** Remplir_Classes(const char *filename) // Remplit le tableau de classes à partir du fichier XML { - node_t *root, *Classes, *Classe; + + node_t *root, *Classes; unsigned int i=0, nb_classes=0; char PV_text; /* a supprimer */ @@ -20,16 +18,18 @@ Classe** Remplir_Classes(const char *filename) // Remplit le tableau de classe Classes = roxml_get_chld(root, NULL, 0); /* Descend d'un niveau dans l'arborescence */ nb_classes = roxml_get_chld_nb(Classes); /* Récupère le nombre de classes entrées dans le fichier XML */ printf("Classes contient %d enfants\n", nb_classes); - //roxml_free_node(Classes); + printf("Chargement des classes\n"); - Classe *ListeClasse = malloc(nb_classes * sizeof(Classe)); + Classe** ListeClasse = malloc(nb_classes * sizeof(Classe)); - for(i=0; i<nb_classes; i++) //Boucle de remplissage des classes + for(i=0; i<nb_classes; i++) /* Boucle de remplissage des classes */ { - + Classe Classe_en_cours; + node_t *Classe; char *id_text, *name_text, *PV_text, *PM_text, *MV_text, *DESC_text; + int Pv_max, mana_max, points_deplacement_max; Classe = roxml_get_chld(Classes, NULL, i); @@ -42,26 +42,39 @@ Classe** Remplir_Classes(const char *filename) // Remplit le tableau de classe MV = roxml_get_attr(Classe, "MV", 0); DESC = roxml_get_attr(Classe, "Desc", 0); - - id_text = roxml_get_content(ID, NULL, 0, NULL); name_text = roxml_get_content(NAME, NULL, 0, NULL); PV_text = roxml_get_content(PV, NULL, 0, NULL); PM_text = roxml_get_content(PM, NULL, 0, NULL); MV_text = roxml_get_content(MV, NULL, 0, NULL); DESC_text = roxml_get_content(DESC, NULL, 0, NULL); - +/* printf("L'id est : %s\n", id_text); printf("Le nom est : %s\n", name_text); printf("Le nombre de PV est : %s\n", PV_text); printf("Le nombre de PM est : %s\n", PM_text); printf("Le nombre MV est : %s\n", MV_text); printf("La description est : %s\n", DESC_text); +*/ + + /* Convertion des caractéristiques lues vers les types de la struct Classe */ + Pv_max = atoi(PV_text); + mana_max = atoi(PM_text); + points_deplacement_max = atoi(MV_text); + - ListeClasse[i][]= ? + /* Remplissage des caractéristiques de la classe en cours */ + Classe_en_cours.PV_max=Pv_max; + Classe_en_cours.mana_max=mana_max; + Classe_en_cours.points_deplacement_max=points_deplacement_max; + + + /* Ajout de la classe remplie au tableau */ } +roxml_free_node(Classes); + return ListeClasse; } diff --git a/src/classe.c b/src/classe.c index a240f9c..3275055 100644 --- a/src/classe.c +++ b/src/classe.c @@ -8,11 +8,6 @@ Classe** Librairie_Classes(char *filename) { -Classe **Tab_Classes; -Tab_Classes = Remplir_Classes("Classes.xml"); - - - - +return Remplir_Classes("Classes.xml"); } -- GitLab