eliminar entrades legacy del fitxer de mapa
This commit is contained in:
@@ -33,18 +33,18 @@ Room::Room(const std::string& room_path, std::shared_ptr<Scoreboard::Data> data)
|
||||
|
||||
// Crea el mapa de colisiones desde el collision_tile_map (debe ir antes
|
||||
// del DoorManager porque éste lo necesita para mutar tiles dinámicamente)
|
||||
collision_map_ = std::make_unique<CollisionMap>(room->collision_tile_map, conveyor_belt_direction_);
|
||||
collision_map_ = std::make_unique<CollisionMap>(room->collision_tile_map);
|
||||
|
||||
// Crea el manager de puertas (necesita el CollisionMap para sincronizar muros)
|
||||
door_manager_ = std::make_unique<DoorManager>(room->number, collision_map_.get());
|
||||
|
||||
initializeRoom(*room);
|
||||
|
||||
// Crea el renderizador del tilemap (necesita tile_map_, tile_set_width_, surface_, bg_color_, conveyor_belt_direction_).
|
||||
// Se inicializa con el collision tile map ya modificado por las puertas (que han marcado sus
|
||||
// celdas como WALL en el collision_map_, pero el renderer solo lo usa para detectar superficies
|
||||
// de dibujo, no para colisión, así que pasamos la versión actualizada del collision_map_).
|
||||
tilemap_renderer_ = std::make_unique<TilemapRenderer>(tile_map_, tile_set_width_, surface_, bg_color_, conveyor_belt_direction_);
|
||||
// Crea el renderizador del tilemap. Se inicializa con el collision tile map ya
|
||||
// modificado por las puertas (que han marcado sus celdas como WALL en el
|
||||
// collision_map_, pero el renderer solo lo usa para detectar superficies de
|
||||
// dibujo, no para colisión).
|
||||
tilemap_renderer_ = std::make_unique<TilemapRenderer>(tile_map_, tile_set_width_, surface_, bg_color_);
|
||||
tilemap_renderer_->initialize(collision_map_->getCollisionTileMap());
|
||||
}
|
||||
|
||||
@@ -55,8 +55,6 @@ void Room::initializeRoom(const Data& room) {
|
||||
// Asignar valores a las variables miembro
|
||||
number_ = room.number;
|
||||
bg_color_ = room.bg_color;
|
||||
item_color1_ = room.item_color1;
|
||||
item_color2_ = room.item_color2;
|
||||
upper_room_ = room.upper_room;
|
||||
lower_room_ = room.lower_room;
|
||||
left_room_ = room.left_room;
|
||||
@@ -64,7 +62,6 @@ void Room::initializeRoom(const Data& room) {
|
||||
zone_ = room.zone;
|
||||
tile_set_file_ = room.tile_set_file;
|
||||
music_ = room.music;
|
||||
conveyor_belt_direction_ = room.conveyor_belt_direction;
|
||||
tile_map_ = room.tile_map; // Tilemap viene embebido en el YAML
|
||||
surface_ = Resource::Cache::get()->getSurface(room.tile_set_file);
|
||||
tile_set_width_ = surface_->getWidth() / TILE_SIZE;
|
||||
@@ -80,18 +77,12 @@ void Room::initializeRoom(const Data& room) {
|
||||
platform_manager_->addPlatform(std::make_shared<MovingPlatform>(plat_data));
|
||||
}
|
||||
|
||||
// Crear los items usando el manager
|
||||
// Crear los items usando el manager. Cada item lleva sus propios colores
|
||||
// (con defaults si el yaml no los especificó); ya no hay color por habitación.
|
||||
for (const auto& item : room.items) {
|
||||
const SDL_FPoint ITEM_POS = {item.x, item.y};
|
||||
|
||||
if (!ItemTracker::get()->hasBeenPicked(room.number, ITEM_POS)) {
|
||||
// Crear una copia local de los datos del item
|
||||
Item::Data item_copy = item;
|
||||
item_copy.color1 = item_color1_;
|
||||
item_copy.color2 = item_color2_;
|
||||
|
||||
// Crear el objeto Item usando la copia modificada
|
||||
item_manager_->addItem(std::make_shared<Item>(item_copy));
|
||||
item_manager_->addItem(std::make_shared<Item>(item));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -170,16 +161,6 @@ void Room::setTile(int index, int tile_value) {
|
||||
}
|
||||
}
|
||||
|
||||
// Cambia colores de items en vivo (para editor)
|
||||
void Room::setItemColors(Uint8 color1, Uint8 color2) {
|
||||
item_color1_ = color1;
|
||||
item_color2_ = color2;
|
||||
auto* item_mgr = item_manager_.get();
|
||||
for (int i = 0; i < item_mgr->getCount(); ++i) {
|
||||
item_mgr->getItem(i)->setColors(color1, color2);
|
||||
}
|
||||
}
|
||||
|
||||
// Cambia un collision tile en vivo (para editor)
|
||||
void Room::setCollisionTile(int index, int value) {
|
||||
collision_map_->setCollisionTile(index, value);
|
||||
@@ -214,16 +195,9 @@ void Room::setTileSet(const std::string& tile_set_file) {
|
||||
tile_map_,
|
||||
tile_set_width_,
|
||||
surface_,
|
||||
bg_color_,
|
||||
conveyor_belt_direction_);
|
||||
bg_color_);
|
||||
tilemap_renderer_->initialize(collision_map_->getCollisionTileMap());
|
||||
}
|
||||
|
||||
// Cambia la dirección del conveyor belt en vivo (para editor)
|
||||
void Room::setConveyorBeltDirection(int direction) {
|
||||
conveyor_belt_direction_ = direction;
|
||||
collision_map_->setConveyorBeltDirection(direction);
|
||||
}
|
||||
#endif
|
||||
|
||||
// Actualiza las variables y objetos de la habitación
|
||||
|
||||
Reference in New Issue
Block a user