diff --git a/LEGO1/lego/legoomni/src/audio/mxbackgroundaudiomanager.cpp b/LEGO1/lego/legoomni/src/audio/mxbackgroundaudiomanager.cpp index af7b904b..e8cd984d 100644 --- a/LEGO1/lego/legoomni/src/audio/mxbackgroundaudiomanager.cpp +++ b/LEGO1/lego/legoomni/src/audio/mxbackgroundaudiomanager.cpp @@ -230,6 +230,11 @@ void MxBackgroundAudioManager::StartAction(MxParam& p_param) m_action2.SetObjectId(m_pendingPresenter->GetAction()->GetObjectId()); m_targetVolume = ((MxDSSound*) (m_pendingPresenter->GetAction()))->GetVolume(); m_pendingPresenter->SetVolume(0); + + // Disabling the action here and starting it later once the actively presented music has been faded out. + // This was not necessary in retail because the streaming layer would implicitly not start another action + // before the previous one has ended (since it's all coming from JUKEBOX.SI), however since we now + // allow loading music from multiple SI files this would cause the new music to start immediately. m_pendingPresenter->GetAction()->SetFlags(m_pendingPresenter->GetAction()->GetFlags() & ~MxDSAction::c_enabled); } diff --git a/extensions/include/extensions/siloader.h b/extensions/include/extensions/siloader.h index 652c25ee..ab3e69bc 100644 --- a/extensions/include/extensions/siloader.h +++ b/extensions/include/extensions/siloader.h @@ -4,10 +4,14 @@ #include "legoworld.h" #include "mxatom.h" -#include #include #include +namespace si +{ +class Core; +} + namespace Extensions { class SiLoader { diff --git a/extensions/src/siloader.cpp b/extensions/src/siloader.cpp index f4be4a9d..aff434c4 100644 --- a/extensions/src/siloader.cpp +++ b/extensions/src/siloader.cpp @@ -5,6 +5,7 @@ #include "mxstreamer.h" #include +#include using namespace Extensions;