summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorDominik Kaiser2024-06-10 16:40:28 +0200
committerGitHub2024-06-10 16:40:28 +0200
commit568827dc74eb4e2a7719d7cfbd48083facf85cc3 (patch)
treedd896d064a49bb399b7c942fde49ae0bf892263b /src/main.c
parent7b230503231e154c5400413b4f9b87dd6fcd8304 (diff)
parentff7d60ad044e98e1e2e14170b5804d141856a949 (diff)
downloadso_long-master.tar.gz
so_long-master.zip
Merge map-checker into masterHEADmaster
Map checker
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c34
1 files changed, 29 insertions, 5 deletions
diff --git a/src/main.c b/src/main.c
index fca5cf0..10e68bc 100644
--- a/src/main.c
+++ b/src/main.c
@@ -6,22 +6,46 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/08 14:14:13 by dkaiser #+# #+# */
-/* Updated: 2024/05/15 17:31:46 by dkaiser ### ########.fr */
+/* Updated: 2024/06/10 16:37:21 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
+#include "libft.h"
#include "so_long.h"
+static void cleanup(t_game *game);
+static int error(char *msg);
+
int main(int argc, char *argv[])
{
t_game game;
if (argc != 2)
- return (1);
+ return (error("Usage: ./so_long <map>"));
if (load_map_from_file(&game.map, argv[1]))
- return (1);
+ return (error("Not a valid map."));
+ if (check_map(&game.map))
+ {
+ free(game.map.tiles);
+ return (error("Not a valid map."));
+ }
init(&game);
- draw_walls(&game);
- draw_exit(&game);
+ draw_map(&game);
mlx_loop(game.mlx);
+ cleanup(&game);
+}
+
+static void cleanup(t_game *game)
+{
+ if (game->map.tiles)
+ free(game->map.tiles);
+ if (game->mlx)
+ mlx_terminate(game->mlx);
+}
+
+static int error(char *msg)
+{
+ ft_putendl_fd("Error", 2);
+ ft_putendl_fd(msg, 2);
+ return (1);
}