diff --git a/resources/Classes.xml b/resources/Classes.xml index 5460cf3d530c804d072c9db17e11654fcf1272c7..3dd66a8b641fd6bb24f5ab57246b50d9da83e27a 100644 --- a/resources/Classes.xml +++ b/resources/Classes.xml @@ -3,14 +3,18 @@ <Classe id="C_MAGE" name="Mage" PV="100" PM="150" MV="2" Desc="Le feu, ça brûle "> <Skills> <Skill id="S_FIREBALL" name="Boule du feu" RG="4" MN="30"> - <Effect id="" name="" TURNS="" DM="" PARA="" /> - <Effect id="" name="" TURNS="" DM="" PARA="" /> + <Effect id="E_FB_1" name="" TURNS="" DM="" PARA="" /> + </Effect> + <Effect id="E_FB_1" name="" TURNS="" DM="" PARA="" /> + </Effect> </Skill> - <Skill id="S_FREEZE" name="Gel" RG="" MN=""> + <Skill id="S_FREEZE" name="Gel" RG="4" MN="30"> <Effect id="" name="" TURNS="" DM="" PARA="" /> + </Effect> </Skill> - <Skill id="S_MANA" name="Vol de mana" RG="" MN=""> + <Skill id="S_MANA" name="Vol de mana" RG="4" MN="30"> <Effect id="" name="" TURNS="" DM="10" PARA="PARA_NO" /> + </Effect> </Skill> </Skills> <Skins id="SP_MAGE" f_default="../resources/Skins/mage.bmp" f_selected="../resources/Skins/mage_selected.bmp" f_healed="../resources/Skins/mage_healed.bmp" f_damaged="../resources/Skins/mage_damaged.bmp"> @@ -21,12 +25,15 @@ <Skills> <Skill id="S_BASH" name="Coup d'épée" RG="" MN=""> <Effect id="" name="" TURNS="" DM="" PARA="" /> + </Effect> </Skill> <Skill id="S_SHIELD" name="Renforcement" RG="" MN=""> <Effect id="" name="" TURNS="" DM="" PARA="" /> + </Effect> </Skill> <Skill id="S_SKIN" name="Ecorchement" RG="" MN=""> <Effect id="" name="" TURNS="" DM="10" PARA="PARA_NO" /> + </Effect> </Skill> </Skills> <Skin id="SP_WAR" f_default="../resources/Skins/guerrier.bmp" f_selected="../resources/Skins/guerrier_selected.bmp" f_healed="../resources/Skins/guerrier_healed.bmp" f_damaged="../resources/Skins/guerrier_damaged.bmp"> @@ -37,12 +44,15 @@ <Skills> <Skill id="S_HEAL" name="Soin" RG="" MN=""> <Effect id="" name="" TURNS="" DM="" PARA="" /> + </Effect> </Skill> <Skill id="S_RECOV" name="Recouvrement" RG="" MN=""> <Effect id="" name="" TURNS="" DM="" PARA="" /> + </Effect> </Skill> <Skill id="S_PURIFY" name="Purifier" RG="" MN=""> <Effect id="" name="" TURNS="" DM="10" PARA="PARA_NO" /> + </Effect> </Skill> </Skills> <Skin id="SP_HEAL" f_default="../resources/Skins/guerisseur.bmp" f_selected="../resources/Skins/guerisseur_selected.bmp" f_healed="../resources/Skins/guerisseur_healed.bmp" f_damaged="../resources/Skins/guerisseur_damaged.bmp"> @@ -53,12 +63,15 @@ <Skills> <Skill id="S_EVIS" name="Eviscération" RG="" MN=""> <Effect id="" name="" TURNS="" DM="" PARA="" /> + </Effect> </Skill> <Skill id="S_POISON" name="Lame empoisonnée" RG="" MN=""> <Effect id="" name="" TURNS="" DM="" PARA="" /> + </Effect> </Skill> <Skill id="S_CONCEAL" name="Camouflage" RG="" MN=""> <Effect id="" name="" TURNS="" DM="10" PARA="PARA_NO" /> + </Effect> </Skill> </Skills> <Skin id="SP_ROGUE" f_default="../resources/Skins/voleur.bmp" f_selected="../resources/Skins/voleur_selected.bmp" f_healed="../resources/Skins/voleur_healed.bmp" f_damaged="../resources/Skins/voleur_damaged.bmp"> @@ -69,13 +82,18 @@ <Skills> <Skill id="S_SHOT" name="Tir puissant" RG="" MN=""> <Effect id="" name="" TURNS="" DM="" PARA="" /> + </Effect> </Skill> <Skill id="S_FLAME" name="Tir emflammé" RG="" MN=""> <Effect id="" name="" TURNS="" DM="" PARA="" /> + </Effect> </Skill> <Skill id="S_PARA" name="Tir paralysant" RG="" MN=""> <Effect id="" name="" TURNS="" DM="10" PARA="PARA_NO" /> + </Effect> </Skill> + <Skin id="SP_ARCHER" f_default="../resources/Skins/voleurarcher.bmp" f_selected="../resources/Skins/archer_selected.bmp" f_healed="../resources/Skins/archer_healed.bmp" f_damaged="../resources/Skins/archer_damaged.bmp"> + </Skin> </Skills> </Classe> diff --git a/src/ClassesXML.c b/src/ClassesXML.c index 6f941ea8ca82f73ad341fc57d8014b4b008a7d8c..8e7d2f08c969bebe266c71183ce966da62b694fa 100644 --- a/src/ClassesXML.c +++ b/src/ClassesXML.c @@ -9,94 +9,203 @@ * \brief Fichier contenant le code des fonctions d'aquisition des classes. */ -Classe* Remplir_Classes(FILE* Classes_log, char *filename) /* Remplit le tableau de classes à partir du fichier XML */ +int /*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"); - node_t *rootXML, *ClassesXML; - unsigned int i=0, nb_classes=0; + node_t *rootXML, *Classes; + unsigned int i=0, j=0, k=0, nb_classes=0, nb_skills=0; rootXML = roxml_load_doc(filename); /* Ouvre le doc XML et créé le noeud de base */ - ClassesXML = roxml_get_chld(rootXML, NULL, 0); /* Descend d'un niveau dans l'arborescence */ - nb_classes = roxml_get_chld_nb(ClassesXML); /* Récupère le nombre de classes entrées dans le fichier XML */ + Classes = roxml_get_chld(rootXML, 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 */ fprintf(Classes_log,"Le fichier contient %d classes\n", nb_classes); -/*---------------------------------------------------------------------------------------------------*/ + /*---------------------------------------------------------------------------------------------------*/ + /* Allocation de la mémoire nécéssaire et test*/ + /*---------------------------------------------------------------------------------------------------*/ fprintf(Classes_log,"II) Chargement des classes\n"); Classe* ListeClasse = NULL; - ListeClasse = malloc(nb_classes * sizeof(Classe)); /* Allocation de la mémoire nécéssaire et test*/ + ListeClasse = malloc(nb_classes * sizeof(Classe)); if (ListeClasse == NULL) { fprintf(Classes_log,"Allocation impossible \n"); exit(EXIT_FAILURE); } fprintf(Classes_log,"1) Memoire allouee avec succes \n"); - fprintf(Classes_log,"La memoire allouee fait %lu octets\n",nb_classes * sizeof(Classe)); + fprintf(Classes_log,"La memoire allouee fait %d octets\n",nb_classes * sizeof(Classe)); -/*--------------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------------*/ + /* Chargement des classes */ + /*--------------------------------------------------------------------------------------------------*/ for(i=0; i<nb_classes; i++) /* Boucle de remplissage des classes */ { - fprintf(Classes_log,"\nChargement de la classe numero %d\n", i+1); - - Classe Classe_en_cours; - - node_t *ClasseXML; - char *id_text, *name_text, *PV_text, *PM_text, *MV_text, *DESC_text; - int PV_int, PMM_int, PD_int; - - ClasseXML = roxml_get_chld(ClassesXML, NULL, i); - - node_t *Skills, *ID, *NAME, *PV, *PM, *MV, *DESC; - - ID = roxml_get_attr(ClasseXML, "id", 0); - NAME = roxml_get_attr(ClasseXML, "name", 0); - PV = roxml_get_attr(ClasseXML, "PV", 0); - PM = roxml_get_attr(ClasseXML, "PM", 0); - MV = roxml_get_attr(ClasseXML, "MV", 0); - DESC = roxml_get_attr(ClasseXML, "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); - - fprintf(Classes_log,"Id : %s\n", id_text); - fprintf(Classes_log,"Nom : %s\n", name_text); - fprintf(Classes_log,"PV : %s\n", PV_text); - fprintf(Classes_log,"PM : %s\n", PM_text); - fprintf(Classes_log,"MV : %s\n", MV_text); - fprintf(Classes_log,"DESC : %s\n", DESC_text); - - /* Convertion des caractéristiques lues vers les types de la struct Classe */ - PV_int = atoi(PV_text); - PMM_int = atoi(PM_text); - PD_int = atoi(MV_text); - -/*----------------------------------------------------------------------------------------------------*/ - - /* Remplissage des caractéristiques de la classe en cours */ - Classe_en_cours.PV_max=PV_int; - Classe_en_cours.mana_max=PMM_int; - Classe_en_cours.points_deplacement_max=PD_int; - strcpy(Classe_en_cours.nom, id_text); - - fprintf(Classes_log,"Insertion de la classe %d dans le tableau\n", i+1); - - /* Ajout de la classe remplie au tableau */ - ListeClasse[i] = Classe_en_cours; + Classe Classe_en_cours; + /* Entrée dans le noeud de la classe en cours */ + node_t *Classe_node; + Classe_node = roxml_get_chld(Classes, NULL, i); + + /*----------------------------------------------------------------------------------------------*/ + /* Chargement des caractéristiques de la classe en cours */ + /*----------------------------------------------------------------------------------------------*/ + + fprintf(Classes_log,"\nChargement des caractéristiques de la classe numero %d\n", i+1); + + + char *id_text, *name_text, *DESC_text; + int PV_int, PM_int, MV_int; + + /* Aquisition des stats de la classe en cours */ + id_text = roxml_get_content(roxml_get_attr(Classe_node, "id", 0), NULL, 0, NULL); + name_text = roxml_get_content(roxml_get_attr(Classe_node, "name", 0), NULL, 0, NULL); + PV_int = atoi(roxml_get_content(roxml_get_attr(Classe_node, "PV", 0), NULL, 0, NULL)); + PM_int = atoi(roxml_get_content(roxml_get_attr(Classe_node, "PM", 0), NULL, 0, NULL)); + MV_int = atoi(roxml_get_content(roxml_get_attr(Classe_node, "MV", 0), NULL, 0, NULL)); + DESC_text = roxml_get_content(roxml_get_attr(Classe_node, "Desc", 0), NULL, 0, NULL); + + /* Ecriture des stats dans le fichier log */ + fprintf(Classes_log,"Id : %s\n", id_text); + fprintf(Classes_log,"Nom : %s\n", name_text); + fprintf(Classes_log,"PV : %d\n", PV_int); + fprintf(Classes_log,"PM : %d\n", PM_int); + fprintf(Classes_log,"MV : %d\n", MV_int); + fprintf(Classes_log,"DESC : %s\n", DESC_text); + + /* Remplissage des caractéristiques de la classe en cours */ + Classe_en_cours.PV_max=PV_int; + Classe_en_cours.mana_max=PM_int; + Classe_en_cours.points_deplacement_max=MV_int; + strcpy(Classe_en_cours.nom, id_text); + + /*----------------------------------------------------------------------------------------------*/ + /*Chargement des skins de la classe en cours + /*----------------------------------------------------------------------------------------------*/ + + fprintf(Classes_log,"\nChargement des skins de la classe numero %d\n", i+1); + + node_t* Skins; + char *id_Skin_text, *default_Skin_text, *selected_Skin_text, *healed_Skin_text, *damaged_Skin_text; + + /* Aquisition des noms de fichiers de textures de la classe en cours */ + Skins = roxml_get_chld(Classe_node, NULL, 1); + default_Skin_text = roxml_get_content(roxml_get_attr(Skins, "f_default", 0), NULL, 0, NULL); + selected_Skin_text = roxml_get_content(roxml_get_attr(Skins, "f_selected", 0), NULL, 0, NULL); + healed_Skin_text = roxml_get_content(roxml_get_attr(Skins, "f_healed", 0), NULL, 0, NULL); + damaged_Skin_text = roxml_get_content(roxml_get_attr(Skins, "f_damaged", 0), NULL, 0, NULL); + + /* Ecriture des noms de fichiers de textures dans le fichier log */ + fprintf(Classes_log,"\n default : %s", default_Skin_text); + fprintf(Classes_log,"\n selected : %s", selected_Skin_text); + fprintf(Classes_log,"\n healed : %s", healed_Skin_text); + fprintf(Classes_log,"\n damaged : %s\n\n", damaged_Skin_text); + + /* Remplissage des skins de la classe en cours */ + strcpy(Classe_en_cours.skins.charac_default, default_Skin_text); + strcpy(Classe_en_cours.skins.charac_damaged, damaged_Skin_text); + strcpy(Classe_en_cours.skins.charac_healed, healed_Skin_text); + strcpy(Classe_en_cours.skins.charac_selected, selected_Skin_text); + + /*----------------------------------------------------------------------------------------------*/ + /*Chargement des attaques de la classe en cours */ + /*----------------------------------------------------------------------------------------------*/ + + fprintf(Classes_log,"\nChargement des attaques de la classe numero %d\n", i+1); + + node_t* Skills; + Skills = roxml_get_chld(Classe_node, NULL, 0); + nb_skills = roxml_get_chld_nb(Skills); + + for(j=0 ; (j<nb_skills)||(j<4) ; j++) + { + + char *id_Skill_text, *name_Skill_text; + int RG_int, MN_int, nb_Effects; + + node_t* Skill; + Skill = roxml_get_chld(Skills, NULL, j); + nb_Effects = roxml_get_chld_nb(Skill); + + /* Aquisition de l'attaque en cours */ + id_Skill_text = roxml_get_content(roxml_get_attr(Skill, "id", 0), NULL, 0, NULL); + name_Skill_text = roxml_get_content(roxml_get_attr(Skill, "name", 0), NULL, 0, NULL); + RG_int = atoi(roxml_get_content(roxml_get_attr(Skill, "RG", 0), NULL, 0, NULL)); + MN_int = atoi(roxml_get_content(roxml_get_attr(Skill, "MN", 0), NULL, 0, NULL)); + + /* Ecriture de l'attaque en cours dans le fichier log */ + fprintf(Classes_log,"\nAttaque numero %d :\n", j+1); + fprintf(Classes_log,"\n ID : %s", id_Skill_text); + fprintf(Classes_log,"\n Name : %s", name_Skill_text); + fprintf(Classes_log,"\n RG : %d", RG_int); + fprintf(Classes_log,"\n MN : %d\n\n", MN_int); + + /* Remplissage de l'attaque en cours */ + strcpy(Classe_en_cours.attaques[j].id, id_Skill_text); + strcpy(Classe_en_cours.attaques[j].nom, name_Skill_text); + Classe_en_cours.attaques[j].portee=RG_int; + Classe_en_cours.attaques[j].mana=MN_int; + + for(k=0 ; (k<nb_Effects)||(k<4) ; k++) + { + char *id_Effect_text, *name_Effect_text; + int TURNS_int, DM_int, DM_DUR_int, HL_int, HL_DUR_int, PARA_int, TRNS_int; + + node_t* Effect; + Effect = roxml_get_chld(Skill, NULL, k); + + /* Aquisition de l'effet en cours */ + id_Effect_text = roxml_get_content(roxml_get_attr(Effect, "id", 0), NULL, 0, NULL); + name_Effect_text = roxml_get_content(roxml_get_attr(Effect, "name", 0), NULL, 0, NULL); + TRNS_int = atoi(roxml_get_content(roxml_get_attr(Effect, "TRNS", 0), NULL, 0, NULL)); + DM_int = atoi(roxml_get_content(roxml_get_attr(Effect, "DM", 0), NULL, 0, NULL)); + DM_DUR_int = atoi(roxml_get_content(roxml_get_attr(Effect, "DM_DUR", 0), NULL, 0, NULL)); + HL_int = atoi(roxml_get_content(roxml_get_attr(Effect, "HL", 0), NULL, 0, NULL)); + HL_DUR_int = atoi(roxml_get_content(roxml_get_attr(Effect, "HL_DUR", 0), NULL, 0, NULL)); + PARA_int = atoi(roxml_get_content(roxml_get_attr(Effect, "PARA", 0), NULL, 0, NULL)); + + /* Ecriture de l'effet en cours dans le fichier log */ + fprintf(Classes_log,"\nEffet numero %d :\n", k+1); + fprintf(Classes_log,"\n ID : %s", id_Effect_text); + fprintf(Classes_log,"\n Name : %s", name_Effect_text); + fprintf(Classes_log,"\n Duree : %d", TRNS_int); + fprintf(Classes_log,"\n DM : : %d", RG_int); + fprintf(Classes_log,"\n DM_DUR : %d", DM_DUR_int); + fprintf(Classes_log,"\n HL : : %d", HL_int); + fprintf(Classes_log,"\n HL_DUR : %d", HL_DUR_int); + fprintf(Classes_log,"\n PARA : %d\n\n", PARA_int); + + /* Remplissage de l'effet en cours */ + strcpy(Classe_en_cours.attaques[j].effets[k].id, id_Skill_text); + strcpy(Classe_en_cours.attaques[j].effets[k].nom, name_Skill_text); + Classe_en_cours.attaques[j].effets[k].nb_tours=TRNS_int; + Classe_en_cours.attaques[j].effets[k].paralysie=PARA_int; + Classe_en_cours.attaques[j].effets[k].valeur_degats=DM_int; + Classe_en_cours.attaques[j].effets[k].valeur_degats_duree=DM_DUR_int; + Classe_en_cours.attaques[j].effets[k].valeur_soin=HL_int; + Classe_en_cours.attaques[j].effets[k].valeur_soin_duree=HL_DUR_int; + } + } + + /*--------------------------------------------------------------------------------------------------*/ + /* Insertion de la classe dans le tableau */ + /*--------------------------------------------------------------------------------------------------*/ + fprintf(Classes_log,"Insertion de la classe %d dans le tableau\n", i+1); + + + + + /* Ajout de la classe remplie au tableau */ + //ListeClasse[i] = Classe_en_cours; } -roxml_free_node(rootXML); -roxml_free_node(ClassesXML); + roxml_free_node(rootXML); + roxml_free_node(Classes); -return ListeClasse; + return /*ListeClasse*/ 0; } diff --git a/src/ClassesXML.h b/src/ClassesXML.h index 5194a56d119be9028a60ce4351e49224610d2a55..a0063d913573a64666e194088787d572befe4b52 100644 --- a/src/ClassesXML.h +++ b/src/ClassesXML.h @@ -11,6 +11,6 @@ #include "classe.h" #include "structures.h" -Classe* Remplir_Classes(FILE* Classes_log, char *filename); +/*Classe**/int Remplir_Classes(FILE* Classes_log, char *filename); #endif // CLASSESXML_H_INCLUDED diff --git a/src/classe.h b/src/classe.h index 759d0f3e440169b7fb08e93ebb3322a07d64df5f..9bea4f5826ca33413825c96071966a9133f02281 100644 --- a/src/classe.h +++ b/src/classe.h @@ -11,6 +11,9 @@ #include "ClassesXML.h" + + + Classe* Librairie_Classes(char *filename); Classe* Remplir_Classes_log(char *filename); diff --git a/src/main.c b/src/main.c index cffcba5a41fc223a557fddeed6d9deeb42960b58..bb8964b3b122f983ac32e1f586103806e6f0d891 100644 --- a/src/main.c +++ b/src/main.c @@ -78,17 +78,15 @@ int main() //init_jeu("../resources/Init_jeu.xml"); -char *Map_A = ExtraireCarte(1); +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); -Skins_Terrain *Images_terrains = Load_Skins_Terrain("../resources/Skins.xml"); -printf("Adresse du skin montagne : %s\n", Images_terrains[2].terrain_default); +Librairie_Classes("../resources/Classes.xml"); + -Skins_Charac *Images_persos = Load_Skin_Charac("../resources/Skins.xml"); -printf("Adresse du skin mage damaged : %s\n", Images_persos[0].charac_id); main_SDL(Map_A); diff --git a/src/skinsXML.c b/src/skinsXML.c deleted file mode 100644 index 6af3507a08ac9f417169ae86f426df1de37586b4..0000000000000000000000000000000000000000 --- a/src/skinsXML.c +++ /dev/null @@ -1,103 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <roxml.h> - -#include "skinsXML.h" -#include "structures.h" - -/*! -* \file classesXML.c -* \brief Fichier contenant le code des fonctions d'aquisition des fichiers images. -*/ - - -/*! - * \fn Skins_Charac* Remplir_Skin_Charac(char *filename) - * \brief Fonction qui extrait les noms des fichiers images. - * - * \return un pointeur sur une collection de noms de fichiers. - */ -Skins_Charac* Load_Skin_Charac(char *filename) -{ - - FILE* Skins_log = NULL; - Skins_log = fopen("Skin_XML_log", "w"); - if (Skins_log != NULL) - { - fprintf(Skins_log,"Fichier decrivant le deroulement de la procedure d'aquisition des textures personnages\n\n"); - node_t *rootXML, *Skins, *Personnages; - unsigned int i=0, nb_persos=0; - - rootXML = roxml_load_doc(filename); /* Ouvre le doc XML et créé le noeud de base */ - Skins = roxml_get_chld(rootXML, NULL, 0); - Personnages = roxml_get_chld(Skins, NULL, 0); - nb_persos = roxml_get_chld_nb(Personnages); - - Skins_Charac* Liste_Skins_Charac = NULL; - - Liste_Skins_Charac = malloc(nb_persos * sizeof(Skins_Charac)); /* Allocation de la mémoire nécéssaire et test*/ - if (Liste_Skins_Charac == NULL) - { - fprintf(Skins_log,"Allocation impossible \n"); - exit(EXIT_FAILURE); - } - fprintf(Skins_log,"1) Memoire allouee avec succes \n"); - fprintf(Skins_log,"La memoire allouee fait %lu octets\n",nb_persos * sizeof(Skins_Charac)); - - /* -----------------------------------------------------------------------------------------------------------------------*/ - - for(i=0; i<nb_persos; i++) - { - fprintf(Skins_log,"\nChargement de la classe numero %d\n", i+1); - - Skins_Charac Skins_Charac_en_cours; - - node_t* Skin; - char *id_text, *default_text, *selected_text, *healed_text, *damaged_text; - - Skin = roxml_get_chld(Personnages, NULL, i); - id_text = roxml_get_content(roxml_get_attr(Skin, "id", 0), NULL, 0, NULL); - default_text = roxml_get_content(roxml_get_attr(Skin, "f_default", 0), NULL, 0, NULL); - selected_text = roxml_get_content(roxml_get_attr(Skin, "f_selected", 0), NULL, 0, NULL); - healed_text = roxml_get_content(roxml_get_attr(Skin, "f_healed", 0), NULL, 0, NULL); - damaged_text = roxml_get_content(roxml_get_attr(Skin, "f_damaged", 0), NULL, 0, NULL); - - /* Tests - printf("TEST damaged : %s\n\n",damaged_text); - printf("TEST healed : %s\n\n",healed_text); - printf("TEST selected : %s\n\n",selected_text); - printf("TEST default : %s\n\n",default_text); - */ - - fprintf(Skins_log,"\n ID : %s", damaged_text); - fprintf(Skins_log,"\n default : %s", default_text); - fprintf(Skins_log,"\n selected : %s", selected_text); - fprintf(Skins_log,"\n healed : %s", healed_text); - fprintf(Skins_log,"\n damaged : %s\n\n", damaged_text); - - - strcpy(Skins_Charac_en_cours.charac_id, id_text); - strcpy(Skins_Charac_en_cours.charac_default, default_text); - strcpy(Skins_Charac_en_cours.charac_selected, selected_text); - strcpy(Skins_Charac_en_cours.charac_healed, healed_text); - strcpy(Skins_Charac_en_cours.charac_damaged, damaged_text); - - Liste_Skins_Charac[i] = Skins_Charac_en_cours; - - /* Tests - printf("Nom : %s\n\n", Skins_Charac_en_cours.charac_id); - printf("Healed : %s\n\n", Skins_Charac_en_cours.charac_healed); - printf("Damaged : %s\n\n", Skins_Charac_en_cours.charac_damaged); - printf("Selected : %s\n\n", Skins_Charac_en_cours.charac_selected); - printf("Default : %s\n\n", Skins_Charac_en_cours.charac_default); - */ - } - fclose(Skins_log); - return Liste_Skins_Charac; - } - else - { - fprintf(stderr,"Impossible d'ouvrir le fichier Skins_XML_log"); - - } -} diff --git a/src/skinsXML.h b/src/skinsXML.h deleted file mode 100644 index 0ad023bb8f9e10401c19b4db8d500538c7ba1b6b..0000000000000000000000000000000000000000 --- a/src/skinsXML.h +++ /dev/null @@ -1,24 +0,0 @@ -/*! -* \file AffichageConsole.h -* \brief Fichier contenant les signatures des fonctions liees a l'aquisition des fichiers images. -*/ - -#ifndef SKINSXML_H_INCLUDED -#define SKINSXML_H_INCLUDED -#include <roxml.h> -#include "structures.h" - - typedef struct Skins_Charac{ - char charac_id[15]; - char charac_default[50]; - char charac_selected[50]; - char charac_healed[50]; - char charac_damaged[50]; -}Skins_Charac; - - -Skins_Charac* Load_Skin_Charac(char *filename); - - - -#endif // SKINSXML_H_INCLUDED diff --git a/src/structures.h b/src/structures.h index 9623b2edd0826dd0d83d705e67f2315bd7411040..f1bd533e85a6f3b8977225cb09e881a26b0dfdf8 100644 --- a/src/structures.h +++ b/src/structures.h @@ -38,6 +38,19 @@ */ typedef enum {faux, vrai} boolean; +/*! \struct Skins_Charac structures.h + * \brief Definition de la structure Skins_Charac + * + * Ensemble de noms de fichiers indiquant les textures des personnages + */ + typedef struct Skins_Charac{ + char charac_default[50]; + char charac_selected[50]; + char charac_healed[50]; + char charac_damaged[50]; +} Skins_Charac; + + /*! \struct Type_terrain structures.h * \brief Definition de la structure Type_terrain */ @@ -69,32 +82,37 @@ typedef Case Carte[TAILLE_MAX_CARTE]; * \brief Definition de la structure Effet. */ typedef struct Effet{ - unsigned int nb_tours_restants;/*!< Le nombre de tours restants avant que l'effet ne s'estompe*/ + char id[TAILLE_ID]; /*!< ID de l'effet de taille TAILLE_ID*/ + char nom[TAILLE_NOMS]; /*!< Nom de l'effet de taille TAILLE_NOMS*/ + unsigned int nb_tours;/*!< Le nombre de tours restants avant que l'effet ne s'estompe*/ + unsigned int valeur_degats; /*!< Le nombre de degat subit */ + unsigned int valeur_soin; /*!< Le nombre PV regeneres */ unsigned int valeur_degats_duree; /*!< Le nombre de degat de duree subit par tour*/ unsigned int valeur_soin_duree; /*!< Le nombre PV regeneres par tour*/ - boolean paralysie; /*!< L'effet provoque ou non une paralysie*/ + unsigned int paralysie; /*!< L'effet provoque ou non une paralysie*/ } Effet; /*! \struct Attaque structures.h * \brief Definition de la structure Attaque. */ typedef struct Attaque{ + char id[TAILLE_ID]; char nom[TAILLE_NOMS]; /*!< Nom de l'attaque de taille TAILLE_NOMS*/ - unsigned short int degats_directs; /*!< Degats direct occasionnes*/ - unsigned short int mana; /*!< Mana consommé*/ + unsigned short int mana; unsigned short int portee; /*!< Portee en nombre de cases de l'attaque*/ - Effet effets[]; /*!< Tableau des effets appliques par l'attaque, cela comprend les dégâts de duree*/ + Effet effets[5]; /*!< Tableau des effets appliques par l'attaque, cela comprend les dégâts de duree*/ } Attaque; /*! \struct Classe structures.h * \brief Definition de la structure Classe. */ typedef struct Classe{ - char nom[1]; /*!< Nom de la classe de taille TAILLE_NOMS*/ - Attaque* attaques; /*!< Les attaques disponibles pour la classe*/ + char nom[25]; /*!< Nom de la classe de taille TAILLE_NOMS*/ + Attaque attaques[5]; /*!< Les attaques disponibles pour la classe*/ unsigned short int points_deplacement_max; /*!< Les PD maximums accordés a la classe*/ unsigned short int PV_max; /*!< Les PV maximums accordés a la classe*/ unsigned short int mana_max; /*!< Le mana maximum accordé a la classe*/ + Skins_Charac skins; }Classe; /*! \struct Personnage structures.h @@ -130,9 +148,12 @@ typedef struct Competence{ typedef struct Effet_Competence{ unsigned short int id; /*!< Un entier qui represente la competence*/ char nom[TAILLE_NOMS]; /*!< Nom de la competence de taille TAILLE_NOMS*/ - /* effets à définir */ +/* ........ */ +} Effet_Competence; + + + -}Effet_Competence; /*! \struct Joueur structures.h * \brief Definition de la structure Joueur