diff options
Diffstat (limited to 'src/ft_exit.c')
-rw-r--r-- | src/ft_exit.c | 98 |
1 files changed, 9 insertions, 89 deletions
diff --git a/src/ft_exit.c b/src/ft_exit.c index b9e68d0..ed1191c 100644 --- a/src/ft_exit.c +++ b/src/ft_exit.c @@ -19,99 +19,17 @@ #include <pthread.h> static void - ft_free_some_extras(t_cub *clist) + ft_del_last_remains(t_cub *clist) { - uint8_t i; - - i = 0; - while (i < 8) - { - ft_memdel((void*)&clist->sprites[i]); - i++; - } - i = 0; - while (i < 4) - { - if (clist->tweap[i].img) - mlx_destroy_image(clist->wlist.wlx, clist->tweap[i].img); - i++; - } - i = 0; - while (i < 2) + if (!clist->wlist.inited) { - if (clist->mlist.isweapon[i] && clist->tlist[i + 18].img) - mlx_destroy_image(clist->wlist.wlx, clist->tlist[i + 18].img); - i++; + ft_memdel((void*)&clist->wlist.winptr); + ft_memdel((void*)&clist->wlist.wlx); } - ft_memdel((void*)&clist->sprites); ft_memdel((void*)&clist); } static void - ft_free_lists(t_cub *clist) -{ - uint8_t i; - - ft_memdel((void*)&clist->mlist.filename); - ft_memdel((void*)&clist->mlist.no_tex_path); - ft_memdel((void*)&clist->mlist.so_tex_path); - ft_memdel((void*)&clist->mlist.ea_tex_path); - ft_memdel((void*)&clist->mlist.we_tex_path); - ft_memdel((void*)&clist->mlist.nl_tex_path); - ft_memdel((void*)&clist->mlist.fl_tex_path); - ft_memdel((void*)&clist->mlist.ce_tex_path); - ft_memdel((void*)&clist->mlist.nlevel_path); - ft_memdel((void*)&clist->mlist.skybox_path); - ft_memdel((void*)&clist->mlist.traps_path); - ft_memdel((void*)&clist->mlist.music_path); - ft_memdel((void*)&clist->mlist.music_cmd); - ft_memdel((void*)&clist->mlist.mapl); - ft_free_words(clist->mlist.map); - i = -1; - while (++i < 10) - ft_memdel((void*)&clist->sfx[i].cmd); - ft_memdel((void*)&clist->sfx[1].cmd_alt); - ft_memdel((void*)&clist->sfx[3].cmd_alt); - ft_free_sprites(clist->mlist.sprite_path); - if (!clist->wlist.inited) - ft_memdel((void*)&clist->wlist.winptr); -} - -static void - ft_del_tex(t_cub *clist) -{ - int8_t i; - - if (clist->tlist[0].img) - mlx_destroy_image(clist->wlist.wlx, clist->tlist[0].img); - if (clist->tlist[1].img) - mlx_destroy_image(clist->wlist.wlx, clist->tlist[1].img); - if (clist->tlist[2].img) - mlx_destroy_image(clist->wlist.wlx, clist->tlist[2].img); - if (clist->tlist[3].img) - mlx_destroy_image(clist->wlist.wlx, clist->tlist[3].img); - if (clist->tlist[4].img) - mlx_destroy_image(clist->wlist.wlx, clist->tlist[4].img); - if (clist->mlist.isnlvl && clist->tlist[5].img) - mlx_destroy_image(clist->wlist.wlx, clist->tlist[5].img); - if (clist->mlist.isftex && clist->tlist[6].img) - mlx_destroy_image(clist->wlist.wlx, clist->tlist[6].img); - if (clist->mlist.isctex && clist->tlist[7].img) - mlx_destroy_image(clist->wlist.wlx, clist->tlist[7].img); - if (clist->mlist.istraps && clist->tlist[15].img) - mlx_destroy_image(clist->wlist.wlx, clist->tlist[15].img); - if (clist->tlist[16].img) - mlx_destroy_image(clist->wlist.wlx, clist->tlist[16].img); - if (clist->mlist.isheals && clist->tlist[17].img) - mlx_destroy_image(clist->wlist.wlx, clist->tlist[17].img); - i = -1; - while (++i < 11) - if (clist->tnum[i].img) - mlx_destroy_image(clist->wlist.wlx, clist->tnum[i].img); - ft_del_extra_sprites(clist); -} - -static void ft_cancel_threads(t_cub *clist) { uint8_t i; @@ -122,7 +40,7 @@ static void pthread_join(clist->mtid, NULL); } i = -1; - while (++i < 10) + while (++i < 13) { pthread_mutex_unlock(&clist->sfx[i].mutex); pthread_cancel(clist->sfx[i].tid); @@ -142,8 +60,10 @@ int mlx_destroy_window(clist->wlist.wlx, clist->wlist.winptr); } ft_cancel_threads(clist); - ft_free_lists(clist); - ft_free_some_extras(clist); + ft_del_map(&clist->mlist); + ft_del_sprites_lists(clist); + ft_del_sfx_cmd(clist); + ft_del_last_remains(clist); ft_printf("Exiting program\n"); exit(exit_code); return (0); |