73 {
return !pendingTalkingVoice_; }
77 {
return currentMusic_; }
80 struct PendingTalkingVoice
82 std::optional<std::uint8_t>
token;
86 [[
nodiscard]]
bool anyTalking(
const audio::Runtime& audio)
const noexcept;
87 void stopTalking(audio::Runtime& audio)
noexcept;
88 void watchTalking(
const audio::Runtime& audio)
noexcept;
89 [[
nodiscard]] std::expected<void, std::string> startTalkingVoice(
90 audio::Runtime& audio,
const PendingTalkingVoice& voice);
91 [[
nodiscard]] std::expected<TokenVoicePlayResult, std::string> playTalkingVoice(
92 audio::Runtime& audio, PendingTalkingVoice voice,
95 std::optional<data::DataId> currentMusic_;
96 std::uint8_t creditsMusicStatus_{};
97 std::optional<PendingTalkingVoice> pendingTalkingVoice_;
98 std::array<bool, TokenVoiceTokenCount> watchedTokenVoices_{};
99 bool watchedPennybags_{};
std::expected< void, std::string > saveFailure(audio::Runtime &audio)
std::expected< void, std::string > click(audio::Runtime &audio)
std::expected< void, std::string > syncCash(audio::Runtime &audio, ibar::ScoreCashChange change)
std::expected< void, std::string > syncMusic(audio::Runtime &audio, bool gameInProgress, bool musicOn, std::uint8_t tuneIndex, bool creditsActive=false)
std::expected< void, std::string > cashDown(audio::Runtime &audio)
void watchTokenVoice(audio::Runtime &audio, std::uint8_t token) noexcept
std::expected< void, std::string > build(audio::Runtime &audio)
void watchPennybags(audio::Runtime &audio) noexcept
bool talkingQueueIdle(const audio::Runtime &audio) const noexcept
std::expected< void, std::string > siren(audio::Runtime &audio, std::uint8_t variant)
std::expected< bool, std::string > syncTokenVoices(audio::Runtime &audio)
std::expected< TokenVoicePlayResult, std::string > pennybagsSpecific(audio::Runtime &audio, bool hostCommentsOn, data::DataId wave, TokenVoiceClipPolicy policy)
std::optional< data::DataId > currentMusic() const noexcept
std::expected< void, std::string > unbuild(audio::Runtime &audio)
bool postLockVoiceSlotEmpty() const noexcept
std::expected< TokenVoicePlayResult, std::string > pennybagsVoice(audio::Runtime &audio, bool hostCommentsOn, PennybagsVoice voice, TokenVoiceClipPolicy policy, std::uint32_t randomValue)
void reset(audio::Runtime *audio=nullptr) noexcept
std::expected< TokenVoicePlayResult, std::string > tokenVoice(audio::Runtime &audio, bool voicesOn, std::uint8_t token, TokenVoiceLine line, TokenVoiceClipPolicy policy, std::uint32_t randomValue)
bool tokenVoiceActive(const audio::Runtime &audio, std::uint8_t token) const noexcept
std::expected< void, std::string > cashUp(audio::Runtime &audio)
std::expected< void, std::string > warning(audio::Runtime &audio)
constexpr data::DataTag SaveFailureTag
constexpr data::DataTag BuildTag
constexpr data::DataTag SirenBaseTag
constexpr std::uint8_t MusicTuneCount
constexpr data::DataTag UnbuildTag
constexpr std::uint8_t SirenCount
constexpr data::DataTag CreditsTag
constexpr data::DataTag WarningTag
constexpr data::DataTag MusicBaseTag
constexpr data::DataTag CashUpTag
constexpr data::DataTag CashDownTag
constexpr data::DataTag ClickTag