|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Statut : fait (vérification automatisée : build /W4 /WX sans avertissement, 899 tests verts sans modification de l'intention d'un seul test, format et linters verts). Prérequis : LOT-02 (confort d'outillage ; pas une dépendance stricte).
Remplacer le constructeur positionnel de core::Level par un agrégat nommé, avant que le RPG n'y ajoute ses propres champs.
Le constructeur de core::Level comptait 19 paramètres ; le LOT-01 l'a ramené à 11 en retirant le gameplay de plateforme, mais la dette de fond demeure — elle est actée dans l'en-tête lui-même (Source/Core/Levels/Level.h). Le RPG va rajouter au moins six champs : couches de tuiles (LOT-04), entités placées, connexions de carte, zones de rencontre, points d'apparition, drapeaux. On repasserait au-dessus de 17 paramètres positionnels, où deux std::optional<std::string> voisins s'intervertissent sans que le compilateur bronche.
Solder maintenant, alors que la liste est au plus court, coûte le minimum.
tileMap n'a volontairement pas de valeur par défaut. core::TileMap n'étant pas constructible par défaut, l'omettre dans l'agrégat est une erreur de compilation, jamais une grille vide silencieuse — exactement la propriété qu'on attend d'un champ obligatoire. Tous les autres champs ont un défaut utile, si bien qu'un site minimal tient en deux lignes :
EX-LVL-* nouvelle (« un niveau se construit depuis un agrégat nommé »), EX-ARCH-*.