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

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

Detailed Description

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.

Member Function Documentation

◆ all()

std::vector< std::string > core::WorldFlags::all ( ) const
nodiscard

Tous les faits acquis, triés — c'est la forme que la sauvegarde écrira.

◆ clear()

void core::WorldFlags::clear ( std::string_view key)

Efface un fait. Utile à un LOT-16 qui rouvrirait une quête, et aux tests.

◆ isSet()

bool core::WorldFlags::isSet ( std::string_view key) const
nodiscard

Vrai si le fait est acquis.

◆ set()

bool core::WorldFlags::set ( std::string_view key)

Marque le fait comme acquis. Renvoie false s'il l'était déjà.

◆ size()

std::size_t core::WorldFlags::size ( ) const
inlinenodiscard

Le nombre de faits acquis.

Member Data Documentation

◆ _flags

std::set<std::string, std::less<> > core::WorldFlags::_flags
private

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