Cub3D
Loading...
Searching...
No Matches
init_game.c
1/* ************************************************************************** */
2/* */
3/* ::: :::::::: */
4/* init_game.c :+: :+: :+: */
5/* +:+ +:+ +:+ */
6/* By: hnagasak <hnagasak@student.42tokyo.jp> +#+ +:+ +#+ */
7/* +#+#+#+#+#+ +#+ */
8/* Created: 2024/08/26 01:50:44 by kamitsui #+# #+# */
9/* Updated: 2024/12/21 09:42:19 by kamitsui ### ########.fr */
10/* */
11/* ************************************************************************** */
12
13#include "cub3d.h"
14
15static void destroy_and_free(t_game *game)
16{
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);
20 free(game->mlx);
21}
22 //close(game->debug.fd);
23
29static int arg_check(int argc, char *argv[])
30{
31 int len;
32 char *ext;
33 char *filename;
34
35 if (argc != 2)
36 {
37 ft_eprintf("%s%s\n", ERR_PROMPT, EMSG_ARG_COUNT);
38 return (EXIT_FAILURE);
39 }
40 filename = argv[1];
41 len = ft_strlen(filename);
42 ext = &filename[len - 4];
43 if (ft_strncmp(".cub", ext, 4))
44 {
45 ft_eprintf("%s%s\n", ERR_PROMPT, EMSG_FILE_EXT);
46 return (EXIT_FAILURE);
47 }
48 return (EXIT_SUCCESS);
49}
50
54int init_game(t_game *game, int argc, char *argv[])
55{
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)
61 {
62 mlx_destroy_window(game->mlx, game->win);
63 free(game->mlx);
64 return (EXIT_FAILURE);
65 }
66 if (init_cub_contents(game, argv[1]) != EXIT_SUCCESS)
67 {
68 destroy_and_free(game);
69 return (EXIT_FAILURE);
70 }
71 return (EXIT_SUCCESS);
72}
73// Debug ON
74//int init_game(t_game *game, int argc, char *argv[])
75//{
76// if (arg_check(argc, argv) != EXIT_SUCCESS)
77// return (EXIT_FAILURE);
78// if (init_debug_info(game) != EXIT_SUCCESS)
79// return (EXIT_FAILURE);
80// if (init_mlx_window(game) != EXIT_SUCCESS)
81// {
82// //close(game->debug.fd);
83// return (EXIT_FAILURE);
84// }
85// if (init_mlx_image(game) != EXIT_SUCCESS)
86// {
87// mlx_destroy_window(game->mlx, game->win);
88// free(game->mlx);
89// //close(game->debug.fd);
90// return (EXIT_FAILURE);
91// }
92// if (init_cub_contents(game, argv[1]) != EXIT_SUCCESS)
93// {
94// destroy_and_free(game);
95// return (EXIT_FAILURE);
96// }
97// return (EXIT_SUCCESS);
98//}
main game
Definition type_cub3d.h:264