int seek_step_line(char *line, t_map *map) { if (map->step == 0) { if (is_nbr_ant(line)) save_nbr_ant(ft_atoi(line), map); else return (0); } else if (map->step == 1) { if (is_room(line)) save_room(line, map); else return (0); } else if (map->step == 2) { if (is_link(line)) save_link(line, map); else return (0); } return (1); }
void get_rooms(t_env *env) { t_args *tmp; char start; char end; t_args *prev; tmp = env->a_start; while (tmp) { if (start != 1 && tmp != env->a_start) start = is_start(prev); if (end != 1 && tmp != env->a_start) end = is_end(prev); if (is_room(tmp, env, 1) != -1) { add_room(env, ft_strsplit(tmp->data, ' '), start, end); start = 0; end = 0; } else if (is_command(tmp) != 1 && is_com(tmp) != 1 && \ is_ants(tmp, env) != 1) break ; prev = tmp; tmp = tmp->next; } }
int nb_rooms(char **entry) { int i; int nb; i = 0; nb = 0; while (entry[i]) { if (is_room(entry[i++])) nb++; } return (nb); }
int check_room(t_lem_env *env, char *s) { if (is_link(s) && env->fonction[env->r.state + 1](env, s)) return (ft_add_state(env)); if (ft_strcmp("##start", s) == 0 && check_start(env, s)) return (1); if (ft_strcmp("##end", s) == 0 && check_end(env, s)) return (1); if (is_room(s) && add_room(env, s)) { env->r.nbline += add_file(env, s); return (1); } return (ft_error(env, 1)); }
static int get_start(t_env *e) { int ret; char *tmp; if ((ret = (get_next_line(0, &tmp)) > 0)) { if (is_room(tmp)) { e->rooms = ft_lst_push(e->rooms, stock_room(tmp, e, START)); free(tmp); return (1); } } return (ft_putstr_error("Error, Wrong format for starting room.\n")); }
int is_invalid_line(char *line, t_map *map) { if (is_empty_line(line)) return (1); /*if (is_comment(line) == 0) { printf("pas un comment "); if (is_attribute(line, map) == 0) { printf("pas un attr "); if (is_room(line) == 0) { printf("pas une room "); if (is_link(line) == 0) { printf("pas un link "); if (is_nbr_ant(line) == 0) { printf("pas le nb de fourmi\n"); return (1); } else printf("c le nb fourmi\n"); } printf("c un link "); return (0); } printf("c une rooom "); return (0); } printf("c un attr "); return (0); } printf("c un comment "); return (0);*/ return (!is_comment(line) && !is_attribute(line, map) && !is_room(line) && !is_link(line) && !is_nbr_ant(line)); }
int parse(t_env *e, char *line, int ret) { (void)ret; if (line[0] == '#') { if (line[1] == '#') return (start_end(&(line[2]), e)); else return (1); } else if (ft_isalnum(line[0])) { if (is_room(line)) e->rooms = ft_lst_push(e->rooms, stock_room(line, e, NORMAL)); else if (is_tube(line)) e->tubes = ft_lst_push(e->tubes, stock_tube(line)); else return (0); } else return (0); return (1); }