fix: missing key

This commit is contained in:
Camille Chauvet 2023-05-16 12:47:04 +00:00
parent 4c31d80a72
commit 7f2a0b4a0e
4 changed files with 40 additions and 11 deletions

View File

@ -75,9 +75,9 @@ int map_parsing(const char *path, t_map *map)
char ***header;
size_t header_size;
ft_bzero(map, sizeof(t_map));
if (parsing_meta(path))
return (1);
ft_bzero(map, sizeof(t_map));
file_content = read_map(path);
if (file_content == NULL)
{

View File

@ -154,7 +154,7 @@ int body_is_valid(t_map *map)
}
else if (error == 2)
{
ft_eprintf("map: spawn position: not define");
ft_eprintf("map: spawn position: not defined");
return (0);
}
map->direction = map->map[(int) map->ply_y][(int) map->ply_x];

View File

@ -1,4 +1,5 @@
#include "./parsing_private.h"
#include "map.h"
static int set_texture(t_map *map, int token, const char *key, char *value)
{
@ -66,6 +67,25 @@ static int set_color(long long *color, const char *key, char *value)
return (*color == -1);
}
int check_header_is_complete(t_map *map)
{
if (map->img_path[0] == NULL)
ft_eprintf("map: incomplete: Nord texture is missing");
else if (map->img_path[0] == NULL)
ft_eprintf("map: incomplete: WEST texture is missing");
else if (map->img_path[0] == NULL)
ft_eprintf("map: incomplete: SOUTH texture is missing");
else if (map->img_path[0] == NULL)
ft_eprintf("map: incomplete: EAST texture is missing");
else if (map->color_bot == -1)
ft_eprintf("map: incomplete: floor color is missing");
else if (map->color_top == -1)
ft_eprintf("map: incomplete: roof color is missing");
else
return (0);
return (1);
}
int header_is_valid(char ***header, t_map *map)
{
size_t i;
@ -80,15 +100,24 @@ int header_is_valid(char ***header, t_map *map)
while (i < ft_tablen((const void **) header))
{
token = get_token(header[i][0]);
if (token > 0 && token < 5
&& set_texture(map, token, header[i][0], header[i][1]))
return (0);
else if ((token == 5 && set_color(&map->color_bot,
if (token > 0 && token < 5)
{
if (set_texture(map, token, header[i][0], header[i][1]))
return (1);
}
else if (token == 5)
{
if (set_color(&map->color_bot,
header[i][0], header[i][1]))
|| (token == 6 && set_color(&map->color_top,
header[i][0], header[i][1])))
return (0);
return (1);
}
else if (token == 6)
{
if (set_color(&map->color_top,
header[i][0], header[i][1]))
return (1);
}
i++;
}
return (!map->img_path[0] || !map->img_path[1] || !map->img_path[2]|| !map->img_path[3] || map->color_top == -1 || map->color_bot == -1);
return (check_header_is_complete(map));
}

View File

@ -8,7 +8,7 @@ static int name_check(const char *path)
if (len < 4
|| (ft_strcmp(".cub", path + len - 4) != 0))
{
ft_eprintf("map: name doesn't finished by .cub");
ft_eprintf("map: name doesn't finish by .cub");
return (1);
}
return (0);