22 using Specs = std::array<BackdropSpec, 11>;
36 return std::unexpected(
"Trade colour rail player colour is out of range");
83 if (
gameState.options.futureRentTradingAllowed ||
84 gameState.options.immunitiesTradingAllowed)
87 if (
gameState.options.futureRentTradingAllowed)
90 if (
gameState.options.immunitiesTradingAllowed)
99 return static_cast<std::size_t
>(std::count_if(
100 current_.begin(), current_.end(),
101 [](
data::DataId id) { return id != data::EmptyDataId; }));
113 std::array<std::shared_ptr<const sequence::SequenceProgram>, 11>
programs{};
122 return std::unexpected(
loaded.error().detail);
126 std::vector<sequence::SequenceCommand> commands;
154 return std::unexpected(
155 "sequence command queue cannot fit Trade backdrop transition");
157 for (
auto& command : commands)
159 const auto queued = std::visit(
166 return std::unexpected(
"validated Trade backdrop command rejected");
std::atomic< float > right
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, display::Screen2D desiredView, engine::SequencePlayback &playback)
std::size_t activeCount() const noexcept
constexpr DataId EmptyDataId
std::expected< data::DataId, std::string > desiredBackdrop(const rules::GameState &state, bool visible, rules::PlayerNumber activePlayer)
constexpr PlayerNumber MaxPlayers
MoveSequenceCommand makeMoveXY(data::DataId dataId, std::uint16_t priority, std::int32_t x, std::int32_t y) noexcept
constexpr data::DataTag TradeImmunityButtonTag
constexpr std::uint16_t TradeDisplayBoardPriority
constexpr data::DataTag TradeDisplayBoardTag
constexpr data::DataTag TradeTurntableTag
constexpr data::DataTag TradeCreateButtonTag
constexpr std::uint16_t TradeTurntablePriority
constexpr std::uint16_t TradeArrowPriority
constexpr std::uint16_t TradeDisplayPanelPriority
constexpr std::uint16_t TradeCreateButtonPriority
constexpr std::uint8_t TradeLoopToBeginning
constexpr data::DataTag TradeDisplayRightTag
constexpr std::uint16_t TradeColourRailPriority
constexpr std::uint16_t TradeFutureButtonPriority
constexpr data::DataTag TradeBackgroundTag
constexpr data::DataTag TradeLeftColourBaseTag
constexpr data::DataTag TradeArrowTag
constexpr data::DataTag TradeFutureButtonTag
constexpr data::DataTag TradeDisplayLeftTag
constexpr data::DataTag TradeRightColourBaseTag
constexpr std::uint16_t TradeImmunityButtonPriority
constexpr std::uint16_t TradeBackdropPriority
constexpr data::DataId tradeBackdropSequence(data::DataTag tag) noexcept