|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
L'ensemble des faits acquis d'une partie : coffres ouverts, quêtes franchies, portes déverrouillées. More...
#include <WorldFlags.h>
Public Member Functions | |
| bool | isSet (std::string_view key) const |
| Vrai si le fait est acquis. | |
| bool | set (std::string_view key) |
| Marque le fait comme acquis. Renvoie false s'il l'était déjà. | |
| void | clear (std::string_view key) |
| Efface un fait. Utile à un LOT-16 qui rouvrirait une quête, et aux tests. | |
| std::size_t | size () const |
| Le nombre de faits acquis. | |
| std::vector< std::string > | all () const |
| Tous les faits acquis, triés — c'est la forme que la sauvegarde écrira. | |
Private Attributes | |
| std::set< std::string, std::less<> > | _flags |
L'ensemble des faits acquis d'une partie : coffres ouverts, quêtes franchies, portes déverrouillées.
Ce n'est pas un booléen sur l'entité. Un coffre ouvert doit le rester quand le joueur quitte la carte et y revient : à ce moment-là, l'entité du coffre est détruite et recréée depuis la couche objects du fichier de niveau, qui ne sait rien de ce qui s'est passé. Un drapeau porté par l'entité disparaîtrait avec elle, et le coffre redonnerait son butin à chaque passage — un défaut qui ne casse rien, ne lève aucune alerte, et se confond avec de la générosité de conception.
L'état vit donc à côté des entités, dans un ensemble qui survit au chargement de carte et que la sauvegarde (LOT-17) sérialisera telle quelle.
Les clés sont des chaînes plutôt qu'un type fermé : le LOT-16 y écrira des drapeaux de quête que ce lot ne peut pas énumérer, et une énumération obligerait chaque lot suivant à modifier ce fichier. La contrepartie — une faute de frappe passe — est traitée par keyForEntity(), qui fabrique la clé d'une entité de carte plutôt que de la laisser écrire à la main.
|
nodiscard |
Tous les faits acquis, triés — c'est la forme que la sauvegarde écrira.
| void core::WorldFlags::clear | ( | std::string_view | key | ) |
Efface un fait. Utile à un LOT-16 qui rouvrirait une quête, et aux tests.
|
nodiscard |
Vrai si le fait est acquis.
| bool core::WorldFlags::set | ( | std::string_view | key | ) |
Marque le fait comme acquis. Renvoie false s'il l'était déjà.
|
inlinenodiscard |
Le nombre de faits acquis.
|
private |