From ee2e134bbf2327389973aa6f035ad227cbd4f389 Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Fri, 30 Jun 2023 12:02:00 +1000 Subject: [PATCH] Title music fades in/out --- source/frontend/StarTitleScreen.cpp | 7 ++++++- source/frontend/StarTitleScreen.hpp | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/source/frontend/StarTitleScreen.cpp b/source/frontend/StarTitleScreen.cpp index e7fa573..842efc9 100644 --- a/source/frontend/StarTitleScreen.cpp +++ b/source/frontend/StarTitleScreen.cpp @@ -126,7 +126,9 @@ void TitleScreen::update() { if (!finishedState()) { if (auto audioSample = m_musicTrackManager.updateAmbient(m_musicTrack, m_skyBackdrop->isDayTime())) { + m_currentMusicTrack = audioSample; audioSample->setMixerGroup(MixerGroup::Music); + audioSample->setLoops(0); m_mixer->play(audioSample); } } @@ -153,6 +155,8 @@ bool TitleScreen::finishedState() const { void TitleScreen::resetState() { switchState(TitleState::Main); + if (m_currentMusicTrack) + m_currentMusicTrack->setVolume(1.0f, 4.0f); } void TitleScreen::goToMultiPlayerSelectCharacter(bool skipConnection) { @@ -161,7 +165,8 @@ void TitleScreen::goToMultiPlayerSelectCharacter(bool skipConnection) { } void TitleScreen::stopMusic() { - m_musicTrackManager.cancelAll(); + if (m_currentMusicTrack) + m_currentMusicTrack->stop(8.0f); } PlayerPtr TitleScreen::currentlySelectedPlayer() const { diff --git a/source/frontend/StarTitleScreen.hpp b/source/frontend/StarTitleScreen.hpp index baad200..5ce000d 100644 --- a/source/frontend/StarTitleScreen.hpp +++ b/source/frontend/StarTitleScreen.hpp @@ -124,6 +124,7 @@ private: SkyPtr m_skyBackdrop; AmbientNoisesDescriptionPtr m_musicTrack; + AudioInstancePtr m_currentMusicTrack; AmbientManager m_musicTrackManager; };