diff --git a/src/main.c b/src/main.c index fc7aee3..44355a8 100644 --- a/src/main.c +++ b/src/main.c @@ -70,7 +70,7 @@ void draw_line(t_cub3d_data *data, float start_angle) } } -t_direction angle_dir(float angle) +t_cardinal_dir angle_cardinal_dir(float angle) { if (angle >= g_southwest || (angle > g_south && angle < g_southeast)) return (SOUTH); @@ -81,9 +81,25 @@ t_direction angle_dir(float angle) return (WEST); } -t_direction player_dir(t_player player) +t_cardinal_dir player_cardinal_dir(t_player player) { - return (angle_dir(player.yaw)); + return (angle_cardinal_dir(player.yaw)); +} + +t_intercardinal_dir angle_intercardinal_dir(float angle) +{ + if (angle >= g_south && angle < g_east) + return (SOUTHEAST); + if (angle >= g_east && angle < g_north) + return (NORTHEAST); + if (angle >= g_north && angle < g_west) + return (NORTHWEST); + return (SOUTHWEST); +} + +t_intercardinal_dir player_intercardinal_dir(t_player player) +{ + return (angle_intercardinal_dir(player.yaw)); } int game_loop(t_cub3d_data *data) @@ -91,13 +107,22 @@ int game_loop(t_cub3d_data *data) mlx_destroy_image(data->mlx, data->img_data->img); data->img_data->img = mlx_new_image(data->mlx, WIDTH, HEIGHT); - if (player_dir(data->player) == SOUTH) + if (player_intercardinal_dir(data->player) == SOUTHEAST) + ft_printf("southeast "); + if (player_intercardinal_dir(data->player) == SOUTHWEST) + ft_printf("southwest "); + if (player_intercardinal_dir(data->player) == NORTHEAST) + ft_printf("northeast "); + if (player_intercardinal_dir(data->player) == NORTHWEST) + ft_printf("northwest "); + + if (player_cardinal_dir(data->player) == SOUTH) ft_printf("south\n"); - if (player_dir(data->player) == EAST) + if (player_cardinal_dir(data->player) == EAST) ft_printf("east\n"); - if (player_dir(data->player) == NORTH) + if (player_cardinal_dir(data->player) == NORTH) ft_printf("north\n"); - if (player_dir(data->player) == WEST) + if (player_cardinal_dir(data->player) == WEST) ft_printf("west\n"); float ray_angle = data->player.yaw - M_PI / 6; diff --git a/src/map/mapdata.h b/src/map/mapdata.h index d5960b4..7fa6bde 100644 --- a/src/map/mapdata.h +++ b/src/map/mapdata.h @@ -6,7 +6,7 @@ /* By: kcolin +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/07/17 14:58:19 by kcolin #+# #+# */ -/* Updated: 2025/07/22 12:36:53 by kcolin ### ########.fr */ +/* Updated: 2025/07/28 15:04:47 by kcolin ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,13 +15,21 @@ # include -typedef enum e_direction +typedef enum e_caridnal_dir { NORTH, SOUTH, EAST, WEST -} t_direction; +} t_cardinal_dir; + +typedef enum e_intercardinal_dir +{ + NORTHEAST, + SOUTHEAST, + NORTHWEST, + SOUTHWEST, +} t_intercardinal_dir; # define ERRLEN 1024 @@ -41,7 +49,7 @@ typedef struct s_mapdata bool isvalid; int startx; int starty; - t_direction startdirection; + t_cardinal_dir startdirection; char error[ERRLEN]; } t_mapdata;