diff --git a/resources/Init_jeu.xml b/resources/Init_jeu.xml new file mode 100644 index 0000000000000000000000000000000000000000..693cd36bf78ffa9762d880d9e246955b44e2176c --- /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 c28f7fd62028e8cee1f64933d6876818a4bfa20a..303ce1fa2f9f8d66e5a9e3379d624b6be50c1e91 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;