|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Sérialise un niveau vers le format JSON défini par EX-LVL-003. More...
#include <LevelWriter.h>
Static Public Member Functions | |
| static std::string | toJsonString (const Level &level) |
| Sérialise un niveau déjà construit et validé. | |
| static bool | saveToFile (const Level &level, const std::filesystem::path &path) |
| Écrit un niveau au format JSON dans un fichier (EX-EDIT-006). | |
| static std::string | buildJson (const LevelData &data) |
| Construit le JSON à partir des composantes d'un niveau (utilisé également par LevelDraft::toLevel(), qui n'a pas nécessairement de Level construit). | |
Sérialise un niveau vers le format JSON défini par EX-LVL-003.
Fonction pure, symétrique à LevelLoader::loadFromString : recharger la chaîne produite reconstruit un niveau équivalent (mêmes tuiles, entrée/sortie, mécanismes, budgets), EX-EDIT-011. Les identifiants d'interrupteurs (id/opensWith) ne sont pas conservés du fichier d'origine — ni Level ni LevelDraft ne les retiennent après chargement — ils sont régénérés de façon déterministe (balayage de la grille ligne par ligne), sans effet sur la sémantique du niveau rechargé.
|
staticnodiscard |
Construit le JSON à partir des composantes d'un niveau (utilisé également par LevelDraft::toLevel(), qui n'a pas nécessairement de Level construit).
Prend l'agrégat core::LevelData du LOT-03 plutôt que ses neuf composantes en paramètres positionnels : les couches et les entités du LOT-04 les auraient portées à onze, dont trois std::vector voisins qui s'intervertissent sans que le compilateur bronche. C'est exactement la dette que le LOT-03 a soldée du côté du constructeur de Level ; l'écrivain n'avait pas de raison de la garder.
Champs consommés, et les conventions qui les gouvernent :
| data | Composantes du niveau à sérialiser. |
|
staticnodiscard |
Écrit un niveau au format JSON dans un fichier (EX-EDIT-006).
Écriture directe (std::ofstream), sans exception vers l'appelant : un échec (chemin invalide, permissions) est signalé par la valeur de retour, jamais par une exception (EX-NFR-040), symétrique à LevelLoader::loadFromFile.
| level | Niveau à écrire (déjà validé). |
| path | Chemin du fichier de destination ; le dossier parent doit exister. |
|
staticnodiscard |
Sérialise un niveau déjà construit et validé.
| level | Niveau à sérialiser. |