norm
This commit is contained in:
parent
5da1a4b1c9
commit
8fd76831b5
5
Makefile
5
Makefile
@ -6,11 +6,11 @@
|
||||
# By: apommier <apommier@student.42.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2022/02/13 16:27:49 by apommier #+# #+# #
|
||||
# Updated: 2022/06/15 18:49:48 by apommier ### ########.fr #
|
||||
# Updated: 2022/06/15 23:36:51 by apommier ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
NAME = Cub3D
|
||||
NAME = cub3D
|
||||
SRCS = srcs/main.c\
|
||||
srcs/cast_ray/get_texture_array.c\
|
||||
srcs/cast_ray/cast_ray.c\
|
||||
@ -20,6 +20,7 @@ SRCS = srcs/main.c\
|
||||
srcs/utils/cub_utils.c\
|
||||
srcs/utils/quit_game.c\
|
||||
srcs/parsing/parse_map.c\
|
||||
srcs/parsing/utils_parsing.c\
|
||||
srcs/parsing/check_color_texture.c
|
||||
|
||||
OBJS = ${SRCS:.c=.o}
|
||||
|
||||
@ -6,52 +6,12 @@
|
||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/06/11 01:00:17 by apommier #+# #+# */
|
||||
/* Updated: 2022/06/15 18:32:06 by apommier ### ########.fr */
|
||||
/* Updated: 2022/06/15 23:38:56 by apommier ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "../../includes/Cub3D.h"
|
||||
|
||||
char next_space(char *str, int i)
|
||||
{
|
||||
while (str[i] == ' ')
|
||||
i++;
|
||||
return (str[i]);
|
||||
}
|
||||
|
||||
int next_space_index(char *str, int i)
|
||||
{
|
||||
while (str[i] == ' ')
|
||||
i++;
|
||||
return (i);
|
||||
}
|
||||
|
||||
char *transform_map(char **double_map, t_data *img)
|
||||
{
|
||||
char *map;
|
||||
int i;
|
||||
int j;
|
||||
int index;
|
||||
|
||||
i = -1;
|
||||
index = 0;
|
||||
img->map.size = img->map.x * img->map.y;
|
||||
map = ft_calloc(sizeof(char), img->map.size + 1);
|
||||
if (!map)
|
||||
quit_game(img);
|
||||
while (double_map[++i])
|
||||
{
|
||||
j = -1;
|
||||
while (double_map[i][++j])
|
||||
{
|
||||
map[i * img->map.x + j] = double_map[i][j];
|
||||
index++;
|
||||
}
|
||||
}
|
||||
img->map.simple_map = map;
|
||||
return (0);
|
||||
}
|
||||
|
||||
void set_texture_file(char *str, t_data *img, char c)
|
||||
{
|
||||
int index;
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/05/10 17:54:25 by sadjigui #+# #+# */
|
||||
/* Updated: 2022/06/15 22:03:10 by apommier ### ########.fr */
|
||||
/* Updated: 2022/06/15 23:33:19 by apommier ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -28,7 +28,7 @@ void verifie_texture_color(t_data *img)
|
||||
ft_exit("Error\nColor not set properly\n", img);
|
||||
}
|
||||
|
||||
void error_msg(t_data *img)
|
||||
void error_msg(t_data *img)
|
||||
{
|
||||
if (img->map.error == 1)
|
||||
ft_exit("Error\nMap isn't closed\n", img);
|
||||
@ -40,9 +40,9 @@ void error_msg(t_data *img)
|
||||
ft_exit("Error\nBad character in map\n", img);
|
||||
}
|
||||
|
||||
void size_line(char *str, t_data *img)
|
||||
void size_line(char *str, t_data *img)
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
|
||||
i = 0;
|
||||
while (str[i])
|
||||
@ -51,10 +51,10 @@ void size_line(char *str, t_data *img)
|
||||
img->map.x = i;
|
||||
}
|
||||
|
||||
char *charge_new(t_data *img, char **map, char **tmp_map)
|
||||
char *charge_new(t_data *img, char **map, char **tmp_map)
|
||||
{
|
||||
char *str;
|
||||
int i;
|
||||
char *str;
|
||||
int i;
|
||||
|
||||
i = 0;
|
||||
str = malloc(sizeof(char) * (img->map.x + 3));
|
||||
@ -90,16 +90,16 @@ int reverse_comp(char *s1, char *s2)
|
||||
return (0);
|
||||
}
|
||||
|
||||
void inter_map(char **split, char **tmp, t_data *img)
|
||||
void inter_map(char **split, char **tmp, t_data *img)
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
int i;
|
||||
int j;
|
||||
|
||||
i = 0;
|
||||
while (split[i])
|
||||
{
|
||||
j = 0;
|
||||
while(split[i][j])
|
||||
while (split[i][j])
|
||||
{
|
||||
if (split[i][j] == '3')
|
||||
img->map.error = -1;
|
||||
@ -111,15 +111,15 @@ void inter_map(char **split, char **tmp, t_data *img)
|
||||
}
|
||||
}
|
||||
|
||||
void close_or_not(char **tab, int i, int j, t_data *img)
|
||||
void close_or_not(char **tab, int i, int j, t_data *img)
|
||||
{
|
||||
if(tab[i + 1][j] == '3' || tab[i - 1][j] == '3')
|
||||
if (tab[i + 1][j] == '3' || tab[i - 1][j] == '3')
|
||||
img->map.error = 1;
|
||||
if(tab[i][j + 1] == '3' || tab[i][j - 1] == '3')
|
||||
if (tab[i][j + 1] == '3' || tab[i][j - 1] == '3')
|
||||
img->map.error = 1;
|
||||
if(tab[i + 1][j + 1] == '3' || tab[i + 1][j - 1] == '3')
|
||||
if (tab[i + 1][j + 1] == '3' || tab[i + 1][j - 1] == '3')
|
||||
img->map.error = 1;
|
||||
if(tab[i - 1][j + 1] == '3' || tab[i - 1][j - 1] == '3')
|
||||
if (tab[i - 1][j + 1] == '3' || tab[i - 1][j - 1] == '3')
|
||||
img->map.error = 1;
|
||||
if (img->map.error != 1)
|
||||
img->map.error = 0;
|
||||
@ -140,34 +140,30 @@ void find_angle(char c, t_data *img)
|
||||
int check_inner_utils(char *line, t_data *img)
|
||||
{
|
||||
int i;
|
||||
int player;
|
||||
int player;
|
||||
|
||||
i = 0;
|
||||
player = 0;
|
||||
while (line[i])
|
||||
{
|
||||
// if (line[i] == '0' || line[i] == '1' || line[i] == '3' || line[i] == '\n')
|
||||
// i++;
|
||||
if (line[i] == 'N' || line[i] == 'S' || line[i] == 'E' || line[i] == 'W')
|
||||
if (line[i] == 'N' || line[i] == 'S'
|
||||
|| line[i] == 'E' || line[i] == 'W')
|
||||
{
|
||||
find_angle(line[i], img);
|
||||
//img->player.x = (i - 1) * 64;
|
||||
img->player.x = i * 64 - 32;
|
||||
player++;
|
||||
}
|
||||
else if (line[i] != '3' && line[i] != '0' && line[i] != '1')
|
||||
return (100);
|
||||
// else
|
||||
// return (2);
|
||||
i++;
|
||||
}
|
||||
return (player);
|
||||
}
|
||||
|
||||
void check_inner(char **map, t_data *img)//fonction bizarre
|
||||
void check_inner(char **map, t_data *img)
|
||||
{
|
||||
int i;
|
||||
int player;
|
||||
int i;
|
||||
int player;
|
||||
|
||||
i = 0;
|
||||
player = 0;
|
||||
@ -176,21 +172,20 @@ void check_inner(char **map, t_data *img)//fonction bizarre
|
||||
player += check_inner_utils(map[i], img);
|
||||
if (player == 1 && !img->player.y)
|
||||
img->player.y = i * 64 - 32;
|
||||
//img->player.y = (i - 1) * 64;
|
||||
i++;
|
||||
}
|
||||
if (player == 0)
|
||||
img->map.error = 2;
|
||||
if (player > 1 && player < 100)//?????? pk 3 et -1?
|
||||
if (player > 1 && player < 100)
|
||||
img->map.error = 3;
|
||||
if (player >= 100)
|
||||
img->map.error = -1;
|
||||
}
|
||||
|
||||
void check_border(char **tab, t_data *img)
|
||||
void check_border(char **tab, t_data *img)
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
int i;
|
||||
int j;
|
||||
|
||||
i = 0;
|
||||
while (tab[i])
|
||||
@ -198,7 +193,8 @@ void check_border(char **tab, t_data *img)
|
||||
j = 0;
|
||||
while (tab[i][j])
|
||||
{
|
||||
if (tab[i][j] == '0' || tab[i][j] == 'W' || tab[i][j] == 'N' || tab[i][j] == 'S' || tab[i][j] == 'E')
|
||||
if (tab[i][j] == '0' || tab[i][j] == 'W' || tab[i][j] == 'N'
|
||||
|| tab[i][j] == 'S' || tab[i][j] == 'E')
|
||||
close_or_not(tab, i, j, img);
|
||||
j++;
|
||||
}
|
||||
@ -208,8 +204,8 @@ void check_border(char **tab, t_data *img)
|
||||
|
||||
void check_zero_one(char **split, t_data *img)
|
||||
{
|
||||
char **tmp;
|
||||
int i;
|
||||
char **tmp;
|
||||
int i;
|
||||
|
||||
i = 0;
|
||||
while (split[i])
|
||||
@ -222,12 +218,9 @@ void check_zero_one(char **split, t_data *img)
|
||||
img->map.y = i;
|
||||
tmp = malloc(sizeof(char *) * (i + 3));
|
||||
if (!tmp)
|
||||
{
|
||||
free_double(split);
|
||||
quit_game(img);
|
||||
}
|
||||
i = 0;
|
||||
while(i < img->map.y + 2)
|
||||
while (i < img->map.y + 2)
|
||||
{
|
||||
tmp[i] = charge_new(img, split, tmp);
|
||||
i++;
|
||||
@ -237,7 +230,7 @@ void check_zero_one(char **split, t_data *img)
|
||||
if (img->map.error == -1)
|
||||
{
|
||||
free_double(tmp);
|
||||
return;
|
||||
return ;
|
||||
}
|
||||
check_border(tmp, img);
|
||||
check_inner(tmp, img);
|
||||
@ -292,10 +285,10 @@ char **isafile(char **av, t_data *img)
|
||||
char **ret;
|
||||
int count;
|
||||
int pass;
|
||||
|
||||
|
||||
count = 0;
|
||||
get_map_size(av[1], img, &count, 0);
|
||||
ret = ft_calloc(sizeof(char*), count);
|
||||
ret = ft_calloc(sizeof(char *), count);
|
||||
if (!ret)
|
||||
quit_game(img);
|
||||
img->to_be_free.tab = ret;
|
||||
@ -312,12 +305,11 @@ char **isafile(char **av, t_data *img)
|
||||
return (0);
|
||||
}
|
||||
|
||||
int check_map(char **av, t_data *img)
|
||||
int check_map(char **av, t_data *img)
|
||||
{
|
||||
img->map.x = 0;
|
||||
img->map.y = 0;
|
||||
img->map.error = 0;
|
||||
|
||||
if (reverse_comp(av[1], ".cub") || (ft_strlen(av[1]) == ft_strlen(".cub")))
|
||||
{
|
||||
ft_exit("Error\nNot a valid file \".cub\"\n", img);
|
||||
@ -331,18 +323,8 @@ int check_map(char **av, t_data *img)
|
||||
if (img->map.error != 0)
|
||||
{
|
||||
error_msg(img);
|
||||
quit_game(img);//surely leak???
|
||||
quit_game(img);
|
||||
}
|
||||
verifie_texture_color(img);
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*int main(int ac, char **av)
|
||||
{
|
||||
t_root img;
|
||||
|
||||
if (check_map(av, &img))
|
||||
return (0);
|
||||
else
|
||||
printf("map is clean\n");
|
||||
}*/
|
||||
|
||||
53
srcs/parsing/utils_parsing.c
Normal file
53
srcs/parsing/utils_parsing.c
Normal file
@ -0,0 +1,53 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* utils_parsing.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/06/15 23:34:49 by apommier #+# #+# */
|
||||
/* Updated: 2022/06/15 23:38:38 by apommier ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "../../includes/Cub3D.h"
|
||||
|
||||
char next_space(char *str, int i)
|
||||
{
|
||||
while (str[i] == ' ')
|
||||
i++;
|
||||
return (str[i]);
|
||||
}
|
||||
|
||||
int next_space_index(char *str, int i)
|
||||
{
|
||||
while (str[i] == ' ')
|
||||
i++;
|
||||
return (i);
|
||||
}
|
||||
|
||||
char *transform_map(char **double_map, t_data *img)
|
||||
{
|
||||
char *map;
|
||||
int i;
|
||||
int j;
|
||||
int index;
|
||||
|
||||
i = -1;
|
||||
index = 0;
|
||||
img->map.size = img->map.x * img->map.y;
|
||||
map = ft_calloc(sizeof(char), img->map.size + 1);
|
||||
if (!map)
|
||||
quit_game(img);
|
||||
while (double_map[++i])
|
||||
{
|
||||
j = -1;
|
||||
while (double_map[i][++j])
|
||||
{
|
||||
map[i * img->map.x + j] = double_map[i][j];
|
||||
index++;
|
||||
}
|
||||
}
|
||||
img->map.simple_map = map;
|
||||
return (0);
|
||||
}
|
||||
@ -6,7 +6,7 @@
|
||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/06/15 18:48:45 by apommier #+# #+# */
|
||||
/* Updated: 2022/06/15 19:23:03 by apommier ### ########.fr */
|
||||
/* Updated: 2022/06/15 23:22:14 by apommier ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -35,6 +35,7 @@ void ft_error(char *error_msg)
|
||||
void ft_exit(char *str, t_data *img)
|
||||
{
|
||||
ft_putstr_fd(str, 2);
|
||||
|
||||
quit_game(img);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user