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/Vue/affichage.h

118 lines
5.1 KiB
C

#pragma once
#include "../Headers/structures.h"
#include "../Modele/destruction.h"
#include "creation.h"
/**
* @brief Effectue toute la procédure d'affichage d'un sprite sur une fenêtre
*
* @param window Fenêtre dans laquelle on affiche le sprite.
* @param sprite Pointeur sur le sprite à afficher sur la fenêtre.
* @return Procédure.
*/
void displayBackgroundSprite(sfRenderWindow *const window, const sfSprite *const sprite);
/**
* @brief Replace une texture d'origine sur une texture de rendus, et met à jour le sprite associé.
*
* @param renderTexture Texture de rendus à remettre en état.
* @param renderSprite Pointeur sur le sprite qui est à recharger.
* @param originalTexture Texture d'origine à ré-intégrer.
* @return Procédure.
*/
void resetTextureAndSpriteFromOriginal(sfRenderTexture *const renderTexture, sfSprite **renderSprite, sfTexture *const originalTexture);
/**
* @brief Affiche un point issu d'un fichier de Logs
*
* @param renderTexture Texture dans laquelle on affiche le point.
* @param point Point à afficher.
* @param ptrCercle Pointeur sur pointeur de type 'sfCircleShape', pour conserver son adresse une fois affiché.
* @param couleur La couleur dans laquelle on affiche le point.
* @return Procédure.
*/
void dessinerPoint(sfRenderTexture *const renderTexture, sfVector2f points, sfCircleShape **ptrCercle, sfColor couleur);
/**
* @brief Affiche un point d'interet plus ou moins gros en fonction du nombre de points qu'il contient
*
* @param renderTexture Texture dans laquelle on affiche le point d'interet.
* @parem agglos Point d'interet a afficher.
* @param ptrCercle Pointeur sur pointeur de type 'sfCircleShape', pour conserver son adresse une fois affiché.
* @param nbPointAggloMin Nombre de point minimal dans une agglo
* @param carte Carte que l'on affiche pour recuperer l'echelle
* @param La couleur dans laquelle on affice le point d'intérêt.
* @return Procédure.
*/
void dessinerAgglo(sfRenderTexture *const renderTexture, Agglomerat *agglos, sfCircleShape **ptrCercle, uint32_t nbPointAgglosMin, const Carte *const carte, sfColor couleur);
/**
* @brief Surcharge de la fonction ci-dessus.
*
* @param renderTexture Texture dans laquelle on affiche le point d'interet.
* @parem agglos Point d'interet a afficher.
* @param ptrCercle Pointeur sur pointeur de type 'sfCircleShape', pour conserver son adresse une fois affiché.
* @param nbPointAggloMin Nombre de point minimal dans une agglo
* @param carte Carte que l'on affiche pour recuperer l'echelle
* @param La couleur dans laquelle on affice le point d'intérêt.
* @return Procédure.
*/
void dessinerAggloGlobal(sfRenderTexture *const renderTexture, AgglomeratGlobal *agglos, sfCircleShape **ptrCercle, uint32_t nbPointAgglosMin, const Carte *const carte, const sfColor couleur);
/**
* @brief Affiche une carte à partir d'une image et charge les pointeurs ad hoc !
*
* @param renderTexture Fenêtre dans laquelle on affiche la carte.
* @param mapTexture Pointeur sur le pointeur de la texture contenant la carte.
* @param mapSprite Pointeur sur le pointeur du sprite contenant la carte.
* @param cheminFichier Chemin relatif du fichier contenant la carte.
* @return Procédure.
*/
void afficherCarte(sfRenderTexture *const renderTexture, sfTexture **mapTexture, sfSprite **mapSprite, const char *const cheminFichier);
/**
* @brief Cette fonction permet d'afficher une image pendant le chargement des données.
*
* @param window Fenetre dans laquelle on affiche l'image.
* @param renderTexture Pointeur vers la texture de rendus où l'on affiche l'image.
* @param renderSprite Pointeur sur le sprite que l'on va afficher dans window.
* @return Procédure.
*/
void afficherLoading(sfRenderWindow *const window, sfRenderTexture *renderTexture, sfSprite **renderSprite);
/**
* @brief Cette fonction permet d'afficher une image de sablier pendant le chargement de la carte.
*
* @param window Fenetre dans laquelle on affiche l'image.
* @param renderTexture Pointeur vers la texture de rendus où l'on affiche l'image.
* @param renderSprite Pointeur sur le sprite que l'on va afficher dans window.
* @return Procédure.
*/
void afficherSablier(sfRenderWindow *const window, sfRenderTexture *renderTexture, sfSprite **renderSprite);
/**
* @brief Affiche les boutons d'un menu dans une texture de rendus propre à la structure.
*
* @param window La fenêtre dans laquelle afficher le menu !
* @param renderTexture La texture de rendus dans laquelle on va positionner le menu !
* @return Procédure.
*/
void dessinerMenu(sfRenderTexture *const renderTexture, const Menu *const menu);
/**
* @brief Crée et affiche un bouton à une position et avec les informations données.
*
* /!\ Le texte de ce bouton NE SERA PAS FIXÉ et vaudra donc NULL.
*
* @param outil L'outil que le bouton représentera.
* @param icone Le chemin relatif vers l'icône à charger sur le bouton.
* @param position Un pointeur sur les coordonnées du bouton.
* @param lowButt booléen pour définir la taille tu bouton
* @return Procédure.
*/
Bouton* ajouterBoutonAccueil(const Tool outil, const char *const icone, const sfVector2f *const position, bool lowButt);