From 6fa8438d3474e08bb2a479a60c863f15d4382318 Mon Sep 17 00:00:00 2001 From: Mathieu BOREL Date: Fri, 21 Apr 2023 18:34:36 +0200 Subject: [PATCH] add map corruption --- Makefile | 6 ++--- include/prototype.h | 2 ++ maps/Maze/map_2.csv | 58 ++++++++++++++++++++-------------------- src/fight/corrupt_map.c | 44 ++++++++++++++++++++++++++++++ src/fight/fight.c | 3 +-- src/fight/trapped_tile.c | 20 +++++++------- 6 files changed, 89 insertions(+), 44 deletions(-) create mode 100644 src/fight/corrupt_map.c diff --git a/Makefile b/Makefile index fd39d10..0c9d629 100644 --- a/Makefile +++ b/Makefile @@ -36,7 +36,7 @@ SRC = src/main.c \ \ src/fight/create_fight.c \ src/fight/fight.c \ - src/fight/trapped_tile.c \ + src/fight/corrupt_map.c \ \ src/button/create_button.c \ src/button/display_button.c \ @@ -157,7 +157,7 @@ SRC = src/main.c \ OBJ = $(SRC:.c=.o) CC = gcc -CFLAGS = -Wall -Wextra +CFLAGS = -Wall -Wextra -g3 LIB = -L./lib -lmy_string -lmy_printf -lmy_stdlib -lm LDFLAGS = -lcsfml-graphics -lcsfml-system -lcsfml-window -lcsfml-audio $(LIB) @@ -170,7 +170,7 @@ all: $(EXE) $(EXE): $(OBJ) @make -C ./lib - $(CC) -o $(EXE) $(SRC) $(LDFLAGS) + $(CC) -o $(EXE) $(SRC) $(LDFLAGS) -g3 clean: @rm -rf $(OBJ) diff --git a/include/prototype.h b/include/prototype.h index 9cab64c..170c597 100644 --- a/include/prototype.h +++ b/include/prototype.h @@ -130,6 +130,8 @@ /* fight */ fight_t *create_fight(void); int destroy_fight(fight_t *fight); + + int corrupt_map(app_t *app); int trapped_tile(app_t *app); int fight(app_t *app); diff --git a/maps/Maze/map_2.csv b/maps/Maze/map_2.csv index 5eb5c21..4da9838 100644 --- a/maps/Maze/map_2.csv +++ b/maps/Maze/map_2.csv @@ -1,31 +1,31 @@ 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20 -20,67,20,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,20 -20,-1,20,-1,20,-1,20,20,20,-1,20,20,20,20,20,-1,20,-1,20,-1,20,20,20,-1,20,20,20,-1,20,-1,20 -20,-1,20,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,20 -20,-1,20,20,20,20,20,-1,20,-1,20,-1,20,-1,20,-1,20,20,20,-1,20,20,20,20,20,-1,20,20,20,-1,20 -20,-1,20,-1,-1,-1,-1,-1,20,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,20 -20,-1,20,-1,20,-1,20,20,20,-1,20,-1,20,20,20,20,20,20,20,-1,20,20,20,-1,20,20,20,20,20,20,20 -20,-1,20,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,20 -20,-1,20,-1,20,20,20,-1,20,20,20,-1,20,-1,20,20,20,-1,20,20,20,20,20,20,20,-1,20,-1,20,-1,20 -20,-1,-1,-1,-1,-1,20,-1,20,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,20,-1,20,-1,-1,-1,20,-1,20 -20,-1,20,20,20,-1,20,-1,20,-1,20,-1,20,20,20,-1,20,20,20,-1,20,-1,20,-1,20,20,20,-1,20,-1,20 -20,-1,20,-1,20,-1,20,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,20 -20,20,20,-1,20,-1,20,-1,20,-1,20,-1,20,20,20,20,20,-1,20,-1,20,20,20,20,20,20,20,20,20,-1,20 -20,-1,-1,-1,20,-1,20,-1,20,-1,20,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,20 -20,20,20,-1,20,20,20,-1,20,-1,20,20,20,-1,20,-1,20,-1,20,20,20,-1,20,20,20,-1,20,20,20,-1,20 -20,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20 -20,-1,20,20,20,20,20,-1,20,-1,20,20,20,-1,20,20,20,20,20,20,20,-1,20,20,20,-1,20,-1,20,-1,20 -20,-1,20,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,20,-1,20,-1,20 -20,-1,20,20,20,-1,20,-1,20,-1,20,20,20,20,20,20,20,-1,20,-1,20,20,20,-1,20,20,20,-1,20,20,20 -20,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,20 -20,-1,20,20,20,-1,20,-1,20,20,20,20,20,20,20,-1,20,20,20,-1,20,20,20,20,20,-1,20,-1,20,-1,20 -20,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,20 -20,-1,20,-1,20,20,20,-1,20,20,20,20,20,20,20,20,20,-1,20,20,20,-1,20,-1,20,20,20,20,20,-1,20 -20,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,20 -20,20,20,20,20,-1,20,20,20,20,20,-1,20,-1,20,-1,20,20,20,-1,20,-1,20,-1,20,-1,20,20,20,20,20 -20,-1,-1,-1,20,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,20 -20,20,20,-1,20,-1,20,-1,20,20,20,20,20,-1,20,-1,20,-1,20,20,20,-1,20,-1,20,20,20,20,20,20,20 -20,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,20 -20,-1,20,-1,20,20,20,20,20,-1,20,20,20,-1,20,-1,20,20,20,20,20,20,20,-1,20,-1,20,20,20,-1,20 -20,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,20 +20,67,-1,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20 +20,-1,20,20,20,-1,20,20,20,-1,20,20,20,20,20,20,20,-1,20,20,20,20,20,-1,20,20,20,-1,20,20,20 +20,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,20 +20,-1,20,-1,20,-1,20,20,20,-1,20,20,20,-1,20,-1,20,20,20,-1,20,-1,20,20,20,20,20,20,20,20,20 +20,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,20 +20,-1,20,-1,20,20,20,-1,20,20,20,-1,20,20,20,20,20,-1,20,-1,20,-1,20,20,20,20,20,-1,20,20,20 +20,-1,-1,-1,20,-1,20,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,20 +20,-1,20,-1,20,-1,20,-1,20,-1,20,20,20,-1,20,20,20,-1,20,20,20,-1,20,-1,20,-1,20,20,20,-1,20 +20,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,20 +20,-1,20,20,20,20,20,-1,20,-1,20,20,20,20,20,-1,20,20,20,20,20,-1,20,-1,20,20,20,-1,20,20,20 +20,-1,20,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,20 +20,20,20,20,20,20,20,-1,20,-1,20,20,20,-1,20,20,20,-1,20,20,20,-1,20,20,20,-1,20,-1,20,-1,20 +20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,20 +20,20,20,-1,20,20,20,20,20,-1,20,-1,20,20,20,-1,20,-1,20,20,20,-1,20,-1,20,20,20,20,20,20,20 +20,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,20,-1,20,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,20 +20,20,20,-1,20,20,20,20,20,-1,20,-1,20,-1,20,20,20,-1,20,-1,20,-1,20,-1,20,-1,20,20,20,20,20 +20,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,20,-1,20,-1,20,-1,20,-1,20,-1,-1,-1,20 +20,20,20,20,20,20,20,-1,20,20,20,-1,20,-1,20,20,20,-1,20,20,20,20,20,20,20,-1,20,-1,20,20,20 +20,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,20 +20,-1,20,20,20,-1,20,20,20,-1,20,20,20,-1,20,-1,20,-1,20,20,20,20,20,20,20,20,20,-1,20,-1,20 +20,-1,-1,-1,20,-1,20,-1,20,-1,-1,-1,20,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,20 +20,-1,20,20,20,20,20,-1,20,-1,20,20,20,-1,20,-1,20,-1,20,-1,20,20,20,20,20,20,20,20,20,-1,20 +20,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,20 +20,-1,20,-1,20,20,20,20,20,20,20,-1,20,-1,20,20,20,-1,20,-1,20,20,20,-1,20,-1,20,20,20,-1,20 +20,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,20,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,20 +20,-1,20,-1,20,-1,20,-1,20,-1,20,20,20,20,20,20,20,-1,20,-1,20,-1,20,20,20,-1,20,-1,20,20,20 +20,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,20 +20,20,20,20,20,-1,20,-1,20,20,20,20,20,-1,20,20,20,-1,20,20,20,-1,20,-1,20,-1,20,20,20,-1,20 +20,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,20,-1,20,-1,-1,-1,20 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,-1,66 diff --git a/src/fight/corrupt_map.c b/src/fight/corrupt_map.c new file mode 100644 index 0000000..06d15b7 --- /dev/null +++ b/src/fight/corrupt_map.c @@ -0,0 +1,44 @@ +/* +** EPITECH PROJECT, 2023 +** B-MUL-200-LYN-2-1-myrpg-mathieu.borel +** File description: +** trapped_tile.c +*/ + +#include "../../include/prototype.h" + +static int corrupt_map_tile(app_t *app, tile_t *tile) +{ + if (tile->state != SOLID) + return 0; + if (random_randint(0, 100000) != 0) + return 0; + sfTexture *texture = get_texture(app->maps->map_object, 58); + sfSprite_setTexture(tile->tile, texture, sfFalse); + return 0; +} + +static int corrupt_map_layer(app_t *app, layer_t *layer) +{ + sfVector2i position = {0, 0}; + while (layer->layer[position.y] != NULL) { + position.x = 0; + while (layer->layer[position.y][position.x] != NULL) { + corrupt_map_tile(app, layer->layer[position.y][position.x]); + position.x += 1; + } + position.y += 1; + } + return 0; +} + +int corrupt_map(app_t *app) +{ + map_t *map = app->maps->selected_map; + int i = 0; + while (map->layer[i] != NULL) { + corrupt_map_layer(app, map->layer[i]); + i += 1; + } + return 0; +} diff --git a/src/fight/fight.c b/src/fight/fight.c index 7fa5a47..545bdea 100644 --- a/src/fight/fight.c +++ b/src/fight/fight.c @@ -9,7 +9,6 @@ int fight(app_t *app) { - if (app->fight->is_fighting == 1) - trapped_tile(app); + corrupt_map(app); return 0; } diff --git a/src/fight/trapped_tile.c b/src/fight/trapped_tile.c index 93bde6d..a1db0cd 100644 --- a/src/fight/trapped_tile.c +++ b/src/fight/trapped_tile.c @@ -7,27 +7,27 @@ #include "../../include/prototype.h" -static int trapped_tile_color(app_t *app, tile_t *tile) +static int corrupt_layer(app_t *app, tile_t *tile) { int change = 0; - sfColor color = sfSprite_getColor(tile->tile); - color.r = 100; - color.g = 0; - color.b = 0; - color.a = 100; - sfSprite_setColor(tile->tile, color); - printf("%d - %d - %d - %d\n", color.r, color.g, color.b, color.a); + if (tile->state != SOLID) + return 0; + if (random_randint(0, 100000) != 50000) + return 0; + sfTexture *texture = get_texture(app->maps->map_object, 58); + sfSprite_setTexture(tile->tile, texture, sfFalse); return 0; } -int trapped_tile(app_t *app) +int corrupt_map(app_t *app) { int i = app->player->layer - 1; sfVector2i position = {0, 0}; layer_t *layer = app->maps->selected_map->layer[i]; while (layer->layer[position.y] != NULL) { + position.x = 0; while (layer->layer[position.y][position.x] != NULL) { - trapped_tile_color(app, layer->layer[position.y][position.y]); + trapped_tile_color(app, layer->layer[position.y][position.x]); position.x += 1; } position.y += 1;