-
Notifications
You must be signed in to change notification settings - Fork 0
/
so_long.h
138 lines (122 loc) · 3.44 KB
/
so_long.h
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
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* so_long.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: rbourgea <rbourgea@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/31 14:22:30 by rbourgea #+# #+# */
/* Updated: 2021/09/07 19:35:13 by rbourgea ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef SO_LONG_H
# define SO_LONG_H
# include <stdio.h>
# include <stdlib.h>
# include <unistd.h>
# include <stdint.h>
# include <fcntl.h>
# include "./libft/libft.h"
# include <mlx.h>
# define TEX_PLAYER "./textures/iop.xpm"
# define TEX_WALL "./textures/tree.xpm"
# define TEX_COLLECT "./textures/dofawa.xpm"
# define TEX_EXIT "./textures/zaap.xpm"
# define TEX_ZERO "./textures/grass.xpm"
# define TEX_ENEMY "./textures/bouftou.xpm"
# define TEX_PLAYER2 "./textures/iop2.xpm"
//# define TEX_PLAYER3 "./textures/iop3.xpm"
//# define TEX_PLAYER4 "./textures/iop4.xpm"
# if defined (__APPLE__) && (__MACH__)
# define KEY_ESC 53
# define KEY_W 13
# define KEY_A 0
# define KEY_S 1
# define KEY_D 2
# define RED_CROSS 17
# else
# define KEY_ESC 65307
# define KEY_W 119
# define KEY_S 115
# define KEY_A 97
# define KEY_D 100
# define RED_CROSS 33
# endif
# define SUCCESS 0
# define FAILURE 1
typedef struct s_check
{
int read;
char *line;
int len;
int prev_len;
int fd;
int i;
} t_check;
typedef struct s_img {
void *img;
char *addr;
int bits_per_pixel;
int height;
int width;
int line_len;
int endian;
} t_img;
typedef struct s_mouv
{
int x;
int y;
} t_mouv;
typedef struct s_key
{
int a;
int w;
int s;
int d;
int dir;
} t_key;
typedef struct s_vars
{
int fail;
void *mlx;
void *win;
char **map;
int map_x_len;
int map_y_len;
int collect;
t_key *key;
t_mouv *mouv;
t_img *img;
t_img tex[9];
int counter;
} t_vars;
int check_is_file(char *av, t_vars *vars);
int event_loop(t_vars *vars);
int key_press(int keycode, t_vars *vars);
int key_release(int keycode, t_vars *vars);
int key_hook(int keycode);
t_key *init_key(void);
int __exit__(char *msg, t_vars *vars, int ret);
int __exitc__(int set, t_vars *vars, int ret);
void pixel_put_color(t_vars *vars, int x, int y, unsigned int color);
void draw_pixe(t_vars *vars);
t_check check_is_map(char *av, t_vars *vars);
void draw_one_pixe(t_vars *vars, int i, int x_index, int y_index);
void draw_map(t_vars *vars);
void parsing(char *av, t_vars *vars);
int main(int ac, char **av);
void draw_player(t_vars *vars);
void tex_all(t_vars *vars);
void counter_bonus(t_vars *vars);
void free_(void *vars);
void set_tex(char *path, t_vars *vars, t_img *tex);
void data_mouv(t_vars *vars);
void bonus_key(int keycode, t_vars *vars);
void player_mouv(t_vars *vars);
int event_loop(t_vars *vars);
int key_event(t_vars *vars);
void data_mouv2(t_vars *vars, int i);
int check_is_file(char *av, t_vars *vars);
void play_loop(int *nbr, int r, t_vars *vars);
void free_vars(t_vars *vars);
#endif