Monopoly — Portage moderne
0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
PieceIdleDisplay.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
PieceIdleTransition.hpp
"
4
#include "
SequencePlayback.hpp
"
5
6
#include <array>
7
#include <expected>
8
#include <optional>
9
#include <string>
10
11
namespace
monopoly::pieces
12
{
13
inline
constexpr
data::DataTag
PersistentIdleBaseTag
= 0x010D;
14
inline
constexpr
std::uint16_t
PersistentIdlePriority
= 224;
15
16
struct
PieceIdleDisplayContext
17
{
18
bool
boardVisible
{};
19
bool
animationsEnabled
{
true
};
20
std::optional<rules::PlayerNumber>
movingPlayer
;
21
std::optional<rules::PlayerNumber>
paddywagonPlayer
;
22
std::optional<rules::PlayerNumber>
idleMovingOut
;
23
std::optional<rules::PlayerNumber>
idleMovingIn
;
24
};
25
26
struct
PieceIdleDisplayUpdate
27
{
28
std::uint8_t
started
{};
29
std::uint8_t
moved
{};
30
std::uint8_t
stopped
{};
31
};
32
class
PieceIdleDisplay
final
33
{
34
public
:
35
[[
nodiscard
]] std::expected<PieceIdleDisplayUpdate, std::string>
sync
(
36
const
rules::GameState
&
state
,
37
const
PieceIdleState
&
idleState
,
38
const
PieceIdleDisplayContext
& context,
39
engine::SequencePlayback
&
playback
);
40
41
void
reset
()
noexcept
;
42
43
[[
nodiscard
]]
data::DataId
shownSequence
(
44
rules::PlayerNumber
player)
const
noexcept
;
45
46
private
:
47
[[
nodiscard
]] std::expected<std::optional<TokenPose>, std::string>
48
desiredPose(
const
rules::GameState
&
state
,
49
const
PieceIdleState
&
idleState
,
50
const
PieceIdleDisplayContext
& context,
51
rules::PlayerNumber
player)
const
;
52
53
std::array<data::DataId, rules::MaxPlayers> shown_{};
54
std::array<std::optional<TokenPose>,
rules::MaxPlayers
> poses_{};
55
};
56
}
state
unsigned state
Definition
ModernIBarSkin.cpp:25
index
unsigned index
Definition
ModernIBarSkin.cpp:25
PieceIdleTransition.hpp
SequencePlayback.hpp
monopoly::engine::SequencePlayback
Definition
SequencePlayback.hpp:20
monopoly::pieces::PieceIdleDisplay
Definition
PieceIdleDisplay.hpp:33
monopoly::pieces::PieceIdleDisplay::shownSequence
data::DataId shownSequence(rules::PlayerNumber player) const noexcept
Definition
PieceIdleDisplay.cpp:76
monopoly::pieces::PieceIdleDisplay::reset
void reset() noexcept
Definition
PieceIdleDisplay.cpp:83
monopoly::pieces::PieceIdleDisplay::sync
std::expected< PieceIdleDisplayUpdate, std::string > sync(const rules::GameState &state, const PieceIdleState &idleState, const PieceIdleDisplayContext &context, engine::SequencePlayback &playback)
Definition
PieceIdleDisplay.cpp:88
monopoly::pieces::PieceIdleState
Definition
PieceIdleTransition.hpp:42
monopoly::data::DataId
std::uint32_t DataId
Definition
DataBanks.hpp:10
monopoly::data::DataTag
std::uint16_t DataTag
Definition
DataBanks.hpp:11
monopoly::pieces
Definition
PieceBuildingDisplay.cpp:6
monopoly::pieces::PersistentIdlePriority
constexpr std::uint16_t PersistentIdlePriority
Definition
PieceIdleDisplay.hpp:14
monopoly::pieces::PersistentIdleBaseTag
constexpr data::DataTag PersistentIdleBaseTag
Definition
PieceIdleDisplay.hpp:13
monopoly::rules::PlayerNumber
std::uint8_t PlayerNumber
Definition
RuleTypes.hpp:12
monopoly::rules::MaxPlayers
constexpr PlayerNumber MaxPlayers
Definition
RuleTypes.hpp:14
monopoly::pieces::PieceIdleDisplayContext
Definition
PieceIdleDisplay.hpp:17
monopoly::pieces::PieceIdleDisplayContext::movingPlayer
std::optional< rules::PlayerNumber > movingPlayer
Definition
PieceIdleDisplay.hpp:20
monopoly::pieces::PieceIdleDisplayContext::idleMovingIn
std::optional< rules::PlayerNumber > idleMovingIn
Definition
PieceIdleDisplay.hpp:23
monopoly::pieces::PieceIdleDisplayContext::idleMovingOut
std::optional< rules::PlayerNumber > idleMovingOut
Definition
PieceIdleDisplay.hpp:22
monopoly::pieces::PieceIdleDisplayContext::paddywagonPlayer
std::optional< rules::PlayerNumber > paddywagonPlayer
Definition
PieceIdleDisplay.hpp:21
monopoly::pieces::PieceIdleDisplayContext::animationsEnabled
bool animationsEnabled
Definition
PieceIdleDisplay.hpp:19
monopoly::pieces::PieceIdleDisplayContext::boardVisible
bool boardVisible
Definition
PieceIdleDisplay.hpp:18
monopoly::pieces::PieceIdleDisplayUpdate
Definition
PieceIdleDisplay.hpp:27
monopoly::pieces::PieceIdleDisplayUpdate::moved
std::uint8_t moved
Definition
PieceIdleDisplay.hpp:29
monopoly::pieces::PieceIdleDisplayUpdate::started
std::uint8_t started
Definition
PieceIdleDisplay.hpp:28
monopoly::pieces::PieceIdleDisplayUpdate::stopped
std::uint8_t stopped
Definition
PieceIdleDisplay.hpp:30
monopoly::rules::GameState
Definition
RuleTypes.hpp:259
PieceIdleDisplay.hpp
Generated by
1.9.8