refactor(director): migra la persistència ConfigYaml al Director
main.cpp queda només amb 'Director director(argc, argv); return director.run()'. El Director crida ConfigYaml::* directament; l'struct ConfigPersistence desapareix de engine_config.hpp. La separació core/game es relaxa al Director, que és EL programa, no part del motor.
This commit is contained in:
+3
-24
@@ -1,33 +1,12 @@
|
||||
// main.cpp - Punt d'entrada de l'aplicació
|
||||
// © 2026 JailDesigner
|
||||
//
|
||||
// Aquí orquestrem la capa de persistència (YAML via game/ConfigYaml::*) i
|
||||
// injectem el resultat al Director. El Director queda independent de
|
||||
// game/config_yaml.hpp i pot operar només amb Config::EngineConfig.
|
||||
// El Director és EL programa: posseeix la configuració, els subsistemes i
|
||||
// el bucle. main.cpp només construeix el Director i delega.
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "core/config/engine_config.hpp"
|
||||
#include "core/system/director.hpp"
|
||||
#include "game/config_yaml.hpp"
|
||||
|
||||
auto main(int argc, char* argv[]) -> int {
|
||||
// Convertir arguments a std::vector<std::string>
|
||||
std::vector<std::string> args(argv, argv + argc);
|
||||
|
||||
// Capa de persistència delegada: lambdes prim que enllacen el contracte
|
||||
// de Config::ConfigPersistence amb la implementació YAML de ConfigYaml::*.
|
||||
const Config::ConfigPersistence PERSISTENCE{
|
||||
.init_defaults = [] { ConfigYaml::init(); },
|
||||
.set_path = [](const std::string& path) { ConfigYaml::setConfigFile(path); },
|
||||
.load = [] { return ConfigYaml::loadFromFile(); },
|
||||
.save = [] { return ConfigYaml::saveToFile(); },
|
||||
};
|
||||
|
||||
// El Director rep la struct d'engine_config + la capa de persistència.
|
||||
// No coneix ConfigYaml:: directament.
|
||||
Director director(args, ConfigYaml::engine_config, PERSISTENCE);
|
||||
|
||||
Director director(argc, argv);
|
||||
return director.run();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user