aboutsummaryrefslogtreecommitdiffstats
path: root/inc/cub3d.h
blob: b1712c17c893112b1174551d9ec540ca4b5d654c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/* ************************************************************************** */
/*                                                                            */
/*                                                        :::      ::::::::   */
/*   cub3d.h                                            :+:      :+:    :+:   */
/*                                                    +:+ +:+         +:+     */
/*   By: rbousset <marvin@42.fr>                    +#+  +:+       +#+        */
/*                                                +#+#+#+#+#+   +#+           */
/*   Created: 2020/02/14 17:20:11 by rbousset          #+#    #+#             */
/*   Updated: 2020/02/14 17:20:12 by rbousset         ###   ########lyon.fr   */
/*                                                                            */
/* ************************************************************************** */

#	ifndef CUB3D_H
#	define CUB3D_H

#include <cub3d_defines.h>
#include <cub3d_structs.h>
#include <stddef.h>
#include <stdint.h>

/*
** ====== STRUCTS ======
*/

void		ft_init_funptr(t_cub *clist);
int8_t		ft_init_cub3d(t_cub *clist);
int			ft_init_winlx(t_cub *clist);
int			ft_init_winptr(t_cub *clist);
t_ray		ft_init_s_ray(void);
t_rgb		ft_init_rgb(void);
int8_t		ft_init_map(t_map *mlist);

/*
** ====== HOOKS ======
*/

void		ft_hooks_and_loops(t_win *wl, t_cub *cl);
int			ft_key_event(int keycode, t_cub *clist);
int			ft_key_release(int keycode, t_cub *clist);
int			ft_w_key(t_cub *clist);
int			ft_a_key(t_cub *clist);
int			ft_s_key(t_cub *clist);
int			ft_d_key(t_cub *clist);
int			ft_f1_key(t_cub *clist);
int			ft_left_key(t_cub *clist);
int			ft_right_key(t_cub *clist);
int			ft_click_close(int keycode, t_cub *clist);
int			ft_key_loop(t_cub *cl);
int32_t		ft_convert_keycode(const int32_t tmp_code);

/*
** ====== TEXTURES ======
*/

void		ft_wall_tex_init(t_cub *clist);
void		ft_choose_tex(t_cub *clist);
void		ft_calc_tex(t_cub *clist);

/*
** ====== DRAW ======
*/

void		ft_draw_square(int a, int b, int rgb, t_cub *clist);
void		ft_draw_map(char **map, t_cub *clist);
void		ft_draw_texture(t_cub *cl, int x, int y, int tex_y);
void		ft_draw_hud(t_cub *clist);
void		ft_draw_scene(t_cub *clist);
void		ft_draw_scene_bmp(t_cub *clist);
void		ft_draw_sprite(t_cub *cl, int i);
void		ft_draw_circle(float a, float b,
						int32_t color, t_cub *cl);
int8_t		ft_draw_verline(t_cub *cl, int32_t x,
							int32_t y1, int32_t y2);

/*
** ====== PARSING ======
*/

void		ft_parse_map(const char *map_path, t_cub *clist);
void		ft_get_player_spawn(t_player *plist, t_cub *clist);
void		ft_get_nlvl_pos(t_map *ml);
int8_t		ft_select_get(char **words, t_cub *clist);
int8_t		ft_get_screen_size(t_win *wlist);
int8_t		ft_get_res(char **words, t_cub *clist);
int8_t		ft_get_tex_no(char **words, t_cub *clist);
int8_t		ft_get_tex_so(char **words, t_cub *clist);
int8_t		ft_get_tex_ea(char **words, t_cub *clist);
int8_t		ft_get_tex_we(char **words, t_cub *clist);
int8_t		ft_get_sprite(char **words, t_cub *clist);
int8_t		ft_get_f_color(char **words, t_cub *clist);
int8_t		ft_get_c_color(char **words, t_cub *clist);
int8_t		ft_get_path_nl(char **words, t_cub *clist);
int8_t		ft_get_tex_nl(char **words, t_cub *clist);
int8_t		ft_get_music(char **words, t_cub *clist);
size_t		ft_get_map_h(char **map);
size_t		ft_get_map_w(char **map);
int8_t		ft_check_map_line(char *line, uint8_t l, t_cub *clist);
int8_t		ft_check_ext(const char *filep, const char *ext);
int8_t		ft_check_not_found(const char *path);
int			ft_get_map_first_line(char *line, t_cub *clist);
int			ft_get_map_core(int fd, t_cub *clist);
void		ft_check_map_surrounds(t_map *ml, t_cub *cl);
int			ft_check_missing(t_cub *clist);
int			ft_missing_error(const char *err, t_cub *clist);
int			ft_map_error(const char *errmsg, t_cub *clist);
size_t		ft_get_line_len(char *line);

/*
** ====== ARGS ======
*/

uint8_t		ft_check_map_arg(int argc, const char *argv[]);
uint8_t		ft_use_args(int argc, const char *argv[], t_cub *clist);

/*
** ====== OTHER ======
*/

void		ft_set_minimap_scale(t_cub *clist);
void		*ft_music_thread(void *vargp);
void		ft_detect(t_cub *cl);
void		ft_castray(t_cub *cl);
int8_t		ft_save_to_bmp(void *img, t_cub *cl);
int			ft_error(const char *errmsg, t_cub *clist);
uint8_t		ft_free_words(char **words);
int8_t		ft_warp_level(t_cub *cl);
int			ft_exit(uint8_t exit_code, t_cub *clist);
uint32_t	ft_rgb_to_hex(t_rgb rgb);

#	endif