From 5b72966dd7bd0e0e13cc3e34e3ad2ff27c06c788 Mon Sep 17 00:00:00 2001
From: Romain Jegat <romain.jegat@insa-rennes.fr>
Date: Fri, 29 Apr 2016 16:16:35 +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

---
 src/Interface.c  | 45 +++++++++++++++++++++++++++++++++++++++++++++
 src/Interface.h  | 15 +++++++++++++++
 src/main.c       | 10 +++++++---
 src/structures.h |  7 +++----
 4 files changed, 70 insertions(+), 7 deletions(-)
 create mode 100644 src/Interface.c
 create mode 100644 src/Interface.h

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