From: Dominik Kaiser Date: Wed, 15 May 2024 13:21:18 +0000 (+0200) Subject: Make collision functions more generic X-Git-Url: https://git.dkaiser.de/?a=commitdiff_plain;h=e5d9814f121ad378b2364806b2a4791e86654382;p=42%2Fso_long.git Make collision functions more generic --- diff --git a/include/so_long.h b/include/so_long.h index 4a3c924..1f25424 100644 --- a/include/so_long.h +++ b/include/so_long.h @@ -6,7 +6,7 @@ /* By: dkaiser tile_size); - wall.size.x = map->tile_size.x; - wall.size.y = map->tile_size.y; - return (check_collision(collider, wall)); + tile_collider.position = grid_to_screen_pos(tile, map->tile_size); + tile_collider.size.x = map->tile_size.x; + tile_collider.size.y = map->tile_size.y; + return (check_collision(collider, tile_collider)); } return (0); } @@ -89,13 +89,13 @@ void move_and_slide(t_actor *actor, t_tilemap *map, double delta_time) c.size = actor->size; c.position.x = actor->position.x + (actor->velocity.x * delta_time); c.position.y = actor->position.y; - if ((check_wall_collision(c, map) & (RIGHT | LEFT)) == 0) + if ((check_map_collision(c, map, WALL) & (RIGHT | LEFT)) == 0) actor->position.x = c.position.x; else actor->velocity.x = 0; c.position.x = actor->position.x; c.position.y = actor->position.y + (actor->velocity.y * delta_time); - if ((check_wall_collision(c, map) & (UP | DOWN)) == 0) + if ((check_map_collision(c, map, WALL) & (UP | DOWN)) == 0) actor->position.y = c.position.y; else actor->velocity.y = 0; @@ -104,7 +104,7 @@ void move_and_slide(t_actor *actor, t_tilemap *map, double delta_time) int is_on_floor(t_collider collider, t_tilemap *map) { collider.position.y += 5; - if (check_wall_collision(collider, map)) + if (check_map_collision(collider, map, WALL)) return (1); return (0); }