blob: ebea0f71347ed93c25183b09a137ed5c46078fee (
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* cub3d_structs.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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 <stddef.h>
#include <stdint.h>
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 *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;
} t_map;
typedef struct s_cub
{
uint8_t w_side;
uint8_t ishud;
char errmsg[40];
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[5];
struct s_sprite sp_list;
} t_cub;
# endif
|