|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Jeu de visibilités des plans picturaux d'un niveau, adressé par rang. More...
#include <PlaneVisibility.h>
Public Member Functions | |
| bool | visible (std::size_t rank) const |
| void | setVisible (std::size_t rank, bool visible) |
Masque ou réaffiche le plan de rang rank. Sans effet visible tant qu'un plan est isolé. | |
| void | isolate (std::size_t rank) |
N'affiche plus que le plan de rang rank. Un second appel change le plan isolé. | |
| void | showAll () |
| Réaffiche tout : sort de l'isolement et lève les masquages individuels. | |
| std::optional< std::size_t > | isolatedRank () const noexcept |
Private Attributes | |
| std::optional< std::size_t > | _isolated |
| Rang du plan isolé, s'il y en a un — prioritaire sur _hidden. | |
| std::set< std::size_t > | _hidden |
| Rangs masqués individuellement. | |
Jeu de visibilités des plans picturaux d'un niveau, adressé par rang.
Distinct de hmi::LayerVisibility, et pour une raison de fond : celui-ci porte sur les calques de rendu, dont le nombre est fixe et connu à la compilation (EX-REN-014) ; le nombre de plans, lui, est libre et change au fil de l'édition. Un bit par calque ne pourrait donc pas les exprimer.
Non persistée : c'est une aide d'édition, pas une propriété du niveau. Rouvrir un niveau réaffiche tous ses plans.
Deux modes, volontairement exclusifs :
Les rangs suivent ceux de core::Level::planes : retirer un plan décale les suivants, et un masquage devient alors celui de son voisin. C'est assumé — l'appelant (hmi::PlanesPanel) rétablit l'état après une mutation de la liste, plutôt que d'introduire des identités stables dans le format pour un besoin d'affichage.
|
inline |
N'affiche plus que le plan de rang rank. Un second appel change le plan isolé.
|
inlinenodiscardnoexcept |
|
inline |
Masque ou réaffiche le plan de rang rank. Sans effet visible tant qu'un plan est isolé.
|
inline |
Réaffiche tout : sort de l'isolement et lève les masquages individuels.
|
inlinenodiscard |
rank doit être composé.
|
private |
Rangs masqués individuellement.
std::set et non un vecteur de bits : le nombre de plans est libre, et l'ensemble est presque toujours vide.
|
private |
Rang du plan isolé, s'il y en a un — prioritaire sur _hidden.