From e40437918ccc27f9ff18268cec05232beb7fe097 Mon Sep 17 00:00:00 2001
From: suck5u <suck5u@etu.univ-lorraine.fr>
Date: Fri, 1 Jan 2021 21:24:28 +0100
Subject: [PATCH] Ajout d'une variable de direction au ennemis

---
 code/display.c | 23 ++++++++++++++++-------
 code/display.h |  4 ++--
 code/enemy.c   | 10 ++++++++++
 code/enemy.h   |  1 +
 data/save.txt  |  2 +-
 5 files changed, 30 insertions(+), 10 deletions(-)

diff --git a/code/display.c b/code/display.c
index 4bc00d0..0f57d82 100644
--- a/code/display.c
+++ b/code/display.c
@@ -101,6 +101,15 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,resources_t *resour
     {
         if (world->rounds.enemies[i].sprite.is_visible == 1)
         {
+            
+            /*if(world->rounds.enemies[i].direction == 1)
+            {
+                rotate_right(renderer, world, resources->enemies[i],i);
+            }
+            else
+            {
+                rotate_left(renderer, world, resources->enemies[i],i);
+            }*/
             load_texture_enemies(resources, renderer, world, i);
         }
     }
@@ -258,21 +267,21 @@ void destroy_textures(resources_t *resources, world_t *world)
 }
 
 
-/*void rotate_right(SDL_Renderer *renderer, world_t *world,resources_t *resources)
+void rotate_right(SDL_Renderer *renderer, world_t *world,SDL_Texture* texture, int i)
 {
     SDL_RendererFlip flip = SDL_FLIP_VERTICAL;
-    SDL_RenderCopyEx(renderer, resources->soldier_idle, NULL, &world->DestSoldier, 180, NULL, flip);
+    SDL_RenderCopyEx(renderer, texture, NULL, &world->rounds.enemies[i].DestEnemy, 180, NULL, flip);
     
-    SDL_RenderCopyEx(renderer, resources->soldier_run[5], NULL, &world->DestSoldier, 180, NULL, flip);
+    //SDL_RenderCopyEx(renderer, resources->soldier_run[5], NULL, &world->DestSoldier, 180, NULL, flip);
 }
 
-void rotate_left(SDL_Renderer *renderer, world_t *world,resources_t *resources)
+void rotate_left(SDL_Renderer *renderer, world_t *world,SDL_Texture* texture, int i)
 {
     SDL_RendererFlip flip = SDL_FLIP_VERTICAL;
-    SDL_RenderCopyEx(renderer, resources->soldier_idle, NULL, &world->DestSoldier, -180, NULL, flip);
+    SDL_RenderCopyEx(renderer, texture, NULL, &world->rounds.enemies[i].DestEnemy, -180, NULL, flip);
     
-    SDL_RenderCopyEx(renderer, resources->soldier_run[5], NULL, &world->DestSoldier, -180, NULL, flip);
-}*/
+    //SDL_RenderCopyEx(renderer, resources->soldier_run[5], NULL, &world->DestSoldier, -180, NULL, flip);
+}
 
 void load_texture_idle_left(resources_t *resources, SDL_Renderer *renderer, world_t *world)
 {
diff --git a/code/display.h b/code/display.h
index d637dac..1e72ee9 100644
--- a/code/display.h
+++ b/code/display.h
@@ -52,9 +52,9 @@ void clear_enemies_ressources(resources_t *resources,int nbEnemies);
 
 void destroy_textures(resources_t *resources, world_t *world);
 
-//void rotate_right(SDL_Renderer *renderer, world_t *world,resources_t *resources);
+void rotate_right(SDL_Renderer *renderer, world_t *world,SDL_Texture* texture, int i);
 
-//void rotate_left(SDL_Renderer *renderer, world_t *world,resources_t *resources);
+void rotate_left(SDL_Renderer *renderer, world_t *world,SDL_Texture* texture, int i);
 
 void load_texture_idle_left(resources_t *resources, SDL_Renderer *renderer, world_t *world);
 
diff --git a/code/enemy.c b/code/enemy.c
index 8633c33..5af5b16 100644
--- a/code/enemy.c
+++ b/code/enemy.c
@@ -41,8 +41,10 @@ void init_enemyType1(enemy_t *enemy)
     if (random == 1)
     {
       init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_SPEED, 1);
+      enemy->direction = -1;
     }else{
       init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_SPEED, 1);
+      enemy->direction = 1;
     }   
     enemy->type = 1;
     enemy->DestEnemy.x = enemy->sprite.x;
@@ -57,8 +59,10 @@ void init_enemyType2(enemy_t *enemy)
     if (random == 1)
     {
       init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_T2_SPEED, 2);
+      enemy->direction = -1;
     }else{
       init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT,ENEMY_T2_SPEED, 2);
+      enemy->direction = 1;
     }   
     enemy->type = 2;
     enemy->DestEnemy.x = enemy->sprite.x;
@@ -73,8 +77,10 @@ void init_enemyType3(enemy_t *enemy)
     if (random == 1)
     {
       init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_T3_SPEED, 1);
+      enemy->direction = -1;
     }else{
       init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT,ENEMY_T3_SPEED, 1);
+      enemy->direction = 1;
     }   
     enemy->type = 3;
     enemy->DestEnemy.x = enemy->sprite.x;
@@ -89,8 +95,10 @@ void init_enemyType4(enemy_t *enemy)
     if (random == 1)
     {
       init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_T4_HEIGHT*2-40, ENEMY_T4_WIDTH, ENEMY_T4_HEIGHT, 1, 1);
+      enemy->direction = -1;
     }else{
       init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_T4_HEIGHT*2-40, ENEMY_T4_WIDTH, ENEMY_T4_HEIGHT,1, 1);
+      enemy->direction = 1;
     }   
     enemy->type = 4;
     enemy->DestEnemy.x = enemy->sprite.x;
@@ -105,8 +113,10 @@ void enemy_walk(enemy_t *enemy,soldier_t *soldier)
   {
     if(soldier->sprite.x > enemy->sprite.x){
       enemy->sprite.x += enemy->sprite.v;
+      enemy->direction = 1;
     }else{
       enemy->sprite.x -= enemy->sprite.v;
+      enemy->direction = -1;
     }
     enemy->powerUP.sprite.x = enemy->sprite.x;
     enemy->powerUP.DestPowerUP.x = enemy->powerUP.sprite.x;
diff --git a/code/enemy.h b/code/enemy.h
index 511ebe7..5a584d1 100644
--- a/code/enemy.h
+++ b/code/enemy.h
@@ -18,6 +18,7 @@ struct enemy_s{
     int power;
     int drop;
     powerUP_t powerUP;
+    int direction;
 };
 /**
  * \brief Type qui correspond au paramètre du soldat
diff --git a/data/save.txt b/data/save.txt
index 3c6a683..3bf3fb5 100644
--- a/data/save.txt
+++ b/data/save.txt
@@ -1,7 +1,7 @@
 /Vie du joueur au début
 10
 /Nombre d'ennemis au début
-22
+28
 /Nombre d'ennemis en plus à chaque manche
 3
 /Nombre de balles
-- 
GitLab