87 [[nodiscard]]
bool ok() const noexcept {
88 return level.has_value();
Niveau chargé : grille de tuiles, entrée/sortie et mécanismes.
Charge un niveau au format JSON (objet {name, width, height, tiles} où tiles est une liste d'objets {...
Definition LevelLoader.h:101
static LevelLoadResult loadFromString(std::string_view json)
Charge un niveau depuis une chaîne JSON.
Definition LevelLoader.cpp:483
static LevelLoadResult loadFromFile(const std::filesystem::path &path)
Charge un niveau depuis un fichier.
Definition LevelLoader.cpp:667
Espace de noms du moteur et de la logique de jeu.
Definition Bootstrap.h:9
constexpr int LEVEL_FORMAT_VERSION
Version courante du format de niveau JSON (EX-LVL-005).
Definition LevelLoader.h:71
@ FileNotFound
Fichier absent ou illisible.
Definition JsonDocument.h:30
@ None
Pas d'erreur.
Definition JsonDocument.h:29
@ ParseError
JSON malformé, ou racine qui n'est pas un objet.
Definition JsonDocument.h:31
LevelValidationError
Catégorie d'échec de chargement/validation d'un niveau (LOT-15, EX-EDIT-012).
Definition LevelLoader.h:28
@ UnresolvedMechanism
Porte ou danger commuté lié à un identifiant d'interrupteur inexistant.
Definition LevelLoader.h:38
@ InvalidEntryCount
Zéro ou plusieurs tuiles d'entrée (une seule attendue).
Definition LevelLoader.h:36
@ OutOfBounds
Tuile positionnée hors des dimensions déclarées.
Definition LevelLoader.h:32
@ UnknownTileType
Type de tuile non reconnu.
Definition LevelLoader.h:31
@ None
Pas d'erreur (chargement réussi).
Definition LevelLoader.h:29
@ UnsupportedFormatVersion
"version" du fichier supérieure à celle gérée (EX-LVL-005).
Definition LevelLoader.h:41
@ DuplicateSwitchId
Deux interrupteurs partagent le même identifiant.
Definition LevelLoader.h:35
@ InvalidCameraFraming
Cadrage de caméra invalide (EX-LVL-006) : mode inconnu, taille de salle nulle/supérieure au niveau,...
Definition LevelLoader.h:42
@ InvalidExitCount
Zéro ou plusieurs tuiles de sortie (une seule attendue).
Definition LevelLoader.h:37
@ DuplicatePosition
Deux tuiles à la même position.
Definition LevelLoader.h:33
@ MissingSwitchId
Interrupteur sans identifiant.
Definition LevelLoader.h:34
Résultat d'un chargement de niveau : soit un Level, soit une erreur décrite.
Definition LevelLoader.h:81
LevelValidationError errorCode
Definition LevelLoader.h:84
bool ok() const noexcept
Definition LevelLoader.h:87
std::string error
Definition LevelLoader.h:83
std::optional< Level > level
Definition LevelLoader.h:82