ajustant el jugador

This commit is contained in:
2026-04-05 22:47:12 +02:00
parent 20ad7d778f
commit 6305280e62
51 changed files with 487 additions and 450 deletions

View File

@@ -21,6 +21,13 @@ auto RoomLoader::convertRoomConnection(const std::string& value) -> std::string
return value + ".yaml";
}
// Lee un nodo de color tolerando tanto string ("red", "bright_blue") como entero (índice de paleta)
static auto readColorNode(const fkyaml::node& node) -> std::string {
if (node.is_string()) { return node.get_value<std::string>(); }
if (node.is_integer()) { return std::to_string(node.get_value<int>()); }
return "black";
}
// Convierte string de autoSurface a int
auto RoomLoader::convertAutoSurface(const fkyaml::node& node) -> int { // NOLINT(readability-convert-member-functions-to-static)
if (node.is_integer()) {
@@ -71,10 +78,10 @@ void RoomLoader::parseRoomConfig(const fkyaml::node& yaml, Room::Data& room, con
room.name = room_node["name"].get_value<std::string>();
}
if (room_node.contains("bgColor")) {
room.bg_color = room_node["bgColor"].get_value<std::string>();
room.bg_color = readColorNode(room_node["bgColor"]);
}
if (room_node.contains("border")) {
room.border_color = room_node["border"].get_value<std::string>();
room.border_color = readColorNode(room_node["border"]);
}
if (room_node.contains("tileSetFile")) {
room.tile_set_file = room_node["tileSetFile"].get_value<std::string>();
@@ -87,11 +94,11 @@ void RoomLoader::parseRoomConfig(const fkyaml::node& yaml, Room::Data& room, con
// Item colors
room.item_color1 = room_node.contains("itemColor1")
? room_node["itemColor1"].get_value_or<std::string>("yellow")
? readColorNode(room_node["itemColor1"])
: "yellow";
room.item_color2 = room_node.contains("itemColor2")
? room_node["itemColor2"].get_value_or<std::string>("magenta")
? readColorNode(room_node["itemColor2"])
: "magenta";
// Dirección de la cinta transportadora (left/none/right)