diff options
Diffstat (limited to 'parse')
| -rw-r--r-- | parse/parse.c | 26 | ||||
| -rw-r--r-- | parse/parse_check.c | 12 |
2 files changed, 17 insertions, 21 deletions
diff --git a/parse/parse.c b/parse/parse.c index 84a8957..3eb8846 100644 --- a/parse/parse.c +++ b/parse/parse.c @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/11/15 09:29:21 by cacharle #+# #+# */ -/* Updated: 2020/01/11 11:29:45 by cacharle ### ########.fr */ +/* Updated: 2020/01/11 12:59:58 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,32 +19,26 @@ t_state *parse(char *filename) t_state *state; if ((state = state_new_empty()) == NULL) - return (NULL); + return (error_put_return("create empty state")); if ((lines = get_file_lines(filename)) == NULL) - return (state_destroy(state)); - /* for (int i = 0; lines[i]; i++) */ - /* printf("%d [%s]\n", i, lines[i]); */ + return (error_put_return_state_destroy("read .cub file", state)); i = -1; while (lines[++i] != NULL) { if (*lines[i] == '1') break ; if (!parse_line(state, lines[i])) - { - helper_free_splited(lines); - return (state_destroy(state)); - } + return (error_put_return_lines_state_destroy( + "parse configuration", state, lines)); } if ((state = parse_map(state, lines + i)) == NULL) - { - helper_free_splited(lines); - return (state_destroy(state)); - } + return (error_put_return_lines_state_destroy( + "parse map", state, lines)); helper_free_splited(lines); return (state); } -char **get_file_lines(char *filename) +char **get_file_lines(char *filename) { int fd; int ret; @@ -81,7 +75,7 @@ static t_option_parser g_option_parsers[] = #define OPTIONS_PARSERS_SIZE (sizeof(g_option_parsers) / sizeof(t_option_parser)) -t_bool parse_line(t_state *state, char *line) +t_bool parse_line(t_state *state, char *line) { int i; @@ -115,7 +109,7 @@ t_state *parse_map(t_state *state, char **lines) return (state); } -t_cell *create_map_row(char *line) +t_cell *create_map_row(char *line) { int i; t_cell *row; diff --git a/parse/parse_check.c b/parse/parse_check.c index 7bcfc8b..a65d74a 100644 --- a/parse/parse_check.c +++ b/parse/parse_check.c @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/01/11 10:59:15 by cacharle #+# #+# */ -/* Updated: 2020/01/11 11:15:04 by cacharle ### ########.fr */ +/* Updated: 2020/01/11 13:03:33 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,19 +15,21 @@ t_state *parse_check(t_state *state) { int i; - int j; - int player_count; + /* int j; */ + /* int player_count; */ i = -1; while (++i < state->map_width) if (state->map[0][i] != CELL_WALL || state->map[state->map_height - 1][i] != CELL_WALL) - return (state_destroy(state)); + return (error_put_return_state_destroy( + "validate map without borders", state)); i = -1; while (++i < state->map_height) if (state->map[i][0] != CELL_WALL || state->map[i][state->map_width - 1] != CELL_WALL) - return (state_destroy(state)); + return (error_put_return_state_destroy( + "validate map without borders", state)); // maybe not necessary /* player_count = 0; */ /* i = -1; */ |
