42_solong/bonus/solong.h

68 lines
2.1 KiB
C
Raw Normal View History

2022-12-22 11:41:31 -05:00
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* solong.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
2023-01-04 14:07:13 -05:00
/* Created: 2023/01/04 16:20:03 by cchauvet #+# #+# */
2023-01-19 07:41:58 -05:00
/* Updated: 2023/01/19 13:40:52 by cchauvet ### ########.fr */
2022-12-22 11:41:31 -05:00
/* */
/* ************************************************************************** */
#ifndef SOLONG_H
# define SOLONG_H
2023-01-16 12:38:47 -05:00
# include "../libftx/libftx.h"
2023-01-04 14:07:13 -05:00
# define XPM_PATH "./textures/"
# include <unistd.h>
# include <fcntl.h>
2023-01-16 12:38:47 -05:00
# include "../minilibx-linux/mlx.h"
2023-01-19 07:41:58 -05:00
# define CASE_SIZE 128
2023-01-06 13:37:36 -05:00
# define XPM_HEADER "\nstatic char * XFACE[] = {\""
2023-01-19 07:41:58 -05:00
# define RENDER_DISTANCE 4
# define NB_COLORS 100
# define HEX "0123456789abcdef"
2023-01-19 07:41:58 -05:00
typedef struct s_square
2023-01-04 14:07:13 -05:00
{
2022-12-22 11:41:31 -05:00
char *color;
2023-01-04 14:07:13 -05:00
size_t size;
2023-01-19 07:41:58 -05:00
} t_square;
2023-01-06 13:37:36 -05:00
2023-01-19 07:41:58 -05:00
typedef struct s_map
2023-01-06 13:37:36 -05:00
{
size_t x_len;
size_t y_len;
size_t nb_collectable;
char **patern;
2023-01-09 14:41:06 -05:00
size_t player_pos[2];
size_t exit_pos[2];
2023-01-19 07:41:58 -05:00
} t_map;
2023-01-06 13:37:36 -05:00
2023-01-19 07:41:58 -05:00
typedef struct s_data
2023-01-06 13:37:36 -05:00
{
void *mlx;
void *window;
2023-01-11 13:10:28 -05:00
void *assets[NB_COLORS * 2];
2023-01-09 14:41:06 -05:00
t_map *map;
2023-01-11 13:10:28 -05:00
size_t nb_swaps;
size_t nb_foots;
2023-01-19 07:41:58 -05:00
} t_data;
2023-01-06 13:37:36 -05:00
2023-01-13 09:10:27 -05:00
int ft_test_map_is_finishable(t_map *map);
2023-01-10 13:04:46 -05:00
int ft_exit(t_data *data);
2023-01-13 09:10:27 -05:00
int ft_test_map_content2(char **patern);
2023-01-09 14:41:06 -05:00
int ft_key(int key, t_data *data);
2023-01-13 09:10:27 -05:00
void ft_fill_pos(t_map *map);
char *name_generator(t_square square);
2023-01-06 13:37:36 -05:00
t_map *ft_getmap(char *path);
2023-01-11 13:10:28 -05:00
char *ft_xpm_gen_file(t_square square);
int ft_gen_assets(t_data *data);
2023-01-06 13:37:36 -05:00
char **ft_get_player_map(t_map map);
2023-01-09 14:41:06 -05:00
int ft_draw_map(t_data *data);
char *name_generator(t_square square);
int ft_color_changer(t_data *data);
2023-01-13 09:10:27 -05:00
void ft_draw_img(t_data *data, void *img, size_t x, size_t y);
2023-01-16 13:01:46 -05:00
int ft_map_is_correct(t_map *map);
2022-12-22 11:41:31 -05:00
#endif