Monopoly — Portage moderne 0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
PlayerSetupSound.cpp
Go to the documentation of this file.
2
4{
5 namespace
6 {
7 void append(Update& update, udsound::PennybagsVoice voice,
8 udsound::TokenVoiceClipPolicy policy) noexcept
9 {
10 if (update.count >= update.requests.size()) return;
11 update.requests[update.count++] = VoiceRequest{voice, policy};
12 }
13
15 std::optional<udsound::PennybagsVoice> voice) noexcept
16 {
17 state.desired = voice;
18 }
19 }
20
21 void resetPlayback(State& state) noexcept
22 {
23 state.playing.reset();
24 state.desired.reset();
26 }
27
29 bool aiPlayer, std::uint8_t numberOfPlayers) noexcept
30 {
31 Update update{};
33 switch (phase)
34 {
36 setDesired(state, std::nullopt);
37 break;
38
41 if (!state.welcomeMessagePlayed)
42 {
43 state.welcomeMessagePlayed = true;
48 }
53 break;
54
57 break;
60 break;
61
66 break;
67
69 if (numberOfPlayers < 2)
72 else if (numberOfPlayers < rules::MaxPlayers)
75 else
78 break;
79
81 setDesired(state, std::nullopt);
82 break;
85 break;
86
89 break;
90
93 break;
94
97 setDesired(state, std::nullopt);
98 break;
99 }
100
101 if (state.playing != state.desired)
102 {
103 state.playing = state.desired;
104 if (state.playing)
105 append(update, *state.playing, state.policy);
106 }
107 return update;
108 }
109}
unsigned state
unsigned index
constexpr PlayerNumber MaxPlayers
Definition RuleTypes.hpp:14
Update startPhase(State &state, display::PlayerSetupPhase phase, bool aiPlayer, std::uint8_t numberOfPlayers) noexcept
void resetPlayback(State &state) noexcept