Monopoly — Portage moderne 0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
OpeningMovies.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "SequenceRuntime.hpp"
4
5#include <cstdint>
6#include <span>
7#include <string>
8
9namespace monopoly::engine { class SequencePlayback; }
11
13{
14 enum class Phase { Idle, Trademark, Movies, Finished };
15
16 // Owner-thread opening sequence from Userifce.cpp. This owns only its own
17 // runtime nodes. Engine applies Black/PlayerSelect and pointer visibility;
18 // the video bridge owns actual decoding, audio, presentation and EOF.
20 {
21 public:
22 void begin(std::uint64_t tick, bool startedByLobby, bool use3DBoard,
24 void update(std::uint64_t tick,
25 std::span<const video::SequencePlaybackState> videoStates,
27 // Call for any key press or left/middle/right button down, never motion.
31
33 { return phase_ == Phase::Trademark || phase_ == Phase::Movies; }
34 [[nodiscard]] bool pointerVisible() const noexcept { return !active(); }
35 [[nodiscard]] Phase phase() const noexcept { return phase_; }
37 [[nodiscard]] std::string takeError() noexcept;
38 [[nodiscard]] sequence::SequenceNodeId movieNode() const noexcept { return movie_; }
39 [[nodiscard]] const std::string& movieFile() const noexcept { return movieFile_; }
40 private:
41 void stopOwnedNodes(engine::SequencePlayback& playback);
43 void startNextMovie(engine::SequencePlayback& playback);
44
45 Phase phase_{Phase::Idle};
46 std::uint64_t trademarkStarted_{};
47 sequence::SequenceNodeId trademark_{};
49 data::DataId movieDataId_{data::EmptyDataId};
50 std::size_t nextMovie_{};
51 bool use3DBoard_{};
52 bool selectionRequested_{};
53 std::string movieFile_;
54 std::string error_;
55 };
56}
unsigned index
std::string error
sequence::SequenceNodeId movieNode() const noexcept
const std::string & movieFile() const noexcept
void skip(engine::SequencePlayback &playback)
void begin(std::uint64_t tick, bool startedByLobby, bool use3DBoard, engine::SequencePlayback &playback)
void decoderFailed(std::string error, engine::SequencePlayback &playback)
void update(std::uint64_t tick, std::span< const video::SequencePlaybackState > videoStates, engine::SequencePlayback &playback)
void reset(engine::SequencePlayback &playback)
std::uint32_t DataId
Definition DataBanks.hpp:10
constexpr DataId EmptyDataId
Definition DataBanks.hpp:13
std::uint64_t SequenceNodeId