/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* draw.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: cchauvet mlx, data->window, img, x, y); } static void *ft_char2img(t_data *data, char c) { if (c == 'C') return (data->assets[data->nb_swaps + 1 % NB_COLORS]); if (c == '1') return (data->assets[data->nb_swaps + 2 % NB_COLORS]); if (c == 'E') return (data->assets[data->nb_swaps + 3 % NB_COLORS]); if (c == 'P') return (data->assets[data->nb_swaps + 4 % NB_COLORS]); if (c == 'B' && BONUS) return (data->assets[data->nb_swaps + 5 % NB_COLORS]); return (NULL); } static void ft_draw_foots(t_data *data) { char *foots; if (BONUS) { data->nb_foots++; foots = ft_itoa(data->nb_foots); if (foots == NULL) { ft_printf("Memory error\n"); ft_exit(data); } mlx_string_put(data->mlx, data->window, 10, 10, 255, foots); ft_printf("\r%s", foots); free(foots); } } int ft_draw_map(t_data *data) { ssize_t tab[2]; char **patern; void *img; ft_fill_pos(data->map); if (BONUS) data->nb_swaps = ++data->nb_swaps % NB_COLORS; patern = ft_get_player_map(*data->map); if (patern == NULL) return (1); ft_draw_img(data, data->assets[data->nb_swaps + NB_COLORS], 0, 0); tab[1] = -1; while (patern[++tab[1]] != NULL) { tab[0] = -1; while (patern[tab[1]][++tab[0]] != '\0') { img = ft_char2img(data, patern[tab[1]][tab[0]]); if (img != NULL) ft_draw_img(data, img, tab[0] * CASE_SIZE, tab[1] * CASE_SIZE); } } ft_freer_tab_ultimate(1, patern); ft_draw_foots(data); return (0); }