diff --git a/source/enemy.cpp b/source/enemy.cpp index c7c8008..865b728 100644 --- a/source/enemy.cpp +++ b/source/enemy.cpp @@ -10,8 +10,7 @@ Enemy::Enemy(enemy_t enemy) renderer = enemy.renderer; // Crea objetos - texture = new LTexture(); - texture->loadFromFile(asset->get(enemy.tileset), renderer); + texture = new LTexture(renderer, asset->get(enemy.tileset)); sprite = new AnimatedSprite(texture, renderer, asset->get(enemy.animation)); // Obten el resto de valores @@ -33,12 +32,8 @@ Enemy::Enemy(enemy_t enemy) // Destructor Enemy::~Enemy() { - texture->unload(); delete texture; - texture = nullptr; - delete sprite; - sprite = nullptr; } // Pinta el enemigo en pantalla diff --git a/source/item.cpp b/source/item.cpp index 49da371..01a31f0 100644 --- a/source/item.cpp +++ b/source/item.cpp @@ -10,8 +10,7 @@ Item::Item(item_t item) renderer = item.renderer; // Crea objetos - texture = new LTexture(); - texture->loadFromFile(asset->get(item.tileset), renderer); + texture = new LTexture(renderer,asset->get(item.tileset)); sprite = new Sprite(item.x, item.y, 8, 8, texture, renderer); // Inicia variables @@ -43,12 +42,8 @@ Item::Item(item_t item) // Destructor Item::~Item() { - texture->unload(); delete texture; - texture = nullptr; - delete sprite; - sprite = nullptr; } // Pinta el objeto en pantalla diff --git a/source/ltexture.cpp b/source/ltexture.cpp index df35923..c09bcca 100644 --- a/source/ltexture.cpp +++ b/source/ltexture.cpp @@ -182,5 +182,5 @@ int LTexture::getHeight() // Recarga la textura bool LTexture::reLoad() { - loadFromFile(path, renderer); + return loadFromFile(path, renderer); } \ No newline at end of file diff --git a/source/player.cpp b/source/player.cpp index 82fffdb..54dc473 100644 --- a/source/player.cpp +++ b/source/player.cpp @@ -13,8 +13,7 @@ Player::Player(player_t ini, std::string tileset, std::string animation, SDL_Ren this->input = input; // Crea objetos - texture = new LTexture(); - texture->loadFromFile(asset->get(tileset), renderer); + texture = new LTexture(renderer, asset->get(tileset)); sprite = new AnimatedSprite(texture, renderer, animation); // Inicializa variables @@ -41,12 +40,8 @@ Player::Player(player_t ini, std::string tileset, std::string animation, SDL_Ren // Destructor Player::~Player() { - texture->unload(); delete texture; - texture = nullptr; - delete sprite; - sprite = nullptr; } // Pinta el jugador en pantalla diff --git a/source/room.cpp b/source/room.cpp index ebe9a5e..5d2432c 100644 --- a/source/room.cpp +++ b/source/room.cpp @@ -13,9 +13,8 @@ Room::Room(std::string file_path, SDL_Renderer *renderer, Asset *asset, ItemTrac this->itemsPicked = items; // Crea los objetos - texture = new LTexture(); load(file_path); - texture->loadFromFile(asset->get(tileset), renderer); + texture = new LTexture(renderer,asset->get(tileset)); itemSound = JA_LoadSound(asset->get("item.wav").c_str()); // Crea la textura para el mapa de tiles de la habitación @@ -31,26 +30,19 @@ Room::Room(std::string file_path, SDL_Renderer *renderer, Asset *asset, ItemTrac Room::~Room() { // Reclama la memoria utilizada por los objetos - texture->unload(); delete texture; - texture = nullptr; - JA_DeleteSound(itemSound); - SDL_DestroyTexture(mapTexture); - mapTexture = nullptr; for (auto enemy : enemies) { delete enemy; } - enemies.clear(); for (auto item : items) { delete item; } - items.clear(); } // Carga las variables desde un fichero diff --git a/source/scoreboard.cpp b/source/scoreboard.cpp index 5c672ac..e8f0176 100644 --- a/source/scoreboard.cpp +++ b/source/scoreboard.cpp @@ -13,8 +13,7 @@ ScoreBoard::ScoreBoard(SDL_Renderer *renderer, Asset *asset, int *lives, int *it this->clock = clock; // Reserva memoria para los objetos - texture = new LTexture(); - texture->loadFromFile(asset->get("player01.png"), renderer); + texture = new LTexture(renderer,asset->get("player01.png")); sprite = new AnimatedSprite(texture, renderer, asset->get("player01.ani")); sprite->setCurrentAnimation("walk_menu"); text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer); @@ -70,15 +69,9 @@ ScoreBoard::ScoreBoard(SDL_Renderer *renderer, Asset *asset, int *lives, int *it // Destructor ScoreBoard::~ScoreBoard() { - texture->unload(); delete texture; - texture = nullptr; - delete sprite; - sprite = nullptr; - delete text; - text = nullptr; } // Pinta el objeto en pantalla diff --git a/source/text.cpp b/source/text.cpp index ac51e11..df62e43 100644 --- a/source/text.cpp +++ b/source/text.cpp @@ -6,9 +6,7 @@ // Constructor Text::Text(std::string bitmapFile, std::string textFile, SDL_Renderer *renderer) { - texture = new LTexture(); - texture->loadFromFile(bitmapFile, renderer); - + texture = new LTexture(renderer, bitmapFile); sprite = new Sprite({0, 0, 0, 0}, texture, renderer); sprite->setTexture(texture); sprite->setRenderer(renderer); @@ -20,12 +18,8 @@ Text::Text(std::string bitmapFile, std::string textFile, SDL_Renderer *renderer) // Destructor Text::~Text() { - texture->unload(); delete texture; - texture = nullptr; - delete sprite; - sprite = nullptr; } // Inicializador