From aba0cc0519e6a22fc96e9c0e22adfdfe1bbb98b4 Mon Sep 17 00:00:00 2001 From: Romain Jegat <romain.jegat@insa-rennes.fr> Date: Tue, 12 Apr 2016 23:58:35 +0200 Subject: [PATCH] =?UTF-8?q?D=C3=A9veloppement=20de=20init=5Fjeu=20(fichier?= =?UTF-8?q?=20+=20lecture).=20Il=20est=20d=C3=A9sormais=20possible=20d'ind?= =?UTF-8?q?iquer=20les=20fichiers=20=C3=A0=20utiliser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/Init_jeu.xml | 14 +++++++++ src/main.c | 66 ++++++++++++++++++++++++++++++++++++------ 2 files changed, 71 insertions(+), 9 deletions(-) create mode 100644 resources/Init_jeu.xml diff --git a/resources/Init_jeu.xml b/resources/Init_jeu.xml new file mode 100644 index 0000000..693cd36 --- /dev/null +++ b/resources/Init_jeu.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<Config> + + <Terrains fichier="Terrains.xml"> + </Terrains> + + <Classes fichier="Classes.xml"> + </Classes> + + <Competences fichier="Competences.xml"> + </Terrains> + +</Config> \ No newline at end of file diff --git a/src/main.c b/src/main.c index c28f7fd..303ce1f 100644 --- a/src/main.c +++ b/src/main.c @@ -5,26 +5,74 @@ #include "case.h" #include "terrain.h" #include "SDL.h" +#include "roxml.h" -int init_jeu(){ /* crée les différents types de terrains, de classes et d'attaques en lisant dans un fichier */ - FILE *fichier; - fichier=fopen("../resources/fichier_init.txt","r"); - if (fichier==NULL){ - fprintf(stderr,"erreur dans l'ouverture du fichier"); +int init_jeu(const char *filename){ /* crée les différents types de terrains, de classes et d'attaques en lisant dans un fichier */ + FILE *fichier_init; + + fichier_init=fopen(filename,"r"); + if (!fichier_init==NULL) + { + node_t *rootXML, *ConfigXML, *Classes, *Terrains; + char *nom[20]; + int i=0, nombre_config=0; + + rootXML = roxml_load_doc(filename); + ConfigXML = roxml_get_chld(rootXML, NULL, 0); + nombre_config = roxml_get_chld_nb(ConfigXML); + + for(i=0; i<nombre_config; i++) + { + node_t* config_actuelle = roxml_get_chld(ConfigXML, NULL, i); + roxml_get_name(config_actuelle, nom, 20); + + if(strcmp(nom,"Classes")==0) + { + char fichier_text[50]; + char fichier_temp[50]; + strcpy(fichier_text,"../resources/"); + strcpy(fichier_temp,roxml_get_content(roxml_get_attr(config_actuelle, "fichier", 0), NULL, 0, NULL)); + strcat(fichier_text, fichier_temp); + printf("Fichier vaut : %s\n", fichier_text); + Librairie_Classes(fichier_text); + } + if(strcmp(nom,"Terrains")==0) + { + char fichier_text[50]; + char fichier_temp[50]; + strcpy(fichier_text,"../resources/"); + strcpy(fichier_temp,roxml_get_content(roxml_get_attr(config_actuelle, "fichier", 0), NULL, 0, NULL)); + strcat(fichier_text, fichier_temp); + printf("Fichier vaut : %s\n", fichier_text); + Librairie_Terrains(fichier_text); + } + if(strcmp(nom,"Competences")==0) + { + /* Initialisation des compétences à venir */ + + } + } + + fclose(fichier_init); + + }else{ + fprintf(stderr,"Erreur dans l'ouverture du fichier"); return 1; } + } + int main() { - main_SDL(); - /* A intégrer dans init_jeu */ - Librairie_Terrains("../resources/Terrains.xml"); /* Chargement des terrains (voir le fichier log créé) */ - Librairie_Classes("../resources/Classes.xml"); /* Chargement des classes (voir le fichier log créé) */ + init_jeu("../resources/Init_jeu.xml"); + + main_SDL(); + return 0; -- GitLab