diff --git a/source/const.h b/source/const.h index e4f81a0..2b7cd4a 100644 --- a/source/const.h +++ b/source/const.h @@ -317,5 +317,9 @@ const color_t bgColor = {0x27, 0x27, 0x36}; const color_t noColor = {0xFF, 0xFF, 0xFF}; const color_t shdwTxtColor = {0x43, 0x43, 0x4F}; +// Formaciones enemigas +#define NUMBER_OF_ENEMY_FORMATIONS 100 +#define MAX_NUMBER_OF_ENEMIES_IN_A_FORMATION 50 + #endif \ No newline at end of file diff --git a/source/game.cpp b/source/game.cpp index a13ab3d..b252d4c 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -70,7 +70,7 @@ Game::Game(SDL_Renderer *renderer, std::string *filelist, Input *input, bool dem int status = mkdir("/media/data/local/home/.coffee_crisis", 755); } #endif -init(); + init(); } Game::~Game() @@ -364,7 +364,7 @@ void Game::init() // Establece a cero todos los valores del vector de objetos SmafrtSprite resetSmartSprites(); - // Inicializa el bitmap de GetLeady! + // Inicializa el bitmap de GetReady! mSpriteGetReady->init(0, PLAY_AREA_CENTER_Y - 10, 109, 20, mTextureGameText, mRenderer); mSpriteGetReady->setSpriteClip(0, 0, 109, 20); @@ -658,6 +658,20 @@ void Game::initEnemyFormations() const int x1_50 = PLAY_AREA_CENTER_X - (BALLOON_WIDTH_1 / 2); const int x1_100 = (PLAY_AREA_RIGHT)-BALLOON_WIDTH_1; + // Inicializa a cero las variables + for (int i = 0; i < NUMBER_OF_ENEMY_FORMATIONS; i++) + { + mEnemyFormation[i].numberOfEnemies = 0; + for (int j = 0; i < MAX_NUMBER_OF_ENEMIES_IN_A_FORMATION; i++) + { + mEnemyFormation[i].init[j].x = 0; + mEnemyFormation[i].init[j].y = 0; + mEnemyFormation[i].init[j].velX = 0; + mEnemyFormation[i].init[j].kind = 0; + mEnemyFormation[i].init[j].creationCounter = 0; + } + } + const Uint16 creationTime = 300; int incX = 0; Uint8 incTime = 0; @@ -1087,7 +1101,7 @@ void Game::initEnemyFormations() } // Crea las mismas formaciones pero con hexagonos a partir de la posición 50 del vector - for (int k = 0; k < 50; k++) + for (int k = 0; k < 26; k++) { mEnemyFormation[k + 50].numberOfEnemies = mEnemyFormation[k].numberOfEnemies; for (int i = 0; i < mEnemyFormation[k + 50].numberOfEnemies; i++) diff --git a/source/game.h b/source/game.h index ff32870..d0158eb 100644 --- a/source/game.h +++ b/source/game.h @@ -38,9 +38,9 @@ private: struct enemyFormation_t // Contiene la información de una formación enemiga { Uint8 numberOfEnemies; // Cantidad de enemigos que forman la formación - enemyInits_t init[50]; // Vector con todas las inicializaciones de los enemigos de la formación + enemyInits_t init[MAX_NUMBER_OF_ENEMIES_IN_A_FORMATION]; // Vector con todas las inicializaciones de los enemigos de la formación }; - enemyFormation_t mEnemyFormation[100]; // Vector con todas las formaciones enemigas + enemyFormation_t mEnemyFormation[NUMBER_OF_ENEMY_FORMATIONS]; // Vector con todas las formaciones enemigas struct enemyPool_t {