From 650d9b1ab55e25a68ede761ea532e0e7d33be51e Mon Sep 17 00:00:00 2001 From: Camille Chauvet Date: Sun, 8 Jan 2023 18:03:40 +0100 Subject: [PATCH] =?UTF-8?q?ca=20marche=20presques=20mais=20=C3=A7a=20march?= =?UTF-8?q?e=20pas=20du=20tout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 10 ++-- asset.c | 65 +++++--------------- asset.o | Bin 7184 -> 4968 bytes color.c | 58 ++++++++++++++++++ color.o | Bin 0 -> 6656 bytes color_and_shape.o | Bin 0 -> 6680 bytes draw.c | 57 ++++++++++++------ draw.o | Bin 4328 -> 5520 bytes ft_freer.c | 59 ++++++++++++++++++ ft_freer.o | Bin 0 -> 5000 bytes la fonction map bozo | 0 libftx/extra/Makefile | 4 +- libftx/extra/extra.a | Bin 21408 -> 24194 bytes libftx/extra/extra.h | 3 +- libftx/extra/ft_is_in.c | 3 +- libftx/extra/ft_is_in.o | Bin 2360 -> 2368 bytes libftx/extra/ft_strfjoin.c | 13 ++-- libftx/extra/ft_strfjoin.o | Bin 3320 -> 3256 bytes libftx/extra/ft_strgen.c | 31 ++++++++++ libftx/extra/ft_strgen.o | Bin 0 -> 2768 bytes libftx/libft/ft_split.o | Bin 5256 -> 5288 bytes libftx/libft/libft.a | Bin 96734 -> 96780 bytes libftx/libftx.a | Bin 4724 -> 4812 bytes libftx/libftx.h | 3 +- m | 5 ++ main.c | 61 ++++++++++--------- main.o | Bin 2984 -> 5376 bytes map.c | 58 ++++++++++++++---- map.o | Bin 4464 -> 6360 bytes parsing.c | 7 ++- parsing.o | Bin 6104 -> 6160 bytes shape.c | 69 ---------------------- shape.o | Bin 4176 -> 0 bytes so_long | Bin 100744 -> 104312 bytes solong.h | 29 ++++----- textures/aliceblue_64x64.xpm | 67 +++++++++++++++++++++ textures/aliceblue_704x704.xpm | 67 +++++++++++++++++++++ textures/antiquewhite_64x64.xpm | 67 +++++++++++++++++++++ textures/antiquewhite_704x704.xpm | 67 +++++++++++++++++++++ textures/aqua_64x64.xpm | 67 +++++++++++++++++++++ textures/aqua_704x704.xpm | 67 +++++++++++++++++++++ textures/aquamarine_64x64.xpm | 67 +++++++++++++++++++++ textures/aquamarine_704x704.xpm | 67 +++++++++++++++++++++ textures/azure_64x64.xpm | 67 +++++++++++++++++++++ textures/azure_704x704.xpm | 67 +++++++++++++++++++++ textures/beige_64x64.xpm | 67 +++++++++++++++++++++ textures/beige_704x704.xpm | 67 +++++++++++++++++++++ textures/bisque_64x64.xpm | 67 +++++++++++++++++++++ textures/bisque_704x704.xpm | 67 +++++++++++++++++++++ textures/black_64x64.xpm | 67 +++++++++++++++++++++ textures/black_704x704.xpm | 67 +++++++++++++++++++++ textures/blanchedalmond_64x64.xpm | 67 +++++++++++++++++++++ textures/blanchedalmond_704x704.xpm | 67 +++++++++++++++++++++ textures/blue_64x64.xpm | 67 +++++++++++++++++++++ textures/blue_704x704.xpm | 67 +++++++++++++++++++++ textures/blueviolet_64x64.xpm | 67 +++++++++++++++++++++ textures/blueviolet_704x704.xpm | 67 +++++++++++++++++++++ textures/brown_64x64.xpm | 67 +++++++++++++++++++++ textures/brown_704x704.xpm | 67 +++++++++++++++++++++ textures/burlywood_64x64.xpm | 67 +++++++++++++++++++++ textures/burlywood_704x704.xpm | 67 +++++++++++++++++++++ textures/cadetblue_64x64.xpm | 67 +++++++++++++++++++++ textures/cadetblue_704x704.xpm | 67 +++++++++++++++++++++ textures/chartreuse_64x64.xpm | 67 +++++++++++++++++++++ textures/chartreuse_704x704.xpm | 67 +++++++++++++++++++++ textures/chocolate_64x64.xpm | 67 +++++++++++++++++++++ textures/chocolate_704x704.xpm | 67 +++++++++++++++++++++ textures/coral_64x64.xpm | 67 +++++++++++++++++++++ textures/coral_704x704.xpm | 67 +++++++++++++++++++++ textures/cornflowerblue_64x64.xpm | 67 +++++++++++++++++++++ textures/cornflowerblue_704x704.xpm | 67 +++++++++++++++++++++ textures/cornsilk_64x64.xpm | 67 +++++++++++++++++++++ textures/cornsilk_704x704.xpm | 67 +++++++++++++++++++++ textures/crimson_64x64.xpm | 67 +++++++++++++++++++++ textures/crimson_704x704.xpm | 67 +++++++++++++++++++++ textures/cyan_64x64.xpm | 67 +++++++++++++++++++++ textures/cyan_704x704.xpm | 67 +++++++++++++++++++++ textures/darkblue_64x64.xpm | 67 +++++++++++++++++++++ textures/darkblue_704x704.xpm | 67 +++++++++++++++++++++ textures/darkcyan_64x64.xpm | 67 +++++++++++++++++++++ textures/darkcyan_704x704.xpm | 67 +++++++++++++++++++++ textures/darkgoldenrod_64x64.xpm | 67 +++++++++++++++++++++ textures/darkgoldenrod_704x704.xpm | 67 +++++++++++++++++++++ textures/darkgray_64x64.xpm | 67 +++++++++++++++++++++ textures/darkgray_704x704.xpm | 67 +++++++++++++++++++++ textures/darkgreen_64x64.xpm | 67 +++++++++++++++++++++ textures/darkgreen_704x704.xpm | 67 +++++++++++++++++++++ textures/darkgrey_64x64.xpm | 67 +++++++++++++++++++++ textures/darkgrey_704x704.xpm | 67 +++++++++++++++++++++ textures/darkkhaki_64x64.xpm | 67 +++++++++++++++++++++ textures/darkkhaki_704x704.xpm | 67 +++++++++++++++++++++ textures/darkmagenta_64x64.xpm | 67 +++++++++++++++++++++ textures/darkmagenta_704x704.xpm | 67 +++++++++++++++++++++ textures/darkolivegreen_64x64.xpm | 67 +++++++++++++++++++++ textures/darkolivegreen_704x704.xpm | 67 +++++++++++++++++++++ textures/darkorange_64x64.xpm | 67 +++++++++++++++++++++ textures/darkorange_704x704.xpm | 67 +++++++++++++++++++++ textures/darkorchid_64x64.xpm | 67 +++++++++++++++++++++ textures/darkorchid_704x704.xpm | 67 +++++++++++++++++++++ textures/darkred_64x64.xpm | 67 +++++++++++++++++++++ textures/darkred_704x704.xpm | 67 +++++++++++++++++++++ textures/darksalmon_64x64.xpm | 67 +++++++++++++++++++++ textures/darksalmon_704x704.xpm | 67 +++++++++++++++++++++ textures/darkseagreen_64x64.xpm | 67 +++++++++++++++++++++ textures/darkseagreen_704x704.xpm | 67 +++++++++++++++++++++ textures/darkslateblue_64x64.xpm | 67 +++++++++++++++++++++ textures/darkslateblue_704x704.xpm | 67 +++++++++++++++++++++ textures/darkslategray_64x64.xpm | 67 +++++++++++++++++++++ textures/darkslategray_704x704.xpm | 67 +++++++++++++++++++++ textures/darkslategrey_64x64.xpm | 67 +++++++++++++++++++++ textures/darkslategrey_704x704.xpm | 67 +++++++++++++++++++++ textures/darkturquoise_64x64.xpm | 67 +++++++++++++++++++++ textures/darkturquoise_704x704.xpm | 67 +++++++++++++++++++++ textures/darkviolet_64x64.xpm | 67 +++++++++++++++++++++ textures/darkviolet_704x704.xpm | 67 +++++++++++++++++++++ textures/deeppink_64x64.xpm | 67 +++++++++++++++++++++ textures/deeppink_704x704.xpm | 67 +++++++++++++++++++++ textures/deepskyblue_64x64.xpm | 67 +++++++++++++++++++++ textures/deepskyblue_704x704.xpm | 67 +++++++++++++++++++++ textures/dimgray_64x64.xpm | 67 +++++++++++++++++++++ textures/dimgray_704x704.xpm | 67 +++++++++++++++++++++ textures/dimgrey_64x64.xpm | 67 +++++++++++++++++++++ textures/dimgrey_704x704.xpm | 67 +++++++++++++++++++++ textures/dodgerblue_64x64.xpm | 67 +++++++++++++++++++++ textures/dodgerblue_704x704.xpm | 67 +++++++++++++++++++++ textures/firebrick_64x64.xpm | 67 +++++++++++++++++++++ textures/firebrick_704x704.xpm | 67 +++++++++++++++++++++ textures/floralwhite_64x64.xpm | 67 +++++++++++++++++++++ textures/floralwhite_704x704.xpm | 67 +++++++++++++++++++++ textures/forestgreen_64x64.xpm | 67 +++++++++++++++++++++ textures/forestgreen_704x704.xpm | 67 +++++++++++++++++++++ textures/fuchsia_64x64.xpm | 67 +++++++++++++++++++++ textures/fuchsia_704x704.xpm | 67 +++++++++++++++++++++ textures/gainsboro_64x64.xpm | 67 +++++++++++++++++++++ textures/gainsboro_704x704.xpm | 67 +++++++++++++++++++++ textures/ghostwhite_64x64.xpm | 67 +++++++++++++++++++++ textures/ghostwhite_704x704.xpm | 67 +++++++++++++++++++++ textures/gold_64x64.xpm | 67 +++++++++++++++++++++ textures/gold_704x704.xpm | 67 +++++++++++++++++++++ textures/goldenrod_64x64.xpm | 67 +++++++++++++++++++++ textures/goldenrod_704x704.xpm | 67 +++++++++++++++++++++ textures/gray_64x64.xpm | 67 +++++++++++++++++++++ textures/gray_704x704.xpm | 67 +++++++++++++++++++++ textures/green_64x64.xpm | 67 +++++++++++++++++++++ textures/green_704x704.xpm | 67 +++++++++++++++++++++ textures/greenyellow_64x64.xpm | 67 +++++++++++++++++++++ textures/greenyellow_704x704.xpm | 67 +++++++++++++++++++++ textures/grey_64x64.xpm | 67 +++++++++++++++++++++ textures/grey_704x704.xpm | 67 +++++++++++++++++++++ textures/honeydew_64x64.xpm | 67 +++++++++++++++++++++ textures/honeydew_704x704.xpm | 67 +++++++++++++++++++++ textures/hotpink_64x64.xpm | 67 +++++++++++++++++++++ textures/hotpink_704x704.xpm | 67 +++++++++++++++++++++ textures/indianred_64x64.xpm | 67 +++++++++++++++++++++ textures/indianred_704x704.xpm | 67 +++++++++++++++++++++ textures/indigo_64x64.xpm | 67 +++++++++++++++++++++ textures/indigo_704x704.xpm | 67 +++++++++++++++++++++ textures/ivory_64x64.xpm | 67 +++++++++++++++++++++ textures/ivory_704x704.xpm | 67 +++++++++++++++++++++ textures/khaki_64x64.xpm | 67 +++++++++++++++++++++ textures/khaki_704x704.xpm | 67 +++++++++++++++++++++ textures/lavender_64x64.xpm | 67 +++++++++++++++++++++ textures/lavender_704x704.xpm | 67 +++++++++++++++++++++ textures/lavenderblush_64x64.xpm | 67 +++++++++++++++++++++ textures/lavenderblush_704x704.xpm | 67 +++++++++++++++++++++ textures/lawngreen_64x64.xpm | 67 +++++++++++++++++++++ textures/lawngreen_704x704.xpm | 67 +++++++++++++++++++++ textures/lemonchiffon_64x64.xpm | 67 +++++++++++++++++++++ textures/lemonchiffon_704x704.xpm | 67 +++++++++++++++++++++ textures/lightblue_64x64.xpm | 67 +++++++++++++++++++++ textures/lightblue_704x704.xpm | 67 +++++++++++++++++++++ textures/lightcoral_64x64.xpm | 67 +++++++++++++++++++++ textures/lightcoral_704x704.xpm | 67 +++++++++++++++++++++ textures/lightcyan_64x64.xpm | 67 +++++++++++++++++++++ textures/lightcyan_704x704.xpm | 67 +++++++++++++++++++++ textures/lightgoldenrodyellow_64x64.xpm | 67 +++++++++++++++++++++ textures/lightgoldenrodyellow_704x704.xpm | 67 +++++++++++++++++++++ textures/lightgray_64x64.xpm | 67 +++++++++++++++++++++ textures/lightgray_704x704.xpm | 67 +++++++++++++++++++++ textures/lightgreen_64x64.xpm | 67 +++++++++++++++++++++ textures/lightgreen_704x704.xpm | 67 +++++++++++++++++++++ textures/lightgrey_64x64.xpm | 67 +++++++++++++++++++++ textures/lightgrey_704x704.xpm | 67 +++++++++++++++++++++ textures/lightpink_64x64.xpm | 67 +++++++++++++++++++++ textures/lightpink_704x704.xpm | 67 +++++++++++++++++++++ textures/lightsalmon_64x64.xpm | 67 +++++++++++++++++++++ textures/lightsalmon_704x704.xpm | 67 +++++++++++++++++++++ textures/lightseagreen_64x64.xpm | 67 +++++++++++++++++++++ textures/lightseagreen_704x704.xpm | 67 +++++++++++++++++++++ textures/lightskyblue_64x64.xpm | 67 +++++++++++++++++++++ textures/lightskyblue_704x704.xpm | 67 +++++++++++++++++++++ textures/lightslategray_64x64.xpm | 67 +++++++++++++++++++++ textures/lightslategray_704x704.xpm | 67 +++++++++++++++++++++ textures/lightslategrey_64x64.xpm | 67 +++++++++++++++++++++ textures/lightslategrey_704x704.xpm | 67 +++++++++++++++++++++ textures/lightsteelblue_64x64.xpm | 67 +++++++++++++++++++++ textures/lightsteelblue_704x704.xpm | 67 +++++++++++++++++++++ textures/lightyellow_64x64.xpm | 67 +++++++++++++++++++++ textures/lightyellow_704x704.xpm | 67 +++++++++++++++++++++ textures/lime_64x64.xpm | 67 +++++++++++++++++++++ textures/lime_704x704.xpm | 67 +++++++++++++++++++++ textures/limegreen_64x64.xpm | 67 +++++++++++++++++++++ textures/limegreen_704x704.xpm | 67 +++++++++++++++++++++ textures/linen_64x64.xpm | 67 +++++++++++++++++++++ textures/linen_704x704.xpm | 67 +++++++++++++++++++++ textures/magenta_64x64.xpm | 67 +++++++++++++++++++++ textures/magenta_704x704.xpm | 67 +++++++++++++++++++++ textures/maroon_64x64.xpm | 67 +++++++++++++++++++++ textures/maroon_704x704.xpm | 67 +++++++++++++++++++++ textures/mediumaquamarine_64x64.xpm | 67 +++++++++++++++++++++ textures/mediumaquamarine_704x704.xpm | 67 +++++++++++++++++++++ textures/mediumblue_64x64.xpm | 67 +++++++++++++++++++++ textures/mediumblue_704x704.xpm | 67 +++++++++++++++++++++ textures/mediumorchid_64x64.xpm | 67 +++++++++++++++++++++ textures/mediumorchid_704x704.xpm | 67 +++++++++++++++++++++ textures/mediumpurple_64x64.xpm | 67 +++++++++++++++++++++ textures/mediumpurple_704x704.xpm | 67 +++++++++++++++++++++ textures/mediumseagreen_64x64.xpm | 67 +++++++++++++++++++++ textures/mediumseagreen_704x704.xpm | 67 +++++++++++++++++++++ textures/mediumslateblue_64x64.xpm | 67 +++++++++++++++++++++ textures/mediumslateblue_704x704.xpm | 67 +++++++++++++++++++++ textures/mediumspringgreen_64x64.xpm | 67 +++++++++++++++++++++ textures/mediumspringgreen_704x704.xpm | 67 +++++++++++++++++++++ textures/mediumturquoise_64x64.xpm | 67 +++++++++++++++++++++ textures/mediumturquoise_704x704.xpm | 67 +++++++++++++++++++++ textures/mediumvioletred_64x64.xpm | 67 +++++++++++++++++++++ textures/mediumvioletred_704x704.xpm | 67 +++++++++++++++++++++ textures/midnightblue_64x64.xpm | 67 +++++++++++++++++++++ textures/midnightblue_704x704.xpm | 67 +++++++++++++++++++++ textures/mintcream_64x64.xpm | 67 +++++++++++++++++++++ textures/mintcream_704x704.xpm | 67 +++++++++++++++++++++ textures/mistyrose_64x64.xpm | 67 +++++++++++++++++++++ textures/mistyrose_704x704.xpm | 67 +++++++++++++++++++++ textures/moccasin_64x64.xpm | 67 +++++++++++++++++++++ textures/moccasin_704x704.xpm | 67 +++++++++++++++++++++ textures/navajowhite_64x64.xpm | 67 +++++++++++++++++++++ textures/navajowhite_704x704.xpm | 67 +++++++++++++++++++++ textures/navy_64x64.xpm | 67 +++++++++++++++++++++ textures/navy_704x704.xpm | 67 +++++++++++++++++++++ textures/oldlace_64x64.xpm | 67 +++++++++++++++++++++ textures/oldlace_704x704.xpm | 67 +++++++++++++++++++++ textures/olive_64x64.xpm | 67 +++++++++++++++++++++ textures/olive_704x704.xpm | 67 +++++++++++++++++++++ textures/olivedrab_64x64.xpm | 67 +++++++++++++++++++++ textures/olivedrab_704x704.xpm | 67 +++++++++++++++++++++ textures/orange_64x64.xpm | 67 +++++++++++++++++++++ textures/orange_704x704.xpm | 67 +++++++++++++++++++++ textures/orangered_64x64.xpm | 67 +++++++++++++++++++++ textures/orangered_704x704.xpm | 67 +++++++++++++++++++++ textures/orchid_64x64.xpm | 67 +++++++++++++++++++++ textures/orchid_704x704.xpm | 67 +++++++++++++++++++++ textures/palegoldenrod_64x64.xpm | 67 +++++++++++++++++++++ textures/palegoldenrod_704x704.xpm | 67 +++++++++++++++++++++ textures/palegreen_64x64.xpm | 67 +++++++++++++++++++++ textures/palegreen_704x704.xpm | 67 +++++++++++++++++++++ textures/paleturquoise_64x64.xpm | 67 +++++++++++++++++++++ textures/paleturquoise_704x704.xpm | 67 +++++++++++++++++++++ textures/palevioletred_64x64.xpm | 67 +++++++++++++++++++++ textures/palevioletred_704x704.xpm | 67 +++++++++++++++++++++ textures/papayawhip_64x64.xpm | 67 +++++++++++++++++++++ textures/papayawhip_704x704.xpm | 67 +++++++++++++++++++++ textures/peachpuff_64x64.xpm | 67 +++++++++++++++++++++ textures/peachpuff_704x704.xpm | 67 +++++++++++++++++++++ textures/peru_64x64.xpm | 67 +++++++++++++++++++++ textures/peru_704x704.xpm | 67 +++++++++++++++++++++ textures/pink_64x64.xpm | 67 +++++++++++++++++++++ textures/pink_704x704.xpm | 67 +++++++++++++++++++++ textures/plum_64x64.xpm | 67 +++++++++++++++++++++ textures/plum_704x704.xpm | 67 +++++++++++++++++++++ textures/powderblue_64x64.xpm | 67 +++++++++++++++++++++ textures/powderblue_704x704.xpm | 67 +++++++++++++++++++++ textures/purple_64x64.xpm | 67 +++++++++++++++++++++ textures/purple_704x704.xpm | 67 +++++++++++++++++++++ textures/red_64x64.xpm | 67 +++++++++++++++++++++ textures/red_704x704.xpm | 67 +++++++++++++++++++++ textures/rosybrown_64x64.xpm | 67 +++++++++++++++++++++ textures/rosybrown_704x704.xpm | 67 +++++++++++++++++++++ textures/royalblue_64x64.xpm | 67 +++++++++++++++++++++ textures/royalblue_704x704.xpm | 67 +++++++++++++++++++++ textures/saddlebrown_64x64.xpm | 67 +++++++++++++++++++++ textures/saddlebrown_704x704.xpm | 67 +++++++++++++++++++++ textures/salmon_64x64.xpm | 67 +++++++++++++++++++++ textures/salmon_704x704.xpm | 67 +++++++++++++++++++++ textures/sandybrown_64x64.xpm | 67 +++++++++++++++++++++ textures/sandybrown_704x704.xpm | 67 +++++++++++++++++++++ textures/seagreen_64x64.xpm | 67 +++++++++++++++++++++ textures/seagreen_704x704.xpm | 67 +++++++++++++++++++++ textures/seashell_64x64.xpm | 67 +++++++++++++++++++++ textures/seashell_704x704.xpm | 67 +++++++++++++++++++++ textures/sienna_64x64.xpm | 67 +++++++++++++++++++++ textures/sienna_704x704.xpm | 67 +++++++++++++++++++++ textures/silver_64x64.xpm | 67 +++++++++++++++++++++ textures/silver_704x704.xpm | 67 +++++++++++++++++++++ textures/skyblue_64x64.xpm | 67 +++++++++++++++++++++ textures/skyblue_704x704.xpm | 67 +++++++++++++++++++++ textures/slateblue_64x64.xpm | 67 +++++++++++++++++++++ textures/slateblue_704x704.xpm | 67 +++++++++++++++++++++ textures/slategray_64x64.xpm | 67 +++++++++++++++++++++ textures/slategray_704x704.xpm | 67 +++++++++++++++++++++ textures/slategrey_64x64.xpm | 67 +++++++++++++++++++++ textures/slategrey_704x704.xpm | 67 +++++++++++++++++++++ textures/snow_64x64.xpm | 67 +++++++++++++++++++++ textures/snow_704x704.xpm | 67 +++++++++++++++++++++ textures/springgreen_64x64.xpm | 67 +++++++++++++++++++++ textures/springgreen_704x704.xpm | 67 +++++++++++++++++++++ textures/steelblue_64x64.xpm | 67 +++++++++++++++++++++ textures/steelblue_704x704.xpm | 67 +++++++++++++++++++++ textures/tan_64x64.xpm | 67 +++++++++++++++++++++ textures/tan_704x704.xpm | 67 +++++++++++++++++++++ textures/teal_64x64.xpm | 67 +++++++++++++++++++++ textures/teal_704x704.xpm | 67 +++++++++++++++++++++ textures/thistle_64x64.xpm | 67 +++++++++++++++++++++ textures/thistle_704x704.xpm | 67 +++++++++++++++++++++ textures/tomato_64x64.xpm | 67 +++++++++++++++++++++ textures/tomato_704x704.xpm | 67 +++++++++++++++++++++ textures/turquoise_64x64.xpm | 67 +++++++++++++++++++++ textures/turquoise_704x704.xpm | 67 +++++++++++++++++++++ textures/violet_64x64.xpm | 67 +++++++++++++++++++++ textures/violet_704x704.xpm | 67 +++++++++++++++++++++ textures/wheat_64x64.xpm | 67 +++++++++++++++++++++ textures/wheat_704x704.xpm | 67 +++++++++++++++++++++ textures/white_64x64.xpm | 67 +++++++++++++++++++++ textures/white_704x704.xpm | 67 +++++++++++++++++++++ textures/whitesmoke_64x64.xpm | 67 +++++++++++++++++++++ textures/whitesmoke_704x704.xpm | 67 +++++++++++++++++++++ textures/yellow_64x64.xpm | 67 +++++++++++++++++++++ textures/yellow_704x704.xpm | 67 +++++++++++++++++++++ textures/yellowgreen_64x64.xpm | 67 +++++++++++++++++++++ textures/yellowgreen_704x704.xpm | 67 +++++++++++++++++++++ xpm.c | 68 +++++++++++++-------- xpm.o | Bin 7112 -> 6752 bytes 331 files changed, 20069 insertions(+), 232 deletions(-) create mode 100644 color.c create mode 100644 color.o create mode 100644 color_and_shape.o create mode 100644 ft_freer.c create mode 100644 ft_freer.o delete mode 100644 la fonction map bozo create mode 100644 libftx/extra/ft_strgen.c create mode 100644 libftx/extra/ft_strgen.o create mode 100644 m delete mode 100644 shape.c delete mode 100644 shape.o create mode 100644 textures/aliceblue_64x64.xpm create mode 100644 textures/aliceblue_704x704.xpm create mode 100644 textures/antiquewhite_64x64.xpm create mode 100644 textures/antiquewhite_704x704.xpm create mode 100644 textures/aqua_64x64.xpm create mode 100644 textures/aqua_704x704.xpm create mode 100644 textures/aquamarine_64x64.xpm create mode 100644 textures/aquamarine_704x704.xpm create mode 100644 textures/azure_64x64.xpm create mode 100644 textures/azure_704x704.xpm create mode 100644 textures/beige_64x64.xpm create mode 100644 textures/beige_704x704.xpm create mode 100644 textures/bisque_64x64.xpm create mode 100644 textures/bisque_704x704.xpm create mode 100644 textures/black_64x64.xpm create mode 100644 textures/black_704x704.xpm create mode 100644 textures/blanchedalmond_64x64.xpm create mode 100644 textures/blanchedalmond_704x704.xpm create mode 100644 textures/blue_64x64.xpm create mode 100644 textures/blue_704x704.xpm create mode 100644 textures/blueviolet_64x64.xpm create mode 100644 textures/blueviolet_704x704.xpm create mode 100644 textures/brown_64x64.xpm create mode 100644 textures/brown_704x704.xpm create mode 100644 textures/burlywood_64x64.xpm create mode 100644 textures/burlywood_704x704.xpm create mode 100644 textures/cadetblue_64x64.xpm create mode 100644 textures/cadetblue_704x704.xpm create mode 100644 textures/chartreuse_64x64.xpm create mode 100644 textures/chartreuse_704x704.xpm create mode 100644 textures/chocolate_64x64.xpm create mode 100644 textures/chocolate_704x704.xpm create mode 100644 textures/coral_64x64.xpm create mode 100644 textures/coral_704x704.xpm create mode 100644 textures/cornflowerblue_64x64.xpm create mode 100644 textures/cornflowerblue_704x704.xpm create mode 100644 textures/cornsilk_64x64.xpm create mode 100644 textures/cornsilk_704x704.xpm create mode 100644 textures/crimson_64x64.xpm create mode 100644 textures/crimson_704x704.xpm create mode 100644 textures/cyan_64x64.xpm create mode 100644 textures/cyan_704x704.xpm create mode 100644 textures/darkblue_64x64.xpm create mode 100644 textures/darkblue_704x704.xpm create mode 100644 textures/darkcyan_64x64.xpm create mode 100644 textures/darkcyan_704x704.xpm create mode 100644 textures/darkgoldenrod_64x64.xpm create mode 100644 textures/darkgoldenrod_704x704.xpm create mode 100644 textures/darkgray_64x64.xpm create mode 100644 textures/darkgray_704x704.xpm create mode 100644 textures/darkgreen_64x64.xpm create mode 100644 textures/darkgreen_704x704.xpm create mode 100644 textures/darkgrey_64x64.xpm create mode 100644 textures/darkgrey_704x704.xpm create mode 100644 textures/darkkhaki_64x64.xpm create mode 100644 textures/darkkhaki_704x704.xpm create mode 100644 textures/darkmagenta_64x64.xpm create mode 100644 textures/darkmagenta_704x704.xpm create mode 100644 textures/darkolivegreen_64x64.xpm create mode 100644 textures/darkolivegreen_704x704.xpm create mode 100644 textures/darkorange_64x64.xpm create mode 100644 textures/darkorange_704x704.xpm create mode 100644 textures/darkorchid_64x64.xpm create mode 100644 textures/darkorchid_704x704.xpm create mode 100644 textures/darkred_64x64.xpm create mode 100644 textures/darkred_704x704.xpm create mode 100644 textures/darksalmon_64x64.xpm create mode 100644 textures/darksalmon_704x704.xpm create mode 100644 textures/darkseagreen_64x64.xpm create mode 100644 textures/darkseagreen_704x704.xpm create mode 100644 textures/darkslateblue_64x64.xpm create mode 100644 textures/darkslateblue_704x704.xpm create mode 100644 textures/darkslategray_64x64.xpm create mode 100644 textures/darkslategray_704x704.xpm create mode 100644 textures/darkslategrey_64x64.xpm create mode 100644 textures/darkslategrey_704x704.xpm create mode 100644 textures/darkturquoise_64x64.xpm create mode 100644 textures/darkturquoise_704x704.xpm create mode 100644 textures/darkviolet_64x64.xpm create mode 100644 textures/darkviolet_704x704.xpm create mode 100644 textures/deeppink_64x64.xpm create mode 100644 textures/deeppink_704x704.xpm create mode 100644 textures/deepskyblue_64x64.xpm create mode 100644 textures/deepskyblue_704x704.xpm create mode 100644 textures/dimgray_64x64.xpm create mode 100644 textures/dimgray_704x704.xpm create mode 100644 textures/dimgrey_64x64.xpm create mode 100644 textures/dimgrey_704x704.xpm create mode 100644 textures/dodgerblue_64x64.xpm create mode 100644 textures/dodgerblue_704x704.xpm create mode 100644 textures/firebrick_64x64.xpm create mode 100644 textures/firebrick_704x704.xpm create mode 100644 textures/floralwhite_64x64.xpm create mode 100644 textures/floralwhite_704x704.xpm create mode 100644 textures/forestgreen_64x64.xpm create mode 100644 textures/forestgreen_704x704.xpm create mode 100644 textures/fuchsia_64x64.xpm create mode 100644 textures/fuchsia_704x704.xpm create mode 100644 textures/gainsboro_64x64.xpm create mode 100644 textures/gainsboro_704x704.xpm create mode 100644 textures/ghostwhite_64x64.xpm create mode 100644 textures/ghostwhite_704x704.xpm create mode 100644 textures/gold_64x64.xpm create mode 100644 textures/gold_704x704.xpm create mode 100644 textures/goldenrod_64x64.xpm create mode 100644 textures/goldenrod_704x704.xpm create mode 100644 textures/gray_64x64.xpm create mode 100644 textures/gray_704x704.xpm create mode 100644 textures/green_64x64.xpm create mode 100644 textures/green_704x704.xpm create mode 100644 textures/greenyellow_64x64.xpm create mode 100644 textures/greenyellow_704x704.xpm create mode 100644 textures/grey_64x64.xpm create mode 100644 textures/grey_704x704.xpm create mode 100644 textures/honeydew_64x64.xpm create mode 100644 textures/honeydew_704x704.xpm create mode 100644 textures/hotpink_64x64.xpm create mode 100644 textures/hotpink_704x704.xpm create mode 100644 textures/indianred_64x64.xpm create mode 100644 textures/indianred_704x704.xpm create mode 100644 textures/indigo_64x64.xpm create mode 100644 textures/indigo_704x704.xpm create mode 100644 textures/ivory_64x64.xpm create mode 100644 textures/ivory_704x704.xpm create mode 100644 textures/khaki_64x64.xpm create mode 100644 textures/khaki_704x704.xpm create mode 100644 textures/lavender_64x64.xpm create mode 100644 textures/lavender_704x704.xpm create mode 100644 textures/lavenderblush_64x64.xpm create mode 100644 textures/lavenderblush_704x704.xpm create mode 100644 textures/lawngreen_64x64.xpm create mode 100644 textures/lawngreen_704x704.xpm create mode 100644 textures/lemonchiffon_64x64.xpm create mode 100644 textures/lemonchiffon_704x704.xpm create mode 100644 textures/lightblue_64x64.xpm create mode 100644 textures/lightblue_704x704.xpm create mode 100644 textures/lightcoral_64x64.xpm create mode 100644 textures/lightcoral_704x704.xpm create mode 100644 textures/lightcyan_64x64.xpm create mode 100644 textures/lightcyan_704x704.xpm create mode 100644 textures/lightgoldenrodyellow_64x64.xpm create mode 100644 textures/lightgoldenrodyellow_704x704.xpm create mode 100644 textures/lightgray_64x64.xpm create mode 100644 textures/lightgray_704x704.xpm create mode 100644 textures/lightgreen_64x64.xpm create mode 100644 textures/lightgreen_704x704.xpm create mode 100644 textures/lightgrey_64x64.xpm create mode 100644 textures/lightgrey_704x704.xpm create mode 100644 textures/lightpink_64x64.xpm create mode 100644 textures/lightpink_704x704.xpm create mode 100644 textures/lightsalmon_64x64.xpm create mode 100644 textures/lightsalmon_704x704.xpm create mode 100644 textures/lightseagreen_64x64.xpm create mode 100644 textures/lightseagreen_704x704.xpm create mode 100644 textures/lightskyblue_64x64.xpm create mode 100644 textures/lightskyblue_704x704.xpm create mode 100644 textures/lightslategray_64x64.xpm create mode 100644 textures/lightslategray_704x704.xpm create mode 100644 textures/lightslategrey_64x64.xpm create mode 100644 textures/lightslategrey_704x704.xpm create mode 100644 textures/lightsteelblue_64x64.xpm create mode 100644 textures/lightsteelblue_704x704.xpm create mode 100644 textures/lightyellow_64x64.xpm create mode 100644 textures/lightyellow_704x704.xpm create mode 100644 textures/lime_64x64.xpm create mode 100644 textures/lime_704x704.xpm create mode 100644 textures/limegreen_64x64.xpm create mode 100644 textures/limegreen_704x704.xpm create mode 100644 textures/linen_64x64.xpm create mode 100644 textures/linen_704x704.xpm create mode 100644 textures/magenta_64x64.xpm create mode 100644 textures/magenta_704x704.xpm create mode 100644 textures/maroon_64x64.xpm create mode 100644 textures/maroon_704x704.xpm create mode 100644 textures/mediumaquamarine_64x64.xpm create mode 100644 textures/mediumaquamarine_704x704.xpm create mode 100644 textures/mediumblue_64x64.xpm create mode 100644 textures/mediumblue_704x704.xpm create mode 100644 textures/mediumorchid_64x64.xpm create mode 100644 textures/mediumorchid_704x704.xpm create mode 100644 textures/mediumpurple_64x64.xpm create mode 100644 textures/mediumpurple_704x704.xpm create mode 100644 textures/mediumseagreen_64x64.xpm create mode 100644 textures/mediumseagreen_704x704.xpm create mode 100644 textures/mediumslateblue_64x64.xpm create mode 100644 textures/mediumslateblue_704x704.xpm create mode 100644 textures/mediumspringgreen_64x64.xpm create mode 100644 textures/mediumspringgreen_704x704.xpm create mode 100644 textures/mediumturquoise_64x64.xpm create mode 100644 textures/mediumturquoise_704x704.xpm create mode 100644 textures/mediumvioletred_64x64.xpm create mode 100644 textures/mediumvioletred_704x704.xpm create mode 100644 textures/midnightblue_64x64.xpm create mode 100644 textures/midnightblue_704x704.xpm create mode 100644 textures/mintcream_64x64.xpm create mode 100644 textures/mintcream_704x704.xpm create mode 100644 textures/mistyrose_64x64.xpm create mode 100644 textures/mistyrose_704x704.xpm create mode 100644 textures/moccasin_64x64.xpm create mode 100644 textures/moccasin_704x704.xpm create mode 100644 textures/navajowhite_64x64.xpm create mode 100644 textures/navajowhite_704x704.xpm create mode 100644 textures/navy_64x64.xpm create mode 100644 textures/navy_704x704.xpm create mode 100644 textures/oldlace_64x64.xpm create mode 100644 textures/oldlace_704x704.xpm create mode 100644 textures/olive_64x64.xpm create mode 100644 textures/olive_704x704.xpm create mode 100644 textures/olivedrab_64x64.xpm create mode 100644 textures/olivedrab_704x704.xpm create mode 100644 textures/orange_64x64.xpm create mode 100644 textures/orange_704x704.xpm create mode 100644 textures/orangered_64x64.xpm create mode 100644 textures/orangered_704x704.xpm create mode 100644 textures/orchid_64x64.xpm create mode 100644 textures/orchid_704x704.xpm create mode 100644 textures/palegoldenrod_64x64.xpm create mode 100644 textures/palegoldenrod_704x704.xpm create mode 100644 textures/palegreen_64x64.xpm create mode 100644 textures/palegreen_704x704.xpm create mode 100644 textures/paleturquoise_64x64.xpm create mode 100644 textures/paleturquoise_704x704.xpm create mode 100644 textures/palevioletred_64x64.xpm create mode 100644 textures/palevioletred_704x704.xpm create mode 100644 textures/papayawhip_64x64.xpm create mode 100644 textures/papayawhip_704x704.xpm create mode 100644 textures/peachpuff_64x64.xpm create mode 100644 textures/peachpuff_704x704.xpm create mode 100644 textures/peru_64x64.xpm create mode 100644 textures/peru_704x704.xpm create mode 100644 textures/pink_64x64.xpm create mode 100644 textures/pink_704x704.xpm create mode 100644 textures/plum_64x64.xpm create mode 100644 textures/plum_704x704.xpm create mode 100644 textures/powderblue_64x64.xpm create mode 100644 textures/powderblue_704x704.xpm create mode 100644 textures/purple_64x64.xpm create mode 100644 textures/purple_704x704.xpm create mode 100644 textures/red_64x64.xpm create mode 100644 textures/red_704x704.xpm create mode 100644 textures/rosybrown_64x64.xpm create mode 100644 textures/rosybrown_704x704.xpm create mode 100644 textures/royalblue_64x64.xpm create mode 100644 textures/royalblue_704x704.xpm create mode 100644 textures/saddlebrown_64x64.xpm create mode 100644 textures/saddlebrown_704x704.xpm create mode 100644 textures/salmon_64x64.xpm create mode 100644 textures/salmon_704x704.xpm create mode 100644 textures/sandybrown_64x64.xpm create mode 100644 textures/sandybrown_704x704.xpm create mode 100644 textures/seagreen_64x64.xpm create mode 100644 textures/seagreen_704x704.xpm create mode 100644 textures/seashell_64x64.xpm create mode 100644 textures/seashell_704x704.xpm create mode 100644 textures/sienna_64x64.xpm create mode 100644 textures/sienna_704x704.xpm create mode 100644 textures/silver_64x64.xpm create mode 100644 textures/silver_704x704.xpm create mode 100644 textures/skyblue_64x64.xpm create mode 100644 textures/skyblue_704x704.xpm create mode 100644 textures/slateblue_64x64.xpm create mode 100644 textures/slateblue_704x704.xpm create mode 100644 textures/slategray_64x64.xpm create mode 100644 textures/slategray_704x704.xpm create mode 100644 textures/slategrey_64x64.xpm create mode 100644 textures/slategrey_704x704.xpm create mode 100644 textures/snow_64x64.xpm create mode 100644 textures/snow_704x704.xpm create mode 100644 textures/springgreen_64x64.xpm create mode 100644 textures/springgreen_704x704.xpm create mode 100644 textures/steelblue_64x64.xpm create mode 100644 textures/steelblue_704x704.xpm create mode 100644 textures/tan_64x64.xpm create mode 100644 textures/tan_704x704.xpm create mode 100644 textures/teal_64x64.xpm create mode 100644 textures/teal_704x704.xpm create mode 100644 textures/thistle_64x64.xpm create mode 100644 textures/thistle_704x704.xpm create mode 100644 textures/tomato_64x64.xpm create mode 100644 textures/tomato_704x704.xpm create mode 100644 textures/turquoise_64x64.xpm create mode 100644 textures/turquoise_704x704.xpm create mode 100644 textures/violet_64x64.xpm create mode 100644 textures/violet_704x704.xpm create mode 100644 textures/wheat_64x64.xpm create mode 100644 textures/wheat_704x704.xpm create mode 100644 textures/white_64x64.xpm create mode 100644 textures/white_704x704.xpm create mode 100644 textures/whitesmoke_64x64.xpm create mode 100644 textures/whitesmoke_704x704.xpm create mode 100644 textures/yellow_64x64.xpm create mode 100644 textures/yellow_704x704.xpm create mode 100644 textures/yellowgreen_64x64.xpm create mode 100644 textures/yellowgreen_704x704.xpm diff --git a/Makefile b/Makefile index b8ac58e..405f4ce 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ -SRCS = asset.c draw.c main.c map.c parsing.c shape.c xpm.c +SRCS = asset.c color.c draw.c ft_freer.c main.c map.c parsing.c xpm.c -OBJ = ${SRCS:.c=.o} +OBJS = ${SRCS:.c=.o} NAME = so_long @@ -15,13 +15,13 @@ FLAG = -Wall -Wextra -Werror -g all: ${NAME} -${NAME}: ${OBJ} +${NAME}: ${OBJS} make -C libftx make -C minilibx-linux - ${CC} ${OBJ} -o ${NAME} ${LIBS} -lXext -lX11 + ${CC} ${OBJS} -o ${NAME} ${LIBS} -lXext -lX11 clean: - rm -f OBJ + rm -f ${OBJS} make -C libftx clean make -C minilibx-linux clean diff --git a/asset.c b/asset.c index 0439501..2bf4fce 100644 --- a/asset.c +++ b/asset.c @@ -6,69 +6,32 @@ /* By: cchauvet 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 X{}W*0+@ao2#eltH01~`+h5i2*SA9I{ diff --git a/color.c b/color.c new file mode 100644 index 0000000..2070fa9 --- /dev/null +++ b/color.c @@ -0,0 +1,58 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* color.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet nb_color_swap + 5 > NB_COLORS) + data->nb_color_swap = 0; + square.color = colors[data->nb_color_swap++]; + data->ecolor = name_generator(square); + square.color = colors[data->nb_color_swap++]; + data->pcolor = name_generator(square); + square.color = colors[data->nb_color_swap++]; + data->wcolor = name_generator(square); + square.color = colors[data->nb_color_swap++]; + data->ccolor = name_generator(square); + square.color = colors[data->nb_color_swap++]; + square.size = WINDOW_SIZE; + square.color = colors[data->nb_color_swap++]; + data->bcolor = name_generator(square); + if (data->bcolor == NULL || data->wcolor == NULL + || data->pcolor == NULL || data->ecolor == NULL || data->ccolor == NULL) + { + ft_printf("Memory error"); + ft_freer_ultimate(5, data->wcolor, data->ecolor, data->bcolor); + ft_freer_ultimate(2, data->pcolor, data->ccolor); + return (1); + } + return (0); +} + +int ft_color_changer(t_data *data) +{ + char **colors; + + colors = ft_split(COLORS, '|'); + if (colors == NULL) + { + ft_printf("Memory error"); + return (1); + } + ft_textures_set(data, colors); + ft_freer_tab_ultimate(1, colors); + return (0); +} + diff --git a/color.o b/color.o new file mode 100644 index 0000000000000000000000000000000000000000..89b58ffd07b990bdf4602ceeb294e7e3712e7160 GIT binary patch literal 6656 zcmcIoeQX>@6`$MlUhFvjhSq6X=Oj`ZmE`=3pEhzirdy6Zz*0`5j9q$vN|z;BW@8|EqO$(C%Gy7Q zmG!e%D;KrQuM?m)k*loFZ&udMZnBZD-hpgaa%Jt3Sy{VgjXbjlq$GN|Tt*F` zLFxoZEtD(kuT|E5pR23~<;q6iD-i4-APD%yS19`5NY(Yq%+0Ay-kjROn^P7iNne~ zis^>FGJ4SjX(|Dd!JMK@@ght`kLfzv1rX5iq*9qV`Eu3ewdEvq+!YZdjevKOw(UeB zY4X7Ly(AD;(u#wYE0TI#vqOi2kPu$tI!%%IuCpSNj&NPSop^kulT_VUB$425!cWIM z;jU8?660RvoQ{PuuEszByf~gn_?b8mNmV!vcse1-fgy|wo?gus7I&MzXDRDwZpHCk z5hc~YZ+l5K4%|-L_pPMHEfGm~HJb-fAmUIYHQTTGE{8eQ`~U)jr&ou7MW7^sh3PLR zwZLhHFy&f@dx^z^WjTyQ7isveCA*5xh!ZM^C=O1?z5_Wxdz3Rvh*rz-mJ=kx z<&LuCG?fkPQQNl~l%Kj2h-%=#VnEU$e`*Emejvg~1=TGK?s#F<5B#KI`(dO6F=a`b zH|a&G$tTs0bZYya=vbni*nT7ueRfvnc+u&A!nuvKM9N>zd)ak(Ycjgo>=AZ`hwRNaFi8Lk9noRXsDQnX$##Zi(K zgR3XA(91%~6&nfR$`z4pHxSrsxZ!AGuw^{hpsKEDqc(-*#7*2-w5JpxZ7I?ZWQi$; z_OxO`9WJrm0wcZ!o3x>PDI6PiV$-kHc<6X| zT=1{>sz~I~0fhp4ULPuQt5^ZACbUabhdyW`E$)i$k|mOpClgX>fXJocwRnqnI5=%3 zEx~JcE3Vgp3gSdAWXp}4Ny~3TS;@pvme45#-%-a+;CHxMqmWyc3!4KEAzJ>Bdlt!c zvkF9L!x;&utnfUp4_m$W(*2z7<#Zp19vrP<&kBUy5{aO2k<;0G)>mb-I!!pskk-nwsiEH_?Y%)sj^ zUxJbGLU}Sjd~EQegLmycKJoFrjP;q!An5o6W9E_fu!XHkjO{wW^1}}d4h}NbKf+LJ z;1=kVUB-4#V8ECeP3hUml%6Z5^gRbt`pAr= zKZd$TWuBO%?=7?bdjXUI6>iT%mH_#bd<6V9oA&DAwCy)VI9-D~ zI$jac^pUyg5Qe=5t4B*xa0!OsW(*h{AP7cc6^dGfOQDFE#Usv|?ka1;t>Cv=RjM$& z@mY&#)wNY8R2MpD1VcB)7%u#VC#)ixM|de>UX@&jZQf$xlJpX(PU?pY-b;8O)Kox% z*hmxqTS74T@52YQ+?mg_-0Em<-=1Cl=V1kI2MmAMuw>aMhDV<n{B9KsH_ahDs zi?chP-*2G6t6-y#)nFi(%l&hB2s>O@_~lA$Iu3(r*Qrjs?n?9U?3|?KDo(4_n|8dK z8(V^PR}FO43YBa$5=NFK>OiA!HXxr!W}&cX<_mWJggJh} zoGdJu#)7%8@VIFd778z#x!7d+$KEjuyWchUz~F5Q=G1}-M8424Z-suWuqL%W1mv6M z2m%j-?mL=9i~rZLVemJ$a|{I-o`4wkEt*qxjKqMsnT5JJ4wG3l@2H!1FPL+S=Fz(O zAWW?An3;FXNyx?&D1C6jJhWgQSul^mgco3*FZRHB%#U#aQe+Ik>S1#KL)(P0KKAyF ztjHk%4EQ@o1F}|#&a1^EF75JksHTXb@(e#VwzfQjg50L%+0YggPu}q!zp}Og`#JnZ zw@5Sgy&dpx?tp(_2mGNO@L|BQVSd$BBH8ZVLkzE#>o-)JRl{BRVY(vpUPO63FSR`E zAlVQffS<NT$Ie=UP+``^moZxjE+ z3~mws%MAWk;$O<(e5quV?V5h<_u4KTG^u8T=c>znj6oO}swPbRND>_z)%% zn#O;uShhEVzd-n%8T>WE@5|s{C;Y(-ewpy&8T=Q7Kc2yN5q~O!|BK}941SI9D1+Kzt?yK%8b$&0cvCFFr=0YiLgN(V(Y$?lptDAWTmjv zls)`k23`#jo-OI4nlg8D-PKHbzk7FeO@F*UzhfWn%(}{fhj*o*B%r>=lsR&i{Gxul=BZeBa6Xe-^O(BR72L k&cUzSenk4Zd{G};*8erYvbjUK^Yr4U_Ydl!@2vlS1BcIftN;K2 literal 0 HcmV?d00001 diff --git a/color_and_shape.o b/color_and_shape.o new file mode 100644 index 0000000000000000000000000000000000000000..ebef5cfceac9c10067137d47b44ac1968d609b58 GIT binary patch literal 6680 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 literal 0 HcmV?d00001 diff --git a/draw.c b/draw.c index 1157277..2dd18df 100644 --- a/draw.c +++ b/draw.c @@ -6,42 +6,61 @@ /* By: cchauvet mlx, img_path, &bozo, &bozo); + if (img == NULL) + return ; + mlx_put_image_to_window(data->mlx, data->window, img, x, y); + mlx_destroy_image(data->mlx, img); } -int ft_draw_map(void *mlx, void *window, t_map map) +static char *ft_char2xpm(t_data data, char c) +{ + if (c == 'C') + return (data.ccolor); + if (c == '1') + return (data.wcolor); + if (c == 'E') + return (data.ecolor); + if (c == 'P') + return (data.pcolor); + return (NULL); +} + +int ft_draw_map(t_data *data, t_map *map) { size_t x; size_t y; + char **patern; + char *path; - map = ft_getmap(path); - if (map == NULL) - return (0); - if (ft_map_is_correct(map)) - { - free(map); - return (0); - } + patern = ft_get_player_map(*map); + if (patern == NULL) + return (1); + ft_draw_xpm(data, data->bcolor, 0, 0); y = 0; - while (y < 0) + while (patern[y] != NULL) { x = 0; - while (x < 0) - x++; - return (0); + while (patern[y][x] != '\0') + { + path = ft_char2xpm(*data, patern[y][x]); + if (path != NULL) + ft_draw_xpm(data, path, x * CASE_SIZE, y * CASE_SIZE); + x++; + } + y++; } - return (1); + //ft_freer_tab_ultimate(1, patern); + return (0); } diff --git a/draw.o b/draw.o index ba8b261324c6595233b8d56b2c6c78c07d6b7177..dcc276002aecff6717f7ac3e87432205e7f60aee 100644 GIT binary patch literal 5520 zcmbuCe`plh9l+nr>{~ax$@$Y40d4Efo4kp%jinDLsoQcSZYyVxcV-ypn5s5Q~Kz*Y-jy*zfoK z*xfv1q4b5>_r9O+&-dod%*$)>g9mg?BeH2^A8AUG5^^cr9LLx&MnYgYX4gNo&)vHO z$gZDWvg@@)d;ZX(85)k+^#wB=iG~R25kHR$?F~fGq43kBSW!K}k z?77poh@h5D}5uiN!sEG{Fz5x)%`=)raV&~1Be=q54G zU*W2S6{>m9O)yz7uX=oQ%V2bY`Hf**?kfzw@U z+F=f1m`hkQuP!exVVrvWCX|l3H?pu;ZVmE{E!fxpMrpDE)D_S`iMd=~D$ z^5DS(C;$p);P%~q05Ef~BlGe5_PO_PO^?4jVVRrHBP8Z#2*TET?p`k}_A)FsEcn=> zT|cw{p_c9WLCC#izj5deE))8+tSklb?rvn#6g^5XGfI9>O+4HdoHI>E3`dKiz~vl z@fBK_8u&id(2lOqb~CLHQ{9N;Mqtx9{;n3*wg$VX5e%){5DaUbUP5#ew1x$mPH(K+ z2<{2&4QzXSr0cVf6XKyn7igr55IV3z^r}vTtWgoV`L+-vxGxY05YlE6B>u;styr_)I+9E`pVA zNS*{s?FdR*&u3ul(Jz;{bdXC^T>3LeRKI+JN!x$JrK3!GMo6Pf+OZ$vgQd-+oiVT^ zu&BJ9flg#IA=3;}%@mnAE5Qe-;Dq%hVCnRwpL?FiT454NwvB{FRg z5ktte4KMPD(_D&!L~vUW>S;rPjlEhMn)#2R7MhMr4O>Rv!PXR0=@w~@qdqpqM0#(i zIqvIjj{76c@vffcc%YY!accVR!RGkc81df``3;MewZ_-B2*m%f!1{Jp)~Nnu(`^ec zi-p_D%VOiFcv*ON^liMX5ghmMve@|PLDGhE=s=I)7^n?`4+HV7A!Dgpp<0WibIHPF z;oVL;=T9~Lrr;2&E5>2P4lC_g=H9F8A ztrT;`!X%lfI%wzQlO>WZR2%Y4DUV}tDEH$S2PBiMCP_XwL#DHZOmUi|(h#IfO1w++ zZkl&4?<(0-F2PKZTA`AiEV!8nra|mfNg?GhGp8~Q`6~`f02Q%3KxUkrTOhOSm)qvt zbTygExule=y5#~X<&v{**(nt(#BqiXA08fezA*A~+<9qyH10UWoykHnHoGeOoguU6 zIz_ViNrw$m#ZyI;NE%+y|I7LkvKDU(H0{)3qRoV~4ee`um*B2_3K(A4@YyEA!O-ja za~)pem$9k4diHpM3ZJ2-{;N#?JBaBaDNtyd_U~W^c9;e(%_7lS zr5w#=Q_)=RWPWE~KO3_x6Xjbank}SrwTw&T76Dhj9jqygQK@D!?gWfs@4?HF{o=^z z(dZ_>Z-5583EHMxowURIJoS2yQo}n*gIDNU;Oi4qPf(Bd3T>OCApl(fj#BEKqW(D= z2H;Q7wd{9Yf*M1#8#J2$Z%xom3EIPc149tMkH_~x{4m5{2R0iMbaR64NKh+5X~H{B zjUQ2uLv`ciJ4VM*s?{hlUhsVztDK=*z~Sj3>Pt}XJJjD&>H2XR!GuHfnFQUHpo0mz zcY^9wsDGTU2hHXooP!1uxj?;s-xJga)H`IPCtykjlxd*sy)1c>@yJ8mVf@L5_;JR! zaIQlfZBF;XUBp%XFYRN{dB{f(RFiW6bog5m0oa}aRujA=INNK&+2D6qNX^a=U#}+N zBcu6RU!gMit8N8508(d5eD(|gI}8{50IaYk~YMi@5mxZG-DRoXW6$ zQ_LSZzN97pZ41Yjxa5Cn;rU|+Muozf1pXelZ)gr(IansEMdI9 zg=3rnA#V~rmc`E&9PD@m-y^upi|dZf=3S$n*M!WD9x#^n_XN)<_Ma2$QdanW!Oto@ zAo!ORen9YV2#zAoOYYO}DfalL!}deoHR_c0UsL$=BL1%xF6+Oea9RIf75#$(GX5#Sk0|yZ3NGVG`#%cqD)#3E ze^ucZ1wXCuuLxdO_*;U%sqk+J{vCyXSMVPw{QH9cMB#ED{7m7ug#GUo{&T_KSNM+w z|C_>xg#34fKPzPRA1?UH^;{BheBx6n`9B3;tML1RM-(ofmmLb1`)N?&eWIQt3g0Mr zMC3s=?oZibVj#JE?oKFN?&qT57`8P|o1wP{{CFaCO0}w!%_k?}R9AGw@zBb+soJEI zOr^^1Nn(}VT+*t#GgV@xi}}0@$3S6Gsg@fDPdtdi!E@5BI^t}Hggf(i*}_DzVXmH2 ztwOQtTAzPmY-gpKOn;GBcnETmnGBqjCs%~YWectV?vyi8PUc-UlZ*@H6leKt7=awl zL^j8!#^xx`O%_izm(|Smd5PIn+(RI#B$}*9&!hc2@ieAoN;-A7`we^dLjbaN!Tt9rr zNq>3&-v*}Egf7b>{~r{kA`*Pxua+@ie*C@|2OkunI}2B%ofZD_xj=tx YYJMGnx^`%H8xNDv289E5m|M;NA9S|fBLDyZ literal 4328 zcmb`KZ){Ul6u{5x>+8C8YsZGTF@%Z0fUwswM~@5#IXett+;#OaE*g z5iu11)Tx1(_{Bs`)EJE#qb4d~#6SZ0!Aw6Gh$QmGWEwv}Obm(WJmIQ9v{Wx}l^A3NTw+k^@W(Ks|a61&coi3%_*)i-)cUi@B@8 z;?QicxaUf68ujViZ1BZBmxIM`W+^0C?49BKYH)f8s66p1GEd{A3a1sCoXAv#9A#R^>E0W`!r8#SGs+TW zt+!EAz4f=Yc$X**E&zuQ9aJ4H4X!|w>fP?y;c08Wry0PhfrEp-MgXnrCe>D$|IyHKBwb2-2jv};uW>=n>2DoTMbol93Qc@ zWvFS6FR1OU=NH-tMJdfx4f78(t);y@|B4n{ z3o_enqygPe(41}`Dol1MZZcG_BP%wC&Ty66-AVXvj@6AdWF1gf(?SA;sB54kuXUH? zb@fbsiG13cnEW!y>sw3mhHc=cq1RHTy4T4JUdrsQf}wEE%H~=liI5d*oiNjxc*<(s z+^Kiy9qo7Km~r!yov3x`TOgVaP3jTwTca8OSSo2|{E^65C^und{au~@Oe&GGVlbLD z$j``+C+Fp4XdL2J7LtiPOvbHfY7*kfm@yv8jsa#!LnM`s0)@BctV}#+nbB7A&%_U! zMi#=UgDDCC7C_1JM#8jUie0U+5lJNyW+WR5Crt7&(-vgLLz5O5M$h12&tBu9zDIkF zhxZQj8U~p8IA%5|O_p8rFa`f@Az&#jA2#LSASn5IrKPsYeGC_N1v2_kV~boJG-aYAI2YX(b%(q3T+*g^6XfI zUs#0GI#tT^<05=La%!|A*WvHRoZaZ~qDGu%E%<(d*of0cB6yJ?HsaOz6Z`{$*of2S zCHPkau@R@uS8%ZrlkfcYkFr>K;uIrV0~Z8u=lZfTt_f%CmzQzM)5Z0byr=am-5r2U zi}3B7i@JkczgOZG*M(j9r#T;y{Bgr!O~eWRXE}d@_kzF8_2(u29@k&ty_lDH9^aDu z#eMx);$j@9B`(JQt;9d%`eliK!u4Mz?&L4_b&0z;7j`k<1Kh8k+XX+ud8@=<p|;6B56~`4Nf#&iNY>|B3Tf-qW*O z{yYaHE}n-J=ajD8zpmC(UE`wj*%;4djd(H?!-F?v@WWb2#{<=fXYeder|~QX9+SzY$rv-Ubl{4Q1Cs4DcILP>nwmG#mxFGl zvZj9D14HeZY$)v*FYZ6> z^I|S2&bMJ+U;bc|ec#21O7%bI^+g@3PiMbe|5aq_?zt3pPvLLA&G2~fUQj$WxxR*A S!P=qU2oD_K0n`za>;D7B+zEF8 diff --git a/ft_freer.c b/ft_freer.c new file mode 100644 index 0000000..e7853b9 --- /dev/null +++ b/ft_freer.c @@ -0,0 +1,59 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_freer.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet -J!%7AN5P_ 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 # include "../libft/libft.h" +char *ft_strgen(char c, size_t len); char *ft_strfjoin(char *s1, char *s2); char *ft_strmerger(size_t arg_len, ...); int ft_is_in(char *str, char c); diff --git a/libftx/extra/ft_is_in.c b/libftx/extra/ft_is_in.c index 645e5f0..bb8a149 100644 --- a/libftx/extra/ft_is_in.c +++ b/libftx/extra/ft_is_in.c @@ -6,7 +6,7 @@ /* By: cchauvet AO?es$$E@G zCu=aNh=PO}9Qg#=n4Edpn38$eIT#p{CnqvRvhHSO>WQ1Yk4bUz1EvnfjLn(M=}e3d zCSPQAXUv!^$!5;DVsapxJrgtI$NXfSyqyFHM+ k2qZU57UZz!%z!!|eR3p+Ipc}R6FKZbCIZO|lLa}|0qL4GApigX delta 202 zcmX>gv_oiu24lrUOUQ&iHe(K9i~_NSMKq zPoRy-nU{?ziie$pfgx#fCQ~F2E7SH^R>o2$Rt84K$&IX1lV31(Fvf2#WKL&dyfOJE zt2<--WJNY}#`%*Y+3cBqF-)GtX2)1C`6in^W6fkqc6+9ujFY3-?U>Y=CSPO{o4kQt qgHdDhO?G?66_X`7>^T#lj!B!G$YIWSVDd~3dyug}^2B6GPIUlQ&ohVs diff --git a/libftx/extra/ft_strfjoin.c b/libftx/extra/ft_strfjoin.c index d03d5ef..8911a6c 100644 --- a/libftx/extra/ft_strfjoin.c +++ b/libftx/extra/ft_strfjoin.c @@ -6,7 +6,7 @@ /* By: cchauvet <#gEX*DUcl7GTbfs#nVy%LqL7(a!Z6vC*&1xv?X_hMybvt?!8 z&dR=c@-r5z&2p?+Op-G|CICSLm}Fq!0@5JY&6>QBU7vFzRCMv=kL>!48JiV3^ck6c zvri7vj^4Kx`V4pk*NIhVge2GU50G&0L;KA&BqeFyavNz)*#*LHTG0qoe&f!=KR0{%32iZXs>*T3SZTy*e zB@FTL#l@LbsqrNY#gjFdttV$NThvE0GBB_(Gyv5xGBW<=;{{PbAqF63)GsYA($CCG z&M8ev)vvHHi#IdT&B@Fwt8v7bUaW#%tSmOH9A2zkUab6HtjuiI ztn3RW?_sgp{DUQfiE-BCM0Rn;Ig=~d^%W<9Oa_AG5Q>2dNV5QO2b8~V@sN9CvvtkZk;U2WzJc^22nU;awL$qhzY`5FnK1IIiu6$i(K}M1(OB2 uL1ZAeJrf7V7%Q6n?wwS-W;(J5E#@iol2>E@an9g9I%!M#!*ne-21N%PzzK2U#CtWkYE9RQYUuNH;a(P$Teg8H)HTep}4iTRl03#dn03Kb7Tx| zO2)Up!-yh{?b6T~Yz`sw<}|^Zr9Gl=tp;G1fU#5BHBOgCnZW~y-dVei#L(C|zq>V; z@O^{p64u$h^~-oX=DyL5Sb`FV=-5NOXAHhCT>4I$kseOZG9{h8=XiQX%HhK03>H;1 z^yJjyF(rK}bvpIP{Oat=JV1_Qegc&AnN%tTkT{A=Py&m7f+L0l zd4JcYd^`H{0TQwzSVGbZgrv+S{>J2MuLS6g0JQ_Ojf%flMIyTBqa67_rTDmS zNr?|hqsW@i#1pVq^K944*R87E%CDP!r_;0Zi%VKTD=eJ!eCOh;ONf@W$Drv}9Jk*x zZLJQv-E{PJuWLGbz22^R>!zzOFX>Lt>e(&b>eQO0C7{F7!MXI`H2X7CaTqaV=ea9;A(|bbKnFcpta?KICbT(8j{k>Fitb zGt;X4E=B;{Kq>|=;;$r0f2XHO(VM~{>7LW4$I&foy}PiuA^PX9lLIM4HG8M ziQ9wXxQ&L{)Y?I-9Fd75Q8E(CCKD&voLXk{WtJ#2^&(5EXPJsxQClqb13NNcDRj$a zHl?ELmnT^(iKQa|uJsEQJha$!JRISviTz4raL9?|bNo!C&LU{0i(Z@PJ$4 zNB01UKnV_2lt%u}fR7fb)Mk(ey(YI!@Kn8UHDU+7xOkaHX^*kvES!ti+GRo zB2VyQ-};d{A9Fm2@HWTv-bqBAodCi|TnqjR$9b;lS;NoUHkGO#VXZY6^%WK zjwna5E1djHByt^%)sR1I{ac)D^8{Ky^=EYb44e)`fX=f*u$ujAO4JkJ;NQ9g;l Z0Rs2}jp*Ky?`z(a*9o9d9+iyF|1W0|B3l3e literal 0 HcmV?d00001 diff --git a/libftx/libft/ft_split.o b/libftx/libft/ft_split.o index 2040ca6f79d6486e85d19013ebd9714d5609fd15..8810ed78c1a1c24c840e2cd791f3ad78408acd87 100644 GIT binary patch delta 1151 zcmZ`&O=uHQ5PolWvzwnyx5)<9_}8W$G*W8g!CcxVMWGcGJa`ak(KSsW*o10BDfo9$ z@z^>_L2Mx>bEz7F+Tcl05Ujr^!HcT{A#N>ta1ib^$2L%Gkr&8Oi|%O=y-cuOLFMbALu2wRw^&RrapPF z?p|UGU8vON$}5P~$y=(sSL@JkoQ1bWDzq2R7=u}3fX~1U)YoCd*aP2< znqqOtMvv(srsl$9?UUgjTv4LnM)N~1?osd=<>Cz)i;$f}U*JUrzD4h5E@PO)P|6%R z2MAvTH&)0^5UQaK9la8v(`5aAqzLMY`h@;j)8Gsx%b9w+NT-B>A$7i2xt_AMv)F3M4vI=zIWw4Xr+Zbnl3< z9AJEgE-{vgu^wQoL&CDX>%K#bL9(J-4aP0U8?3y(i@jO&N8yTP9~PsR<0%tE9Mt=f zMZ$`y#@bJaaQxp=c1rwXVhP#h8}<*ch@r{= delta 1173 zcmZ8g&ubGw6rPvOW;e+;+hk)CwOXMHM*LBGu%Oj#D53?03ZBH$#2B#{Dr)hfD7n-K z2{gQd;6VftdZ{JE`r{xZ+G`~uh#(@~^*`{}o6Q@j`@+0$_WQnh^L8@3l&NGEc0;9} z+1_}$OM@Z&svXemfw8(2k9|Ej{;|+?!-yypa{~iX#D!yjo)ODA^9i`#XsUrB_H0vzrwIJ zNN2XsN^LfXSCQaJgwVh#QcWchZuw8Gk*aS{_wro6hmLQ!a)DXZdAIUUD|K4#yTYnE z6i+3t!Tfbb#jo=79Y$|2nz!&wkF!lyyvE8yMzwMo%j{5lzVJC3*dT{|qYnQS9iL+n zzjF=M#}A*Qf$^AgSN5^YipjN9A8PkLAOD*DJAM2+=7)X!I`hYvmmqtmYqsB$PWcu* z;RWY>{3?Ekb&pOR`c0qXBZA#^l(@zNpQDBcZO6Mvx7e|RQQk`(r|gt>uq|eDjGjvK z4%TgF54Z1WMRv%IB(FlVg3&;@`Q9D|c!m%^0c$uB9|=E}x1J)0_v0fF#CF_;8bZPa yfmzCtB7zoE(esj+(ij7Z zZAodQEefp1C^ywv{%n;F@ z9-^F0G@K^-_A${9=ZSvlBRVrp^v7RBlj3*v8PQFN^N-j+6#Z-s(JS#=K1L{s5F(4t zs3bJZ5n9g?y2c4R-x7KU3H|kiBk{{~K~>r=_uuRbsTHe?dQ9qQX5gn>cB~>bCuWHZ~Ka+IfB~w>o{Wg zf?3qs?;IyWICtYjw(xxE!W!lUbuLc3}_8ph|&fAckM`;ln5I9mQt zki*gvM;u-%!|-z+?g^qoy*y;|&q4J0TO2EqYK{dFR+Bqzt_#9elP_#|d3HU*JQ;$` zyF&lqqp>) z32Ayb$FmY*?1{_Ogj{s->w5j(#Z5(CeI@3Yw7!Kknw!igw11+&`9cW6F_V)qGC|v2 z&L+8xi<{*3y7-hnY|zE;XnwrFJINe8t2b62s>}^Pt~t8`vE~!t^cGZP<9h8B@7$k} zw4NAl?)89+n?{^)ansHIl}A?OFScwC-z-OM{#7kXff-)fh%W2CM@N>f;@b^wO^8wM` zZleBGqU;u;kM0niI!pBV9-@iwiM~2d^sVI0E)dPhIt9`HBKSu!(PPPbc7RY?N{B8J zl9!@{H?oAc`U$_+S+>Du3<;js=nCt2NkW-}1>u@=Y7D9w_GJ8tmYXT1@c6TD;kEAh&-YogK&w z(-9h=;Y^lt>3%)-4`l~4M}^55??^6vI7dV3?o{*HKNEZ{hA7&(5JN5Af!Bm{6zw7*u|(vr0QSG(G>}l$$0jkW0Tw>Vf>(>j)&_J zR6VgEU(n8l@*wt;cr8AqmX;lFT7`Cp z-_|)ZGPE6bfOHpWe%8#78Pr>`Wn4G&QG>32gvT2YuF>1}K diff --git a/libftx/libftx.a b/libftx/libftx.a index e977f77ea20a61c07cb1ae64c7d7d7261edfba1f..542454c88511c4c2978dca75fadbe4ae58df3e52 100644 GIT binary patch delta 931 zcmZwFJ!lj`6bJBkx4XCZmD`UC!9sKc3EYR0+1c5-*+nFRLIevz3qi$%m}n7#(I6H= z8Vd`Bn6a=Bw6L&Hh$MxDLJA87g%lPR3MnisL{g-%5b=K>(F8pB9lLMdzIpR@w}##i zFRF!*g*@o|#*0LBgvfjaKZz^>SKt|ZBgzfII6Q<;M0P)%ggfw-C~v|j+=Q2~MO0ug z15e>AQ89pX@Blu-0{%)aoPgW#hNz4_%7@?vtp3L)QQrZ$3{PN#sInK%z zgIll$zldA~^RNuxiM$%ofOioWkKr?szXwjk;>yuXHItj1n4O%OSvi$`mnl!rU${1Z z_0rTVjg06)v#F1pXAPwSz29njq1+zf2urz=0?~%p~^Rc@$&iUSD1Rz)CEa?9||* z8=1DZL-XKjIk3c8kbR z3F9bI)2p6uuvqDgU9av=3FD+C^ovqWAN2i9q(}XxziSsBMpEiQt5(ANw~PM)5gEDR delta 819 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 m=yUjK(PK2jgB)LgOCo^?s z(ho&lSP;sJxPO9wfj;i~pbrWQzW64JAiga0L16`ba-p6xb5A>&Ca8Ge-h0mPo_o%{ zH}~Gj2TQ9LRYd_71unp$#T1}BcBt1PwFV{hTr+p?n%94=+*!I$)ch*y!|HR`BQ>g| zZtgDKGjF_i?~6Y$gL#`hcfXIEuy>Do%^Ur_7@#qz+@hJ8*T1Q}@%6HBg>Qwn+o@PV zAi|(x7zUWaalFcw=R2*lpp=xELRr@e#fQ!mO3G9gKs69fWosw3!gKla`NvOPDnEY; zKwAV=qDy6f%%h+cF68rh0Q~`)rNELQ1#;2eOhkIR+D4!{ptOh3ncBeqeiUWq!e!Gv;QW>_?sR?=PUWXgmcy%XW<> zRNZz^?Rq^CRGZDN)!!6hb#b8@c#h|GA}6rj5VmZ$gM!8rn-N3a*aO5lnwRM*_ZTuc10i0UD1zcSM?dx)fN3jc3oFd9gExSx|+x6 zQLxd~&)AiL-}i@kXoo-JK({6j!2m=<13ir*TLWD95Yb@r2>lUB@dyQIjNqS*;2$BM zO3Xj{Es)WE42yq!1YaM)&yC3AX}b4w@)KyJ?Z+BG-!QEN&8;I&NL(c843CR6C+9c zzKd+w`YZDC$A1jseWN{2ub)2t6mt$sQa+Z6-cCZ)IX}0rNR}SIFCC137=JSnGwC{; zyv&IX&dcb#c>G4%eNKXB*ip8;e#YOTGHn0O$pgvfq=F7tTiUm{D-2@!N<{!#l! zJ|wrX49i~|lApdi>HMD}(^mIAY_4HBkSlULeKSaC{v_$S{)Q~QcjWhrgk3p+8j6+9 F|2No&KKcLv diff --git a/map.c b/map.c index 7e06da4..17451f0 100644 --- a/map.c +++ b/map.c @@ -6,7 +6,7 @@ /* By: cchauvet exit[2] = 0; + map->player_pos[2] = 0; map->patern = ft_readfile(path); if (ft_map_is_correct(map) == 0) return (NULL); return (map); } +static char *ft_get_line(const char *line, size_t player_x) +{ + char *out; + size_t start; + size_t stop; + size_t temp; + size_t i; + + temp = ft_strlen(line); + if (player_x + RENDER_DISTANCE > temp) + stop = temp; + else + stop = player_x + RENDER_DISTANCE; + if (player_x < RENDER_DISTANCE + 1) + start = RENDER_DISTANCE - player_x; + else + start = player_x - RENDER_DISTANCE; + if (RENDER_DISTANCE > player_x) + temp = 0; + else + temp = player_x - RENDER_DISTANCE; + out = ft_strgen('0', RENDER_DISTANCE * 2 + 1); + if (out == NULL) + return (NULL); + i = 0; + while (i < stop + 1) + { + out[start + i] = line[temp + i]; + i++; + } + return (out); +} + char **ft_get_player_map(t_map map) { char **player_map; - ssize_t y; - ssize_t i; + size_t y; + size_t i; player_map = malloc(RENDER_DISTANCE * 2 + 2); if (player_map == NULL) return (NULL); - y = -RENDER_DISTANCE; - while (y < map.y_len - map.player_pos[1] - RENDER_DISTANCE) + i = 0; + y = 0; + while (y < RENDER_DISTANCE * 2 + 1) { - i = map.player_pos[1] + y; - player_map[y] = ft_strndup(map.patern[i], RENDER_DISTANCE * 2 + 1); + player_map[y] = ft_strgen('0', RENDER_DISTANCE * 2 + 1); + if (map.player_pos[1] + y >= RENDER_DISTANCE && map.patern[i] != NULL) + { + player_map[y] = ft_get_line(map.patern[i], map.player_pos[0]); + i++; + } if (player_map[y] == NULL) { - ft_cancel(player_map, RENDER_DISTANCE - y); + ft_cancel(player_map, y); return (NULL); } y++; @@ -73,5 +113,3 @@ char **ft_get_player_map(t_map map) player_map[y] = NULL; return (player_map); } - - diff --git a/map.o b/map.o index 3b1376073247e2f706cc9d94c82888964aecf301..5544c9197690b0f2dd0a4325b2f436d9ec4dbb20 100644 GIT binary patch literal 6360 zcmb_ge{5Sv9lz(7vmHCJouuuOwi|Bg`ja|omv#LSI#*zDU)xc-m8FHsb?leKnqx<{ zQ`)j_qu#1z8KOlixLr##scKhm)i4C98M4 zlA~v4l4ECPw*37kY>MQgi95-O#4Yl5HG+o#lcR~LWcADx3%}3|3<|So*z_el#?IW4 zI&US%pf>6k&Deok$?CL`toBT@@bjn1ilho2>zRBr08p6TaC^B{(;HnfiPT^-0#`ST z9mY$c@m5 zBmD!n<-~Q@U>eoo+sUyW7!F6LzC?mink+ax0EaYL37CnxLr>yj{$E%w+|W`RaSBsg zLK~a_$U+!SO>cK5%<($WFbO#&HiN3nqLmXU=PxeS@8}2?No^JqlnD9b$z6%b@Hw$! z$AFF|-kzqi*2Dm4ReQtLR=}4z$u`jv#=5C1PH_Sp>8`|-bU2X^ndy3y^Xg7DIdfZ| zy(cKvL}DBbYB5^9jCsOvY{npI^~T%H(9Ynl;JS{zZI9xuY2eHwp}lR4 z@$NaScfJv0zAz(I{~Bh7b_au4YmLi*IDQ!mv>9e77^EPK1)HI?w~d(XV4DnsOq*9h z{}J#Z@(~Q~MmM}xcx7unNQ%nC{Nlq#6EdIPH8Cvw9J+_b_#E|(@RwoL;JGmDaOc2r z&xJw3wU7*4R&cHDhy<=zaBY93Xf=;t1tUGK`yAClhSI~a4C^fPmpccGLw30{lNn5p zoUkjM-CH}$#eA_a!1^nxlAX@>=khj#v_!ywU4bb(nabM*Mq1I4LOC~3u(Q!zp~A|! z({`%DP6=_LFO@0g^LD0^?t_crbj2EKQjlAK~W=EhF4;s`=i(j|Hp z5yu|FLj0e~r;ZcG=|jvo88KEg`TXZG2`e!V^dq9TknIUY&Urr3?Dc#A4M)~PIEdb< zy8NY@{0oGG=kPF27&Me@kxxOG987#=k<%)Q}o}M(0Sm)S1uq zb>{OYhBj~6D*9rzbULe~GgrvuN3u4HF}XfqS*~QWc7JS;TsZ3jeMG@4AfD7S!v=2( zT;)Em#rb(2@P3^8tK93oi0(eLz1;K;@Q#~2=j3kB1A)@3U!@64I{hMT;xDpJEhf~av1JPnG1JRnAC_Rt(->LG8yyn9~b zfn#a_o&c6Ht+U0c4e|!|XYtCpwQ!`yV)d|bxmLwHBNa?%8N1a*-<12UE-;x-hot`e zJ^4H&kp;Brywi%f^sOKg?>JfuKf=}JMSL58eH6ci{QO1fqa{)UkE6ek{<%eP`j#xD z&yn9k_~k|PKU@U=;v)D`;6!w?p+o1tadsoxNFa#t7W@?c7=a+dDKCYO5(pxkW%!?EuJoUl>yqNq>QeY` zTsUp`3eU;c)* z@M?!e^gp%;zEk4L&u1l{)bPJaUL0c4SNb1FJge!``XeeiO--NHG0`(lBVI3&r^H{D zxboj8`ByYtydu2-v zjaPmDmPlObPfNe*yQuJ$Qcr!K6uwI0yEQ)>CBI+8W0F6r;oXuS)bJgWKcV4jTrX?* zF`56jHT)fke^l%JR;=j`HS0(-j4gbEx-`8;3pNM8P{CNjv z_cUCs?^gMJQ1kLrso$aDYTt}XIf>oxXkg~c+(p&=WGcO2|-U{B@BxHptaxHl-9az$J| z&}0VP*O2*l1IMisDOcz(vf?lfVQx?q%AvKnG=f(xWvgZnJ3H@gpL!mZHE{OQ++4t3Pzzry$ZX(tcOkZ=|3u(slbG zTPS}&B@Bv6A+fZt>iItmjC^+C=cXokgjC;8B~$TLyBvar>@67xH?%pV>{R=Tw4b8{ z=A=qg6DT_cPoV>BSSwS_{+miswz}It0bi(o>*e}8F72p(^bJ$?YW``T)N>+}NFzNN z`@NQ!uKR1~EENAm8DGVr_)Ylf@qY-++<&i#<~jUo^s2O{vmg=K6Y243pVU$mdNa~+ MQW{W0OG1zTA85ecJpcdz literal 4464 zcmb_fZD?Fo8a{V!&dg*cGf5La5-l>tc5B7lNov)iwWerxr&E>MwK7%9bv|xpMkjZ| z+&gVjh)Sbkh(B5of9!(zLr_?k6&6$$wYG}eiYSO;LEImULMyva5vBM+eBN``hJ}%h89j9}1XN}z4wv(*)u|pI^Rs}C?JNae;pa^|8oaIEvZ~mf_XbmxKqOH!Mpk>zn?%;x zbIV^eH%RRXZ0a@o+tgGMkOow}L*ZyRfj4e0@Hru#0vJiW%~k1`hNg{Nu3(jOfg zG}AXGZ%S?)+Bt9wUZsn(h=g_yFvhnmQ=`3%(Aaurrne`PNyg%r00~ks);(aD>12}f zF_uWdY3BebTcIWmgF<`O!T$#6Daw&dZimPo!rXU(Bb``LJwnzW2Vskt3SER?+(Vkt z`%gT(B1fkJ?KLnSIa(9i8nQvF2(3Sl9MB3v8@P+Abuu1=A~SA$2XZIl#$_2dk&Q(O zi@t$JOsGcm6nOk&Qb6XWZeqL5b+qKz1{5-{WJ~h;_>#P#Psr4$`G-Lv-$4EwGfVPS zTUmUBx&=inQ8E@!Qrezd$(MwPO2#<7c;Q&U(#8 z)2*@z-)=d@%0#{4Fj!jzR2?6oY}#%(E+el@+x6;I*QsRcuFt&sA;he;M9)*^DvL)d0(Diieziy zv_8)_<@snHd3daVq`OeLz`IZ*af(OGnSb$w*fADzXjSKo&dy4nL1O24) zd{8u+KP)<>EJ17}fyq&?sq;?(bg{3+63}fXjob=k%56_KnZd52!x;1nx5hlY`YFHc zOsp|rSK>#Ng#-DIy@9UPaueJ+I$uMG=U)9pT0OE!fB&b{{3KhUm-cQ6<&4Mtb*StaaH#& zspmBOBdLos7qarFbx%|YSO@=1>Mafbuhbuwywj%~$EP&^lGOjA;i{h(HC*-criSmA z`Ue{RzSKX_a9j}ueXijRsh`#G1*w0l;YX#eb`CXe&q+Kb-&^4?NPI}ck4yY&4S!7H zqZ+Qp{WcB%yYyG+&k>~#qvYUqQloNRw}qCRT=Izwu`dC1tXk6 z+&BWjso4{);-s_eW;9uBG@50CaLvJeNoZ&o*DDLH0R*3!B>sC4t=sUvqjEmd6G;D8 zfaG!-Iw;+D2vhr*GK@)quH#|S&j|XH5#HaFZ-F*X(CL6N@}v2dFdLLOrPoRb%c~N6 zUivAf`|evM{yw?5np%LSvbzz#QvV}#xDd&~rT%GO*89H>808$nFHG;rIIa~`s^YZ2 zuN42GY|08JmA(Y2_y7`&)amw$d0GkSbi^3)kp@MRhT)n@7X&+mu)QDVv zYFudiXb)2HYX1KUOz#O0E6DmUYer3F&%k%3`VYwZst(mBNUwhgn0fnR6YNp^Iy5cg e#lI<_6i=kr{}R{*V+SlQ19!^+V)Tva^?wGMu~)(X diff --git a/parsing.c b/parsing.c index 8acda88..2dc12f4 100644 --- a/parsing.c +++ b/parsing.c @@ -6,7 +6,7 @@ /* By: cchauvet }m(~ZgQW{c4(Y7&LUfUx+1tF_=7MM|L(MJN@u3PKx;NT4br zh8>*g1*gGQXF_QKi>Rjm^W{!IK6i|51$)_ z3oPck_uhf~&~;Z&lgqN?u@7{WyMQ#$ze3%697+My=^6G9?v5zZ2Kn}=ANR<^cPJg+ z8Sd~dt<8%dHMvZiSA5R*cDUf#;v7ULu8r0%T_2ekpQM?t+ms1E)$4x$qY3RkJEjWu zDBcxTly6=$oMVurwP^2|9&rUxlrdAr9&z#?qC``a`P`iaA^Tpt%&%+t^F_^jiFf6_*43{u5Z1 z`{OA}NS-L&Qcapt#I6%#W35RGkF=8E&oA7NR2<;W3z^5n#rvUo>MDz zT)t?3+Kyz@purN=(l#toBkjN!YDr(ClJ3Ays_IT;Mg*#h^h&qk7qw(2PbI_mRl{N0 fCYm=6M^@wq`SzXG3>zL$$#mceRi*z(4Kw!_@SBUb delta 577 zcmYL_O=uHQ5XX1kX12TCtjQ+3*#<4PSWOlWiH8!zkHrr(#1C>&gO{R+wjPQi+Jj(H z1gp2o|6)PWi)cJq)P3h>_12?rlS&3==Es}=8)jy{*e=ZH>B*vh zS(wH0{T7uUm5ZITD2ri);tS@~{S-q>{Y8!NMJ!F!z&k!#^$kT@RUI9S@?PocE~U?7 zdY^YEyZoJ`X3tQU*CNi1^f@1%&@K|+x^Zb{8gB;fsj?w*`b)PVK{>K5`9K`AG;udR zpexEs_*>5jO2IHk&b!(qvsU4Bg8C!?T0jm z$992|XxU!&!d5jQdQGE?MLo}8!}jQSXry)unuhP3lvCbxO2%fqCtSv&Q=(;boPfT< zcLTbPDH)g0bOU2f>!~KN;g;wR{7fJm9Y50ztLDdTH&yxc!}8h5<_ diff --git a/shape.c b/shape.c deleted file mode 100644 index a1945c0..0000000 --- a/shape.c +++ /dev/null @@ -1,69 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* shape.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cchauvet Ts^E5t5~x>G<7eh?Z&;-z0^Wd zAz9R|O;kcmL}N_!#rPueK_d?+m%u)m#-~0uF~&AAMqVgUV*UR)GuyM%B9f3e$=R9j z`|tmmGqb0{N1t|S8pxr+L0CeP1?XG7v<~rQ2%1r|-<Jl8Te{q*1Y^H%#n#X8J;oA6EhHavx(po!pZRM`I`i8gsWUaChnm__+IS^Q|~z0;K!y&B4< z&GHW#2ArP1vbeY?l$Tti=G^tCyxP{gNnE?`CeeK;sS5Yi`NvmqKWmofU6_5XYP7g* zmal~dt_~T2&1a|}2yAxr^N&#F?@*<*Pzm3{mSS6b@3XCcqQ~WJy-F-~{@!hUf>OE^ zz7@FCyP#DoSA^NU`}^Gr4X8f2{svcY|1bU3TD0x{Hm3WV*KYK;XssRqR{%@X4V1Kc zLhE$@zQ+BHJJug*JG36a&A=t7BW(bzrw)1oKy1S{(ESG+8yf+(JM=cxz0v8Y9TvBeH^ut zCL)ugHbPK~b{vt2wzDqUP7!U4TS;Wc-dPu$qgw3Fy4Xft>>!WrAt^li>3BNI+h)7AG7j>R4&`TyW8k8x;poixN!Fy-H3XOy-*m5jao(mg4v-$ za3q(p3c*BTBvu-;iou@lU?G>zWrty?I9PbC6w6zHvOK|JK85bnNWl1D+R6gywU@Gm z)Ns~Hwx_a1D5OqWgGD&O#hKVBjKc|t!~NxF7Y7fCSv&axXyeV=#?=kp_p$O#$kRiE z-a9<$Z+^>lxXGg*)KG=X4sa;|y{RSnF)r`Go#Tdn6lj|Em%oW7Qo~0JmJ0b`Iu#G5 z(_@*=-Q9f6yBf5+8BApp=~B{yS{Ko>P)sJRA!Eco_E({Qd*}g;wfMXPY^^84HbvO> zDDy^`C(3-DXPF1*M$a(QQReoXWvj{vBg_>+W`uch>5s6s2wN9r4Ap&Qwi-D-!a7jw z_8cHrOFeEC0dZq#$>#f!Q>${H{jx^IoJ4NPhkHW4#AWkG$hhI=;xYjeI@Df%omdwqS{=#t z`4_Cx=x6zGk2k!zJr-Z%A<6+N- z4}WV%Ag*PG#M|dJSHm3bA^A>$*Eo14)--K!@Z@K&z>kQT(sFin*IoF1f|qfR3(Svj zTuVMHcz#_t_))?%HC_ZGk;`N(ysv~tp_mt9+ai@6 z%7Ky16)oeLWBr|lVl4407<4BL#*#_AU7gpX?bkL;r?QstWQ`0ClHIGx6)Ha-;gG9KB}kl025U*bYZk&9-;RX-yX K$&S7;HU2*ywNB9h diff --git a/so_long b/so_long index f3d4e58c2ce95f6dbbaac444cb56e2befe1e43dd..85198a5348a5f94a44641ab967cf72152df1153f 100755 GIT binary patch literal 104312 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 WT#d!OwZ{27_h?MJpK9^z^Z!3}w}-9( diff --git a/solong.h b/solong.h index 219b06a..56a4179 100644 --- a/solong.h +++ b/solong.h @@ -6,7 +6,7 @@ /* By: cchauvet ts)eNvPmsy(g1Y`RB7X{bwXw81naa`ZPPzkfCw^aLPpxA6m3!_Bq$6P&bjYi z`})=?Fpgy3dw%zv-?<;>-FNSMD!PBKN7F!v20Ngt2^7FwS*=G{H3DsD*%zC7H#Yfx zcWkP(5SuD4#-^i-Q&$(rA~qGBk4={5q2**VsaK;n3BK`tQl|SBF6vZyjWCkf1-Aq^ z2f}|A{b$jig2$#y^DZukdKp@rMY8$*)6w~hMh(rrI)vpa%XDehrJIhHv8y++=Qm@M zm%9fpC9RhA-(sCfp5o(+RL6(ooGvbk9@ZVFC^4^fHc+MtTkBz_pn!Ay&K= zn|gz}Oqb?rId1sKw}RqwR_7@)aH(Z|DQNV_mW+*8rpr{gx(fg;lN&APe$|0kfxKl36!ZI#Dj5j(ml9xHs{ zXjyKYrSMmyWh{U)D$+9fBvq;X=z;Q{D-FI*YOnrBQ9@-HM1_Asl5pj6|0v(zj3I-_%K(HB&_H~f*IaJ~2 znD`A?qC3_An&|Hq*@h+_+8UY6;lK7}s%rPy=4y|kW_V5yF|CW*Q0r%!#kGS> z3zG&F#)2U`pu(fYc-{tHB#W{ zw_#_f_1m7^&0f!&XyLZeMoL1NT4~o;X=FgYU!z78%DZa&!Akpa)(Y@8l@GVXVt7kK-vxN`43m#5o6Y1iJ4Sb=|(_K_+ zj3^4u$cUZ9I!3{rf&EiWzfUt(2mWTXd3z1NWi<91LGQzc*V}LC-ce)YjN!+IM&COX z*ykO?re5!1WA$}o9X8(EYxsH%FPb!>r-#h3k;(usHN-(Tef@?XBQ<)jRmdnt(+onr zhH(l*ZO6#HMmvURMXMF)*N8pwqu#(mHeWYNcf^dwzeLsrbx{u?3x*a9Ey=?HJk}YY552Y<+sh z*nuW~oB=f920_WdH^XcL*hD_nsa$*A=;Y)$OM<)pJf43Fr`s3!4pKai18}K=IFU5A z2JdMjIEh1~^&2x*A+)yNFwm-L5|Ms17(*w9Zoo;WDS2gp*=-`1!*!|+hr8E~_ViSxRYi8~Fg+8sNhv)#OeDJd}<+7uhp|*b5vV;_n6atZ-*t7;{|| zI)8f!U6eY|!TVOx-F^6$1|8_&Rx3Y2l}-t&{0V`2xQ-K24=*fZe{dQ6H;A|6c*|Il zussLM_wZMbe<$K(FNE!3sATb1&;Cct;Hx+Rod@VW^iMo2k?i6)4zFfb=@d^QaB+6{ ziVL%qp;;9?ISHqCpTOzzMIv}Yt_o*(DR42C7dcM-l=;s~xXdrk++;7~f0yiuTlA-s z0-}&To^UJpBN8t2Oh~wF|Fne5_RlVZUyyK`OVOWe65cN1vl8x?@V6vfj{Ba3%l4~y z>Zt3!m*eC{Pt&LHM{-cXdt4ZfDEJnR+Y-OLUU>B`z2iFe`pyzE8%oA5bG`uv&13l6k0rIgf|kv zg>r*L;9af?;xh^1>;TDe+J{Mmy;!exF3g@s8k>+!yh8IJ;}39L@O+8uF$Mn~*V)wp z>%#s`j*lqzKjwN~!GFhfx=NCW{*;*p@H8(4Kc0-3{7}I~f5d(w?B}`NFBJQCxqex} z|IGDSUW)#RE%}d%eUa<$E4b*-KNS2!uDdt1>b!}0SV;jq81I*8PNni}|PbG6{v3`CEg{fi_QjlV5KEYs4Nd zjt<6$hx7IXSa~}gx9H16y-S#t$YnBg8{<{aDl{1^JV@ViIiC|Gp!7>tjM;5Bm;9?Pd38xrYU!IrLnZVz3~bSi7} zAokc`GLKhFvaG#J=4~4?@pL+u;MW!lJLtrR!74nSp%Oh(PA-l_xskXNr{*3@ylU9| zebT?bpd;UMYbbR7g1eLFg=kb%c8?@X-jm5TLVqaqwL}(iZV?#m@rns+Iz}%klvBKO z7gpbYNG#gDeAK6uety8GKh86cDN2kE@^(`enoLm zR2V?pdgJ%C5er^prSa1otK+{PG2-mTpDcIrm!Wzw5%EPy@5Orlck@7&Ov-Hu68


qn*}iYfBOR12mA(RHO{0(uBf?wh9pCocqqT zuWxLPi4*1Bdw%Df-#PEz`|f+!Cqu)Boel>R;$R0^MH47vr#Dsl1H3!HTETNPTzosc z_|8c9OvoQDhJGI|4RjRWSVa#|SHp`7tE}aTW>nt@-9q^04Dg3bqpQQE(CS4UEf)|+ z3ID=w85=71&NIQb7A`HU+REa>no8TsX|aOQwc!%`K+HAkd<6?CEv(rYOUUdF7n{1m zr7*O^U2f>WJr8&J@utJYLtP!K-^Q3?=my;P4JgoKQxqu!_9Hr6V^k z8VJ4w7cN6Die9+VD>ii19GB9<4N>kI)Nw0Zg8#+WM#e9-be=*UnlC@i7YymVzcT(j zcJUTe*$KW74EDK>aA~CDViW+I8fb40m(8`qyUO+v2oKxg7pAH>+~`A#g6i~-UrLxQ zosWZsv6jw5<$5P8>+5~zU?(nwI&1Ge%n7Tg?_ClyBXQcJBUbqtLN5$L=cQ+%CN-ly#9~F47n&fzAufehilJ+K9*Uvs<;7T90IYC5 zTzr-1EG?|qxdq2f9NG#Bk6~pgOv*!?I7{oHw=%x(`~31X&L4*n|M~~5^56~^uT<8k zcp_>KR)h~$;YRhgP~HM6oE1V?nU$fdx#)YxFL`tMXg(PW#Ac$|z^=g9;lcYupBWF_ z8~D;T7GQz?K;O3A-fb)hrja9oT|qC424Vrm!71voh5an|a3PwtSU#JKrl(UDGlO|+ zK3~XMxgeWh^UR!|n`Mqx$97-4uKE0%Hv3u~ZSWX7Tj0ht6D)1UK!@hr*SNp2`_7^E z`|f0{L1#{ahT0j^_g1OK`XI(!Eeu`VT}<;GY;0^~%(D>?o0lFeHewRS8k@ms zs2!DiKxIFL71#hRghP+9CcLbZWpHt70)7rW9iK+c(KCec&LzLCje@2-m*%(@L>p)` zT}RF(Nb%4KIBCM}Ms97mq7%KTO( zb4wLtOBG{l6=NG|lbo>~HRgHOxfmjL_UEqY3%_TGGKwrPvYxef+DR5)oqy3=m zH9x{&1)4DyOeb=|nanIK%or^C!U-!M+}j__Wm1{+G)v?srmge@xK6|}>AaQBGkh`- zpN-C;4ZCPYw?qH`AnAOW}r znU19jaf{JBL!>>Y<_uEg^6|KpfIeh_O@Uvrr}a4WP2TtPRwJT&Ox-o6HyRJ>hB2mV z#D zkLey592YNJzNe-u07i8EtnM-HMK2WQ6t@IeD(?%|=4s{+Pa*7lRhfH~^8@MxeN3y5~5Dst4eQC*5Q9r_#`p zm-U^7))CS7V_ux64_D^N4MhSwaCcnQw}Jx6vX-WFxMEveHcaf@3B=T_7%Ke zDveuqlU>F45iWQ>LArQu1pXA^{1gOzf&Z59IJE-*Bk5uv6ZoG9f0SBLk9bdhUExWR z{w)O;_548L5&ON^_e9=2`Mp|)=emNwO}cnL3!c9b{*L00Kd7MGvKzjhas0)5-oP6L z5j>CED%+so;=Z;i_oA5?HL{znyD%#+x+MLpMuKdSh@MtD-epC-JZ;NKzq zD+(^|>x_bn`j-{_m&EgZ1%ICKA1nAj2@g<<+bfR0kOArlT&%ZA1sCh*l!A+SOcRdj zW&Xw{zt^d?Z)oxOnp>F}x26iy6Va)utaXB!St}Ja@t2ZXCr>k$nVrQWCKU;Mi#M+NqN1M22PN?2{|lQ+7`rXU%jbZ@cXc4CK6dV4X-;QLuC1fp+wfQ=!j-Q zHTmciGjm^@#TML>`AihpGVy3WisnAEkB0UCZkl0Y=v7n2b%Zw3y|iwGQBnE188La! zM&ALvfZz{9vfw*H7JR2FF5KLK9}6J&kP+i>Es8z81C1ctAvxw3-)|g*%UcvTD*$Rm z{c*#0ePpUBKpWZe_Vn@!ym| z=&Q7E0#