JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
PlaneVisibility.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Valentin Eloy
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4#pragma once
5
6#include <cstddef>
7#include <optional>
8#include <set>
9
14
15namespace hmi {
16
40public:
42 [[nodiscard]] bool visible(std::size_t rank) const {
43 if (_isolated.has_value()) {
44 return *_isolated == rank;
45 }
46 return !_hidden.contains(rank);
47 }
48
50 void setVisible(std::size_t rank, bool visible) {
51 if (visible) {
52 _hidden.erase(rank);
53 } else {
54 _hidden.insert(rank);
55 }
56 }
57
59 void isolate(std::size_t rank) {
60 _isolated = rank;
61 }
62
64 void showAll() {
65 _isolated.reset();
66 _hidden.clear();
67 }
68
70 [[nodiscard]] std::optional<std::size_t> isolatedRank() const noexcept {
71 return _isolated;
72 }
73
74private:
76 std::optional<std::size_t> _isolated;
79 std::set<std::size_t> _hidden;
80};
81
82} // namespace hmi
Jeu de visibilités des plans picturaux d'un niveau, adressé par rang.
Definition PlaneVisibility.h:39
bool visible(std::size_t rank) const
Definition PlaneVisibility.h:42
std::optional< std::size_t > isolatedRank() const noexcept
Definition PlaneVisibility.h:70
std::optional< std::size_t > _isolated
Rang du plan isolé, s'il y en a un — prioritaire sur _hidden.
Definition PlaneVisibility.h:76
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é.
Definition PlaneVisibility.h:50
void isolate(std::size_t rank)
N'affiche plus que le plan de rang rank. Un second appel change le plan isolé.
Definition PlaneVisibility.h:59
void showAll()
Réaffiche tout : sort de l'isolement et lève les masquages individuels.
Definition PlaneVisibility.h:64
std::set< std::size_t > _hidden
Rangs masqués individuellement.
Definition PlaneVisibility.h:79
Definition AudioEngine.cpp:15