int ambient(t_env *e, char *str) { char **tmp; tmp = ft_strsplit(str, BREAK); if (tmp[1] == NULL || check_arg(tmp[1], 1) == -1) return (free_ret(-1, tmp)); e->ambient = ft_atod(tmp[1]); return (free_ret(0, tmp)); }
int nb_light(t_env *e, char *str) { char **tmp; tmp = ft_strsplit(str, BREAK); if (tmp[1] == NULL || check_arg(tmp[1], 0) == -1) return (free_ret(-1, tmp)); e->nb_light_malloc = ft_atoi(tmp[1]); e->lights = (t_light *)malloc(sizeof(t_light) * e->nb_light_malloc); return (free_ret(0, tmp)); }
int ft_printf_x(va_list ap, t_flags f) { t_len lenf; unsigned long long nb; char *print; lenf.len = 0; lenf.tmp_len = 0; nb = unsigned_check(ap, f); print = ft_itoa_base(nb, 16); if (f.hashtag == 1) lenf.tmp_len += 2; if ((int)ft_strlen(print) < f.precision) lenf.tmp_len += f.precision; else lenf.tmp_len += ft_strlen(print); if (lenf.tmp_len >= (int)f.len_field) lenf.len += print_number(print, f, nb, f.precision); else if (f.minus == 1) lenf.len = minus(f, lenf.len, nb, print); else { while (lenf.len < (int)f.len_field - lenf.tmp_len && f.zero != 1) lenf.len += ft_putchar(' '); lenf.len += print_number(print, f, nb, (int)f.len_field - lenf.tmp_len); } return (free_ret(print, lenf.len)); }
int pov(t_env *e, char *str) { char **tmp; char **tmp1; tmp1 = ft_strsplit(str, BREAK); if (tmp1[1] == NULL) return (free_ret(-1, tmp1)); tmp = ft_strsplit(tmp1[1], BREAK2); free_ret(0, tmp1); if (check_arg(tmp[0], 0) == -1) return (free_ret(-1, tmp)); if (check_arg(tmp[1], 0) == -1) return (free_ret(-1, tmp)); if (check_arg(tmp[2], 0) == -1) return (free_ret(-1, tmp)); e->cam.pos = init_vec(ft_atod(tmp[0]), ft_atod(tmp[1]), ft_atod(tmp[2])); return (free_ret(0, tmp)); }
int checkline_inf(char *str) { char **tmp; char *line; tmp = NULL; if (str[0] == START_OBJ || str[0] == COMMENT) return (0); tmp = ft_strsplit(str, BREAK); line = tmp[0]; tmp[0] = ft_strsub(tmp[0], cut_space(tmp[0]), ft_strlen(tmp[0])); free(line); if (!ft_strcmp(tmp[0], "numbers of light")) return (free_ret(1, tmp)); if (!ft_strcmp(tmp[0], "numbers of object")) return (free_ret(2, tmp)); if (!ft_strcmp(tmp[0], "point of view")) return (free_ret(3, tmp)); if (!ft_strcmp(tmp[0], "look at")) return (free_ret(4, tmp)); if (!ft_strcmp(tmp[0], "color ambient")) return (free_ret(5, tmp)); return (free_ret(-1, tmp)); }