-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdelete_ft.c
90 lines (80 loc) · 2.06 KB
/
delete_ft.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* delete_ft.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: rvan-der <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2017/03/10 17:51:40 by rvan-der #+# #+# */
/* Updated: 2017/03/26 22:59:12 by rvan-der ### ########.fr */
/* */
/* ************************************************************************** */
#include "lem_in.h"
void delete_plist(t_path **plist)
{
t_path *tmp;
if (plist == NULL || (tmp = *plist) == NULL)
return ;
while (tmp != NULL)
{
*plist = tmp->next;
ft_memdel((void**)(&(tmp->pth)));
ft_memdel((void**)(&tmp));
tmp = *plist;
}
}
void delete_itab(int **tab, int size)
{
int i;
if (tab != NULL)
{
i = -1;
while (++i < size)
free(tab[i]);
free(tab);
}
}
void delete_roomlst(t_room **list)
{
t_room *tmp;
t_room *prv;
if ((tmp = *list) != NULL)
{
while (tmp->next != NULL)
tmp = tmp->next;
while (tmp != NULL)
{
prv = tmp->prev;
ft_memdel((void**)(&tmp));
tmp = prv;
}
*list = NULL;
}
}
void delete_slist(t_set **slist)
{
t_set *tmp;
if (slist == NULL || (tmp = *slist) == NULL)
return ;
while (tmp != NULL)
{
*slist = tmp->next;
ft_memdel((void**)(&(tmp->set)));
ft_memdel((void**)(&(tmp->turns)));
ft_memdel((void**)(&tmp));
tmp = *slist;
}
}
void delete_map(t_map **map)
{
if (*map != NULL)
{
if ((*map)->rooms != NULL)
delete_roomlst((*map)->rooms);
ft_memdel((void**)(&((*map)->rooms)));
delete_itab((*map)->links, (*map)->r);
ft_memdel((void**)(&((*map)->output)));
free(*map);
*map = NULL;
}
}