/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* game.h :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/09/11 16:38:40 by adjoly #+# #+# */ /* Updated: 2024/10/28 14:08:09 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef GAME_H # define GAME_H # include # include # include # include # include # include # include # include "settings.h" # include "vectwo.h" # include "../parsing.h" typedef struct s_map { char **arr; char p_side; t_coord p_spawnpoint; t_coord size; } t_map; typedef struct s_render { t_map *world; void *mlx; void *win; void *texture[4]; } t_render; typedef struct s_player { t_vec2 coord; t_coord map_coords; double direction; } t_player; /** * @brief This function is used to handle keypress * * @param key The key code of the pressed key * @param mlx The mlx pointer(internal to MacroLibX) * * @return Minilibx go brrrr(useless always 0) */ int key_hook(int key, void *param); /** * @brief This function is here to change the direction of the player * by setting the t_player->direction and check overflow to be * sure it stays between 0 and 2pi because it is expressed in * radians * * @param speed The speed a which the player rotate * @param clockwise The direction which the player rotate * @param player A pointer to a t_player struct */ void change_direction(double speed, bool clockwise, t_player *player); #endif