ElderInternalIgnition  0.1
structures.h
1 /* \file structures.h
2  * \brief Fichier contenant les principales structures.
3  */
4 
5 #ifndef STRUCTURES_H_INCLUDED
6 #define STRUCTURES_H_INCLUDED
7 
8 /* \def TAILLE_MAX_CARTE */
9 #define TAILLE_MAX_CARTE 256
10 /* \def TAILLE_NOMS */
11 #define TAILLE_NOMS 16
12 
13 /* definition des structures nécessaires */
14 
15 /* SOMMAIRE */
16 /* Type_terrain */
17 /* Case */
18 /* Attaque */
19 /* Classe */
20 /* Personnage */
21 /* Effet */
22 /* Competence */
23 
24 
25 /* \enum boolean
26  * \brief Definition du type boolean.
27  * faux=0, vrai=1
28  */
29 typedef enum {faux, vrai} boolean;
30 
31 /* \struct Type_terrain structures.h
32  * \brief Definition de la structure Type_terrain
33  */
34 typedef struct {
35  char nom[TAILLE_NOMS]; /*<Nom du terrain. */
36  boolean franchissable; /*<Le terrain est franchissable ou non par un personnage. */
37  boolean franchissable_sorts; /*<Le terrain est franchissable ou non par un sort. */
38  unsigned short int PD_requis; /*<Nombre de PD requis pour traverser le terrain. */
40 
41 /* \struct Case structures.h
42  * \brief Definition de la structure Case
43  */
44 typedef struct Case{
45  unsigned short int coord_x; /*<Abscisse de la case*/
46  unsigned short int coord_y; /*<Ordonnee de la case*/
47  Type_terrain *terrain; /*<Le type de terrain de la case*/
48  boolean occupee; /*<La case est occupee ou non par un personnage*/
49 } Case;
50 
51 /* \typedef carte structures.h
52  * \brief Definition du type Carte
53  * La carte est un tableau de Case de taille TAILLE_MAX_CARTE.
54  */
55 typedef Case carte[TAILLE_MAX_CARTE];
56 
57 /* \struct Case structures.h
58  * \brief Definition de la structure Attaque.
59  */
60 typedef struct {
61  char nom[TAILLE_NOMS]; /*<Nom de l'attaque de taille TAILLE_NOMS*/
62  unsigned short int degats_directs; /*<Degats direct occasionnes*/
63  unsigned short int degats_permanents; /*<Degats permanents occasionnes*/
64  unsigned short int portee; /*<Portee en nombre de cases de l'attaque*/
65  Effet effets[]; /*<Tableau des effets appliques par l'attaque*/
66 } Attaque;
67 
68 /* \struct Classee structures.h
69  * \brief Definition de la structure Classe.
70  */
71 typedef struct {
72  char nom[TAILLE_NOMS]; /*<Nom de la classe de taille TAILLE_NOMS*/
73  Attaque* attaques; /*<Les attaques disponibles pour la classe*/
74  unsigned short int points_deplacement_max; /*<Les PD maximums accordés a la classe*/
75  unsigned short int PV_max; /*<Les PV maximums accordés a la classe*/
76  unsigned short int mana_max; /*<Le mana maximum accordé a la classe*/
77 } Classe;
78 
79 /* \struct Personnage structures.h
80  * \brief Definition de la structure Personnage.
81  */
82 typedef struct {
83  char nom[TAILLE_NOMS];/*<Nom du personnage de taille TAILLE_NOMS*/
84  Classe classe; /*<La classe dont depend le personnage */
85  unsigned short int points_deplacement; /*<Les PD actuels du personnage*/
86  unsigned short int PV; /*<Les PV actuels du personnage*/
87  unsigned short int mana; /*<Le mana actuel du personnage*/
88  Case *position; /*<La case representant la position actuelle du personnage*/
89  Effet effets[]; /*<Un tableau d'effets representant les effets affectant le personnage*/
90 } Personnage;
91 
92 /* \struct Personnage structures.h
93  * \brief Definition de la structure Personnage.
94  */
95 typedef struct {
96  unsigned int nb_tours_restants;/*<Le nombre de tours restants avant que l'effet ne s'estompe*/
97  unsigned int valeur_degats_duree; /*<Le nombre de degat de duree subit par tour*/
98  unsigned int valeur_soin_duree; /*<Le nombre PV regeneres par tour*/
99  boolean paralysie; /*<L'effet provoque ou non une paralysie*/
100 } Effet;
101 
102 /* \struct Competence structures.h
103  * \brief Definition de la structure Competences.
104  * Les competences sont representees sous forme d'arbre chaque
105  * parent ayant 2 enfants.
106  */
107 typedef struct competence{
108  unsigned short int id; /*<Un entier qui represente la competence*/
109  char nom[TAILLE_NOMS]; /*<Nom de la competence de taille TAILLE_NOMS*/
110  unsigned short int etage; /*<Etage de la competence dans l'arbre*/
111  struct competence *enfant_gauche; /*<Pointeur vers le premier enfant de la competence*/
112  struct competence *enfant_droit; /*<Pointeur vers le deuxieme enfant de la competence*/
113  struct effet_competence *effet; /*<Pointeur vers les effets de la competence*/
114  boolean connu; /*<La competence est connue ou non*/
115 }Competence;
116 
117 /* \struct effet_competence structures.h
118  * \brief Definition de la structure effet_competence
119  */
120 typedef struct effet_competence{
121  unsigned short int id; /*<Un entier qui represente la competence*/
122  char nom[TAILLE_NOMS]; /*<Nom de la competence de taille TAILLE_NOMS*/
123  /* effets à définir */
124 
126 
127 #endif