ElderInternalIgnition
|
Fichier contenant le code des fonctions du controleur. More...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "controleur.h"
#include "partie.h"
#include "joueur.h"
#include "joueurList.h"
#include "case.h"
#include "personnage.h"
#include "classe.h"
#include "gamePackage.h"
#include "roxml.h"
#include "deplacements.h"
Functions | |
void | initJeu () |
La fonction initialise les variable globales du package du jeu et de la Partie. | |
void | ajouterUnJoueur (char *nomDuJoueur, EtatsJeu *etat) |
Fonction ajoutant un Joueur à la Partie et faisant passer la partie à l'état suivant. Si le joueur n'a pas correctement été ajouté, l'état reste le même. More... | |
int | x_case_cliquee (int x_pixel, int y_pixel) |
La fonction retourne la colonne d'une case à partir de sa position en pixels. More... | |
int | y_case_cliquee (int x_pixel, int y_pixel) |
La fonction retourne la ligne d'une case à partir de sa position en pixels. More... | |
int | nbClasses () |
Fonction renvoyer le nombre de classes contenues dans le package du jeu. More... | |
char ** | obtenirNomsClasses () |
Fonction renvoyant un tableau de chaine de caractères contenant les noms des Classes. L'ordre et l'index des noms dans le tableau correspond à l'ordre dans lequel ils sont définis dans le fichier XML. More... | |
unsigned short int * | obtenirPVClasses () |
Fonction renvoyant un tableau d'entiers correspondant aux PV de chaque classe L'ordr dans le tableau correspond à l'ordre dans lequel les classes sont définies dans le fichier XML. More... | |
unsigned short int * | obtenirManaClasses () |
Fonction renvoyant un tableau d'entiers correspondant au mana de chaque classe L'ordr dans le tableau correspond à l'ordre dans lequel les classes sont définies dans le fichier XML. More... | |
unsigned short int * | obtenirMvtClasses () |
Fonction renvoyant un tableau d'entiers correspondant aux points de mouvement de chaque classe L'ordr dans le tableau correspond à l'ordre dans lequel les classes sont définies dans le fichier XML. More... | |
char ** | obtenirSkinsClasses () |
Fonction renvoyant un tableau de chaine de caractères contenant le chemin vers les Skins des Classes. L'ordre et l'index des noms dans le tableau correspond à l'ordre dans lequel ils sont définis dans le fichier XML. Ici le chemin du Skin renvoyé est celui du "default". More... | |
void | freeClasses (char **tab) |
La fonction libère un tableau de chaines de charactères alloué pour stocker les informations sur les classes. More... | |
int | nbCartes () |
Fonction renvoyer le nombre de cartes contenues dans le package du jeu. More... | |
char ** | obtenirNomsCartes () |
Fonction renvoyant un tableau de chaine de caractères contenant les noms des Cartes. L'ordre et l'index des noms dans le tableau correspond à l'ordre dans lequel ils sont définis dans le fichier XML. More... | |
char ** | obtenirDescriptionCarte () |
Fonction renvoyant un tableau de chaine de caractères contenant les descriptions des Cartes. L'ordre et l'index des descriptions dans le tableau correspond à l'ordre dans lequel ils sont définis dans le fichier XML. More... | |
void | freeCartes (char **tab) |
La fonction libère un tableau de chaines de charactères alloué pour stocker les informations sur la carte. More... | |
Case * | trouverCase (Carte_Jeu *c, int x, int y) |
La fonction retourne un pointeur vers la case de coordonnées x,y. More... | |
int | ajouterPersonnage (char *nomClasse, int numTab, int numJoueur) |
La fonction ajoute un personnage au tableau de personnages d'un Joueur à l'indice numTab(compris entre 0 et TAILLE_MAX_GROUPE). S'il y a déjà un personnage à l'indice numTab, l'ancien personnage est effacé du tableau. More... | |
int | selectionnerCarte (char *nomCarte) |
La fonction ajoute la Carte dont le nom est en parrametre à la Partie. Les Terrains de la Carte sont initialisé à partir des cartes décrites en XML. More... | |
void | initPositions () |
La fonction initialise les positions des personnages sur la Carte. La carte de jeu doit être initialisée avant l'appel à cette fonction. | |
char * | ObtenirRessourceTerrain (int x, int y) |
La fonction teste le type d'un Terrain aux coordonnées données et renvoie la ressource à afficher. L'utilisation de cette fonction pourrait se faire dans une boucle dans la SDL pour afficher la carte Case par Case. Il est d'abbord nécessaire de convertir les coordonnées "pixels" en coordonnées de cases de jeu. La carte doit être initialisées avant l'appel à cette fonction. More... | |
int | personnagePresent (int x, int y) |
La fonction teste si un Personnage est présent aux coordonnées à tester. Les coordonnées doivent être convertir des "pixels" de la SDL en Cases de Jeu. More... | |
char * | obtenirRessourcePersonnage (int x, int y) |
La fonction renvoie la ressource d'un Personnage présent aux coordonnées. More... | |
char * | obtenirRessourcePersonnageNum (int numero) |
La fonction renvoie la ressource d'un Personnage dont le numero est celui définit dans la sdl. More... | |
void | obtenirPositionPersonnage (int numero, int *x, int *y) |
La fonction modifie les parrametres x et y en entrée en fonction des coordonnées du Personnage dont le numero en parrametre est celui définit dans la sdl. More... | |
Personnage * | trouverPersonnage (Case *c) |
La fonction renvoie un pointeur vers le personnage présent sur la case en parametre. More... | |
void | deplacement_personnage (int numPerso, int x_pixel, int y_pixel) |
La fonction permet de deplacer un personnage. More... | |
boolean | case_accessible (int numPerso, int x_pixel, int y_pixel) |
fonction qui dit si une case distante est accessible a un personnage au vu de ses points de deplacements et du terrain More... | |
char * | obtenirNomJoueurCourant () |
La fonction renvoie le nom du Joueur dont c'est le tour. More... | |
char * | obtenirNomClassePersonnage (int numero) |
La fonction renvoie le nom de la classe du Personnage en parrametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6 : Exemples : Le Personnage 0 du joueur 2 dans le moteur correspond au numero 4 pour la SDL. Le Personnage 1 du joueur 1 dans le moteur correspond au numero 2 pour la SDL. More... | |
int | obtenirPVPersonnage (int numero) |
La fonction renvoie le PV du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6 : Exemples : Le Personnage 0 du joueur 2 dans le moteur correspond au numero 4 pour la SDL. Le Personnage 1 du joueur 1 dans le moteur correspond au numero 2 pour la SDL. More... | |
int | obtenirPVMaxPersonnage (int numero) |
La fonction renvoie le PV max de la classe du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6. More... | |
int | obtenirManaPersonnage (int numero) |
La fonction renvoie le mana du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6. More... | |
int | obtenirManaMaxPersonnage (int numero) |
La fonction renvoie le mana max de la classe du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est defini dans la SDL et va de 1 à 6. More... | |
int | obtenirPDPersonnage (int numero) |
La fonction renvoie le PD du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est defini dans la SDL et va de 1 à 6. More... | |
int | obtenirPDMaxPersonnage (int numero) |
La fonction renvoie le PD max de la classe du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6. More... | |
char ** | obtenirNomsAttaquesPersonnage (int numero) |
Fonction renvoyant un tableau de chaine de caractères contenant les noms des attaques d'un personnage. L'ordre et l'index des descriptions dans le tableau correspond à l'ordre dans lequel elles sont définies dans le fichier XML. More... | |
int * | obtenirManaAttaquesPersonnage (int numero) |
Fonction renvoyant un tableau d'entiers contenant le prix en mana des attaques du personnage seletionné. More... | |
void | debutDuTour () |
La fonction effectue les opération de début de tour. Les points de déplacements des personnages sont remis au maximum Les Personnages récupèrent une partie de leur mana. Note : Pour l'instant, les personnages récupère 10% de leur mana total au début du tour. (Ils ne peuvent pas avoir un mana supérieur à leur mana maximum définit par la classe.) Si vous voulez changer ça, dites moi. | |
int | finDuTour () |
La fonction teste si un Joueur est victorieux et sinon termine le tour du Joueur actuel. More... | |
char * | joueurVictorieux () |
La fonction retourne le nom du Joueur qui a remporté la partie. Cette fonction doit être appellée seulement si la fonction finDuTour a renvoyé 1. Sinon la fonction renvoie seulement le nom du joueur dont c'est le tour. More... | |
int | retirerPersonnage (int numero) |
La fonction retire un personnage de l'équipe d'un joueur si le personnage est KO. More... | |
int | retirerJoueur () |
La fonction retire un joueur de la partie s'il n'a plus de personnages valides. More... | |
int | APorteeAttaque (int numDepart, int numCible, char *nomAttaque) |
La fonction teste si l'attaque en parametre à une portée suffisante pour entre lancée du Personnage numDepart vers le Personnage numCible (entier définis dans la SDL) Cette fonction doit permettre d'afficher les personnages à portée de l'attaque. More... | |
int | lancerAttaque (int numDepart, int numCible, char *nomAttaque) |
void | annulerEffets (int numero) |
La fonction annule tous les effets actifs sur un personnage. A appeler avant de retirer un personnage KO de la partie. More... | |
Variables | |
Partie * | partieGlobale |
Game_Package | packGlobal |
Fichier contenant le code des fonctions du controleur.
int ajouterPersonnage | ( | char * | nomClasse, |
int | numTab, | ||
int | numJoueur | ||
) |
La fonction ajoute un personnage au tableau de personnages d'un Joueur à l'indice numTab(compris entre 0 et TAILLE_MAX_GROUPE). S'il y a déjà un personnage à l'indice numTab, l'ancien personnage est effacé du tableau.
le | nom de la classe dont dépend le Personnage, numTab un entier représentant l'indice auquel ajouter le Personnage dans le table de personnages, numJoueur est un entier représentant le premier ou le second Joueur de la Partie. |
void ajouterUnJoueur | ( | char * | nomDuJoueur, |
EtatsJeu * | etat | ||
) |
void annulerEffets | ( | int | numPerso | ) |
La fonction annule tous les effets actifs sur un personnage. A appeler avant de retirer un personnage KO de la partie.
un | entier vers le numero du personnage definit dans la SDL |
int APorteeAttaque | ( | int | numDepart, |
int | numCible, | ||
char * | nomAttaque | ||
) |
La fonction teste si l'attaque en parametre à une portée suffisante pour entre lancée du Personnage numDepart vers le Personnage numCible (entier définis dans la SDL) Cette fonction doit permettre d'afficher les personnages à portée de l'attaque.
des | entiers vers les personnages départs et cible (définit par la SDL), une chaine de char vers le nom de l'attaque à lancer. |
boolean case_accessible | ( | int | numPerso, |
int | x_pixel, | ||
int | y_pixel | ||
) |
fonction qui dit si une case distante est accessible a un personnage au vu de ses points de deplacements et du terrain
Le | numero du personnage a deplacer, les coordonnees ou l'utilisateur a clique |
void deplacement_personnage | ( | int | numPerso, |
int | x_pixel, | ||
int | y_pixel | ||
) |
La fonction permet de deplacer un personnage.
Le | numero du personnage a deplacer, les coordonnees ou l'utilisateur a clique |
int finDuTour | ( | ) |
void freeCartes | ( | char ** | tab | ) |
La fonction libère un tableau de chaines de charactères alloué pour stocker les informations sur la carte.
le | tableau de charactères à supprimmer. |
void freeClasses | ( | char ** | tab | ) |
La fonction libère un tableau de chaines de charactères alloué pour stocker les informations sur les classes.
L'adresse | du table de caractères à libérer. |
char * joueurVictorieux | ( | ) |
int nbCartes | ( | ) |
Fonction renvoyer le nombre de cartes contenues dans le package du jeu.
int nbClasses | ( | ) |
Fonction renvoyer le nombre de classes contenues dans le package du jeu.
char ** obtenirDescriptionCarte | ( | ) |
Fonction renvoyant un tableau de chaine de caractères contenant les descriptions des Cartes. L'ordre et l'index des descriptions dans le tableau correspond à l'ordre dans lequel ils sont définis dans le fichier XML.
int * obtenirManaAttaquesPersonnage | ( | int | numero | ) |
Fonction renvoyant un tableau d'entiers contenant le prix en mana des attaques du personnage seletionné.
un | entier correspondant au numero du personnage devant lancer l'attaque |
unsigned short int * obtenirManaClasses | ( | ) |
Fonction renvoyant un tableau d'entiers correspondant au mana de chaque classe L'ordr dans le tableau correspond à l'ordre dans lequel les classes sont définies dans le fichier XML.
int obtenirManaMaxPersonnage | ( | int | numero | ) |
La fonction renvoie le mana max de la classe du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est defini dans la SDL et va de 1 à 6.
Le | numero du personnage pour la SDL. |
int obtenirManaPersonnage | ( | int | numero | ) |
La fonction renvoie le mana du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6.
Le | numero du personnage pour la SDL. |
unsigned short int * obtenirMvtClasses | ( | ) |
Fonction renvoyant un tableau d'entiers correspondant aux points de mouvement de chaque classe L'ordr dans le tableau correspond à l'ordre dans lequel les classes sont définies dans le fichier XML.
char * obtenirNomClassePersonnage | ( | int | numero | ) |
La fonction renvoie le nom de la classe du Personnage en parrametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6 : Exemples : Le Personnage 0 du joueur 2 dans le moteur correspond au numero 4 pour la SDL. Le Personnage 1 du joueur 1 dans le moteur correspond au numero 2 pour la SDL.
Le | numero du personnage pour la SDL. |
char * obtenirNomJoueurCourant | ( | ) |
La fonction renvoie le nom du Joueur dont c'est le tour.
char ** obtenirNomsAttaquesPersonnage | ( | int | numero | ) |
Fonction renvoyant un tableau de chaine de caractères contenant les noms des attaques d'un personnage. L'ordre et l'index des descriptions dans le tableau correspond à l'ordre dans lequel elles sont définies dans le fichier XML.
un | entier correspondant au numero du personnage devant lancer l'attaque |
char ** obtenirNomsCartes | ( | ) |
Fonction renvoyant un tableau de chaine de caractères contenant les noms des Cartes. L'ordre et l'index des noms dans le tableau correspond à l'ordre dans lequel ils sont définis dans le fichier XML.
char ** obtenirNomsClasses | ( | ) |
Fonction renvoyant un tableau de chaine de caractères contenant les noms des Classes. L'ordre et l'index des noms dans le tableau correspond à l'ordre dans lequel ils sont définis dans le fichier XML.
int obtenirPDMaxPersonnage | ( | int | numero | ) |
La fonction renvoie le PD max de la classe du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6.
Le | numero du personnage pour la SDL. |
int obtenirPDPersonnage | ( | int | numero | ) |
La fonction renvoie le PD du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est defini dans la SDL et va de 1 à 6.
Le | numero du personnage pour la SDL. |
void * obtenirPositionPersonnage | ( | int | numero, |
int * | x, | ||
int * | y | ||
) |
La fonction modifie les parrametres x et y en entrée en fonction des coordonnées du Personnage dont le numero en parrametre est celui définit dans la sdl.
Le | numero du personnage definit dans la sdl, des pointeurs vers des int x et y pour récupérer les coordonnées. |
unsigned short int * obtenirPVClasses | ( | ) |
Fonction renvoyant un tableau d'entiers correspondant aux PV de chaque classe L'ordr dans le tableau correspond à l'ordre dans lequel les classes sont définies dans le fichier XML.
int obtenirPVMaxPersonnage | ( | int | numero | ) |
La fonction renvoie le PV max de la classe du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6.
Le | numero du personnage pour la SDL. |
int obtenirPVPersonnage | ( | int | numero | ) |
La fonction renvoie le PV du Personnage en parametre. Le numero correspond au placement du personnage tel qu'il est défini dans la SDL et va de 1 à 6 : Exemples : Le Personnage 0 du joueur 2 dans le moteur correspond au numero 4 pour la SDL. Le Personnage 1 du joueur 1 dans le moteur correspond au numero 2 pour la SDL.
Le | numero du personnage pour la SDL. |
char * obtenirRessourcePersonnage | ( | int | x, |
int | y | ||
) |
La fonction renvoie la ressource d'un Personnage présent aux coordonnées.
Les | coordonnées de la Case à tester |
char * obtenirRessourcePersonnageNum | ( | int | numero | ) |
La fonction renvoie la ressource d'un Personnage dont le numero est celui définit dans la sdl.
Le | numero du personnage definit dans la sdl. |
char * ObtenirRessourceTerrain | ( | int | x, |
int | y | ||
) |
La fonction teste le type d'un Terrain aux coordonnées données et renvoie la ressource à afficher. L'utilisation de cette fonction pourrait se faire dans une boucle dans la SDL pour afficher la carte Case par Case. Il est d'abbord nécessaire de convertir les coordonnées "pixels" en coordonnées de cases de jeu. La carte doit être initialisées avant l'appel à cette fonction.
Les | coordonnées de la Case à tester |
char ** obtenirSkinsClasses | ( | ) |
Fonction renvoyant un tableau de chaine de caractères contenant le chemin vers les Skins des Classes. L'ordre et l'index des noms dans le tableau correspond à l'ordre dans lequel ils sont définis dans le fichier XML. Ici le chemin du Skin renvoyé est celui du "default".
int personnagePresent | ( | int | x, |
int | y | ||
) |
La fonction teste si un Personnage est présent aux coordonnées à tester. Les coordonnées doivent être convertir des "pixels" de la SDL en Cases de Jeu.
Les | coordonnées de la Case à tester |
int retirerJoueur | ( | ) |
La fonction retire un joueur de la partie s'il n'a plus de personnages valides.
int retirerPersonnage | ( | int | numero | ) |
La fonction retire un personnage de l'équipe d'un joueur si le personnage est KO.
le | numero du joueur définit dans la sdl. |
int selectionnerCarte | ( | char * | nomCarte | ) |
La fonction ajoute la Carte dont le nom est en parrametre à la Partie. Les Terrains de la Carte sont initialisé à partir des cartes décrites en XML.
Le | nom de la Carte décrite en XML. |
La fonction retourne un pointeur vers la case de coordonnées x,y.
les | coordonnées x et y d'une case (pas en pixels mais bien en colonne et ligne), ainsi que la carte utilisée |
Personnage * trouverPersonnage | ( | Case * | c | ) |
La fonction renvoie un pointeur vers le personnage présent sur la case en parametre.
Les | coordonnées de la Case à tester |
int x_case_cliquee | ( | int | x_pixel, |
int | y_pixel | ||
) |
La fonction retourne la colonne d'une case à partir de sa position en pixels.
les | coordonnées x et y de la case en pixels |
int y_case_cliquee | ( | int | x_pixel, |
int | y_pixel | ||
) |
La fonction retourne la ligne d'une case à partir de sa position en pixels.
les | coordonnées x et y de la case en pixels |