Monopoly — Portage moderne 0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
AuctionPennyBagsPlayback.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "AuctionUI.hpp"
4#include "DataBanks.hpp"
6#include "RuleTypes.hpp"
8
9#include <cstdint>
10#include <expected>
11#include <functional>
12#include <optional>
13#include <string>
14
15namespace monopoly::auctionui
16{
17 inline constexpr std::uint16_t AuctionPennyBagsPriority = 325;
18 inline constexpr std::uint8_t AuctionPennyBagsEndingStayAtEnd = 2;
19
20 inline constexpr data::DataTag PennyBagsAn01Tag = 0x000E;
21 inline constexpr data::DataTag PennyBagsAn02Tag = 0x000F;
22 inline constexpr data::DataTag PennyBagsAn03Tag = 0x0010;
23 inline constexpr data::DataTag PennyBagsAn04Tag = 0x0011;
24 inline constexpr data::DataTag PennyBagsAn05Tag = 0x0012;
25 inline constexpr data::DataTag PennyBagsAn06Tag = 0x0013;
26 inline constexpr data::DataTag PennyBagsAn07Tag = 0x0014;
27 inline constexpr data::DataTag PennyBagsAn08Tag = 0x0015;
28 inline constexpr data::DataTag PennyBagsAn09Tag = 0x0016;
29 inline constexpr data::DataTag PennyBagsAn10Tag = 0x0017;
30 inline constexpr data::DataTag PennyBagsAn11Tag = 0x0018;
31 inline constexpr data::DataTag PennyBagsAn12Tag = 0x0019;
32 inline constexpr data::DataTag PennyBagsAn13Tag = 0x001A;
33 inline constexpr data::DataTag PennyBagsAn14Tag = 0x001B;
34 inline constexpr data::DataTag PennyBagsAn15Tag = 0x001C;
35 inline constexpr data::DataTag PennyBagsAn16Tag = 0x001D;
36 inline constexpr data::DataTag PennyBagsAn17Tag = 0x001E;
37
44
46 {
47 std::optional<display::Screen2D> requestedBackdrop;
48 std::optional<PennyBagsSoundRequest> sound;
49 };
50
51 using AuctionReadySender = std::function<std::expected<void, std::string>(
52 std::uint32_t playerMask,
53 std::int64_t serial)>;
54
55 [[nodiscard]] std::expected<data::DataId, std::string> pennyBagsSequenceDataId(
57 std::uint8_t variant = 0);
58
60 {
61 public:
62 [[nodiscard]] std::expected<PennyBagsUpdate, std::string> sync(
63 State& state,
68
69 void reset() noexcept;
70
72 {
73 return currentSequence_;
74 }
76 {
77 return desiredSequence_;
78 }
80 {
81 return heardIntro_;
82 }
84 {
85 return animationReachedEnd_;
86 }
87
88 private:
89 data::DataId currentSequence_{data::EmptyDataId};
90 data::DataId desiredSequence_{data::EmptyDataId};
91 bool animationReachedEnd_{true};
92 std::optional<PennyBagsSoundRequest> currentSound_;
93 // UDAuct.cpp keeps this as a static process-lifetime flag; reset() must
94 // not make later auctions replay the first-auction explanation.
95 bool heardIntro_{};
96 };
97}
unsigned state
unsigned index
std::expected< PennyBagsUpdate, std::string > sync(State &state, const rules::GameState &gameState, display::Screen2D desiredView, engine::SequencePlayback &playback, const AuctionReadySender &readySender)
constexpr data::DataTag PennyBagsAn04Tag
constexpr data::DataTag PennyBagsAn14Tag
constexpr data::DataTag PennyBagsAn07Tag
constexpr data::DataTag PennyBagsAn12Tag
constexpr data::DataTag PennyBagsAn03Tag
std::expected< data::DataId, std::string > pennyBagsSequenceDataId(PennyBagsState state, std::uint8_t variant)
constexpr data::DataTag PennyBagsAn15Tag
constexpr data::DataTag PennyBagsAn16Tag
constexpr data::DataTag PennyBagsAn05Tag
constexpr data::DataTag PennyBagsAn09Tag
constexpr data::DataTag PennyBagsAn17Tag
constexpr data::DataTag PennyBagsAn13Tag
constexpr data::DataTag PennyBagsAn02Tag
constexpr std::uint16_t AuctionPennyBagsPriority
constexpr data::DataTag PennyBagsAn01Tag
constexpr data::DataTag PennyBagsAn06Tag
constexpr data::DataTag PennyBagsAn10Tag
constexpr data::DataTag PennyBagsAn08Tag
constexpr std::uint8_t AuctionPennyBagsEndingStayAtEnd
constexpr data::DataTag PennyBagsAn11Tag
std::function< std::expected< void, std::string >(std::uint32_t playerMask, std::int64_t serial)> AuctionReadySender
std::uint32_t DataId
Definition DataBanks.hpp:10
constexpr DataId EmptyDataId
Definition DataBanks.hpp:13
std::uint16_t DataTag
Definition DataBanks.hpp:11
friend bool operator==(const PennyBagsSoundRequest &, const PennyBagsSoundRequest &)=default
std::optional< PennyBagsSoundRequest > sound
std::optional< display::Screen2D > requestedBackdrop