18 return info && info->sequenceClock >= info->endTime;
92 return std::unexpected(
"IBar card index is outside legacy 0..31 range");
140 return std::unexpected(
"IBar card transition has no remembered card");
145 return std::unexpected(
"IBar card transition resolved no sequence");
147 playback.resources(), desiredSequence);
149 return std::unexpected(
loaded.error().detail);
153 std::vector<sequence::SequenceCommand> commands;
169 return std::unexpected(
170 "sequence command queue cannot fit IBar card transition");
172 for (
auto& command : commands)
174 const auto queued = std::visit(
181 return std::unexpected(
182 "validated IBar card command rejected");
187 currentSequence_ = desiredSequence;
std::expected< void, std::string > sync(std::optional< std::uint8_t > desiredCard, bool iBarVisible, display::Screen2D view, pieces::BoardCameraView camera, engine::SequencePlayback &playback)
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={})
constexpr DataId EmptyDataId
constexpr DataId packDataId(std::uint16_t group, DataTag tag) noexcept
constexpr data::DataTag ChanceCardInBaseTag
constexpr std::uint8_t CardsPerDeck
constexpr std::int32_t CardYNotMain
constexpr data::DataTag CommunityCardOutBaseTag
constexpr data::DataTag ChanceFaceBaseTag
constexpr std::uint16_t CardPriority
constexpr data::DataTag CommunityDeckOutBaseTag
constexpr data::DataTag ChanceIdleBaseTag
constexpr std::uint8_t CardEndingStayAtEnd
constexpr data::DataTag ChanceDeckOutBaseTag
constexpr std::int32_t CardYMain
constexpr data::DataTag CommunityIdleBaseTag
constexpr data::DataTag CommunityFaceBaseTag
constexpr std::uint8_t CardEndingStop
constexpr std::int32_t CardX
constexpr data::DataTag CommunityCardInBaseTag
constexpr data::DataTag ChanceCardOutBaseTag
data::DataId cardSequence(CardVisualState state, std::uint8_t cardIndex, pieces::BoardCameraView camera) noexcept
MoveSequenceCommand makeMoveXY(data::DataId dataId, std::uint16_t priority, std::int32_t x, std::int32_t y) noexcept
std::optional< bool > dropFrames