eliminar entrades legacy del fitxer de mapa
This commit is contained in:
@@ -140,19 +140,6 @@ void RoomFormat::parseRoomConfig(const fkyaml::node& yaml, Room::Data& room, con
|
||||
if (room_node.contains("connections")) {
|
||||
parseRoomConnections(room_node["connections"], room);
|
||||
}
|
||||
|
||||
// Item colors
|
||||
if (room_node.contains("itemColor1")) {
|
||||
room.item_color1 = readColorNode(room_node["itemColor1"]);
|
||||
}
|
||||
if (room_node.contains("itemColor2")) {
|
||||
room.item_color2 = readColorNode(room_node["itemColor2"]);
|
||||
}
|
||||
|
||||
// Dirección de la cinta transportadora (left/none/right)
|
||||
room.conveyor_belt_direction = room_node.contains("conveyorBelt")
|
||||
? convertAutoSurface(room_node["conveyorBelt"])
|
||||
: 0;
|
||||
}
|
||||
|
||||
void RoomFormat::parseRoomConnections(const fkyaml::node& conn_node, Room::Data& room) {
|
||||
@@ -283,7 +270,7 @@ void RoomFormat::parseEnemies(const fkyaml::node& yaml, Room::Data& room, bool v
|
||||
// Parseo de items
|
||||
// ============================================================================
|
||||
|
||||
auto RoomFormat::parseItemData(const fkyaml::node& item_node, const Room::Data& room) -> Item::Data {
|
||||
auto RoomFormat::parseItemData(const fkyaml::node& item_node) -> Item::Data {
|
||||
Item::Data item;
|
||||
|
||||
if (item_node.contains("tileSetFile")) {
|
||||
@@ -304,8 +291,15 @@ auto RoomFormat::parseItemData(const fkyaml::node& item_node, const Room::Data&
|
||||
? item_node["counter"].get_value_or<int>(0)
|
||||
: 0;
|
||||
|
||||
item.color1 = room.item_color1;
|
||||
item.color2 = room.item_color2;
|
||||
// Colores: defaults de Item::Data, override si están en el yaml
|
||||
if (item_node.contains("color1")) {
|
||||
item.color1 = readColorNode(item_node["color1"]);
|
||||
item.color1_overridden = true;
|
||||
}
|
||||
if (item_node.contains("color2")) {
|
||||
item.color2 = readColorNode(item_node["color2"]);
|
||||
item.color2_overridden = true;
|
||||
}
|
||||
|
||||
return item;
|
||||
}
|
||||
@@ -316,7 +310,7 @@ void RoomFormat::parseItems(const fkyaml::node& yaml, Room::Data& room, bool ver
|
||||
}
|
||||
|
||||
for (const auto& item_node : yaml["items"]) {
|
||||
room.items.push_back(parseItemData(item_node, room));
|
||||
room.items.push_back(parseItemData(item_node));
|
||||
}
|
||||
|
||||
if (verbose) {
|
||||
@@ -530,13 +524,6 @@ auto RoomFormat::createDefault() -> Room::Data {
|
||||
data.left_room = "0";
|
||||
data.right_room = "0";
|
||||
|
||||
// Colores de items por defecto (números, no strings)
|
||||
data.item_color1 = 11;
|
||||
data.item_color2 = 12;
|
||||
|
||||
// Conveyor belt apagado
|
||||
data.conveyor_belt_direction = 0;
|
||||
|
||||
// Tilemaps del tamaño correcto, vacíos
|
||||
data.tile_map.resize(Map::WIDTH * Map::HEIGHT, -1);
|
||||
data.collision_tile_map.resize(Map::WIDTH * Map::HEIGHT, 0);
|
||||
@@ -553,12 +540,6 @@ auto RoomFormat::roomConnectionToYAML(const std::string& connection) -> std::str
|
||||
return connection;
|
||||
}
|
||||
|
||||
auto RoomFormat::conveyorBeltToString(int direction) -> std::string {
|
||||
if (direction < 0) { return "left"; }
|
||||
if (direction > 0) { return "right"; }
|
||||
return "none";
|
||||
}
|
||||
|
||||
auto RoomFormat::buildContent(const Room::Data& room_data) -> std::string { // NOLINT(readability-function-cognitive-complexity)
|
||||
std::ostringstream out;
|
||||
|
||||
@@ -587,17 +568,6 @@ auto RoomFormat::buildContent(const Room::Data& room_data) -> std::string { //
|
||||
out << " left: " << roomConnectionToYAML(room_data.left_room) << "\n";
|
||||
out << " right: " << roomConnectionToYAML(room_data.right_room) << "\n";
|
||||
|
||||
// Colores de items
|
||||
out << "\n";
|
||||
out << " # Colores de los objetos\n";
|
||||
out << " itemColor1: " << static_cast<int>(room_data.item_color1) << "\n";
|
||||
out << " itemColor2: " << static_cast<int>(room_data.item_color2) << "\n";
|
||||
|
||||
// Conveyor belt
|
||||
out << "\n";
|
||||
out << " # Dirección de la cinta transportadora: left, none, right\n";
|
||||
out << " conveyorBelt: " << conveyorBeltToString(room_data.conveyor_belt_direction) << "\n";
|
||||
|
||||
// --- Tilemap (MAP_HEIGHT filas × MAP_WIDTH columnas, formato flow) ---
|
||||
out << "\n";
|
||||
out << "# Tilemap: " << Map::HEIGHT << " filas x " << Map::WIDTH << " columnas @ " << Tile::SIZE << "px/tile\n";
|
||||
@@ -684,6 +654,14 @@ auto RoomFormat::buildContent(const Room::Data& room_data) -> std::string { //
|
||||
out << " counter: " << item.counter << "\n";
|
||||
}
|
||||
|
||||
// color1/color2 solo si son override explícito del default
|
||||
if (item.color1_overridden) {
|
||||
out << " color1: " << static_cast<int>(item.color1) << "\n";
|
||||
}
|
||||
if (item.color2_overridden) {
|
||||
out << " color2: " << static_cast<int>(item.color2) << "\n";
|
||||
}
|
||||
|
||||
out << "\n";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user