From e4548364671313c6875ae1eff104166149fd3e2d Mon Sep 17 00:00:00 2001
From: suck5u <suck5u@etu.univ-lorraine.fr>
Date: Sun, 3 Jan 2021 17:04:51 +0100
Subject: [PATCH] Optimisation et ajout affichage score

---
 code/display.c          | 18 ++++++++++--------
 code/enemy.c            |  1 -
 code/main.c             |  2 --
 code/powerUp.c          |  2 --
 code/round_management.c | 27 ++++-----------------------
 code/round_management.h |  2 +-
 code/soldier.c          |  2 +-
 code/world_data.c       |  6 +++---
 data/save.txt           |  8 ++++----
 9 files changed, 23 insertions(+), 45 deletions(-)

diff --git a/code/display.c b/code/display.c
index 4e13615..2c59197 100644
--- a/code/display.c
+++ b/code/display.c
@@ -133,13 +133,6 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,resources_t *resour
             load_texture_powerUp_type1(resources, renderer, &world->supplying.powerUP);
         }
     }
-    
-
-
-    if(world->gameover == 1)
-    {
-        destroy_textures(resources,world);
-    }
 
     char manche[3];
     sprintf(manche,"%d",world->rounds.round_number);
@@ -150,6 +143,12 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,resources_t *resour
     char ammo[3];
     sprintf(ammo,"%d",30-world->soldier.present_bullet);
 
+    char score[8];
+    sprintf(score,"%d",world->score);
+
+    char highScore[8];
+    sprintf(highScore,"%d",world->highScore);
+
     apply_text(renderer, 5 , 5 , 100 , 25 ,"Manche :", resources->font);
     apply_text(renderer, 115 , 5 , 20 , 25 ,manche, resources->font);
     apply_text(renderer, 5 , 30 , 100 , 25 ,"HP :", resources->font);
@@ -157,6 +156,10 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,resources_t *resour
     apply_text(renderer, 5 , 55 , 100 , 25 ,"Ammo :", resources->font);
     apply_text(renderer, 115 , 55 , 20 , 25 ,ammo, resources->font);
     apply_text(renderer, 140 , 55 , 20 , 25 ,"/30", resources->font);
+    apply_text(renderer, 5 , 80, 100, 25, "Score :", resources->font);
+    apply_text(renderer, 115 , 80, 20, 25, score, resources->font);
+    apply_text(renderer, 5 , 105 , 100 , 25 ,"Meilleur score :", resources->font);
+    apply_text(renderer, 115 , 105 , 20 , 25 ,highScore, resources->font);
     
 }
 
@@ -245,7 +248,6 @@ void init_ressources(SDL_Renderer *renderer, resources_t *resources, world_t *wo
     resources->plane = charger_image_transparente("../resources/Plane.bmp", renderer, 255,0,255);
 
     resources->font = load_font("../resources/arial.ttf",14);
-
 }
 
 
diff --git a/code/enemy.c b/code/enemy.c
index 002d3d9..269f47b 100644
--- a/code/enemy.c
+++ b/code/enemy.c
@@ -171,7 +171,6 @@ void enemy_dead(enemy_t *enemy,soldier_t *soldier, int *score)
   {
     set_visible(&enemy->powerUP.sprite);
     enemy->drop=1;
-    print_sprite(&enemy->powerUP.sprite);
   }
 }
 
diff --git a/code/main.c b/code/main.c
index be054d3..518ef34 100644
--- a/code/main.c
+++ b/code/main.c
@@ -50,8 +50,6 @@ int main(void)
         }
         t1 = t2;
         
-        
-
         //Evenements clavier
         handle_events(&event,&world);
         
diff --git a/code/powerUp.c b/code/powerUp.c
index 6278ea4..940dbce 100644
--- a/code/powerUp.c
+++ b/code/powerUp.c
@@ -78,13 +78,11 @@ void soldier_touch_powerUP(powerUP_t *powerUP,soldier_t *soldier)
 
 void apply_effect(powerUP_t *powerUP,soldier_t *soldier,int drop){
   if(powerUP->sprite.is_visible == 0 && powerUP->apply_effect == 0 && drop == 1){
-    print_sprite(&soldier->sprite);
     if (powerUP->type == 0)
     {
       soldier->sprite.v = soldier->sprite.v + 10;
     }else{
       soldier->sprite.hp = soldier->sprite.hp + 10;
-      print_sprite(&soldier->sprite);
     }   
     powerUP->apply_effect = 1;
   }
diff --git a/code/round_management.c b/code/round_management.c
index cc38f8e..e0885fb 100644
--- a/code/round_management.c
+++ b/code/round_management.c
@@ -23,13 +23,11 @@ void initFirstRound(round_t *round, int nbEnemies, int incrementation, int round
 	round->counter = 0;
 	round->index_to_spawn = 0;
 	round->is_new_round = 0;
-	//round->gameFinished = 0;
 	round->enemies = (enemy_t*) malloc(round->number_enemies*sizeof(enemy_t));
 	for (int i = 0; i < round->number_enemies; i++)
 	{
 		init_enemy(&round->enemies[i]);
 	}
-	printf("Manche : %d Ennemis : %d Incrementation : %d\n",round->round_number, round->number_enemies,round->incrementation);
 }
 
 //Actualiser qui se déplace
@@ -53,44 +51,27 @@ void updateRound(round_t *round)
 void nextRound(round_t *round)
 {
 	round->round_number++;
-	printf("Manche %d\n",round->round_number);
 	round->number_enemies = round->number_enemies + round->incrementation;
 	round->index_to_spawn = 0;
 	round->counter = 0;
 	round->is_new_round = 1;
-	printf("nb enemies %d\n",round->number_enemies);
-	/*for (int i = 0; i < round->number_enemies*4; i++)
-	{
-		printf("avant %f i : %d\n",round->enemies[i].sprite.x,i);
-	}*/
-
-	//free(round->enemies);
 	createEnemies(round);
-	/*for (int i = 0; i < round->number_enemies; i++)
-	{
-		printf("apres %f i : %d\n",round->enemies[i].sprite.x,i);
-	}*/
 }
 
 //Créer nbEnemies
 void createEnemies(round_t *round)
 {
-	//round->enemies = (enemy_t*) realloc(round->enemies,sizeof(enemy_t)*round->number_enemies);
-	
+	clearEnemies(round);
 	enemy_t *tab = (enemy_t*) malloc(round->number_enemies*sizeof(enemy_t));
-	free(round->enemies);
-	//round->enemies = NULL;
 	round->enemies = tab;
-	//free(tab);
-
 	for (int i = 0; i < round->number_enemies; i++)
 	{
 		init_enemy(&round->enemies[i]);
 	}
+	
 }
 
-/*void clearEnemies(round_t *round)
+void clearEnemies(round_t *round)
 {
 	free(round->enemies);
-	round->enemies = NULL;
-}*/
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/code/round_management.h b/code/round_management.h
index 9a61f40..73552eb 100644
--- a/code/round_management.h
+++ b/code/round_management.h
@@ -28,6 +28,6 @@ void nextRound(round_t *round);
 
 void createEnemies(round_t *round);
 
-//void clearEnemies(round_t *round);
+void clearEnemies(round_t *round);
 
 #endif
\ No newline at end of file
diff --git a/code/soldier.c b/code/soldier.c
index 5510594..c2bdd17 100644
--- a/code/soldier.c
+++ b/code/soldier.c
@@ -23,7 +23,7 @@ void init_soldier(soldier_t *soldier, int hp)
     soldier->DestSoldier.y = soldier->sprite.y;
     soldier->DestSoldier.w = SOLDIER_WIDTH;
     soldier->DestSoldier.h = SOLDIER_HEIGHT;
-    soldier->DestBullet = malloc(sizeof(SDL_Rect)*NB_BULLET);
+    soldier->DestBullet = (SDL_Rect*) malloc(sizeof(SDL_Rect)*NB_BULLET);
     soldier->time_bullet = TIME_BULLET;
     init_bullet(soldier);
 }
diff --git a/code/world_data.c b/code/world_data.c
index d70720e..059b72c 100644
--- a/code/world_data.c
+++ b/code/world_data.c
@@ -119,7 +119,6 @@ void refresh_data(world_t *world)
         world->rounds.enemies[i].DestEnemy.y = world->rounds.enemies[i].sprite.y;
         //Si l'ennemi touche le soldat
         //enemy_touch_soldier(&world->rounds.enemies[i],&world->soldier,&world->score);
-        //enemy_touch_soldier(&world->rounds.enemies[i],&world->soldier);
         enemy_dead(&world->rounds.enemies[i],&world->soldier,&world->score);
       }
       soldier_touch_powerUP(&world->rounds.enemies[i].powerUP,&world->soldier);
@@ -222,8 +221,9 @@ void handle_events(SDL_Event *event,world_t *world)
       //Libère la mémoire du tableau DestBullet pour l'affichage
       free(world->soldier.DestBullet);
       //Libère le tableau d'ennemis
-      //clearEnemies(&world->rounds);
-      free(world->rounds.enemies);
+      clearEnemies(&world->rounds);
+      //free(world->rounds.enemies);
+
       //world->rounds.enemies = NULL;
       world->gameover = 1;
     }
diff --git a/data/save.txt b/data/save.txt
index 5d1a620..d136571 100644
--- a/data/save.txt
+++ b/data/save.txt
@@ -1,10 +1,10 @@
 /Vie du joueur au début
-7
+30
 /Nombre d'ennemis au début
-21
+5
 /Nombre d'ennemis en plus à chaque manche
 1
 /Numéro de la manche
-33
+5
 /Meilleur score
-82
+136
-- 
GitLab