Monopoly — Portage moderne 0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
TradeOfferIconPlayback.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "DataBanks.hpp"
4#include "Display.hpp"
6#include "TradeUI.hpp"
7
8#include <array>
9#include <cstddef>
10#include <cstdint>
11#include <expected>
12#include <string>
13
14namespace monopoly::tradeui
15{
16 inline constexpr data::DataTag TradeChanceJailTag = 0x00DD;
17 inline constexpr data::DataTag TradeCommunityJailTag = 0x00DE;
18 inline constexpr data::DataTag TradeFutureTag = 0x1027;
19 inline constexpr data::DataTag TradeImmunityTag = 0x1053;
20 inline constexpr std::uint16_t TradeIconBasePriority = 274;
21 inline constexpr std::size_t TradeIconSlots = 4;
22
23 inline constexpr std::array<std::int32_t, TradeIconSlots> TradeChanceX{{66,666,266,466}};
24 inline constexpr std::array<std::int32_t, TradeIconSlots> TradeChanceY{{395,395,358,358}};
25 inline constexpr std::array<std::int32_t, TradeIconSlots> TradeCommunityX{{66,666,266,466}};
26 inline constexpr std::array<std::int32_t, TradeIconSlots> TradeCommunityY{{420,420,383,383}};
27 inline constexpr std::array<std::int32_t, TradeIconSlots> TradeFutureX{{104,704,304,504}};
28 inline constexpr std::array<std::int32_t, TradeIconSlots> TradeFutureY{{398,398,361,361}};
29 inline constexpr std::array<std::int32_t, TradeIconSlots> TradeImmunityX{{104,704,304,504}};
30 inline constexpr std::array<std::int32_t, TradeIconSlots> TradeImmunityY{{422,422,385,385}};
31
32 [[nodiscard]] constexpr data::DataId tradeJailIcon(std::size_t deck) noexcept
33 {
34 return deck < 2
38 }
39
40 [[nodiscard]] constexpr data::DataId tradeContractIcon(std::size_t kind) noexcept
41 {
42 data::DataTag tag{};
43 if (kind == 0) tag = TradeFutureTag;
44 else if (kind == 1) tag = TradeImmunityTag;
45 return tag != 0
48 }
49
51 {
52 public:
53 [[nodiscard]] std::expected<void, std::string> sync(
54 const State& state,
57
58 void reset() noexcept { current_.fill(false); }
59
60 private:
61 static constexpr std::size_t ObjectCount = 16;
62 std::array<bool, ObjectCount> current_{};
63 };
64}
unsigned state
unsigned index
Kind kind
std::expected< void, std::string > sync(const State &state, display::Screen2D desiredView, engine::SequencePlayback &playback)
std::uint32_t DataId
Definition DataBanks.hpp:10
constexpr DataId EmptyDataId
Definition DataBanks.hpp:13
std::uint16_t DataTag
Definition DataBanks.hpp:11
constexpr DataId packDataId(std::uint16_t group, DataTag tag) noexcept
Definition DataBanks.hpp:39
constexpr std::array< std::int32_t, TradeIconSlots > TradeFutureX
constexpr data::DataTag TradeChanceJailTag
constexpr std::array< std::int32_t, TradeIconSlots > TradeChanceY
constexpr data::DataTag TradeFutureTag
constexpr std::array< std::int32_t, TradeIconSlots > TradeCommunityX
constexpr std::array< std::int32_t, TradeIconSlots > TradeFutureY
constexpr data::DataId tradeJailIcon(std::size_t deck) noexcept
constexpr std::uint16_t TradeIconBasePriority
constexpr std::array< std::int32_t, TradeIconSlots > TradeImmunityY
constexpr data::DataId tradeContractIcon(std::size_t kind) noexcept
constexpr std::size_t TradeIconSlots
constexpr std::array< std::int32_t, TradeIconSlots > TradeImmunityX
constexpr std::array< std::int32_t, TradeIconSlots > TradeCommunityY
constexpr std::array< std::int32_t, TradeIconSlots > TradeChanceX
constexpr data::DataTag TradeImmunityTag
constexpr data::DataTag TradeCommunityJailTag