diff options
Diffstat (limited to 'src/ft_warp_level.c')
-rw-r--r-- | src/ft_warp_level.c | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/src/ft_warp_level.c b/src/ft_warp_level.c index 5b1a821..7a04dc9 100644 --- a/src/ft_warp_level.c +++ b/src/ft_warp_level.c @@ -28,7 +28,6 @@ static void ft_memdel((void**)&ml->so_tex_path); ft_memdel((void**)&ml->ea_tex_path); ft_memdel((void**)&ml->we_tex_path); - ft_free_words(ml->sprite_path); ft_memdel((void**)&ml->nl_tex_path); ft_memdel((void**)&ml->fl_tex_path); ft_memdel((void**)&ml->ce_tex_path); @@ -38,6 +37,7 @@ static void ft_memdel((void**)&ml->music_path); ft_memdel((void**)&ml->music_cmd); ft_memdel((void**)&ml->mapl); + ft_free_sprites(ml->sprite_path); ft_free_words(ml->map); ft_free_words(ml->mcmd_words); } @@ -52,11 +52,16 @@ static void cl->c_rgb = ft_init_rgb(); cl->rlist = ft_init_s_ray(); i = -1; - while (++i <= 5) + while (++i < 5) { mlx_destroy_image(cl->wlist.wlx, cl->tlist[i].img); cl->tlist[i].img = NULL; } + if (cl->mlist.isnlvl && cl->tlist[5].img) + { + mlx_destroy_image(cl->wlist.wlx, cl->tlist[5].img); + cl->tlist[5].img = NULL; + } if (cl->mlist.isftex && cl->tlist[6].img) mlx_destroy_image(cl->wlist.wlx, cl->tlist[6].img); if (cl->mlist.isctex && cl->tlist[7].img) @@ -87,27 +92,26 @@ static void } int8_t - ft_warp_level(t_cub *cl) + ft_warp_level(char *path, t_cub *cl) { char *next_path; char *tmp_mup; uint8_t isoldmus; - if (!(next_path = (char *)malloc((ft_strlen( - cl->mlist.nlevel_path) + 1) * sizeof(char)))) - return (-1); - ft_sprintf(next_path, "%s", cl->mlist.nlevel_path); - if ((isoldmus = cl->mlist.ismusic)) - tmp_mup = ft_strdup(cl->mlist.music_path); - ft_del_some(cl); - ft_del_map(&cl->mlist); - if (ft_init_map(&cl->mlist) < 0) - return (-1); - ft_parse_map(next_path, cl); - ft_treat_music(isoldmus, tmp_mup, cl); - if (isoldmus) - ft_memdel((void**)&tmp_mup); - ft_wall_tex_init(cl); - ft_memdel((void**)&next_path); + if (!(next_path = (char *)malloc((ft_strlen(path) + 1) * sizeof(char)))) + return (-1); + ft_sprintf(next_path, "%s", path); + if ((isoldmus = cl->mlist.ismusic)) + tmp_mup = ft_strdup(cl->mlist.music_path); + ft_del_some(cl); + ft_del_map(&cl->mlist); + if (ft_init_map(&cl->mlist) < 0) + return (-1); + ft_parse_map(next_path, cl); + ft_treat_music(isoldmus, tmp_mup, cl); + if (isoldmus) + ft_memdel((void**)&tmp_mup); + ft_wall_tex_init(cl); + ft_memdel((void**)&next_path); return (0); } |