Files
orni-attack/source/game/config_yaml.hpp
T
JailDesigner 329ae7a38e refactor(#28): renombrar Options → ConfigYaml + netejar aliases
Pas 7 final del hallazgo #28. La capa de game/options havia esdevingut
exclusivament una capa de persistència YAML que llegia i escrivia
Config::EngineConfig. El nom "Options" no reflectia bé aquest rol.

Canvis:

- Renomenats fitxers: game/options.{hpp,cpp} → game/config_yaml.{hpp,cpp}
  (preservant la història de git via mv).
- Renomenat namespace: Options → ConfigYaml.
- Esborrades del .hpp les referències-alias inline (window, rendering,
  player1, player2, keyboard_controls, gamepad_controls, console) que
  ja no tenien call-sites externs (només existien per a la transició).
  El .hpp ara només exposa engine_config + version + path + funcions.
- A config_yaml.cpp s'introdueixen aliases internes (anonymous namespace)
  per mantenir llegible el codi de la implementació, sense exposar-les.
- Actualitzat main.cpp per a usar ConfigYaml::*.
- Actualitzats els comentaris stale a sdl_manager.hpp, director.hpp,
  engine_config.hpp i audio.hpp.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 19:47:18 +02:00

44 lines
1.5 KiB
C++

// config_yaml.hpp - Capa de persistència YAML de Config::EngineConfig
// © 2026 JailDesigner
//
// La configuració runtime viu en Config::EngineConfig (core/config/).
// Aquest fitxer afegeix una capa de persistència YAML que llegeix i
// escriu aquesta struct a disc. La connexió amb el Director es fa via
// Config::ConfigPersistence (lambdes a `main.cpp`), mantenint `core/`
// agnòstic respecte d'aquesta capa.
#pragma once
#include <string>
#include "core/config/engine_config.hpp"
namespace ConfigYaml {
// Única font de veritat de la configuració runtime. La capa YAML llegeix
// i escriu aquí; els consumidors (Director i sistemes de core/) reben
// referència a aquesta struct via injecció.
inline Config::EngineConfig engine_config{
.player2 = {
.keyboard = {
.key_left = SDL_SCANCODE_A,
.key_right = SDL_SCANCODE_D,
.key_thrust = SDL_SCANCODE_W,
.key_shoot = SDL_SCANCODE_LSHIFT,
.key_start = SDL_SCANCODE_2,
},
.gamepad_name = "",
},
};
// Persistència YAML (no exposada a `core/`).
inline std::string version{}; // Versión del config per validació
inline std::string config_file_path{}; // Establert per setConfigFile()
void init(); // Inicialitzar engine_config amb els valors per defecte
void setConfigFile(const std::string& path);
auto loadFromFile() -> bool;
auto saveToFile() -> bool;
} // namespace ConfigYaml