From 69765e686473bbd920221eda728b2cb83a6e516d Mon Sep 17 00:00:00 2001 From: Dominik Kaiser Date: Fri, 10 May 2024 15:53:31 +0200 Subject: Add tilemap.c and read map size --- src/tilemap.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/tilemap.c (limited to 'src') diff --git a/src/tilemap.c b/src/tilemap.c new file mode 100644 index 0000000..c0c0524 --- /dev/null +++ b/src/tilemap.c @@ -0,0 +1,67 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* tilemap.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser grid_size = get_map_size_from_file(fd); + close(fd); + if (tilemap->grid_size.x < 0 || tilemap->grid_size.y < 0) + return (1); + return (0); +} + +static t_ivector get_map_size_from_file(int fd) +{ + t_ivector result; + char *next_line; + + result.x = 0; + result.y = 0; + next_line = get_next_line(fd); + while (next_line) + { + if (!result.x) + result.x = get_line_len(next_line); + else if (result.x != get_line_len(next_line)) + { + free(next_line); + result.x = -1; + result.y = -1; + return (result); + } + result.y++; + free(next_line); + next_line = get_next_line(fd); + } + return (result); +} + +static int get_line_len(char *line) +{ + int len; + + len = 0; + while (line[len] && line[len] != '\n') + len++; + return (len); +} -- cgit v1.2.3