forked from jaildesigner-jailgames/jaildoctors_dilemma
commit de moure a un Linux a gastar eines de home
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
#include <iostream> // Para cout
|
||||
#include <sstream> // Para basic_stringstream
|
||||
#include "asset.h" // Para Asset
|
||||
#include "const.h" // Para BLOCK, PLAY_AREA_HEIGHT, PLAY_AREA_W...
|
||||
#include "defines.h" // Para BLOCK, PLAY_AREA_HEIGHT, PLAY_AREA_W...
|
||||
#include "debug.h" // Para Debug
|
||||
#include "item_tracker.h" // Para ItemTracker
|
||||
#include "jail_audio.h" // Para JA_DeleteSound, JA_LoadSound, JA_Pla...
|
||||
@@ -91,11 +91,10 @@ room_t loadRoomFile(std::string file_path, bool verbose)
|
||||
// Si la linea contiene el texto [enemy] se realiza el proceso de carga de un enemigo
|
||||
if (line == "[enemy]")
|
||||
{
|
||||
enemy_t enemy;
|
||||
EnemyData enemy;
|
||||
enemy.flip = false;
|
||||
enemy.mirror = false;
|
||||
enemy.frame = -1;
|
||||
enemy.palette = Palette::ZXSPECTRUM;
|
||||
|
||||
do
|
||||
{
|
||||
@@ -268,12 +267,17 @@ bool setVars(room_t *room, std::string var, std::string value)
|
||||
}
|
||||
|
||||
// Asigna variables a una estructura enemy_t
|
||||
bool setEnemy(enemy_t *enemy, std::string var, std::string value)
|
||||
bool setEnemy(EnemyData *enemy, std::string var, std::string value)
|
||||
{
|
||||
// Indicador de éxito en la asignación
|
||||
bool success = true;
|
||||
|
||||
if (var == "animation")
|
||||
if (var == "tileSetFile")
|
||||
{
|
||||
enemy->texture_path = value;
|
||||
}
|
||||
|
||||
else if (var == "animation")
|
||||
{
|
||||
enemy->animation_path = value;
|
||||
}
|
||||
@@ -440,11 +444,9 @@ Room::Room(std::shared_ptr<room_t> room, std::shared_ptr<ItemTracker> itemTracke
|
||||
counter = 0;
|
||||
|
||||
// Crea los enemigos
|
||||
for (auto &enemy : room->enemies)
|
||||
for (auto &enemy_data : room->enemies)
|
||||
{
|
||||
enemy.renderer = renderer;
|
||||
enemy.palette = options.video.palette;
|
||||
enemies.push_back(new Enemy(enemy));
|
||||
enemies.emplace_back(std::make_shared<Enemy>(enemy_data));
|
||||
}
|
||||
|
||||
// Crea los items
|
||||
@@ -457,7 +459,7 @@ Room::Room(std::shared_ptr<room_t> room, std::shared_ptr<ItemTracker> itemTracke
|
||||
item.renderer = renderer;
|
||||
item.color1 = stringToColor(options.video.palette, itemColor1);
|
||||
item.color2 = stringToColor(options.video.palette, itemColor2);
|
||||
items.push_back(new Item(item));
|
||||
items.emplace_back(std::make_shared<Item>(item));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -504,23 +506,7 @@ Room::Room(std::shared_ptr<room_t> room, std::shared_ptr<ItemTracker> itemTracke
|
||||
Room::~Room()
|
||||
{
|
||||
// Reclama la memoria utilizada por los objetos
|
||||
JA_DeleteSound(itemSound);
|
||||
SDL_DestroyTexture(mapTexture);
|
||||
|
||||
for (auto enemy : enemies)
|
||||
{
|
||||
delete enemy;
|
||||
}
|
||||
|
||||
for (auto item : items)
|
||||
{
|
||||
delete item;
|
||||
}
|
||||
|
||||
for (auto a : aTile)
|
||||
{
|
||||
delete a.sprite;
|
||||
}
|
||||
}
|
||||
|
||||
// Devuelve el nombre de la habitación
|
||||
@@ -835,7 +821,6 @@ bool Room::itemCollision(SDL_Rect &rect)
|
||||
if (checkCollision(rect, items[i]->getCollider()))
|
||||
{
|
||||
itemTracker->addItem(name, items[i]->getPos());
|
||||
delete items[i];
|
||||
items.erase(items.begin() + i);
|
||||
JA_PlaySound(itemSound);
|
||||
*itemsPicked = *itemsPicked + 1;
|
||||
@@ -1316,7 +1301,7 @@ void Room::setAnimatedTiles()
|
||||
const int yc = (tileMap[i] / tileSetWidth) * tileSize;
|
||||
|
||||
aTile_t at;
|
||||
at.sprite = new Sprite(x, y, 8, 8, texture, renderer);
|
||||
at.sprite = std::make_shared<Sprite>(texture, x, y, 8, 8);
|
||||
at.sprite->setClip(xc, yc, 8, 8);
|
||||
at.xcOrig = xc;
|
||||
aTile.push_back(at);
|
||||
@@ -1535,7 +1520,6 @@ void Room::openTheJail()
|
||||
if (name == "THE JAIL")
|
||||
{
|
||||
// Elimina el último enemigo (Bry debe ser el ultimo enemigo definido en el fichero)
|
||||
delete enemies.back();
|
||||
enemies.pop_back();
|
||||
|
||||
// Abre las puertas
|
||||
|
||||
Reference in New Issue
Block a user