JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
core::LevelDraft Class Reference

Niveau mutable en cours d'édition, distinct de Level (immuable, LOT-07). More...

#include <LevelDraft.h>

Classes

struct  State
 Configuration de la plateforme en position, créée aux valeurs par défaut si absente. More...

Public Member Functions

void paintTile (int column, int row, TileType type)
 Peint le type de tuile type en (column, row).
void paintRegion (int originColumn, int originRow, const std::vector< std::vector< TileType > > &block)
 Applique un bloc rectangulaire de types de tuiles à partir de (originColumn, originRow).
void setEntry (int column, int row)
 Place l'entrée en (column, row) ; déplace l'occurrence existante s'il y en avait une (unicité, EX-EDIT-004).
void setExit (int column, int row)
 Place la sortie en (column, row) ; déplace l'occurrence existante s'il y en avait une (unicité, EX-EDIT-004).
void linkMechanism (GridPosition switchPosition, GridPosition targetPosition)
 Lie un interrupteur/plaque de pression à une porte ou à un danger commuté (EX-EDIT-003, EX-GP-052), selon le type de tuile posé en targetPosition.
void unlinkMechanism (GridPosition targetPosition)
 Retire la liaison de porte à targetPosition, si elle en a une.
void setTextureOverride (GridPosition position, std::string assetName)
 Assigne (ou remplace) la texture affichée pour une case précise (EX-EDIT-043), prioritaire sur le skin de son type (LOT-42).
void removeTextureOverride (GridPosition position)
 Retire l'override de texture de position, s'il y en a un. Sans effet sinon.
void resize (int width, int height)
 Redimensionne la grille (EX-EDIT-005).
bool wouldResizeDropContent (int width, int height) const noexcept
 Indique si redimensionner à (width, height) supprimerait du contenu déjà posé.
bool undo ()
 Annule la dernière mutation (EX-EDIT-005).
bool redo ()
 Refait la dernière mutation annulée.
bool canUndo () const noexcept
bool canRedo () const noexcept
void setName (std::string name)
 Renomme le niveau.
void setBackground (std::optional< std::string > background)
 Assigne l'asset de fond du niveau (EX-REN-044), annulable.
void setSkinSet (std::optional< std::string > skinSet)
 Assigne le jeu de skins du niveau (EX-EDIT-024), annulable.
void setCameraFraming (CameraFramingConfig cameraFraming)
 Change le cadrage de caméra du niveau (EX-LVL-006, EX-EDIT-028), annulable.
void addCameraZone (CameraZone zone)
 Ajoute une zone de caméra dessinée à la main en fin de liste (mode PerRoom, EX-LVL-007, EX-EDIT-029), annulable.
void removeCameraZone (std::size_t index)
 Retire la zone de caméra au rang index (EX-LVL-007, EX-EDIT-029), annulable.
const std::string & name () const noexcept
const TileMaptileMap () const noexcept
std::optional< GridPositionentry () const noexcept
std::optional< GridPositionexit () const noexcept
const std::vector< Mechanism > & mechanisms () const noexcept
const std::vector< TileTextureOverride > & textureOverrides () const noexcept
const std::vector< Plane > & planes () const noexcept
const std::vector< TileLayer > & layers () const noexcept
const std::vector< MapEntity > & entities () const noexcept
bool parallaxEnabled () const noexcept
const std::optional< std::string > & background () const noexcept
const std::optional< std::string > & skinSet () const noexcept
const CameraFramingConfigcameraFraming () const noexcept
LevelLoadResult toLevel () const
 Convertit le brouillon en Level validé (EX-EDIT-007), en repassant par la même validation que LevelLoader (sérialise puis recharge : aucune règle dupliquée, EX-EDIT-010).
Plans picturaux (<tt>EX-DEC-040</tt>, LOT-69)

Tous ces mutateurs empilent un pas d'annulation (pushUndo) et sont donc annulables et refaisables.

Un rang hors bornes est sans effet et n'empile rien — même convention que les mutateurs de décor et de parcours.

Contrairement aux décors, les plans ne sont pas regroupés par couche pour le réordonnancement : leur rang dans la liste est l'ordre de superposition, et la profondeur (core::PlaneDepth) est une propriété indépendante. Monter un plan le rapproche donc du premier plan de la liste, quelle que soit sa profondeur.

void addPlane (Plane plane)
 Ajoute plane en fin de liste (le plus en avant).
void removePlane (std::size_t index)
 Retire le plan au rang index.
bool setPlaneDensity (std::size_t index, int pixelsPerUnit)
 Change la densité du plan au rang index (EX-DEC-041).
bool setPlaneParallax (std::size_t index, float parallaxX, float parallaxY)
 Change les facteurs de parallaxe du plan au rang index (EX-DEC-043).
bool setPlaneOpacity (std::size_t index, float opacity)
 Change l'opacité du plan au rang index.
bool setPlaneDepth (std::size_t index, PlaneDepth depth)
 Change la profondeur du plan au rang index (EX-DEC-042).
std::optional< std::size_t > movePlaneForward (std::size_t index)
 Avance le plan au rang index d'un cran ; sans effet s'il est déjà le dernier.
std::optional< std::size_t > movePlaneBackward (std::size_t index)
 Recule le plan au rang index d'un cran ; sans effet s'il est déjà le premier.
std::optional< std::size_t > movePlaneToFront (std::size_t index)
 Amène le plan au rang index au dernier rang (le plus en avant).
std::optional< std::size_t > movePlaneToBack (std::size_t index)
 Envoie le plan au rang index au premier rang (le plus en arrière).
void setParallaxEnabled (bool enabled)
 Active ou désactive la parallaxe des plans pour ce niveau (EX-DEC-043).

Static Public Member Functions

static LevelDraft empty (std::string name, int width, int height)
 Crée un brouillon vierge (grille entièrement Empty), sans entrée ni sortie.
static LevelDraft fromLevel (const Level &level)
 Crée un brouillon à partir d'un niveau déjà chargé (édition d'un fichier existant).

Private Member Functions

 LevelDraft (std::string name, TileMap tileMap)
void paintTileInternal (int column, int row, TileType type)
 Logique de paintTile, sans pushUndo() : réutilisée cellule par cellule par paintRegion pour n'empiler qu'un seul snapshot par opération de bloc.
void setEntryInternal (int column, int row)
 Logique de setEntry, sans pushUndo().
void setExitInternal (int column, int row)
 Logique de setExit, sans pushUndo().
void removeLinkedDataAt (GridPosition position, bool keepTextureOverride=false)
 Retire toute liaison/configuration référençant position (déclencheur, porte, danger commuté, configuration de danger mobile/temporisé, ou override de texture) — appelé avant de reposer un autre type sur une case qui en portait une, pour ne jamais laisser d'entrée orpheline.
State snapshot () const
 Capture l'état courant (pour empiler dans l'historique undo/redo).
void restore (State state)
 Restitue un état capturé précédemment.
void pushUndo ()
 Empile l'état courant sur la pile d'annulation ; à appeler avant toute mutation undoable.

Private Attributes

std::string _name
TileMap _tileMap
std::optional< GridPosition_entry
std::optional< GridPosition_exit
std::vector< Mechanism_mechanisms
std::vector< TileLayer_layers
std::vector< MapEntity_entities
std::optional< std::string > _background
std::optional< std::string > _skinSet
std::vector< TileTextureOverride_textureOverrides
CameraFramingConfig _cameraFraming
std::vector< Plane_planes
bool _parallaxEnabled = true
std::vector< State_undoHistory
std::vector< State_redoHistory

Detailed Description

Niveau mutable en cours d'édition, distinct de Level (immuable, LOT-07).

LevelDraft porte toute la mutabilité nécessaire à l'éditeur (EX-EDIT-002 à EX-EDIT-005) : peindre une tuile, déplacer l'entrée/la sortie, lier/délier un mécanisme, redimensionner la grille. Il ne duplique aucune règle de validation : toLevel() reconstruit le niveau en repassant par LevelLoader::loadFromString (même chemin que le chargement d'un fichier), garantissant que le niveau produit satisfait exactement les mêmes règles (EX-LVL-004, EX-EDIT-010).

Invariant maintenu par tous les mutateurs : la grille de tuiles reste la source de vérité des positions d'entrée/sortie/interrupteurs/portes (comme pour Level) ; entry()/exit() ne sont que des accès en cache, toujours synchronisés avec le contenu de tileMap().

Logique pure, sans dépendance rendu ni fenêtre — testable sans GPU (EX-NFR-010).

Constructor & Destructor Documentation

◆ LevelDraft()

core::LevelDraft::LevelDraft ( std::string name,
TileMap tileMap )
private

Member Function Documentation

◆ addCameraZone()

void core::LevelDraft::addCameraZone ( CameraZone zone)

Ajoute une zone de caméra dessinée à la main en fin de liste (mode PerRoom, EX-LVL-007, EX-EDIT-029), annulable.

L'ordre d'ajout fixe la priorité en cas de chevauchement (core::activeCameraZoneIndex côté HMI, même convention que addDecor) : une zone ajoutée après une autre ne prend le dessus que là où l'autre ne la couvre pas.

Parameters
zoneZone à ajouter, en cases.

◆ addPlane()

void core::LevelDraft::addPlane ( Plane plane)

Ajoute plane en fin de liste (le plus en avant).

◆ background()

const std::optional< std::string > & core::LevelDraft::background ( ) const
inlinenodiscardnoexcept
Returns
L'asset de fond courant (EX-REN-044), absent si aucun n'est posé.

◆ cameraFraming()

const CameraFramingConfig & core::LevelDraft::cameraFraming ( ) const
inlinenodiscardnoexcept
Returns
Le cadrage de caméra courant du niveau (EX-LVL-006).

◆ canRedo()

bool core::LevelDraft::canRedo ( ) const
inlinenodiscardnoexcept
Returns
true si redo() aurait un effet.

◆ canUndo()

bool core::LevelDraft::canUndo ( ) const
inlinenodiscardnoexcept
Returns
true si undo() aurait un effet.

◆ empty()

LevelDraft core::LevelDraft::empty ( std::string name,
int width,
int height )
staticnodiscard

Crée un brouillon vierge (grille entièrement Empty), sans entrée ni sortie.

Parameters
nameNom du niveau.
widthLargeur de la grille, en cases (> 0).
heightHauteur de la grille, en cases (> 0).

◆ entities()

const std::vector< MapEntity > & core::LevelDraft::entities ( ) const
inlinenodiscardnoexcept
Returns
Les entites placees sur la carte (LOT-04). Portees telles quelles, comme layers(), en attendant l'outillage d'edition du LOT-11.

◆ entry()

std::optional< GridPosition > core::LevelDraft::entry ( ) const
inlinenodiscardnoexcept
Returns
La position d'entrée, si elle est posée.

◆ exit()

std::optional< GridPosition > core::LevelDraft::exit ( ) const
inlinenodiscardnoexcept
Returns
La position de sortie, si elle est posée.

◆ fromLevel()

LevelDraft core::LevelDraft::fromLevel ( const Level & level)
staticnodiscard

Crée un brouillon à partir d'un niveau déjà chargé (édition d'un fichier existant).

Parameters
levelNiveau source.

◆ layers()

const std::vector< TileLayer > & core::LevelDraft::layers ( ) const
inlinenodiscardnoexcept
Returns
Les couches de tuiles du niveau (LOT-04), dans leur ordre de superposition.

Portees telles quelles, pas encore editables. Le brouillon les recoit du fichier et les rend a l'enregistrement ; c'est le LOT-11 qui donnera a l'editeur de quoi les creer et les peindre. Sans ce transport, ouvrir puis enregistrer une carte multi-couches les effacerait en silence – exactement le genre de perte qu'un editeur ne doit jamais infliger.

◆ linkMechanism()

void core::LevelDraft::linkMechanism ( GridPosition switchPosition,
GridPosition targetPosition )

Lie un interrupteur/plaque de pression à une porte ou à un danger commuté (EX-EDIT-003, EX-GP-052), selon le type de tuile posé en targetPosition.

Remplace toute liaison existante pour targetPosition (une cible n'a qu'un seul déclencheur associé) ; plusieurs cibles peuvent en revanche partager le même déclencheur. La liaison résultante est rangée dans mechanisms().

Precondition
La case switchPosition porte un Switch/PressurePlate/Key, la case targetPosition porte une Door/LockedDoor.

◆ mechanisms()

const std::vector< Mechanism > & core::LevelDraft::mechanisms ( ) const
inlinenodiscardnoexcept
Returns
Les liaisons de mécanismes courantes (déclencheur ↔ porte).

◆ movePlaneBackward()

std::optional< std::size_t > core::LevelDraft::movePlaneBackward ( std::size_t index)

Recule le plan au rang index d'un cran ; sans effet s'il est déjà le premier.

◆ movePlaneForward()

std::optional< std::size_t > core::LevelDraft::movePlaneForward ( std::size_t index)

Avance le plan au rang index d'un cran ; sans effet s'il est déjà le dernier.

Returns
Le nouveau rang, ou std::nullopt si index est hors bornes.

◆ movePlaneToBack()

std::optional< std::size_t > core::LevelDraft::movePlaneToBack ( std::size_t index)

Envoie le plan au rang index au premier rang (le plus en arrière).

◆ movePlaneToFront()

std::optional< std::size_t > core::LevelDraft::movePlaneToFront ( std::size_t index)

Amène le plan au rang index au dernier rang (le plus en avant).

◆ name()

const std::string & core::LevelDraft::name ( ) const
inlinenodiscardnoexcept
Returns
Le nom courant du niveau.

◆ paintRegion()

void core::LevelDraft::paintRegion ( int originColumn,
int originRow,
const std::vector< std::vector< TileType > > & block )

Applique un bloc rectangulaire de types de tuiles à partir de (originColumn, originRow).

Repasse par la même sémantique cellule-par-cellule que paintTile (déplacement entrée/sortie, nettoyage des liaisons) pour chaque case du bloc, mais ne pousse qu'un seul snapshot undo pour toute l'opération — sert au remplissage rectangulaire et au collage (EX-EDIT-014), sans dupliquer de règle de niveau (EX-EDIT-010). Les cases du bloc hors des bornes de la grille sont silencieusement ignorées (découpe aux bords, même principe que resize).

Parameters
originColumnColonne de la case (0,0) du bloc.
originRowLigne de la case (0,0) du bloc.
blockBloc de types, indexé [ligne][colonne] ; sans effet si vide.

◆ paintTile()

void core::LevelDraft::paintTile ( int column,
int row,
TileType type )

Peint le type de tuile type en (column, row).

Cas particuliers : peindre Entry/Exit délègue à setEntry/setExit (unicité). Peindre un autre type sur une case qui portait l'entrée, la sortie, un interrupteur ou une porte efface l'état associé (entrée/sortie invalidée, liaisons de mécanismes retirées) pour ne jamais laisser d'incohérence entre la grille et ces caches.

Parameters
columnColonne visée (doit être dans les bornes).
rowLigne visée (doit être dans les bornes).
typeType de tuile à poser.

◆ paintTileInternal()

void core::LevelDraft::paintTileInternal ( int column,
int row,
TileType type )
private

Logique de paintTile, sans pushUndo() : réutilisée cellule par cellule par paintRegion pour n'empiler qu'un seul snapshot par opération de bloc.

◆ parallaxEnabled()

bool core::LevelDraft::parallaxEnabled ( ) const
inlinenodiscardnoexcept
Returns
true si la parallaxe des plans est active pour ce niveau (EX-DEC-043).

◆ planes()

const std::vector< Plane > & core::LevelDraft::planes ( ) const
inlinenodiscardnoexcept
Returns
Les plans picturaux courants (EX-DEC-040), dans leur ordre de superposition.

◆ pushUndo()

void core::LevelDraft::pushUndo ( )
private

Empile l'état courant sur la pile d'annulation ; à appeler avant toute mutation undoable.

Une nouvelle mutation invalide toujours la branche de refaire.

◆ redo()

bool core::LevelDraft::redo ( )

Refait la dernière mutation annulée.

Toute nouvelle mutation après un undo() invalide la branche de refaire (historique linéaire classique) : redo() redevient sans effet tant qu'aucun nouvel undo() n'a eu lieu depuis.

Returns
true si une mutation a été refaite, false si rien n'était à refaire.

◆ removeCameraZone()

void core::LevelDraft::removeCameraZone ( std::size_t index)

Retire la zone de caméra au rang index (EX-LVL-007, EX-EDIT-029), annulable.

Parameters
indexRang dans cameraFraming().zones ; sans effet si hors bornes.

◆ removeLinkedDataAt()

void core::LevelDraft::removeLinkedDataAt ( GridPosition position,
bool keepTextureOverride = false )
private

Retire toute liaison/configuration référençant position (déclencheur, porte, danger commuté, configuration de danger mobile/temporisé, ou override de texture) — appelé avant de reposer un autre type sur une case qui en portait une, pour ne jamais laisser d'entrée orpheline.

keepTextureOverride préserve l'override de texture (repeindre le même type ne doit pas effacer un habillage, EX-EDIT-043) ; les autres données annexes sont toujours retirées, comme avant ce paramètre.

◆ removePlane()

void core::LevelDraft::removePlane ( std::size_t index)

Retire le plan au rang index.

Ne touche jamais au fichier PNG : le brouillon annule une entrée, il ne restaurerait pas un fichier supprimé (voir LOT-69 TACHE-08).

◆ removeTextureOverride()

void core::LevelDraft::removeTextureOverride ( GridPosition position)

Retire l'override de texture de position, s'il y en a un. Sans effet sinon.

◆ resize()

void core::LevelDraft::resize ( int width,
int height )

Redimensionne la grille (EX-EDIT-005).

Agrandir complète les nouvelles cases en Empty ; réduire tronque silencieusement le contenu hors des nouvelles bornes (entrée, sortie ou liaisons de mécanismes perdues sont invalidées en conséquence). L'avertissement de perte revient à l'appelant HMI, avant d'invoquer resize.

Parameters
widthNouvelle largeur, en cases (> 0).
heightNouvelle hauteur, en cases (> 0).

◆ restore()

void core::LevelDraft::restore ( State state)
private

Restitue un état capturé précédemment.

◆ setBackground()

void core::LevelDraft::setBackground ( std::optional< std::string > background)

Assigne l'asset de fond du niveau (EX-REN-044), annulable.

Parameters
backgroundNom de l'asset (ex. "forest.png"), ou vide pour retirer le fond posé. Une chaîne, jamais un handle : Core ignore tout du dossier d'assets.

◆ setCameraFraming()

void core::LevelDraft::setCameraFraming ( CameraFramingConfig cameraFraming)

Change le cadrage de caméra du niveau (EX-LVL-006, EX-EDIT-028), annulable.

Parameters
cameraFramingNouveau cadrage résolu (mode et, pour par salle, taille de salle).

◆ setEntry()

void core::LevelDraft::setEntry ( int column,
int row )

Place l'entrée en (column, row) ; déplace l'occurrence existante s'il y en avait une (unicité, EX-EDIT-004).

◆ setEntryInternal()

void core::LevelDraft::setEntryInternal ( int column,
int row )
private

Logique de setEntry, sans pushUndo().

◆ setExit()

void core::LevelDraft::setExit ( int column,
int row )

Place la sortie en (column, row) ; déplace l'occurrence existante s'il y en avait une (unicité, EX-EDIT-004).

◆ setExitInternal()

void core::LevelDraft::setExitInternal ( int column,
int row )
private

Logique de setExit, sans pushUndo().

◆ setName()

void core::LevelDraft::setName ( std::string name)
inline

Renomme le niveau.

◆ setParallaxEnabled()

void core::LevelDraft::setParallaxEnabled ( bool enabled)

Active ou désactive la parallaxe des plans pour ce niveau (EX-DEC-043).

◆ setPlaneDensity()

bool core::LevelDraft::setPlaneDensity ( std::size_t index,
int pixelsPerUnit )

Change la densité du plan au rang index (EX-DEC-041).

Returns
false si index est hors bornes ou si pixelsPerUnit n'est pas une densité valide (core::isValidPlaneDensity) — auquel cas rien n'est empilé.

◆ setPlaneDepth()

bool core::LevelDraft::setPlaneDepth ( std::size_t index,
PlaneDepth depth )

Change la profondeur du plan au rang index (EX-DEC-042).

Returns
false si index est hors bornes.

◆ setPlaneOpacity()

bool core::LevelDraft::setPlaneOpacity ( std::size_t index,
float opacity )

Change l'opacité du plan au rang index.

Returns
false si index est hors bornes ou si opacity sort de [0, 1].

◆ setPlaneParallax()

bool core::LevelDraft::setPlaneParallax ( std::size_t index,
float parallaxX,
float parallaxY )

Change les facteurs de parallaxe du plan au rang index (EX-DEC-043).

Returns
false si index est hors bornes ou si un facteur n'est pas fini.

◆ setSkinSet()

void core::LevelDraft::setSkinSet ( std::optional< std::string > skinSet)

Assigne le jeu de skins du niveau (EX-EDIT-024), annulable.

Parameters
skinSetNom du jeu (skins.json), ou vide pour le jeu par défaut.

◆ setTextureOverride()

void core::LevelDraft::setTextureOverride ( GridPosition position,
std::string assetName )

Assigne (ou remplace) la texture affichée pour une case précise (EX-EDIT-043), prioritaire sur le skin de son type (LOT-42).

Repeindre un autre type de tuile sur position retire l'override (funnel removeLinkedDataAt) ; repeindre le même type le conserve. Ne voyage pas avec paintRegion (collage) : un override reste attaché à sa case d'origine.

Precondition
La case position porte un type de tuile non Empty.

◆ skinSet()

const std::optional< std::string > & core::LevelDraft::skinSet ( ) const
inlinenodiscardnoexcept
Returns
Le jeu de skins courant du niveau (EX-EDIT-024), absent pour le jeu par défaut.

◆ snapshot()

LevelDraft::State core::LevelDraft::snapshot ( ) const
nodiscardprivate

Capture l'état courant (pour empiler dans l'historique undo/redo).

◆ textureOverrides()

const std::vector< TileTextureOverride > & core::LevelDraft::textureOverrides ( ) const
inlinenodiscardnoexcept
Returns
Les textures assignées par instance du niveau (EX-EDIT-043).

◆ tileMap()

const TileMap & core::LevelDraft::tileMap ( ) const
inlinenodiscardnoexcept
Returns
La grille de tuiles courante.

◆ toLevel()

LevelLoadResult core::LevelDraft::toLevel ( ) const
nodiscard

Convertit le brouillon en Level validé (EX-EDIT-007), en repassant par la même validation que LevelLoader (sérialise puis recharge : aucune règle dupliquée, EX-EDIT-010).

Returns
Un résultat récupérable : niveau valide, ou message d'erreur exploitable si le brouillon est incomplet (pas d'entrée/de sortie, liaison non résolue, …).

◆ undo()

bool core::LevelDraft::undo ( )

Annule la dernière mutation (EX-EDIT-005).

Returns
true si une mutation a été annulée, false si l'historique était vide.

◆ unlinkMechanism()

void core::LevelDraft::unlinkMechanism ( GridPosition targetPosition)

Retire la liaison de porte à targetPosition, si elle en a une.

Sans effet sinon.

◆ wouldResizeDropContent()

bool core::LevelDraft::wouldResizeDropContent ( int width,
int height ) const
nodiscardnoexcept

Indique si redimensionner à (width, height) supprimerait du contenu déjà posé.

Requête pure (n'altère rien) : vraie si les nouvelles bornes excluraient l'entrée, la sortie, ou une des deux extrémités d'une liaison de mécanisme actuellement posées. Permet à HMI d'avertir avant d'appeler resize (EX-EDIT-012), sans dupliquer la logique de troncature déjà portée par resize.

Parameters
widthLargeur envisagée, en cases (> 0).
heightHauteur envisagée, en cases (> 0).
Returns
true si l'entrée, la sortie ou une liaison serait perdue.

Member Data Documentation

◆ _background

std::optional<std::string> core::LevelDraft::_background
private

◆ _cameraFraming

CameraFramingConfig core::LevelDraft::_cameraFraming
private

◆ _entities

std::vector<MapEntity> core::LevelDraft::_entities
private

◆ _entry

std::optional<GridPosition> core::LevelDraft::_entry
private

◆ _exit

std::optional<GridPosition> core::LevelDraft::_exit
private

◆ _layers

std::vector<TileLayer> core::LevelDraft::_layers
private

◆ _mechanisms

std::vector<Mechanism> core::LevelDraft::_mechanisms
private

◆ _name

std::string core::LevelDraft::_name
private

◆ _parallaxEnabled

bool core::LevelDraft::_parallaxEnabled = true
private

◆ _planes

std::vector<Plane> core::LevelDraft::_planes
private

◆ _redoHistory

std::vector<State> core::LevelDraft::_redoHistory
private

◆ _skinSet

std::optional<std::string> core::LevelDraft::_skinSet
private

◆ _textureOverrides

std::vector<TileTextureOverride> core::LevelDraft::_textureOverrides
private

◆ _tileMap

TileMap core::LevelDraft::_tileMap
private

◆ _undoHistory

std::vector<State> core::LevelDraft::_undoHistory
private

The documentation for this class was generated from the following files:
  • /home/runner/work/JustAnotherDnDGame/JustAnotherDnDGame/Source/Core/Levels/LevelDraft.h
  • /home/runner/work/JustAnotherDnDGame/JustAnotherDnDGame/Source/Core/Levels/LevelDraft.cpp