diff --git a/src/cub3d_data.h b/src/cub3d_data.h index 4e8553f..43d1389 100644 --- a/src/cub3d_data.h +++ b/src/cub3d_data.h @@ -6,7 +6,7 @@ /* By: kcolin +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/07/17 14:59:37 by kcolin #+# #+# */ -/* Updated: 2025/09/30 17:32:50 by tchampio ### ########.fr */ +/* Updated: 2025/10/01 13:50:59 by tchampio ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/src/hud/load_texture.c b/src/hud/load_texture.c index 1aca228..b8fbb02 100644 --- a/src/hud/load_texture.c +++ b/src/hud/load_texture.c @@ -6,7 +6,7 @@ /* By: tchampio +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/09/03 17:02:08 by tchampio #+# #+# */ -/* Updated: 2025/09/30 17:35:31 by tchampio ### ########.fr */ +/* Updated: 2025/10/01 13:51:03 by tchampio ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/src/map/collision.c b/src/map/collision.c index 8add28c..a0259fa 100644 --- a/src/map/collision.c +++ b/src/map/collision.c @@ -6,7 +6,7 @@ /* By: kcolin +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/08/06 11:25:05 by kcolin #+# #+# */ -/* Updated: 2025/09/30 17:43:36 by tchampio ### ########.fr */ +/* Updated: 2025/10/01 13:43:22 by tchampio ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/src/raycast/ray.c b/src/raycast/ray.c index d98e552..d4e33dd 100644 --- a/src/raycast/ray.c +++ b/src/raycast/ray.c @@ -6,7 +6,7 @@ /* By: kcolin +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/07/31 11:55:41 by kcolin #+# #+# */ -/* Updated: 2025/09/30 23:05:11 by tchampio ### ########.fr */ +/* Updated: 2025/10/01 13:50:08 by tchampio ### ########.fr */ /* */ /* ************************************************************************** */ @@ -60,7 +60,7 @@ void ray_calculate_step(t_ray *ray, t_player *player) void handle_door_ray(t_ray *ray, t_cub3d_data *data) { - if (data->map->map[ray->map_y][ray->map_x] == 'd' && ray->wall_dist < 1.5) + if ((data->map->map[ray->map_y][ray->map_x] == 'd' || data->map->map[ray->map_y][ray->map_x] == 'i') && ray->wall_dist < 1.5) { ft_printf("map[%d][%d] = door reachable\n", ray->map_y, ray->map_x); data->player.closest_door[0] = ray->map_x; @@ -69,7 +69,10 @@ void handle_door_ray(t_ray *ray, t_cub3d_data *data) if (data->keypresses.is_f_pressed) { data->keypresses.is_f_pressed = false; - data->map->map[ray->map_y][ray->map_x] = 'i'; + if (data->map->map[ray->map_y][ray->map_x] == 'd') + data->map->map[ray->map_y][ray->map_x] = 'i'; + else if (data->map->map[ray->map_y][ray->map_x] == 'i') + data->map->map[ray->map_y][ray->map_x] = 'd'; } } else @@ -86,6 +89,8 @@ void calculate_wall_dist(t_ray *ray, int x, t_cub3d_data *data) { if (x == WIDTH / 2) check_for_zombies(ray, data); + if (!blocks_view(data->map, ray->map_x, ray->map_y) && data->map->map[ray->map_y][ray->map_x] == 'i') + handle_door_ray(ray, data); if (ray->side_dist_x < ray->side_dist_y) { ray->side_dist_x += ray->delta_dist_x; diff --git a/src/raycast/walls.c b/src/raycast/walls.c index c653c77..22c34d5 100644 --- a/src/raycast/walls.c +++ b/src/raycast/walls.c @@ -6,7 +6,7 @@ /* By: kcolin +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/07/31 13:17:39 by kcolin #+# #+# */ -/* Updated: 2025/09/30 17:41:52 by tchampio ### ########.fr */ +/* Updated: 2025/10/01 13:36:58 by tchampio ### ########.fr */ /* */ /* ************************************************************************** */