42_cube3D/game/game.h

109 lines
2.3 KiB
C
Raw Normal View History

2023-04-26 09:45:21 -04:00
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* game.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/04/26 15:29:34 by erey-bet #+# #+# */
/* Updated: 2023/05/04 13:27:54 by erey-bet ### ########.fr */
2023-04-26 09:45:21 -04:00
/* */
/* ************************************************************************** */
#ifndef GAME_H
# define GAME_H
# include "../cube3D.h"
2023-05-02 09:39:16 -04:00
# include <math.h>
2023-05-03 11:48:36 -04:00
# include <stdlib.h>
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
# include <time.h>
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
/* FAUT REMOVE */
2023-05-02 09:39:16 -04:00
# define WIDTH 1920
# define HEIGHT 1080
# define MOVESPEED 0.10
# define ROTATIONSPEED 60
2023-04-26 09:45:21 -04:00
typedef struct s_player
{
double pos_x;
double pos_y;
2023-05-02 09:39:16 -04:00
double dir_x;
double dir_y;
double pla_x;
double pla_y;
2023-04-26 09:45:21 -04:00
} t_ply;
2023-05-02 09:39:16 -04:00
typedef struct s_raycast
{
2023-05-02 10:58:55 -04:00
double dir_x;
double dir_y;
2023-05-02 09:39:16 -04:00
} t_ray;
2023-05-02 10:58:55 -04:00
typedef struct s_dda
{
int map_x;
int map_y;
double side_dist_x;
double side_dist_y;
double delta_dist_x;
double delta_dist_y;
double perp_wall_dist;
int step_x;
int step_y;
int hit;
int side;
2023-05-03 06:45:40 -04:00
int line_height;
int draw_start;
int draw_end;
2023-05-02 10:58:55 -04:00
} t_dda;
2023-04-26 09:45:21 -04:00
typedef struct s_game
{
mlx_t *mlx;
mlx_image_t *window;
2023-05-03 11:48:36 -04:00
t_ply ply;
t_map map;
t_ray ray;
2023-04-26 09:45:21 -04:00
} t_game;
/* INIT */
2023-05-03 11:48:36 -04:00
void init(t_map map, t_game *game);
/* MANAGE */
void manage(mlx_key_data_t keydata, void *param);
/* KEYS */
2023-05-03 11:48:36 -04:00
int manage_keys(mlx_key_data_t keydata, t_game *game);
/* RAYCASTING */
2023-05-03 11:48:36 -04:00
int raycasting(t_game *game);
2023-05-03 11:48:36 -04:00
/* DDA ALGO */
void dda(t_game *game, int x);
2023-04-26 09:45:21 -04:00
#endif