/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* lm_mem_utils.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: mndhlovu +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/03/25 06:31:37 by mndhlovu #+# #+# */ /* Updated: 2019/03/25 06:31:45 by mndhlovu ### ########.fr */ /* */ /* ************************************************************************** */ #include "lem_in.h" void lm_init_data(t_syntax *synt, t_lmdata *ldata) { synt->s_cmd = 0; synt->s_pos = 0; synt->e_cmd = 0; synt->e_pos = 0; synt->gr_status = 0; synt->e_vert = 0; synt->s_vert = 0; synt->v_flag = 0; ldata->nbants = 0; ldata->nb_nodes = 0; ldata->nodes_data = NULL; ldata->nodes = NULL; ldata->adj = NULL; } void lm_add_vertex(t_lmdata *ldata, char *raw, char flag) { char **tab; t_node *room; t_node *tmp; if (!(room = (t_node *)malloc(sizeof(t_node)))) return ; tab = ft_strsplit(raw, ' '); if (tab != NULL) { room->name = tab[0]; room->x = ft_atoi(tab[1]); room->y = ft_atoi(tab[2]); room->role = flag; room->ind = ldata->nb_nodes; room->next = NULL; if (ldata->nodes_data == NULL) ldata->nodes_data = room; else { tmp = ldata->nodes_data; while (tmp->next) tmp = tmp->next; tmp->next = room; } (ldata->nb_nodes)++; } } int lm_find_index(t_lmdata *data, char *str) { t_node *nodes; nodes = data->nodes_data; if (nodes != NULL) { while (nodes->next) { if (ft_strcmp(nodes->name, str)) return (nodes->ind); nodes = nodes->next; } } return (-1); }