Varios arreglos d'estil en el codi i llevar metodes que ja no servien

This commit is contained in:
2024-10-21 22:47:00 +02:00
parent 236d6f58b6
commit 1d0c2e01a5
8 changed files with 82 additions and 128 deletions

View File

@@ -64,8 +64,8 @@ Game::Game(int player_id, int current_stage, bool demo)
explosions_ = std::make_unique<Explosions>();
balloon_formations_ = std::make_unique<BalloonFormations>();
// Carga los recursos
loadMedia();
// Asigna los recursos a variables privadas del objeto
setResources();
// Inicializa los vectores con los datos para la demo
if (demo_.enabled)
@@ -86,39 +86,6 @@ Game::Game(int player_id, int current_stage, bool demo)
canvas_ = SDL_CreateTexture(renderer_, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, param.game.play_area.rect.w, param.game.play_area.rect.h);
SDL_SetTextureBlendMode(canvas_, SDL_BLENDMODE_BLEND);
// Inicializa las variables necesarias para la sección 'Game'
init(player_id);
}
Game::~Game()
{
// Guarda las puntuaciones en un fichero
if (!demo_.enabled)
{
auto manager = std::make_unique<ManageHiScoreTable>(&options.game.hi_score_table);
manager->saveToFile(asset_->get("score.bin"));
}
#ifdef RECORDING
saveDemoFile(Asset::get()->get("demo1.bin"), demo_.data.at(0));
#endif
// Elimina todos los objetos contenidos en vectores
deleteAllVectorObjects();
// Libera los recursos
unloadMedia();
Scoreboard::destroy();
SDL_DestroyTexture(canvas_);
}
// Inicializa las variables necesarias para la sección 'Game'
void Game::init(int player_id)
{
// Elimina qualquier jugador que hubiese antes de crear los nuevos
players_.clear();
// Crea los dos jugadores
auto player1 = std::make_unique<Player>(1, (param.game.play_area.first_quarter_x * ((0 * 2) + 1)) - 11, param.game.play_area.rect.h - 30, demo_.enabled, &param.game.play_area.rect, player_textures_[0], player_animations_);
player1->setScoreBoardPanel(SCOREBOARD_LEFT_PANEL);
@@ -134,14 +101,12 @@ void Game::init(int player_id)
player2->setController(controller2);
players_.push_back(std::move(player2));
// Obtiene mediante "playerID" el jugador que va a empezar jugar
auto main_player = getPlayer(player_id);
// Cambia el estado del jugador seleccionado
main_player->setStatusPlaying(PlayerStatus::PLAYING);
// Como es el principio del juego, empieza sin inmunidad
main_player->setInvulnerable(false);
// Activa el jugador que coincide con el "player_id"
{
auto player = getPlayer(player_id);
player->setStatusPlaying(PlayerStatus::PLAYING);
player->setInvulnerable(false);
}
// Variables relacionadas con la dificultad
switch (difficulty_)
@@ -150,8 +115,7 @@ void Game::init(int player_id)
{
default_balloon_speed_ = BALLOON_SPEED_1;
difficulty_score_multiplier_ = 0.5f;
difficulty_color_ = difficulty_easy_color;
scoreboard_->setColor(difficulty_color_);
scoreboard_->setColor(scoreboard_easy_color);
break;
}
@@ -159,8 +123,7 @@ void Game::init(int player_id)
{
default_balloon_speed_ = BALLOON_SPEED_1;
difficulty_score_multiplier_ = 1.0f;
difficulty_color_ = difficulty_normal_color;
scoreboard_->setColor(scoreboard_color);
scoreboard_->setColor(scoreboard_normal_color);
break;
}
@@ -168,8 +131,7 @@ void Game::init(int player_id)
{
default_balloon_speed_ = BALLOON_SPEED_5;
difficulty_score_multiplier_ = 1.5f;
difficulty_color_ = difficulty_hard_color;
scoreboard_->setColor(difficulty_color_);
scoreboard_->setColor(scoreboard_hard_color);
break;
}
@@ -299,11 +261,26 @@ void Game::init(int player_id)
smart_sprites_.clear();
}
// Carga los recursos necesarios para la sección 'Game'
void Game::loadMedia()
Game::~Game()
{
unloadMedia();
// Guarda las puntuaciones en un fichero
if (!demo_.enabled)
{
auto manager = std::make_unique<ManageHiScoreTable>(options.game.hi_score_table);
manager->saveToFile(asset_->get("score.bin"));
}
#ifdef RECORDING
saveDemoFile(Asset::get()->get("demo1.bin"), demo_.data.at(0));
#endif
Scoreboard::destroy();
SDL_DestroyTexture(canvas_);
}
// Asigna los recursos a variables privadas del objeto
void Game::setResources()
{
// Texturas
{
bullet_texture_ = Resource::get()->getTexture("bullet.png");
@@ -403,23 +380,6 @@ void Game::loadMedia()
}
}
// Libera los recursos previamente cargados
void Game::unloadMedia()
{
// Texturas
game_text_textures_.clear();
balloon_textures_.clear();
explosions_textures_.clear();
item_textures_.clear();
player_textures_.clear();
// Animaciones
player_animations_.clear();
balloon_animations_.clear();
explosions_animations_.clear();
item_animations_.clear();
}
// Crea una formación de enemigos
void Game::deployBalloonFormation()
{
@@ -1945,16 +1905,6 @@ void Game::checkEvents()
}
}
// Elimina todos los objetos contenidos en vectores
void Game::deleteAllVectorObjects()
{
players_.clear();
balloons_.clear();
bullets_.clear();
items_.clear();
smart_sprites_.clear();
}
// Recarga las texturas
void Game::reloadTextures()
{
@@ -2014,8 +1964,8 @@ void Game::pause(bool value)
// Añade una puntuación a la tabla de records
void Game::addScoreToScoreBoard(const std::string &name, int score)
{
const auto entry = (HiScoreEntry){trim(name), score};
auto manager = std::make_unique<ManageHiScoreTable>(&options.game.hi_score_table);
const auto entry = HiScoreEntry(trim(name), score);
auto manager = std::make_unique<ManageHiScoreTable>(options.game.hi_score_table);
manager->add(entry);
manager->saveToFile(asset_->get("score.bin"));
}