15 std::uint8_t square, std::uint8_t
slot)
noexcept
26 for (
auto& flags : houses_) flags.fill(
false);
31 return square < hotels_.size() && hotels_[square];
35 std::uint8_t square, std::uint8_t
slot)
const noexcept
38 houses_[square][
slot];
41 std::expected<PieceBuildingDisplayUpdate, std::string>
49 state.squares[square].houses ==
state.options.housesPerHotel;
55 for (
bool shown : houses_[square])
73 return std::unexpected(
"building display command queue capacity exceeded");
82 state.squares[square].houses ==
state.options.housesPerHotel;
85 if (hotels_[square])
continue;
87 if (!
pose)
return std::unexpected(
"hotel square is invalid");
88 const auto started =
playback.startRySTxz(
91 if (!started)
return std::unexpected(started.error());
92 hotels_[square] =
true;
96 if (!houses_[square][
slot])
continue;
99 if (!stopped)
return std::unexpected(stopped.error());
100 houses_[square][
slot] =
false;
110 if (!stopped)
return std::unexpected(stopped.error());
111 hotels_[square] =
false;
124 if (!stopped)
return std::unexpected(stopped.error());
125 houses_[square][
slot] =
false;
130 if (!
pose)
return std::unexpected(
"house square/slot is invalid");
131 const auto started =
playback.startRySTxz(
134 if (!started)
return std::unexpected(started.error());
135 houses_[square][
slot] =
true;
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
static constexpr std::size_t Capacity
constexpr DataId packDataId(std::uint16_t group, DataTag tag) noexcept
std::optional< BuildingPose > housePosition(std::uint8_t boardSquare, std::uint8_t house) noexcept
std::optional< BuildingPose > hotelPosition(std::uint8_t boardSquare) noexcept
constexpr std::uint8_t HouseSlotCount
constexpr data::DataTag HotelMeshTag
constexpr std::uint16_t BoardHousingPriority
constexpr float BuildingDisplayScale
constexpr data::DataTag HouseMeshTag
constexpr std::size_t SquareCount