]> git.dkaiser.de - 42/so_long.git/commitdiff
Exit game when reaching the exit
authorDominik Kaiser <dkaiser@1-C-7.42heilbronn.de>
Wed, 15 May 2024 15:56:01 +0000 (17:56 +0200)
committerDominik Kaiser <dkaiser@1-C-7.42heilbronn.de>
Wed, 15 May 2024 15:56:01 +0000 (17:56 +0200)
src/player_process.c

index c285c4d02dcb027557270aa84eca06bb4c98db3f..0d4f0c345741293105e1d9bc9790c497478de491 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: dkaiser <dkaiser@student.42heilbronn.de    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2024/05/14 12:40:05 by dkaiser           #+#    #+#             */
-/*   Updated: 2024/05/15 16:55:29 by dkaiser          ###   ########.fr       */
+/*   Updated: 2024/05/15 17:53:54 by dkaiser          ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -14,6 +14,7 @@
 #include "so_long.h"
 
 static t_vector        get_direction_from_input(t_game *game);
+static int check_exit(t_actor *player, t_tilemap *map);
 
 void   player_process(t_game *game)
 {
@@ -27,9 +28,20 @@ void player_process(t_game *game)
                        (t_collider){player->position,
                        player->size}, &game->map))
                player->velocity.y = -1000;
+       if (check_exit(player, &game->map))
+               exit(0);
        move_and_slide(player, &game->map, game->mlx->delta_time);
 }
 
+static int check_exit(t_actor *player, t_tilemap *map)
+{
+       t_collider player_collider;
+
+       player_collider = (t_collider){player->position, player->size};
+       return (check_map_collision(player_collider, map, EXIT));
+}
+
+
 static t_vector        get_direction_from_input(t_game *game)
 {
        t_vector        result;