/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* types.h :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: qmennen +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/04/15 15:52:44 by qmennen #+# #+# */ /* Updated: 2025/05/06 19:20:58 by qmennen ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef TYPES_H #define TYPES_H #include "cub3d.h" typedef enum TILE { TILE_VISITED = -2, TILE_VOID = -1, TILE_EMPTY = 0, TILE_WALL = 1, TILE_PLAYER = 2, } t_tile; typedef struct s_vec2 { double x; double y; } t_vec2; typedef struct s_vec2_int { int x; int y; } t_vec2_int; typedef struct s_vec2_line { t_vec2 support; t_vec2 dir; } t_vec2_line; typedef struct s_player { t_vec2 pos; t_vec2 dir; t_vec2 camera; double speed; double fov; int steps; } t_player; typedef struct s_map { unsigned int width; unsigned int height; t_tile **grid; char *NO_texture; char *SO_texture; char *WE_texture; char *EA_texture; mlx_texture_t *texture_floor; mlx_texture_t *texture_ceiling; mlx_texture_t *textures[4]; unsigned int floor_color; unsigned int ceiling_color; } t_map; typedef struct s_keyboard { int keys[NUM_KEYS]; int last_keys[NUM_KEYS]; } t_keyboard; typedef struct s_screen { mlx_t *mlx; mlx_image_t *img; mlx_image_t *minimap; mlx_image_t *background; unsigned int width; unsigned int height; } t_screen; typedef enum e_side { SIDE_NORTH, SIDE_SOUTH, SIDE_WEST, SIDE_EAST, } t_side; typedef struct s_render { double perp_dist; t_side side; double wall_x; } t_render; typedef struct s_game { t_map *map; t_player *player; t_screen *screen; t_keyboard *keyboard; } t_game; #endif