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;
 | |
| 	}
 | |
| }
 | 
