21 using Specs = std::array<IconSpec, 16>;
31 const auto priority =
static_cast<std::uint16_t
>(
60 std::array<std::shared_ptr<const sequence::SequenceProgram>, 16>
programs{};
69 return std::unexpected(
loaded.error().detail);
73 std::vector<sequence::SequenceCommand> commands;
89 spec.id, spec.priority, spec.x, spec.y));
96 return std::unexpected(
97 "sequence command queue cannot fit Trade offer-icon transition");
100 for (
auto& command : commands)
102 const auto queued = std::visit(
109 return std::unexpected(
"validated Trade offer-icon 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, display::Screen2D desiredView, engine::SequencePlayback &playback)
constexpr DataId EmptyDataId
MoveSequenceCommand makeMoveXY(data::DataId dataId, std::uint16_t priority, std::int32_t x, std::int32_t y) noexcept
constexpr std::array< std::int32_t, TradeIconSlots > TradeFutureX
constexpr std::array< std::int32_t, TradeIconSlots > TradeChanceY
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