/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* game.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: qmennen +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/04/15 15:46:08 by qmennen #+# #+# */ /* Updated: 2025/04/17 19:24:14 by qmennen ### ########.fr */ /* */ /* ************************************************************************** */ #include "cub3d.h" int game_create(t_game **game) { *game = malloc(sizeof(t_game)); if (!game) return (FAILURE); (*game)->player = NULL; (*game)->map = NULL; (*game)->screen = screen_create(); if ((*game)->screen == NULL) return (FAILURE); if (((*game)->screen->mlx == NULL) || ((*game)->screen->img == NULL)) return (FAILURE); mlx_image_to_window((*game)->screen->mlx, (*game)->screen->img, 0, 0); return (SUCCESS); } void game_loop(void *param) { t_game *game; game = (t_game *)param; render_clear(game->screen); render_entities(game); render_map(game->screen, game->map); } void game_terminate(t_game *game) { if (game->screen) { mlx_delete_image(game->screen->mlx, game->screen->img); mlx_close_window(game->screen->mlx); mlx_terminate(game->screen->mlx); free(game->screen); } if (game->player) free(game->player); if (game->map) map_free(game->map); free(game); exit(EXIT_SUCCESS); }