131 for (std::size_t index = 0; index <
skins.size(); ++index) {
133 if (skin.
asset != asset) {
137 return static_cast<int>(index);
152 for (std::size_t index = 0; index <
objects.size(); ++index) {
153 if (
objects[index].asset == asset) {
154 return static_cast<int>(index);
162 switch (appearance.source) {
179 switch (appearance.source) {
196 switch (appearance.source) {
215 if (index < 0 ||
static_cast<std::size_t
>(index) >=
skins.size()) {
218 return &
skins[
static_cast<std::size_t
>(index)];
223 if (index < 0 ||
static_cast<std::size_t
>(index) >=
objects.size()) {
226 return &
objects[
static_cast<std::size_t
>(index)];
278 const SceneTextures& textures,
bool skinVisible =
true,
bool overrideVisible =
true) noexcept;
Ordonnancement de calques unique et explicite du rendu (EX-REN-014).
Mode de rendu Physique/Texture et sa persistance (EX-REN-046).
Association type de tuile → asset et mode de rendu, groupée en jeux nommés (EX-EDIT-042,...
Composant d'apparence 2D d'une entité (données pures).
Détourage des tuiles dont la matière n'occupe pas toute la case.
Marque de présentation portée par une entité tuile, pour résoudre son skin (EX-EDIT-042,...
Catalogue des jeux de skins : (jeu, type de tuile) → { asset, mode }.
Definition SkinCatalog.h:100
Espace de noms du moteur et de la logique de jeu.
Definition Bootstrap.h:9
TileType
Type d'une tuile de la grille d'une carte (EX-GP-001).
Definition TileType.h:32
Definition AudioEngine.cpp:15
@ Skin
Fichier de skin, dans le dossier Assets/Skins/.
Definition PaletteAppearance.h:25
@ Atlas
Couleur plate de l'atlas : mode Physique, ou repli si l'atlas fait foi.
Definition PaletteAppearance.h:23
@ MissingTexture
Damier magenta : le type n'est pas encore habillé (EX-NFR-040).
Definition PaletteAppearance.h:27
std::optional< TileAppearance > resolveTileAppearance(RenderMode mode, const core::AtlasRegion &physicalRegion, const TileSkinTag *tag, const SceneTextures &textures, bool skinVisible, bool overrideVisible) noexcept
Résout l'apparence d'une entité affichée selon le mode de rendu courant.
Definition TileAppearance.cpp:63
bool hasSilhouette(core::TileType type) noexcept
Indique si type a une silhouette, c'est-à-dire une matière qui n'occupe pas toute la case et qu'il fa...
Definition TileSilhouette.cpp:10
void * TextureHandle
Identité opaque d'une texture liée, du point de vue de la composition.
Definition RenderLayer.h:107
AppearanceSource
Texture d'où provient l'apparence résolue.
Definition TileAppearance.h:26
@ Override
Texture assignée par instance à la case, désignée par hmi::TileAppearance::skinIndex (index dans hmi:...
Definition TileAppearance.h:36
@ Skin
Skin assigné au type de tuile, désigné par hmi::TileAppearance::skinIndex (LOT-42).
Definition TileAppearance.h:32
@ Atlas
Atlas du jeu : couleur plate par type de tuile, images du personnage, aides d'édition.
Definition TileAppearance.h:28
@ MissingTexture
Damier magenta de repli : texture attendue mais pas encore disponible (EX-NFR-040).
Definition TileAppearance.h:30
SkinMode
Manière dont l'asset d'un type de tuile est découpé à l'affichage (EX-EDIT-025).
Definition SkinCatalog.h:32
RenderMode
Mode de rendu de la scène : lecture directe des collisions, ou habillage.
Definition RenderMode.h:23
bool animationExcludedForTile(SkinMode mode, core::TileType type) noexcept
Indique si la combinaison (mode de skin, type de tuile) exclut l'animation (LOT-46 TACHE-05).
Definition TileAppearance.cpp:144
Région source dans l'atlas de textures, en pixels (origine haut-gauche).
Definition Sprite.h:22
Textures liables par la composition d'une scène, et de quoi choisir laquelle lier.
Definition TileAppearance.h:85
int characterSheetWidth
Largeur de la spritesheet du personnage, en pixels.
Definition TileAppearance.h:104
std::string skinSet
Nom du jeu de skins courant. Vide pour utiliser le jeu par défaut du catalogue.
Definition TileAppearance.h:113
int atlasWidth
Largeur de l'atlas, en pixels.
Definition TileAppearance.h:89
std::vector< SkinTexture > skins
Skins déjà chargés, adressés par index (hmi::TileAppearance::skinIndex).
Definition TileAppearance.h:109
int objectIndexOf(std::string_view asset) const noexcept
Index de la texture d'objet chargée pour un asset donné (EX-EDIT-043, LOT-45).
Definition TileAppearance.h:151
int missingHeight
Hauteur du damier, en pixels.
Definition TileAppearance.h:97
int skinIndexOf(std::string_view asset, core::TileType type) const noexcept
Index du skin chargé pour un asset et un type de tuile donnés.
Definition TileAppearance.h:129
TextureHandle characterSheet
Spritesheet externe du personnage (hmi::PLAYER_SUBDIRECTORY/PLAYER_SHEET_FILE_NAME,...
Definition TileAppearance.h:102
int characterSheetHeight
Hauteur de la spritesheet du personnage, en pixels.
Definition TileAppearance.h:106
int missingWidth
Largeur du damier, en pixels.
Definition TileAppearance.h:95
int atlasHeight
Hauteur de l'atlas, en pixels.
Definition TileAppearance.h:91
TextureHandle atlas
Atlas du jeu (hmi::TextureAtlas::textureHandle).
Definition TileAppearance.h:87
TextureHandle textureFor(const TileAppearance &appearance) const noexcept
Definition TileAppearance.h:161
const SkinTexture * objectAt(int index) const noexcept
Definition TileAppearance.h:222
int heightFor(const TileAppearance &appearance) const noexcept
Definition TileAppearance.h:195
std::vector< SkinTexture > objects
Textures assignées par instance (EX-EDIT-043, LOT-45), adressées par index.
Definition TileAppearance.h:118
int widthFor(const TileAppearance &appearance) const noexcept
Definition TileAppearance.h:178
TextureHandle missing
Damier magenta de repli (hmi::TextureCache::missingTexture).
Definition TileAppearance.h:93
const SkinCatalog * skinCatalog
Catalogue des jeux de skins, ou nullptr si aucun n'est chargé (tout retombe au damier).
Definition TileAppearance.h:111
const SkinTexture * skinAt(int index) const noexcept
Definition TileAppearance.h:214
Skin déjà chargé, prêt à être lié par la composition.
Definition TileAppearance.h:52
int height
Hauteur de la texture, en pixels.
Definition TileAppearance.h:64
std::optional< core::TileType > maskType
Type dont la silhouette a été appliquée à l'image, s'il y a lieu (LOT-42 TACHE-03).
Definition TileAppearance.h:58
int width
Largeur de la texture, en pixels.
Definition TileAppearance.h:62
std::string asset
Nom logique du fichier (clé de correspondance avec hmi::SkinEntry::asset).
Definition TileAppearance.h:54
TextureHandle texture
Texture chargée (non possédée : propriété du hmi::TextureCache).
Definition TileAppearance.h:60
std::optional< core::AtlasRegion > animatedFrame
Région de l'image courante à échantillonner si cet asset est animé (LOT-46 TACHE-05),...
Definition TileAppearance.h:70
Apparence résolue d'une primitive : quelle texture lier, et quelle région y échantillonner.
Definition TileAppearance.h:40
core::AtlasRegion region
Région à échantillonner dans cette texture, en pixels.
Definition TileAppearance.h:44
AppearanceSource source
Texture à lier.
Definition TileAppearance.h:42
int skinIndex
Index dans hmi::SceneTextures::skins (source Skin) ou hmi::SceneTextures::objects (source Override) ;...
Definition TileAppearance.h:48