This commit is contained in:
Christian Semmler 2025-08-12 16:54:31 -07:00
parent 229fa1b58f
commit b49280c1bb
2 changed files with 18 additions and 2 deletions

View File

@ -120,6 +120,11 @@ void MxBackgroundAudioManager::FadeInPendingPresenter()
if (m_activePresenter == NULL) {
if (m_pendingPresenter) {
if (!m_pendingPresenter->IsEnabled()) {
m_pendingPresenter->Enable(TRUE);
m_pendingPresenter->SetTickleState(MxPresenter::e_streaming);
}
if (m_volumeSuppressionAmount != 0) {
compare = 30;
}
@ -221,6 +226,7 @@ void MxBackgroundAudioManager::StartAction(MxParam& p_param)
m_action2.SetObjectId(m_pendingPresenter->GetAction()->GetObjectId());
m_targetVolume = ((MxDSSound*) (m_pendingPresenter->GetAction()))->GetVolume();
m_pendingPresenter->SetVolume(0);
m_pendingPresenter->GetAction()->SetFlags(m_pendingPresenter->GetAction()->GetFlags() & ~MxDSAction::c_enabled);
}
// FUNCTION: LEGO1 0x1007f200

View File

@ -57,6 +57,8 @@ std::optional<MxResult> SiLoader::HandleStart(MxDSAction& p_action)
action.SetAtomId(key.second.first);
action.SetObjectId(key.second.second);
action.SetUnknown24(p_action.GetUnknown24());
action.SetNotificationObject(p_action.GetNotificationObject());
action.SetOrigin(p_action.GetOrigin());
Start(&action);
}
}
@ -67,6 +69,8 @@ std::optional<MxResult> SiLoader::HandleStart(MxDSAction& p_action)
action.SetAtomId(key.second.first);
action.SetObjectId(key.second.second);
action.SetUnknown24(p_action.GetUnknown24());
action.SetNotificationObject(p_action.GetNotificationObject());
action.SetOrigin(p_action.GetOrigin());
return Start(&action);
}
}
@ -101,6 +105,8 @@ std::optional<MxBool> SiLoader::HandleDelete(MxDSAction& p_action)
action.SetAtomId(key.second.first);
action.SetObjectId(key.second.second);
action.SetUnknown24(p_action.GetUnknown24());
action.SetNotificationObject(p_action.GetNotificationObject());
action.SetOrigin(p_action.GetOrigin());
DeleteObject(action);
}
}
@ -111,6 +117,8 @@ std::optional<MxBool> SiLoader::HandleDelete(MxDSAction& p_action)
action.SetAtomId(key.second.first);
action.SetObjectId(key.second.second);
action.SetUnknown24(p_action.GetUnknown24());
action.SetNotificationObject(p_action.GetNotificationObject());
action.SetOrigin(p_action.GetOrigin());
DeleteObject(action);
return TRUE;
}
@ -147,6 +155,8 @@ bool SiLoader::LoadFile(const char* p_file)
void SiLoader::ParseDirectives(const MxAtomId& p_atom, si::Core* p_core, MxAtomId p_parentReplacedAtom)
{
for (si::Core* child : p_core->GetChildren()) {
MxAtomId replacedAtom = p_parentReplacedAtom;
if (si::Object* object = dynamic_cast<si::Object*>(child)) {
if (object->type() != si::MxOb::Null) {
std::string extra(object->extra_.data(), object->extra_.size());
@ -185,13 +195,13 @@ void SiLoader::ParseDirectives(const MxAtomId& p_atom, si::Core* p_core, MxAtomI
StreamObject{MxAtomId{atom, e_lowerCase2}, id},
StreamObject{p_atom, object->id_}
);
p_parentReplacedAtom = replace.back().first.first;
replacedAtom = replace.back().first.first;
}
}
}
}
}
ParseDirectives(p_atom, child, p_parentReplacedAtom);
ParseDirectives(p_atom, child, replacedAtom);
}
}