feat(map): Map::light_level per sala des del YAML

This commit is contained in:
JailDesigner committed 2026-05-12 20:58:30 +02:00
1 parent 5ed963b53d
commit 68be8e55ec
2 files changed
+12

No files matched your search

+5
View File
@@ -5,6 +5,7 @@
#include "core/resources/resource_helper.hpp" #include "core/resources/resource_helper.hpp"
#include "external/fkyaml_node.hpp" #include "external/fkyaml_node.hpp"
#include "utils/defaults.hpp"
#include "utils/log.hpp" #include "utils/log.hpp"
namespace { namespace {
@@ -102,6 +103,10 @@ namespace Map {
// canviarà el flag a true quan transiti a OPEN. // canviarà el flag a true quan transiti a OPEN.
door_open = false; door_open = false;
// Llum base de la sala. La clau és opcional a l'arrel del YAML;
// per defecte 1.0 (sala totalment il·luminada, comportament hui).
light_level = yaml.contains("light_level") ? yaml["light_level"].get_value<float>() : Defaults::Lighting::ROOM_LIGHT_DEFAULT;
Log::info("Map", "geometria {}x{} sarcs {}x{} pitch {}x{} door_col {} des de {}", grid_cols, grid_rows, sarc_w, sarc_h, pitch_x, pitch_y, door_col, yaml_path); Log::info("Map", "geometria {}x{} sarcs {}x{} pitch {}x{} door_col {} des de {}", grid_cols, grid_rows, sarc_w, sarc_h, pitch_x, pitch_y, door_col, yaml_path);
} }
+7
View File
@@ -50,6 +50,13 @@ namespace Map {
inline int back_wall_h = 0; inline int back_wall_h = 0;
inline int side_wall_w = 0; inline int side_wall_w = 0;
// Nivell d'il·luminació base de la sala. 1.0 = totalment il·luminada
// (com hui, sense efecte visual); 0.0 = completament negra fora del
// radi d'un emissor. La clau `light_level:` al YAML de la sala el
// sobreescriu — si manca, queda al default 1.0 i la pasada
// d'il·luminació del frame es salta com a no-op.
inline float light_level = 1.0F;
// Derivats de la geometria base: el pas entre sarcòfags ha de cabre // Derivats de la geometria base: el pas entre sarcòfags ha de cabre
// exactament el jugador, i el mateix passadís s'usa a l'exterior. // exactament el jugador, i el mateix passadís s'usa a l'exterior.
inline int corridor_w = 0; inline int corridor_w = 0;