87 lines
1.9 KiB
C
87 lines
1.9 KiB
C
#include "destruction.h"
|
|
|
|
|
|
void freeTabGeneric(void ***tab, uint32_t nbElements)
|
|
{
|
|
for(uint32_t i = 0; i < nbElements; i++)
|
|
{
|
|
free((*tab)[i]);
|
|
(*tab)[i] = NULL;
|
|
}
|
|
|
|
free(*tab);
|
|
*tab = NULL;
|
|
}
|
|
|
|
|
|
void detruireCercles(const uint32_t nbElements, sfCircleShape *tabPointeursCercle[nbElements])
|
|
{
|
|
for(uint32_t i = 0; i < nbElements; i++)
|
|
{
|
|
sfCircleShape_destroy(tabPointeursCercle[i]);
|
|
tabPointeursCercle[i] = NULL;
|
|
}
|
|
}
|
|
|
|
|
|
void detruireVertexArray(const uint32_t nbRoutes, sfVertexArray *tabPointeursVertex[nbRoutes])
|
|
{
|
|
for(uint32_t i = 0; i < nbRoutes; i++)
|
|
{
|
|
sfVertexArray_destroy(tabPointeursVertex[i]);
|
|
tabPointeursVertex[i] = NULL;
|
|
}
|
|
}
|
|
|
|
|
|
void cleaningFunction(void)
|
|
{
|
|
if(!access(MAPFILE, F_OK))
|
|
{
|
|
if(remove(MAPFILE) == -1)
|
|
{
|
|
fprintf(stderr, "Le fichier \"%s\" n\'a pas pu être correctement supprimé: %s\n", MAPFILE, strerror(errno));
|
|
}
|
|
}
|
|
|
|
if(!access(ADDRESSFILE, F_OK))
|
|
{
|
|
if(remove(ADDRESSFILE) == -1)
|
|
{
|
|
fprintf(stderr, "Le fichier \"%s\" n\'a pas pu être correctement supprimé: %s\n", ADDRESSFILE, strerror(errno));
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void libererMemoireElementsAffiches(Carte *const carte, uint32_t nbPointsAffiches, sfCircleShape *tabPointeursCercle[nbPointsAffiches], uint32_t nbAgglosAffiches, sfCircleShape *tabPointeursCercleAgglos[nbAgglosAffiches], uint32_t nbRoutes, sfVertexArray *tabPointeursVertex[nbRoutes])
|
|
{
|
|
detruireCarte(carte);
|
|
|
|
cleaningFunction();
|
|
|
|
detruireCercles(nbPointsAffiches, tabPointeursCercle);
|
|
detruireCercles(nbAgglosAffiches, tabPointeursCercleAgglos);
|
|
detruireVertexArray(nbRoutes, tabPointeursVertex);
|
|
}
|
|
|
|
|
|
void libererMemoireElementsAffichesAgglos(Carte *const carte, const uint32_t nbAgglosAffiches, sfCircleShape *tabPointeursCercleAgglos[nbAgglosAffiches])
|
|
{
|
|
detruireCarte(carte);
|
|
|
|
cleaningFunction();
|
|
|
|
detruireCercles(nbAgglosAffiches, tabPointeursCercleAgglos);
|
|
}
|
|
|
|
|
|
void freeSprite(sfSprite **sprite)
|
|
{
|
|
if(*sprite != NULL)
|
|
{
|
|
sfSprite_destroy(*sprite);
|
|
*sprite = NULL;
|
|
}
|
|
}
|