Monopoly — Portage moderne 0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
IBarCardPlayback.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "DataBanks.hpp"
4#include "Display.hpp"
6
7#include <cstdint>
8#include <expected>
9#include <optional>
10#include <string>
11
12namespace monopoly::ibar
13{
14 inline constexpr std::uint16_t CardPriority = 1005;
15 inline constexpr std::int32_t CardX = 0;
16 inline constexpr std::int32_t CardYMain = 0;
17 inline constexpr std::int32_t CardYNotMain = 136;
18 inline constexpr std::uint8_t CardEndingStop = 1;
19 inline constexpr std::uint8_t CardEndingStayAtEnd = 2;
20 inline constexpr std::uint8_t CardsPerDeck = 16;
21
22 inline constexpr data::DataTag ChanceDeckOutBaseTag = 0x000F;
23 inline constexpr data::DataTag CommunityDeckOutBaseTag = 0x0036;
24 inline constexpr data::DataTag CommunityFaceBaseTag = 0x0008;
25 inline constexpr data::DataTag ChanceFaceBaseTag = 0x0018;
26 inline constexpr data::DataTag ChanceIdleBaseTag = 0x0028;
27 inline constexpr data::DataTag ChanceCardInBaseTag = 0x0038;
28 inline constexpr data::DataTag ChanceCardOutBaseTag = 0x0048;
29 inline constexpr data::DataTag CommunityIdleBaseTag = 0x0059;
30 inline constexpr data::DataTag CommunityCardInBaseTag = 0x0069;
31 inline constexpr data::DataTag CommunityCardOutBaseTag = 0x0079;
32
33 enum class CardVisualState : std::uint8_t
34 {
35 Off,
36 DeckOut,
37 CardIn,
38 FaceIn,
39 Idle,
40 Out
41 };
42
45 std::uint8_t cardIndex,
46 pieces::BoardCameraView camera) noexcept;
47
49 {
50 public:
51 [[nodiscard]] std::expected<void, std::string> sync(
52 std::optional<std::uint8_t> desiredCard,
53 bool iBarVisible,
57 void reset() noexcept;
58
60 {
61 return visualState_;
62 }
64 {
65 return currentSequence_;
66 }
67 [[nodiscard]] std::optional<std::uint8_t> lastCard() const noexcept
68 {
69 return lastCard_;
70 }
71
72 private:
74 data::DataId currentSequence_{data::EmptyDataId};
75 std::optional<std::uint8_t> lastCard_;
76 };
77}
unsigned index
std::expected< void, std::string > sync(std::optional< std::uint8_t > desiredCard, bool iBarVisible, display::Screen2D view, pieces::BoardCameraView camera, engine::SequencePlayback &playback)
std::optional< std::uint8_t > lastCard() const noexcept
data::DataId currentSequence() const noexcept
CardVisualState visualState() const noexcept
std::uint32_t DataId
Definition DataBanks.hpp:10
constexpr DataId EmptyDataId
Definition DataBanks.hpp:13
std::uint16_t DataTag
Definition DataBanks.hpp:11
constexpr data::DataTag ChanceCardInBaseTag
constexpr std::uint8_t CardsPerDeck
constexpr std::int32_t CardYNotMain
constexpr data::DataTag CommunityCardOutBaseTag
constexpr data::DataTag ChanceFaceBaseTag
constexpr std::uint16_t CardPriority
constexpr data::DataTag CommunityDeckOutBaseTag
constexpr data::DataTag ChanceIdleBaseTag
constexpr std::uint8_t CardEndingStayAtEnd
constexpr data::DataTag ChanceDeckOutBaseTag
constexpr std::int32_t CardYMain
constexpr data::DataTag CommunityIdleBaseTag
constexpr data::DataTag CommunityFaceBaseTag
constexpr std::uint8_t CardEndingStop
State & state()
Definition IBar.cpp:1285
constexpr std::int32_t CardX
constexpr data::DataTag CommunityCardInBaseTag
constexpr data::DataTag ChanceCardOutBaseTag
data::DataId cardSequence(CardVisualState state, std::uint8_t cardIndex, pieces::BoardCameraView camera) noexcept