Monopoly — Portage moderne 0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
AuctionPlayback.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "AuctionUI.hpp"
4#include "DataBanks.hpp"
5#include "RuleTypes.hpp"
7
8#include <array>
9#include <cstddef>
10#include <cstdint>
11#include <expected>
12#include <string>
13
14namespace monopoly::auctionui
15{
16 inline constexpr std::uint16_t AuctionBasePriority = 315;
17 inline constexpr std::uint16_t AuctionPropertyPriority = 330;
18 inline constexpr std::uint16_t AuctionBottomBarPriority = AuctionBasePriority - 1;
19
20 inline constexpr data::DataTag AuctionBottomBarTag = 0x036F;
21 inline constexpr data::DataTag AuctionBigBackdropBaseTag = 0x0370;
22 inline constexpr data::DataTag AuctionSmallBackdropBaseTag = 0x0376;
23 inline constexpr data::DataTag AuctionBillTrayTag = 0x0383;
24 inline constexpr data::DataTag AuctionBidPlateTag = 0x0384;
25 inline constexpr data::DataTag AuctionDeedBaseTag = 0x0CD0;
26 inline constexpr data::DataTag AuctionHouseDeedTag = 0x090C;
27 inline constexpr data::DataTag AuctionHotelDeedTag = 0x090D;
28
29 inline constexpr std::int32_t AuctionBottomBarX = 0;
30 inline constexpr std::int32_t AuctionBottomBarY = 450;
31 inline constexpr std::int32_t AuctionPropertyX = 20;
32 inline constexpr std::int32_t AuctionPropertyY = 20;
33 inline constexpr std::int32_t AuctionBidTextWidth = 110;
34 inline constexpr std::int32_t AuctionBidTextHeight = 27;
35 inline constexpr std::int32_t AuctionBidTextY =
37 inline constexpr std::int32_t AuctionTokenY = BackdropY + 50;
38 inline constexpr std::size_t AuctionPlaybackObjectCount =
39 2 + static_cast<std::size_t>(rules::MaxPlayers) * 4;
40
45
46 [[nodiscard]] std::expected<data::DataId, std::string> auctionPropertyDataId(
47 int propertyForSale,
48 int city);
49
50 [[nodiscard]] std::expected<data::DataId, std::string> auctionPlayerBackdropDataId(
51 int backdropWidth,
52 std::uint8_t colour);
53
54 [[nodiscard]] std::expected<data::DataId, std::string> auctionTokenDataId(
55 std::uint8_t token);
56
58 {
59 public:
60 [[nodiscard]] std::expected<void, std::string> sync(
61 const State& state,
64 int city,
66
67 void reset() noexcept;
68
70 {
72 std::uint16_t priority{};
73 std::int32_t x{};
74 std::int32_t y{};
75
76 bool operator==(const ObjectState&) const = default;
77 };
78
79 private:
80 std::array<ObjectState, AuctionPlaybackObjectCount> current_{};
81 };
82}
unsigned state
unsigned index
int token
int colour
std::expected< void, std::string > sync(const State &state, const rules::GameState &gameState, display::Screen2D desiredView, int city, engine::SequencePlayback &playback)
constexpr int BillTraysHeight
Definition AuctionUI.hpp:26
constexpr data::DataTag AuctionHouseDeedTag
std::expected< data::DataId, std::string > auctionPlayerBackdropDataId(int backdropWidth, std::uint8_t colour)
constexpr data::DataTag AuctionHotelDeedTag
constexpr data::DataTag AuctionBottomBarTag
constexpr std::uint16_t AuctionPropertyPriority
constexpr data::DataTag AuctionBidPlateTag
constexpr std::uint16_t AuctionBottomBarPriority
constexpr std::int32_t AuctionBottomBarY
constexpr std::uint16_t AuctionBasePriority
constexpr std::int32_t AuctionPropertyX
std::expected< data::DataId, std::string > auctionPropertyDataId(int propertyForSale, int city)
constexpr data::DataTag AuctionDeedBaseTag
constexpr int BackdropY
Definition AuctionUI.hpp:27
constexpr std::size_t AuctionPlaybackObjectCount
constexpr data::DataTag AuctionBillTrayTag
constexpr std::int32_t AuctionBidTextWidth
constexpr data::DataTag AuctionBigBackdropBaseTag
constexpr std::int32_t AuctionTokenY
constexpr data::DataId auctionBottomBarDataId() noexcept
constexpr std::int32_t AuctionBidTextHeight
constexpr std::int32_t AuctionPropertyY
constexpr data::DataTag AuctionSmallBackdropBaseTag
std::expected< data::DataId, std::string > auctionTokenDataId(std::uint8_t token)
constexpr std::int32_t AuctionBidTextY
constexpr std::int32_t AuctionBottomBarX
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 PlayerNumber MaxPlayers
Definition RuleTypes.hpp:14
bool operator==(const ObjectState &) const =default