From 5c8249f3346f552ee3e65043e1d6e75396d09fdd Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Wed, 8 May 2024 10:28:32 -0400 Subject: [PATCH] Implement/match LegoAnimationManager::FUN_10061530 (#889) --- .../legoomni/include/legoanimationmanager.h | 3 +++ .../src/common/legoanimationmanager.cpp | 26 +++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/LEGO1/lego/legoomni/include/legoanimationmanager.h b/LEGO1/lego/legoomni/include/legoanimationmanager.h index 04263461..75317d89 100644 --- a/LEGO1/lego/legoomni/include/legoanimationmanager.h +++ b/LEGO1/lego/legoomni/include/legoanimationmanager.h @@ -186,4 +186,7 @@ class LegoAnimationManager : public MxCore { UnknownMx4DPointFloat m_unk0x4cc; // 0x4cc }; +// TEMPLATE: LEGO1 0x10061750 +// MxListCursor::MxListCursor + #endif // LEGOANIMATIONMANAGER_H diff --git a/LEGO1/lego/legoomni/src/common/legoanimationmanager.cpp b/LEGO1/lego/legoomni/src/common/legoanimationmanager.cpp index 8bef9e6b..fa499d4c 100644 --- a/LEGO1/lego/legoomni/src/common/legoanimationmanager.cpp +++ b/LEGO1/lego/legoomni/src/common/legoanimationmanager.cpp @@ -993,10 +993,32 @@ void LegoAnimationManager::FUN_10061010(MxBool p_und) m_unk0x404 = Timer()->GetTime(); } -// STUB: LEGO1 0x10061530 +// FUNCTION: LEGO1 0x10061530 void LegoAnimationManager::FUN_10061530() { - // TODO + if (m_tranInfoList2 != NULL) { + LegoTranInfoListCursor cursor(m_tranInfoList2); + LegoTranInfo* tranInfo; + + while (cursor.Next(tranInfo)) { + LegoTranInfoListCursor cursor2(m_tranInfoList); + + if (cursor2.Find(tranInfo)) { + if (tranInfo->m_presenter != NULL) { + if (tranInfo->m_flags & LegoTranInfo::c_bit2) { + BackgroundAudioManager()->RaiseVolume(); + tranInfo->m_flags &= ~LegoTranInfo::c_bit2; + } + + tranInfo->m_presenter->FUN_1004b840(); + cursor.Detach(); + } + } + else { + cursor.Detach(); + } + } + } } // STUB: LEGO1 0x100617c0