23 [[
nodiscard]]
bool contains(
const DeedPlayback::Published& item,
24 int x,
int y)
noexcept
33 const int safeCity = std::max(city, 0);
54 if (!
grid)
return std::unexpected(
grid.error());
55 for (
const auto& item : *
grid)
57 if (!contains(item,
state.mouseX,
state.mouseY))
continue;
61 return std::unexpected(
"UDStats Deed floater square has no large deed");
73 std::shared_ptr<const sequence::SequenceProgram>
frameProgram;
74 std::shared_ptr<const sequence::SequenceProgram>
deedProgram;
80 return std::unexpected(
"UDStats Deed floater frame failed: " +
81 frame.error().detail);
86 return std::unexpected(
"UDStats Deed floater deed failed: " +
90 std::vector<sequence::SequenceCommand> commands;
111 return std::unexpected(
112 "sequence command queue cannot fit UDStats Deed floater transition");
114 for (
auto& command : commands)
116 const auto queued = std::visit(
120 }, std::move(command));
122 return std::unexpected(
"validated UDStats Deed floater command rejected");
static constexpr std::size_t Capacity
static std::expected< std::shared_ptr< const SequenceProgram >, RuntimeError > load(const data::DataSource &source, data::DataId id, std::size_t offset=0, DescriptionLimits limits={})
std::expected< void, std::string > sync(const State &state, const rules::GameState &gameState, const PlayerPlaybackInputs &inputs, int city, display::Screen2D desiredView, engine::SequencePlayback &playback, bool deedPopupVisible=false)
constexpr DataId EmptyDataId
constexpr DataId packDataId(std::uint16_t group, DataTag tag) noexcept
int propertyIndex(int square) noexcept
SequenceTransform moveXYTransform(std::int32_t x, std::int32_t y) noexcept
constexpr std::uint16_t DeedFloaterPriority
constexpr int DeedCardHitHeight
constexpr std::uint16_t DeedFloaterCardPriority
constexpr int DeedCardHitWidth
std::expected< std::vector< DeedPlayback::Published >, std::string > planDeedGrid(const State &state, const rules::GameState &gameState, const PlayerPlaybackInputs &inputs)
constexpr data::DataTag DeedFloaterCardBaseTag
constexpr int DeedFloaterCardsPerCity
constexpr data::DataTag DeedFloaterFrameTag