cub3d/src/game.c
2025-04-17 19:25:40 +02:00

57 lines
1.8 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* game.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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);
}