/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* solong.h :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: cchauvet # include # include # include "minilibx-linux/mlx.h" # define CASE_SIZE 64 # define XPM_HEADER "\nstatic char * XFACE[] = {\"" # define COLORS "silver|gray|white|maroon|red|purple|fuchsia|green|lime|olive|yellow|navy|blue|teal|aqua|aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen" # define NB_COLORS 99 # define RENDER_DISTANCE 5 # define WINDOW_SIZE (RENDER_DISTANCE * 2 + 1) * CASE_SIZE # define ABS(Value) (Value * ((Value > 0) - (Value < 0))) typedef struct s_square { char *color; size_t size; } t_square; typedef struct s_map { size_t x_len; size_t y_len; size_t nb_collectable; char **patern; size_t player_pos[2]; size_t exit_pos[2]; } t_map; typedef struct s_data { void *mlx; void *window; void *assets[NB_COLORS * 2]; t_map *map; size_t nb_swaps; size_t nb_foots; } t_data; void ft_ultimate_image_destroyer(t_data *data); int ft_test_map_is_finishable(t_map *map); int ft_exit(t_data *data); int ft_test_map_content2(char **patern); int ft_key(int key, t_data *data); void ft_fill_pos(t_map *map); char *name_generator(t_square square); t_map *ft_getmap(char *path); char *ft_xpm_gen_file(t_square square); char **ft_readfile(char *path); int ft_map_is_correct(t_map *map); int ft_gen_assets(t_data *data); char **ft_get_player_map(t_map map); int ft_draw_map(t_data *data); char *name_generator(t_square square); int ft_color_changer(t_data *data); void ft_draw_img(t_data *data, void *img, size_t x, size_t y); #endif