Parsing Finish
This commit is contained in:
18
src/cub3d.c
18
src/cub3d.c
@ -6,7 +6,7 @@
|
||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/09/04 16:58:27 by madumerg #+# #+# */
|
||||
/* Updated: 2024/09/28 20:12:50 by madumerg ### ########.fr */
|
||||
/* Updated: 2024/09/29 20:36:29 by madumerg ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -26,6 +26,7 @@ t_pars init_pars(void)
|
||||
new.so_png = NULL;
|
||||
new.we_png = NULL;
|
||||
new.ea_png = NULL;
|
||||
new.map = NULL;
|
||||
return (new);
|
||||
}
|
||||
|
||||
@ -41,22 +42,13 @@ int basics_check(int ac, char **av, t_pars *pars)
|
||||
int main(int ac, char **av)
|
||||
{
|
||||
t_pars pars;
|
||||
int i;
|
||||
|
||||
i = 0;
|
||||
pars = init_pars();
|
||||
if (basics_check(ac, av, &pars) == 1)
|
||||
{
|
||||
free_pars(&pars);
|
||||
return (1);
|
||||
printf ("f color %d\n", pars.f_color);
|
||||
printf ("c color %d\n", pars.c_color);
|
||||
printf ("x = %d\n", pars.coor.x);
|
||||
printf ("y = %d\n", pars.coor.y);
|
||||
printf ("no_png --> %s\n", pars.no_png);
|
||||
printf ("so_png --> %s\n", pars.so_png);
|
||||
printf ("we_png --> %s\n", pars.we_png);
|
||||
printf ("ea_png --> %s\n", pars.ea_png);
|
||||
while (pars.map[i])
|
||||
printf("|%s|\n", pars.map[i++]);
|
||||
}
|
||||
free_pars(&pars);
|
||||
return (0);
|
||||
}
|
||||
|
@ -6,11 +6,11 @@
|
||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/09/04 21:33:35 by madumerg #+# #+# */
|
||||
/* Updated: 2024/09/12 12:57:41 by madumerg ### ########.fr */
|
||||
/* Updated: 2024/09/29 20:36:43 by madumerg ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "cub3d.h"
|
||||
#include "parsing.h"
|
||||
|
||||
int check_err_arg(int ac, char **av)
|
||||
{
|
||||
|
@ -6,25 +6,25 @@
|
||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/09/16 09:38:32 by madumerg #+# #+# */
|
||||
/* Updated: 2024/09/28 17:06:14 by madumerg ### ########.fr */
|
||||
/* Updated: 2024/09/29 20:36:52 by madumerg ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "cub3d.h"
|
||||
#include "parsing.h"
|
||||
|
||||
int detect_info(char **tab, t_pars *pars)
|
||||
{
|
||||
if (ft_strcmp("NO", tab[0]) == 0 && count_tab(tab) == 2)
|
||||
if (ft_strncmp("NO", tab[0], 2) == 0 && count_tab(tab) == 2)
|
||||
return (check_texture(tab[0], tab[1], pars));
|
||||
else if (ft_strcmp("SO", tab[0]) == 0 && count_tab(tab) == 2)
|
||||
else if (ft_strncmp("SO", tab[0], 2) == 0 && count_tab(tab) == 2)
|
||||
return (check_texture(tab[0], tab[1], pars));
|
||||
else if (ft_strcmp("WE", tab[0]) == 0 && count_tab(tab) == 2)
|
||||
else if (ft_strncmp("WE", tab[0], 2) == 0 && count_tab(tab) == 2)
|
||||
return (check_texture(tab[0], tab[1], pars));
|
||||
else if (ft_strcmp("EA", tab[0]) == 0 && count_tab(tab) == 2)
|
||||
else if (ft_strncmp("EA", tab[0], 2) == 0 && count_tab(tab) == 2)
|
||||
return (check_texture(tab[0], tab[1], pars));
|
||||
else if (ft_strcmp("F", tab[0]) == 0 && count_tab(tab) == 2)
|
||||
else if (ft_strncmp("F", tab[0], 1) == 0 && count_tab(tab) == 2)
|
||||
return (check_format_rgb("F", tab, pars));
|
||||
else if (ft_strcmp("C", tab[0]) == 0 && count_tab(tab) == 2)
|
||||
else if (ft_strncmp("C", tab[0], 1) == 0 && count_tab(tab) == 2)
|
||||
return (check_format_rgb("C", tab, pars));
|
||||
else
|
||||
return (err_mess(NOT_FOUND));
|
||||
|
@ -6,11 +6,11 @@
|
||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/09/19 10:44:07 by madumerg #+# #+# */
|
||||
/* Updated: 2024/09/28 20:14:47 by madumerg ### ########.fr */
|
||||
/* Updated: 2024/09/29 20:37:04 by madumerg ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "cub3d.h"
|
||||
#include "parsing.h"
|
||||
|
||||
int check_dup_img(t_pars *pars)
|
||||
{
|
||||
@ -30,14 +30,14 @@ int assign_img_two(char *sign, char *path, t_pars *pars)
|
||||
if (ft_strcmp("WE", sign) == 0)
|
||||
{
|
||||
if (pars->we_png == NULL)
|
||||
pars->we_png = path;
|
||||
pars->we_png = ft_strdup(path);
|
||||
else
|
||||
return (err_mess(DUP_ACR));
|
||||
}
|
||||
else if (ft_strcmp("EA", sign) == 0)
|
||||
{
|
||||
if (pars->ea_png == NULL)
|
||||
pars->ea_png = path;
|
||||
pars->ea_png = ft_strdup(path);
|
||||
else
|
||||
return (err_mess(DUP_ACR));
|
||||
}
|
||||
@ -49,14 +49,14 @@ int assign_img(char *sign, char *path, t_pars *pars)
|
||||
if (ft_strcmp("NO", sign) == 0)
|
||||
{
|
||||
if (pars->no_png == NULL)
|
||||
pars->no_png = path;
|
||||
pars->no_png = ft_strdup(path);
|
||||
else
|
||||
return (err_mess(DUP_ACR));
|
||||
}
|
||||
else if (ft_strcmp("SO", sign) == 0)
|
||||
{
|
||||
if (pars->so_png == NULL)
|
||||
pars->so_png = path;
|
||||
pars->so_png = ft_strdup(path);
|
||||
else
|
||||
return (err_mess(DUP_ACR));
|
||||
}
|
||||
|
@ -6,11 +6,11 @@
|
||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/09/11 11:24:13 by madumerg #+# #+# */
|
||||
/* Updated: 2024/09/28 15:48:38 by madumerg ### ########.fr */
|
||||
/* Updated: 2024/09/29 20:37:16 by madumerg ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "cub3d.h"
|
||||
#include "parsing.h"
|
||||
|
||||
int err_not_close(char after, char before, char down, char up)
|
||||
{
|
||||
|
@ -6,11 +6,11 @@
|
||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/09/16 09:36:07 by madumerg #+# #+# */
|
||||
/* Updated: 2024/09/28 17:08:01 by madumerg ### ########.fr */
|
||||
/* Updated: 2024/09/29 20:37:25 by madumerg ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "cub3d.h"
|
||||
#include "parsing.h"
|
||||
|
||||
int check_nb_color(char *r, char *g, char *b)
|
||||
{
|
||||
@ -20,14 +20,12 @@ int check_nb_color(char *r, char *g, char *b)
|
||||
return (0);
|
||||
}
|
||||
|
||||
int save_color(char *tab, t_pars *pars, int j)
|
||||
int save_color(char *tab, t_pars *pars, int j, int i)
|
||||
{
|
||||
char *r;
|
||||
char *g;
|
||||
char *b;
|
||||
int i;
|
||||
|
||||
i = 0;
|
||||
while (tab[i] != ',')
|
||||
i++;
|
||||
r = ft_strndup_color(tab, 0, i);
|
||||
@ -44,6 +42,9 @@ int save_color(char *tab, t_pars *pars, int j)
|
||||
if (check_nb_color(r, g, b) == -1)
|
||||
return (-1);
|
||||
pars->color = create_argb(ft_atoi(r), ft_atoi(g), ft_atoi(b));
|
||||
free(r);
|
||||
free(g);
|
||||
free(b);
|
||||
return (0);
|
||||
}
|
||||
|
||||
@ -73,7 +74,7 @@ int check_format_rgb(char *sign, char **tab, t_pars *pars)
|
||||
return (err_mess(INVALID_CHAR));
|
||||
if (count_precise_char(tab[1], ',') == 1)
|
||||
return (err_mess(WRONG_F_RGB));
|
||||
if (save_color(tab[1], pars, 0) == -1)
|
||||
if (save_color(tab[1], pars, 0, 0) == -1)
|
||||
return (err_mess(ERR_COLOR));
|
||||
if (ft_strcmp(sign, "F") == 0)
|
||||
pars->f_color = pars->color;
|
||||
|
@ -6,11 +6,11 @@
|
||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/09/18 19:44:37 by madumerg #+# #+# */
|
||||
/* Updated: 2024/09/28 17:32:06 by madumerg ### ########.fr */
|
||||
/* Updated: 2024/09/29 20:37:35 by madumerg ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "cub3d.h"
|
||||
#include "parsing.h"
|
||||
|
||||
int check_dup_color(t_pars *pars)
|
||||
{
|
||||
|
@ -6,11 +6,11 @@
|
||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/09/17 14:57:11 by madumerg #+# #+# */
|
||||
/* Updated: 2024/09/19 09:55:38 by madumerg ### ########.fr */
|
||||
/* Updated: 2024/09/29 20:37:45 by madumerg ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "cub3d.h"
|
||||
#include "parsing.h"
|
||||
|
||||
int search_letter(char **map, int i, char l)
|
||||
{
|
||||
|
@ -6,11 +6,11 @@
|
||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/09/12 12:44:52 by madumerg #+# #+# */
|
||||
/* Updated: 2024/09/28 20:40:30 by madumerg ### ########.fr */
|
||||
/* Updated: 2024/09/29 20:37:58 by madumerg ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "cub3d.h"
|
||||
#include "parsing.h"
|
||||
|
||||
int all_data_verif(char **tab, t_pars *pars)
|
||||
{
|
||||
@ -22,57 +22,51 @@ int all_data_verif(char **tab, t_pars *pars)
|
||||
return (0);
|
||||
}
|
||||
|
||||
int check_info(char **l, t_pars *pars)
|
||||
int check_info(char **file, t_pars *pars)
|
||||
{
|
||||
char **tab;
|
||||
int i;
|
||||
int ct;
|
||||
|
||||
ct = 0;
|
||||
i = 0;
|
||||
tab = ft_calloc(sizeof(char *), 6);
|
||||
if (!tab)
|
||||
return (1);
|
||||
while (l[i])
|
||||
while (file[i])
|
||||
{
|
||||
tab = ft_split(l[i], ' ');
|
||||
if (tab == NULL)
|
||||
return (1);
|
||||
if (all_data_verif(tab, pars) == 1)
|
||||
return (1);
|
||||
if (ct == 6)
|
||||
break ;
|
||||
if (space_line(file[i]) == 1)
|
||||
{
|
||||
ct++;
|
||||
tab = ft_split(file[i], ' ');
|
||||
if (tab == NULL || all_data_verif(tab, pars) == 1)
|
||||
return (1);
|
||||
free_tab(tab);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
free_tab(tab);
|
||||
return (0);
|
||||
}
|
||||
|
||||
int verif_info_file(char *av, t_pars *pars)
|
||||
{
|
||||
char **map;
|
||||
char **f_part;
|
||||
|
||||
map = parse_file(av, 0, 1);
|
||||
if (map == NULL)
|
||||
return (err_mess(CRASH));
|
||||
f_part = info_map(map);
|
||||
if (f_part == NULL)
|
||||
{
|
||||
free_tab(map);
|
||||
return (err_mess(CRASH));
|
||||
}
|
||||
if (check_info(f_part, pars) == 1 || check_dup_img(pars) == 1 || \
|
||||
check_dup_color(pars) == 1)
|
||||
if (check_info(map, pars) == 1 || check_dup_img(pars) == 1 || \
|
||||
check_dup_color(pars) == 1 || all_skip(map, pars) == 1)
|
||||
{
|
||||
free_tab(map);
|
||||
return (1);
|
||||
}
|
||||
if (all_skip(map, pars) == 1)
|
||||
return (1);
|
||||
free_tab(map);
|
||||
return (0);
|
||||
}
|
||||
|
||||
int verif_all_map(char **map, t_pars *pars)
|
||||
{
|
||||
pars->map = alloc_map(map, longest_line(map));
|
||||
free_tab(map);
|
||||
if (pars->map == NULL)
|
||||
return (err_mess(CRASH));
|
||||
if (check_char_map(pars->map) == 1)
|
||||
|
@ -6,11 +6,11 @@
|
||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/09/28 17:37:10 by madumerg #+# #+# */
|
||||
/* Updated: 2024/09/28 17:43:25 by madumerg ### ########.fr */
|
||||
/* Updated: 2024/09/29 20:34:58 by madumerg ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "cub3d.h"
|
||||
#include "parsing.h"
|
||||
|
||||
void free_tab(char **tab)
|
||||
{
|
||||
|
@ -6,11 +6,11 @@
|
||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/09/07 17:35:14 by madumerg #+# #+# */
|
||||
/* Updated: 2024/09/11 11:10:48 by adjoly ### ########.fr */
|
||||
/* Updated: 2024/09/29 20:35:10 by madumerg ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "cub3d.h"
|
||||
#include "parsing.h"
|
||||
|
||||
int err_mess(char *str)
|
||||
{
|
||||
|
@ -6,11 +6,11 @@
|
||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/09/11 14:20:54 by madumerg #+# #+# */
|
||||
/* Updated: 2024/09/28 17:32:42 by madumerg ### ########.fr */
|
||||
/* Updated: 2024/09/29 20:35:22 by madumerg ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "cub3d.h"
|
||||
#include "parsing.h"
|
||||
|
||||
int space_line(char *line)
|
||||
{
|
||||
@ -30,31 +30,6 @@ int space_line(char *line)
|
||||
return (0);
|
||||
}
|
||||
|
||||
char **info_map(char **file)
|
||||
{
|
||||
char **f_part;
|
||||
int i;
|
||||
int j;
|
||||
|
||||
i = 0;
|
||||
j = 0;
|
||||
f_part = ft_calloc(6 + 1, sizeof(char *));
|
||||
if (!f_part)
|
||||
return (NULL);
|
||||
while (i >= j)
|
||||
{
|
||||
if (j == 6)
|
||||
break ;
|
||||
if (space_line(file[i]) == 1)
|
||||
{
|
||||
f_part[j] = file[i];
|
||||
j++;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
return (f_part);
|
||||
}
|
||||
|
||||
int verif_char(char c)
|
||||
{
|
||||
if (c != '1' && c != '0' && c != 'N' && c != 'S' && c != 'W' && \
|
||||
|
@ -6,11 +6,11 @@
|
||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/09/28 15:40:12 by madumerg #+# #+# */
|
||||
/* Updated: 2024/09/28 17:32:55 by madumerg ### ########.fr */
|
||||
/* Updated: 2024/09/29 20:35:35 by madumerg ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "cub3d.h"
|
||||
#include "parsing.h"
|
||||
|
||||
char *fill_line(char *l, int size)
|
||||
{
|
||||
@ -56,7 +56,10 @@ char **alloc_map(char **old_map, int size)
|
||||
{
|
||||
tmp[i] = fill_line(old_map[j], size);
|
||||
if (tmp[i] == NULL)
|
||||
{
|
||||
free_tab(tmp);
|
||||
return (NULL);
|
||||
}
|
||||
i++;
|
||||
j++;
|
||||
}
|
||||
|
@ -6,11 +6,11 @@
|
||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/09/17 15:12:28 by madumerg #+# #+# */
|
||||
/* Updated: 2024/09/28 20:44:38 by madumerg ### ########.fr */
|
||||
/* Updated: 2024/09/29 20:35:50 by madumerg ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "cub3d.h"
|
||||
#include "parsing.h"
|
||||
|
||||
int ft_count_line_map(char **file, int y)
|
||||
{
|
||||
@ -34,21 +34,15 @@ void replace_nl(char *l)
|
||||
|
||||
int recup_map(char **old_map, int i, t_pars *pars)
|
||||
{
|
||||
char **tmp;
|
||||
int j;
|
||||
int k;
|
||||
|
||||
j = 0;
|
||||
tmp = ft_calloc(sizeof(char *), ft_count_line_map(old_map, i));
|
||||
if (!tmp)
|
||||
return (err_mess(CRASH));
|
||||
k = i;
|
||||
while (old_map[i])
|
||||
{
|
||||
replace_nl(old_map[i]);
|
||||
tmp[j] = old_map[i];
|
||||
j++;
|
||||
i++;
|
||||
}
|
||||
if (verif_all_map(tmp, pars) == 1)
|
||||
if (verif_all_map(&old_map[k], pars) == 1)
|
||||
return (1);
|
||||
return (0);
|
||||
}
|
||||
|
@ -6,11 +6,11 @@
|
||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/09/20 09:57:13 by madumerg #+# #+# */
|
||||
/* Updated: 2024/09/28 14:55:56 by madumerg ### ########.fr */
|
||||
/* Updated: 2024/09/29 20:36:00 by madumerg ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "cub3d.h"
|
||||
#include "parsing.h"
|
||||
|
||||
int count_tab(char **tab)
|
||||
{
|
||||
|
Reference in New Issue
Block a user