Skip to content
Snippets Groups Projects
Commit c8d9c716 authored by Romain Jegat's avatar Romain Jegat
Browse files

Lecture d'une liste de persos contenant skin, attaques, effets dans ClassesXML...

Lecture d'une liste de persos contenant skin, attaques, effets dans ClassesXML - Ne marche pas - Aide debug Mr Sanchez ?
parent ec213c65
No related branches found
No related tags found
No related merge requests found
Pipeline #
......@@ -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>
......
......@@ -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); /* Rcupre le nombre de classes entres 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 mmoire ncssaire 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 caractristiques 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 caractristiques 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;
}
......@@ -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
......@@ -11,6 +11,9 @@
#include "ClassesXML.h"
Classe* Librairie_Classes(char *filename);
Classe* Remplir_Classes_log(char *filename);
......
......@@ -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);
......
#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 mmoire ncssaire 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");
}
}
/*!
* \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
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment