Monopoly — Portage moderne 0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
PieceBuildingDisplay.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "PiecePlacement.hpp"
4#include "RuleTypes.hpp"
6
7#include <array>
8#include <cstdint>
9#include <expected>
10#include <string>
11
12namespace monopoly::pieces
13{
14 inline constexpr data::DataTag HotelMeshTag = 0x0004;
15 inline constexpr data::DataTag HouseMeshTag = 0x0005;
16 inline constexpr std::uint16_t BoardHousingPriority = 55;
17 inline constexpr std::uint8_t HouseSlotCount = 4;
18 inline constexpr float BuildingDisplayScale = 0.10F;
19
21 {
22 std::uint16_t started{};
23 std::uint16_t stopped{};
24 };
25
27 {
28 public:
29 [[nodiscard]] std::expected<PieceBuildingDisplayUpdate, std::string> sync(
30 const rules::GameState& state, bool boardVisible,
32
33 void reset() noexcept;
34 [[nodiscard]] bool hotelShown(std::uint8_t square) const noexcept;
35 [[nodiscard]] bool houseShown(
36 std::uint8_t square, std::uint8_t slot) const noexcept;
37
38 private:
39 using HouseFlags = std::array<bool, HouseSlotCount>;
40 std::array<bool, rules::SquareCount> hotels_{};
41 std::array<HouseFlags, rules::SquareCount> houses_{};
42 };
43}
PlayerNumber slot
unsigned state
unsigned index
bool hotelShown(std::uint8_t square) const noexcept
std::expected< PieceBuildingDisplayUpdate, std::string > sync(const rules::GameState &state, bool boardVisible, engine::SequencePlayback &playback)
bool houseShown(std::uint8_t square, std::uint8_t slot) const noexcept
std::uint16_t DataTag
Definition DataBanks.hpp:11
constexpr std::uint8_t HouseSlotCount
constexpr data::DataTag HotelMeshTag
constexpr std::uint16_t BoardHousingPriority
constexpr float BuildingDisplayScale
constexpr data::DataTag HouseMeshTag