parsing_colours.c
1 /* ************************************************************************** */ 2 /* */ 3 /* ::: :::::::: */ 4 /* parsing_colours.c :+: :+: :+: */ 5 /* +:+ +:+ +:+ */ 6 /* By: ll-hotel <ll-hotel@student.42lyon.fr> +#+ +:+ +#+ */ 7 /* +#+#+#+#+#+ +#+ */ 8 /* Created: 2024/07/26 16:21:42 by ll-hotel #+# #+# */ 9 /* Updated: 2024/11/13 01:50:16 by ll-hotel ### ########.fr */ 10 /* */ 11 /* ************************************************************************** */ 12 13 #include "ft_dprintf.h" 14 #include "parsing.h" 15 16 int parsing_colours(t_cube *cube, t_line *lines) 17 { 18 t_line *const f_colour = find_line_by_key(lines, "F"); 19 t_line *const c_colour = find_line_by_key(lines, "C"); 20 21 if (!f_colour || !f_colour->value) 22 ft_dprintf(2, "Error\nRGB value not found for floor colour!\n"); 23 else if (find_line_by_key(f_colour + 1, "F") != 0) 24 ft_dprintf(2, "Error\nDuplicate key F\n"); 25 else if (!c_colour || !c_colour->value) 26 ft_dprintf(2, "Error\nRGB value not found for ceiling colour!\n"); 27 else if (find_line_by_key(c_colour + 1, "C") != 0) 28 ft_dprintf(2, "Error\nDuplicate key C\n"); 29 else 30 { 31 if (!is_rgb(f_colour->value)) 32 ft_dprintf(2, "Error\nWrong floor colour value: expected RGB\n"); 33 else if (!is_rgb(c_colour->value)) 34 ft_dprintf(2, "Error\nWrong ceiling colour value: expected RGB\n"); 35 else if (parse_rgb(f_colour->value, &cube->f_colour) && \ 36 (parse_rgb(c_colour->value, &cube->c_colour))) 37 return (1); 38 } 39 return (0); 40 }