mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-25 17:34:05 +00:00
BETA matches for SoundManagers (#1646)
--------- Co-authored-by: jonschz <jonschz@users.noreply.github.com>
This commit is contained in:
@@ -3,27 +3,32 @@
|
||||
DECOMP_SIZE_ASSERT(MxAudioManager, 0x30);
|
||||
|
||||
// GLOBAL: LEGO1 0x10102108
|
||||
// GLOBAL: BETA10 0x10203a60
|
||||
MxS32 MxAudioManager::g_count = 0;
|
||||
|
||||
// FUNCTION: LEGO1 0x100b8d00
|
||||
// FUNCTION: BETA10 0x10144e90
|
||||
MxAudioManager::MxAudioManager()
|
||||
{
|
||||
Init();
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100b8d90
|
||||
// STUB: BETA10 0x10144f07
|
||||
MxAudioManager::~MxAudioManager()
|
||||
{
|
||||
Destroy(TRUE);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100b8df0
|
||||
// FUNCTION: BETA10 0x10144f79
|
||||
void MxAudioManager::Init()
|
||||
{
|
||||
m_volume = 100;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100b8e00
|
||||
// FUNCTION: BETA10 0x10144f9c
|
||||
void MxAudioManager::Destroy(MxBool p_fromDestructor)
|
||||
{
|
||||
ENTER(m_criticalSection);
|
||||
@@ -32,17 +37,49 @@ void MxAudioManager::Destroy(MxBool p_fromDestructor)
|
||||
m_criticalSection.Leave();
|
||||
|
||||
if (!p_fromDestructor) {
|
||||
MxMediaManager::Destroy();
|
||||
MxPresentationManager::Destroy();
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef BETA10
|
||||
// FUNCTION: BETA10 0x10144ffe
|
||||
MxResult MxAudioManager::Create()
|
||||
{
|
||||
MxResult result = FAILURE;
|
||||
MxBool success = FALSE;
|
||||
|
||||
if (MxPresentationManager::Create() != SUCCESS) {
|
||||
goto exit;
|
||||
}
|
||||
|
||||
ENTER(m_criticalSection);
|
||||
success = TRUE;
|
||||
|
||||
if (!g_count++) {
|
||||
// This is correct. It was likely refactored later.
|
||||
}
|
||||
|
||||
exit:
|
||||
result = SUCCESS;
|
||||
|
||||
if (result) {
|
||||
Destroy();
|
||||
}
|
||||
|
||||
if (success) {
|
||||
m_criticalSection.Leave();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
#else
|
||||
// FUNCTION: LEGO1 0x100b8e40
|
||||
MxResult MxAudioManager::Create()
|
||||
{
|
||||
MxResult result = FAILURE;
|
||||
MxBool success = FALSE;
|
||||
|
||||
if (MxMediaManager::Create() == SUCCESS) {
|
||||
if (MxPresentationManager::Create() == SUCCESS) {
|
||||
ENTER(m_criticalSection);
|
||||
success = TRUE;
|
||||
result = SUCCESS;
|
||||
@@ -59,14 +96,17 @@ MxResult MxAudioManager::Create()
|
||||
|
||||
return result;
|
||||
}
|
||||
#endif
|
||||
|
||||
// FUNCTION: LEGO1 0x100b8e90
|
||||
// FUNCTION: BETA10 0x101450a7
|
||||
void MxAudioManager::Destroy()
|
||||
{
|
||||
Destroy(FALSE);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100b8ea0
|
||||
// FUNCTION: BETA10 0x101450c7
|
||||
void MxAudioManager::SetVolume(MxS32 p_volume)
|
||||
{
|
||||
ENTER(m_criticalSection);
|
||||
|
||||
@@ -23,18 +23,21 @@ MxS32 g_volumeAttenuation[100] = {-6643, -5643, -5058, -4643, -4321, -4058, -383
|
||||
-43, -29, -14, 0};
|
||||
|
||||
// FUNCTION: LEGO1 0x100ae740
|
||||
// FUNCTION: BETA10 0x10132c70
|
||||
MxSoundManager::MxSoundManager()
|
||||
{
|
||||
Init();
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100ae7d0
|
||||
// FUNCTION: BETA10 0x10132ce7
|
||||
MxSoundManager::~MxSoundManager()
|
||||
{
|
||||
Destroy(TRUE);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100ae830
|
||||
// FUNCTION: BETA10 0x10132d59
|
||||
void MxSoundManager::Init()
|
||||
{
|
||||
m_directSound = NULL;
|
||||
@@ -42,6 +45,7 @@ void MxSoundManager::Init()
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100ae840
|
||||
// FUNCTION: BETA10 0x10132d89
|
||||
void MxSoundManager::Destroy(MxBool p_fromDestructor)
|
||||
{
|
||||
if (m_thread) {
|
||||
@@ -156,12 +160,14 @@ done:
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100aeab0
|
||||
// FUNCTION: BETA10 0x101331e3
|
||||
void MxSoundManager::Destroy()
|
||||
{
|
||||
Destroy(FALSE);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100aeac0
|
||||
// FUNCTION: BETA10 0x10133203
|
||||
void MxSoundManager::SetVolume(MxS32 p_volume)
|
||||
{
|
||||
MxAudioManager::SetVolume(p_volume);
|
||||
@@ -179,6 +185,7 @@ void MxSoundManager::SetVolume(MxS32 p_volume)
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100aebd0
|
||||
// FUNCTION: BETA10 0x101332cf
|
||||
MxPresenter* MxSoundManager::FindPresenter(const MxAtomId& p_atomId, MxU32 p_objectId)
|
||||
{
|
||||
AUTOLOCK(m_criticalSection);
|
||||
@@ -187,8 +194,7 @@ MxPresenter* MxSoundManager::FindPresenter(const MxAtomId& p_atomId, MxU32 p_obj
|
||||
MxPresenterListCursor cursor(m_presenters);
|
||||
|
||||
while (cursor.Next(presenter)) {
|
||||
if (presenter->GetAction()->GetAtomId().GetInternal() == p_atomId.GetInternal() &&
|
||||
presenter->GetAction()->GetObjectId() == p_objectId) {
|
||||
if (presenter->GetAction()->GetAtomId() == p_atomId && presenter->GetAction()->GetObjectId() == p_objectId) {
|
||||
return presenter;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user