106 lines
2.1 KiB
C
106 lines
2.1 KiB
C
/* ************************************************************************** */
|
|
/* */
|
|
/* :::::::: */
|
|
/* types.h :+: :+: */
|
|
/* +:+ */
|
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
|
/* +#+ */
|
|
/* Created: 2025/04/15 15:52:44 by qmennen #+# #+# */
|
|
/* Updated: 2025/05/04 16:53:48 by whaffman ######## odam.nl */
|
|
/* */
|
|
/* ************************************************************************** */
|
|
|
|
#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
|
|
{
|
|
float x;
|
|
float 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;
|
|
float speed;
|
|
float fov;
|
|
} 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;
|
|
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;
|
|
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
|
|
{
|
|
float perp_dist;
|
|
t_side side;
|
|
float wall_x;
|
|
} t_render;
|
|
|
|
typedef struct s_game
|
|
{
|
|
t_map *map;
|
|
t_player *player;
|
|
t_screen *screen;
|
|
t_keyboard *keyboard;
|
|
} t_game;
|
|
|
|
#endif
|