From c83a90b01c0bd5117e9170f101d2f6d6b358717d Mon Sep 17 00:00:00 2001 From: Romain Jegat <romain.jegat@insa-rennes.fr> Date: Fri, 29 Apr 2016 16:13:29 +0200 Subject: [PATCH] =?UTF-8?q?Ach=C3=A8vement=20du=20remplissage=20d'un=20pac?= =?UTF-8?q?kage=20de=20jeu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ElderInternalIgnition.cbp | 15 ++++--- resources/GUI.xml | 10 +++++ resources/Skins.xml | 38 ---------------- src/Interface.c | 45 +++++++++++++++++++ src/Interface.h | 15 +++++++ src/main.c | 10 +++-- src/structures.h | 7 ++- 7 files changed, 89 insertions(+), 51 deletions(-) create mode 100644 resources/GUI.xml delete mode 100644 resources/Skins.xml create mode 100644 src/Interface.c create mode 100644 src/Interface.h diff --git a/ElderInternalIgnition/ElderInternalIgnition.cbp b/ElderInternalIgnition/ElderInternalIgnition.cbp index 33f8aad..10dd3bb 100644 --- a/ElderInternalIgnition/ElderInternalIgnition.cbp +++ b/ElderInternalIgnition/ElderInternalIgnition.cbp @@ -49,20 +49,23 @@ <Option compilerVar="CC" /> </Unit> <Unit filename="../src/ClassesXML.h" /> - <Unit filename="../src/SDL.c"> - <Option compilerVar="CC" /> - </Unit> - <Unit filename="../src/SDL.h" /> - <Unit filename="../src/TU_main.c"> + <Unit filename="../src/Interface.c"> <Option compilerVar="CC" /> </Unit> - <Unit filename="../src/TU_partie.c"> + <Unit filename="../src/Interface.h" /> + <Unit filename="../src/SDL.c"> <Option compilerVar="CC" /> </Unit> + <Unit filename="../src/SDL.h" /> <Unit filename="../src/TerrainsXML.c"> <Option compilerVar="CC" /> </Unit> <Unit filename="../src/TerrainsXML.h" /> + <Unit filename="../src/TexturesXML.c"> + <Option compilerVar="CC" /> + <Option target="<{~None~}>" /> + </Unit> + <Unit filename="../src/TexturesXML.h" /> <Unit filename="../src/affichage.h" /> <Unit filename="../src/affichageConsole2.c"> <Option compilerVar="CC" /> diff --git a/resources/GUI.xml b/resources/GUI.xml new file mode 100644 index 0000000..da74b19 --- /dev/null +++ b/resources/GUI.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<Interface> + <Textures> + <Skin id="SI_RESUME" f_default="../resources/Skins/continuer.bmp"> + </Skin> + <Skin id="ST_QUIT" f_default="../resources/Skins/quitter.bmp"> + </Skin> + </Textures> +</Interface> diff --git a/resources/Skins.xml b/resources/Skins.xml deleted file mode 100644 index 9ca62f9..0000000 --- a/resources/Skins.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<Skins> - - <Personnages> - <Skin 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"> - </Skin> - <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"> - </Skin> - <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"> - </Skin> - <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"> - </Skin> - <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> - </Personnages> - - <Terrains> - <Skin id="ST_FOREST" f_default="../resources/Skins/foret.bmp"> - </Skin> - <Skin id="ST_PLAIN" f_default="../resources/Skins/plaine.bmp"> - </Skin> - <Skin id="ST_MOUNTAIN" f_default="../resources/Skins/montagne.bmp"> - </Skin> - <Skin id="ST_WATER" f_default="../resources/Skins/eau.bmp"> - </Skin> - <Skin id="ST_ACTIVE" f_default="../resources/Skins/case_brillante.bmp"> - </Skin> - </Terrains> - - <Interface> - <Skin id="SI_RESUME" f_default="../resources/Skins/continuer.bmp"> - </Skin> - <Skin id="ST_QUIT" f_default="../resources/Skins/quitter.bmp"> - </Skin> - </Interface> - -</Skins> diff --git a/src/Interface.c b/src/Interface.c new file mode 100644 index 0000000..efad5ec --- /dev/null +++ b/src/Interface.c @@ -0,0 +1,45 @@ +#include <stdio.h> +#include <stdlib.h> +#include <roxml.h> + +#include "Interface.h" +#include "structures.h" + +/*! +* \file Interface.c +* \brief Fichier contenant le code des fonctions d'aquisition des classes. +*/ + +Skins_GUI* Get_Skins_GUI(char *filename) +{ + node_t *rootXML, *Interface, *Textures, *Skin; + int nb_Skins=0, i=0; + + rootXML = roxml_load_doc(filename); + Interface = roxml_get_chld(rootXML, NULL, 0); + Textures = roxml_get_chld(Interface, NULL, 0); + + nb_Skins = roxml_get_chld_nb(Textures); + + Skins_GUI* Textures_Interface = NULL; + Textures_Interface = malloc(nb_Skins * sizeof(Skins_GUI)); + + for(i=0; i<nb_Skins; i++) + { + char *id_text, *f_default; + Skin = roxml_get_chld(Textures, NULL, i); + + id_text = roxml_get_content(roxml_get_attr(Skin, "id", 0), NULL, 0, NULL); + f_default = roxml_get_content(roxml_get_attr(Skin, "f_default", 0), NULL, 0, NULL); + + strcpy(Textures_Interface[i].id, id_text); + strcpy(Textures_Interface[i].GUI_default, f_default); + + /* Tests *//* + printf("ID vaut : %s\n",Textures_Interface[i].id); + printf("Default vaut : %s\n",Textures_Interface[i].GUI_default);*/ + /* ---- */ + } + + return Textures_Interface; +} diff --git a/src/Interface.h b/src/Interface.h new file mode 100644 index 0000000..550b740 --- /dev/null +++ b/src/Interface.h @@ -0,0 +1,15 @@ +/*! +* \file Interface.h +* \brief Fichier contenant les signatures des fonctions liees à l'interface. +*/ + +#ifndef TEXTURESXML_H_INCLUDED +#define TEXTURESXML_H_INCLUDED + +#include <roxml.h> +#include "structures.h" + +Skins_GUI* Get_Skins_GUI(char *filename); + + +#endif // TEXTURESXML_H_INCLUDED diff --git a/src/main.c b/src/main.c index cf42786..59bbbdf 100644 --- a/src/main.c +++ b/src/main.c @@ -7,6 +7,7 @@ #include "SDL.h" #include "roxml.h" #include "carte.h" +#include "Interface.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; @@ -89,18 +90,21 @@ Game_Package Pack_A; Classe* Classes_Pack = Librairie_Classes("../resources/Classes.xml"); Terrain* Terrains_Pack = Librairie_Terrains("../resources/Terrains.xml"); +Skins_GUI* GUI_Pack = Get_Skins_GUI("../resources/GUI.xml"); Pack_A.Classes_Package = Classes_Pack; Pack_A.Terrains_Package = Terrains_Pack; - - +Pack_A.GUI_Package = GUI_Pack; /* -------------------------------------*/ +/* Comment utiliser le package : */ /* -------------------------------------*/ -printf("On a : %s\n",Pack_A.Terrains_Package[0].skin_default); +printf("L'attaque 1 du mage est : %s\n",Pack_A.Classes_Package[0].attaques[0].nom); +printf("Le nom du terrain 1 est : %s\n",Pack_A.Terrains_Package[0].nomTerrain); +printf("L'adresse de la texture GUI 1 est : %s\n",Pack_A.GUI_Package[0].GUI_default); main_SDL(Map_A); diff --git a/src/structures.h b/src/structures.h index de2f797..17e4dbd 100644 --- a/src/structures.h +++ b/src/structures.h @@ -51,10 +51,8 @@ typedef enum {faux, vrai} boolean; } Skins_Charac; typedef struct Skins_GUI{ - char charac_default[50]; - char charac_selected[50]; - char charac_healed[50]; - char charac_damaged[50]; + char id[50]; + char GUI_default[50]; } Skins_GUI; @@ -175,6 +173,7 @@ typedef struct Effet_Competence{ typedef struct Game_Package{ Classe* Classes_Package; Terrain* Terrains_Package; + Skins_GUI* GUI_Package; }Game_Package; -- GitLab