From d2d9d4bf4190597d00deda71755cb3d5c9a8b70e Mon Sep 17 00:00:00 2001 From: antoinemeyer5 <antoine.meyer54@gmail.com> Date: Wed, 22 Jun 2022 16:54:23 +0200 Subject: [PATCH] eteindre les feux --- .../chef_oeuvre/src/gest_event.c | 8 ++++++-- travail_de_groupe/chef_oeuvre/src/player.c | 19 +++++++++++++------ travail_de_groupe/chef_oeuvre/src/player.h | 4 +++- travail_de_groupe/chef_oeuvre/src/render.c | 1 - 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/travail_de_groupe/chef_oeuvre/src/gest_event.c b/travail_de_groupe/chef_oeuvre/src/gest_event.c index 7ea08e5..caad831 100644 --- a/travail_de_groupe/chef_oeuvre/src/gest_event.c +++ b/travail_de_groupe/chef_oeuvre/src/gest_event.c @@ -123,10 +123,14 @@ void manageGame(){ break; case SDL_MOUSEMOTION: - mousePosition.x = (event.motion.x - (screenDimension.w - (MAPSIZE * CELLSIZE)) / 2) / CELLSIZE; - mousePosition.y = (event.motion.y - 0) / CELLSIZE; + mousePosition.x = (event.motion.x - (screenDimension.w - (MAPSIZE * CELLSIZE)) / 2) / CELLSIZE; + mousePosition.y = (event.motion.y - 0) / CELLSIZE; continue; + case SDL_MOUSEBUTTONDOWN: + pourWater(mousePosition.x, mousePosition.y); + break; + default: continue; } diff --git a/travail_de_groupe/chef_oeuvre/src/player.c b/travail_de_groupe/chef_oeuvre/src/player.c index d2112eb..cc5135b 100644 --- a/travail_de_groupe/chef_oeuvre/src/player.c +++ b/travail_de_groupe/chef_oeuvre/src/player.c @@ -4,11 +4,12 @@ player_t player; void initPlayer(){ - player.x = 18*32; - player.y = 0; + player.x = (MAPSIZE/2)*CELLSIZE; + player.y = (MAPSIZE/2)*CELLSIZE; player.w = CELLSIZE*0.8; player.h = CELLSIZE*0.8; - player.waterLevel = 3; + player.waterMax = 3; + player.currentWater = player.waterMax; player.speed = 1; player.isMoving = 0; } @@ -134,9 +135,15 @@ int selectStateHover(){ } -void pourWater(){ - player.waterLevel = player.waterLevel - 1; - +void pourWater(int x, int y){ + int onFire = searchFire(fireList, x, y); + if(player.currentWater>0){ + //downgrade the cliqued fire + if(onFire == 1 && selectStateHover() == 1){ + fireList = deleteFire (fireList, x, y); + } + player.currentWater = player.currentWater - 1; + } } diff --git a/travail_de_groupe/chef_oeuvre/src/player.h b/travail_de_groupe/chef_oeuvre/src/player.h index 8dda417..a8bcffb 100644 --- a/travail_de_groupe/chef_oeuvre/src/player.h +++ b/travail_de_groupe/chef_oeuvre/src/player.h @@ -14,7 +14,8 @@ typedef struct player{ int y; int w; int h; - int waterLevel; + int currentWater; + int waterMax; int speed; int isMoving; } player_t; @@ -24,5 +25,6 @@ extern player_t player; void initPlayer(); void manageMovement(); int selectStateHover(); +void pourWater(int, int); #endif \ No newline at end of file diff --git a/travail_de_groupe/chef_oeuvre/src/render.c b/travail_de_groupe/chef_oeuvre/src/render.c index 9d5c1ba..2a4389c 100644 --- a/travail_de_groupe/chef_oeuvre/src/render.c +++ b/travail_de_groupe/chef_oeuvre/src/render.c @@ -153,7 +153,6 @@ void drawFire(){ srcRect.x = srcRect.w * (SDL_GetTicks()/200 % 8); srcRect.y= 0; while (cour != NULL){ - printf("%p %d %d\n", (cour->fire), (cour->fire).x, (cour->fire).x); rect.h = CELLSIZE; rect.w = CELLSIZE; rect.x = (cour->fire).x * CELLSIZE + (screenDimension.w - (MAPSIZE * CELLSIZE)) / 2; -- GitLab