15static void destroy_and_free(
t_game *game)
17 mlx_destroy_window(game->mlx, game->win);
18 mlx_destroy_image(game->mlx, game->img_3d.img);
19 mlx_destroy_image(game->mlx, game->img_2d.img);
29static int arg_check(
int argc,
char *argv[])
37 ft_eprintf(
"%s%s\n", ERR_PROMPT, EMSG_ARG_COUNT);
38 return (EXIT_FAILURE);
41 len = ft_strlen(filename);
42 ext = &filename[len - 4];
43 if (ft_strncmp(
".cub", ext, 4))
45 ft_eprintf(
"%s%s\n", ERR_PROMPT, EMSG_FILE_EXT);
46 return (EXIT_FAILURE);
48 return (EXIT_SUCCESS);
54int init_game(
t_game *game,
int argc,
char *argv[])
56 if (arg_check(argc, argv) != EXIT_SUCCESS)
57 return (EXIT_FAILURE);
58 if (init_mlx_window(game) != EXIT_SUCCESS)
59 return (EXIT_FAILURE);
60 if (init_mlx_image(game) != EXIT_SUCCESS)
62 mlx_destroy_window(game->mlx, game->win);
64 return (EXIT_FAILURE);
66 if (init_cub_contents(game, argv[1]) != EXIT_SUCCESS)
68 destroy_and_free(game);
69 return (EXIT_FAILURE);
71 return (EXIT_SUCCESS);