/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* cub3d_structs.h :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: rbousset +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/14 17:20:05 by rbousset #+# #+# */ /* Updated: 2020/02/14 17:20:06 by rbousset ### ########lyon.fr */ /* */ /* ************************************************************************** */ # ifndef CUB3D_STRUCTS_H # define CUB3D_STRUCTS_H #include #include typedef struct s_win { void *wlx; void *winptr; uint8_t inited; uint16_t x_max_size; uint16_t y_max_size; uint32_t x_size; uint32_t y_size; } t_win; typedef struct s_img { void *img; char *ptr; int bpp; int sizeline; int endian; int img_w; int img_h; int tex_x; int tex_y; } t_img; typedef struct s_rgb { int16_t r; int16_t g; int16_t b; } t_rgb; typedef struct s_sprite { int32_t s_screen_x; int32_t s_pos_x; int32_t s_pos_y; double s_x; double s_y; int32_t s_h; int32_t s_w; int32_t s_start_x; int32_t s_start_y; int32_t s_end_x; int32_t s_end_y; int32_t s_tex_y; double sprite_transform_x; double sprite_transform_y; double sprite_dist; double inv_c_m; } t_sprite; typedef struct s_player { float pos_x; float pos_y; float start_x; float start_y; float dir_x; float dir_y; float cam_x; float plane_x; float plane_y; } t_player; typedef struct s_ray { uint16_t line_h; float wall_dist; float mid_dist; float x_ray_pos; float y_ray_pos; float x_ray_dir; float y_ray_dir; float x_side_dist; float y_side_dist; float x_delta_dist; float y_delta_dist; int16_t wall_t; int16_t wall_b; uint8_t side; size_t sqx; size_t sqy; uint8_t hit; double wall_hit_x; double step_tex_v; } t_ray; typedef struct s_map { char *no_tex_path; char *so_tex_path; char *ea_tex_path; char *we_tex_path; char *sprite_path; char *nl_tex_path; char *nlevel_path; char *mapl; char **map; int8_t x_step; int8_t y_step; size_t map_w; size_t map_h; size_t line_chk; size_t map_start; uint8_t isspawn; uint8_t isnlvl; uint8_t scale; uint32_t nlx; uint32_t nly; } t_map; typedef struct s_cub { uint8_t w_side; uint8_t ishud; uint8_t walltexgood; uint16_t currlvl; uint16_t i; char errmsg[64]; int32_t key_input[5]; int (*key_ptr[6])(struct s_cub*); struct s_win *wlist; struct s_player *plist; struct s_map *mlist; struct s_ray rlist; struct s_img img; struct s_rgb f_rgb; struct s_rgb c_rgb; struct s_img tlist[6]; struct s_sprite sp_list; } t_cub; # endif