This repository has been archived on 2023-11-03. You can view files and clone it, but cannot push or open issues or pull requests.
GINPA/Controleur/carte.h

90 lines
2.5 KiB
C

#pragma once
#include <stdio.h>
#include <stdlib.h>
#include "../Headers/structures.h"
#include "tinyFileDialogsCalls.h"
/**
* @brief Initialise une instance de structure Carte.
*
* --> Les valeurs affectées sont impossibles, sauf pour le type, ou c'est celle par défaut.
*
* @param carte Pointeur sur la carte à initialiser !
* @return Procédure.
*/
void initialiserCarte(Carte *const carte);
/**
* @brief Calcul les coordonnées centrales d'une carte à partir de ses deux extrema.
*
* @param carte Pointeur sur la carte dans laquelle on va calculer le point central.
* @return Procédure.
*/
void calculPointCentral(Carte *const carte);
/**
* @brief Supprime une carte en libérant les pointeurs la contenant.
*
* /!\ Ne désalloue pas la mémoire de la carte en elle-même !
*
* @param carte Pointeur sur la carte à libérer !
* @return Procédure.
*/
void detruireCarte(Carte *const carte);
/**
* @brief Alloue dynamiquement une carte, et renvoie un pointeur dessus.
*
* /!\ Si l'argument `oldCarte` n'est pas NULL, la carte créée et renvoyée sera une copie de `oldCarte`.
*
* @param oldCarte La carte copiée, si NULL: nouvelle carte vierge.
* @return Pointer sur la carte créée.
*/
Carte* creerCarte(const Carte *const oldCarte);
/**
* @brief Initialise une pile de carte.
*
* @param pileCartes La pile de carte à initialiser.
* @return Procédure.
*/
void initialiserPileCartes(PileCartes *const pileCartes);
/**
* @brief Supprime une pile de cartes en libérant tous les pointeurs.
*
* @param pileCartes La pile de cartes à détruire.
* @return Procédure.
*/
void detruirePileCartes(PileCartes *const pileCartes);
/**
* @brief Empile une carte dans une pile de cartes (ça se tient non ?).
*
* @param pileCartes La pile de cartes dans laquelle on empile la carte.
* @param carte Carte à empiler.
* @return Un booléen qui indique si l'empilement a été possible ou non...
*/
bool empilerPileCartes(PileCartes *const pileCartes, Carte *const carte);
/**
* @brief Dépile une carte d'une pile de cartes (ça se tient aussi...).
*
* @param pileCartes La pile de cartes à dépiler !
* @return Procédure.
*/
Carte* depilerPilesCartes(PileCartes *const pileCartes);
/**
* @brief Afficher un simple warning de pile pleine...
*
* @param window Paramètre obligatoire pour l'affichage...
* @param renderSprite Paramètre obligatoire pour l'affichage...
* @return Procédure.
*/
void afficherWarningPile(sfRenderWindow *const window, const sfSprite *const renderSprite);