/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* destroy_utils.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: kcolin +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/08/18 13:05:31 by kcolin #+# #+# */ /* Updated: 2025/10/01 13:57:48 by tchampio ### ########.fr */ /* */ /* ************************************************************************** */ #include "../cub3d_data.h" #include "../../mlx/mlx.h" #include "../../libft/includes/libft.h" #include void destroy_texture(t_cub3d_data *data, t_img_data *data_img) { if (data_img) { if (data_img->img) mlx_destroy_image(data->mlx, data_img->img); } free(data_img); } void destroy_textures(t_cub3d_data *data) { int i; if (data->no_texture) destroy_texture(data, data->no_texture); if (data->so_texture) destroy_texture(data, data->so_texture); if (data->ea_texture) destroy_texture(data, data->ea_texture); if (data->we_texture) destroy_texture(data, data->we_texture); i = 0; while (i < 6) destroy_texture(data, data->barricades_texture[i++]); destroy_texture(data, data->door_texture); } void destroy_sprites(t_cub3d_data *data) { int sprite; sprite = 0; if (data->sprite_list == NULL) return ; while (data->sprite_list[sprite] && sprite < MAX_SPRITES) { if (data->sprite_list[sprite]->sprite_type != DEAD_ZOMBIE) { mlx_destroy_image(data->mlx, data->sprite_list[sprite]->image->img); free(data->sprite_list[sprite]->image); } free(data->sprite_list[sprite]); sprite++; } } void destroy_hud_textures(t_cub3d_data *data) { int i; i = 0; while (i < 10) destroy_texture(data, data->point_figures[i++]); i = 0; while (i < 10) destroy_texture(data, data->round_figures[i++]); i = 0; while (i < 5) destroy_texture(data, data->tally_marks[i++]); i = 0; while (i < 3) destroy_texture(data, data->perk_logos[i++]); i = 0; while (i < 15 && data->weaponsregistry[i]) { destroy_texture(data, data->weaponsregistry[i]->texture); destroy_texture(data, data->weaponsregistry[i]->shoot_texture); i++; } }