Match OpenMusic to 100%, style fixes

This commit is contained in:
Christian Semmler 2023-10-22 10:02:54 -04:00
parent 9945171c95
commit 3f456b52be
5 changed files with 29 additions and 35 deletions

View File

@ -32,10 +32,8 @@ LegoOmni::~LegoOmni()
// OFFSET: LEGO1 0x1005b560 // OFFSET: LEGO1 0x1005b560
void LegoOmni::CreateBackgroundAudio() void LegoOmni::CreateBackgroundAudio()
{ {
if (m_bkgAudioManager != NULL) if (m_bkgAudioManager)
{
m_bkgAudioManager->Create(*g_jukeboxScript, 100); m_bkgAudioManager->Create(*g_jukeboxScript, 100);
}
} }
// OFFSET: LEGO1 0x1005af10 STUB // OFFSET: LEGO1 0x1005af10 STUB

View File

@ -31,17 +31,15 @@ MxBackgroundAudioManager::~MxBackgroundAudioManager()
void MxBackgroundAudioManager::Stop() void MxBackgroundAudioManager::Stop()
{ {
if (m_action2.GetObjectId() != -1) if (m_action2.GetObjectId() != -1)
{
DeleteObject(m_action2); DeleteObject(m_action2);
}
m_unk138 = 0; m_unk138 = 0;
m_action2.SetAtomId(MxAtomId()); m_action2.SetAtomId(MxAtomId());
m_action2.SetObjectId(-1); m_action2.SetObjectId(-1);
if (m_action1.GetObjectId() != -1) if (m_action1.GetObjectId() != -1)
{
DeleteObject(m_action1); DeleteObject(m_action1);
}
m_unka0 = 0; m_unka0 = 0;
m_action1.SetAtomId(MxAtomId()); m_action1.SetAtomId(MxAtomId());
m_unk148 = 0; m_unk148 = 0;
@ -68,30 +66,29 @@ void MxBackgroundAudioManager::Init()
} }
// OFFSET: LEGO1 0x1007ece0 // OFFSET: LEGO1 0x1007ece0
MxResult MxBackgroundAudioManager::Create(MxAtomId& script, MxU32 p_interval) MxResult MxBackgroundAudioManager::Create(MxAtomId &p_script, MxU32 p_frequencyMS)
{ {
MxResult result = OpenMusic(script); MxResult result = OpenMusic(p_script);
if (result == SUCCESS)
{ if (result == SUCCESS) {
TickleManager()->RegisterClient(this, p_interval); TickleManager()->RegisterClient(this, p_frequencyMS);
m_musicEnabled = TRUE; m_musicEnabled = TRUE;
} }
return result; return result;
} }
// OFFSET: LEGO1 0x1007ed20 // OFFSET: LEGO1 0x1007ed20
MxResult MxBackgroundAudioManager::OpenMusic(MxAtomId& script) MxResult MxBackgroundAudioManager::OpenMusic(MxAtomId &p_script)
{ {
MxResult result = FAILURE; if (m_script.GetInternal())
if (m_unk14c.GetInternal() != NULL)
{
DestroyMusic(); DestroyMusic();
}
if (Streamer()->Open(script.GetInternal(), 0) != NULL) MxResult result = FAILURE;
{
if (Streamer()->Open(p_script.GetInternal(), 0)) {
m_script = p_script;
result = SUCCESS; result = SUCCESS;
m_unk14c = script;
} }
return result; return result;
@ -100,13 +97,12 @@ MxResult MxBackgroundAudioManager::OpenMusic(MxAtomId& script)
// OFFSET: LEGO1 0x1007ed70 // OFFSET: LEGO1 0x1007ed70
void MxBackgroundAudioManager::DestroyMusic() void MxBackgroundAudioManager::DestroyMusic()
{ {
if (m_unk14c.GetInternal() != NULL) if (m_script.GetInternal()) {
{
MxDSAction ds; MxDSAction ds;
ds.SetAtomId(m_unk14c); ds.SetAtomId(m_script);
ds.SetUnknown24(-2); ds.SetUnknown24(-2);
DeleteObject(ds); DeleteObject(ds);
Streamer()->Close(m_unk14c.GetInternal()); Streamer()->Close(m_script.GetInternal());
m_musicEnabled = FALSE; m_musicEnabled = FALSE;
} }
} }

View File

@ -28,12 +28,12 @@ class MxBackgroundAudioManager : public MxCore
} }
__declspec(dllexport) void Enable(unsigned char p); __declspec(dllexport) void Enable(unsigned char p);
virtual MxResult Create(MxAtomId& script, MxU32 p_interval); virtual MxResult Create(MxAtomId &p_script, MxU32 p_frequencyMS);
void Stop(); void Stop();
private: private:
void Init(); void Init();
MxResult OpenMusic(MxAtomId& script); MxResult OpenMusic(MxAtomId &p_script);
void DestroyMusic(); void DestroyMusic();
MxBool m_musicEnabled; // 0x8 MxBool m_musicEnabled; // 0x8
@ -45,7 +45,7 @@ class MxBackgroundAudioManager : public MxCore
MxS32 m_unk140; MxS32 m_unk140;
MxS32 m_unk144; MxS32 m_unk144;
MxS16 m_unk148; MxS16 m_unk148;
MxAtomId m_unk14c; MxAtomId m_script;
}; };
#endif // MXBACKGROUNDAUDIOMANAGER_H #endif // MXBACKGROUNDAUDIOMANAGER_H

View File

@ -74,12 +74,6 @@ MxResult MxOmni::DeleteObject(MxDSAction &p_dsAction)
return FAILURE; return FAILURE;
} }
// OFFSET: LEGO1 0x100acf70
MxResult DeleteObject(MxDSAction &ds)
{
return MxOmni::GetInstance()->DeleteObject(ds);
}
// OFFSET: LEGO1 0x100b09a0 // OFFSET: LEGO1 0x100b09a0
MxBool MxOmni::DoesEntityExist(MxDSAction &p_dsAction) MxBool MxOmni::DoesEntityExist(MxDSAction &p_dsAction)
{ {
@ -409,3 +403,9 @@ MxEventManager* EventManager()
{ {
return MxOmni::GetInstance()->GetEventManager(); return MxOmni::GetInstance()->GetEventManager();
} }
// OFFSET: LEGO1 0x100acf70
MxResult DeleteObject(MxDSAction &p_dsAction)
{
return MxOmni::GetInstance()->DeleteObject(p_dsAction);
}

View File

@ -94,8 +94,8 @@ __declspec(dllexport) MxVariableTable * VariableTable();
__declspec(dllexport) MxMusicManager * MusicManager(); __declspec(dllexport) MxMusicManager * MusicManager();
__declspec(dllexport) MxEventManager * EventManager(); __declspec(dllexport) MxEventManager * EventManager();
__declspec(dllexport) MxNotificationManager * NotificationManager(); __declspec(dllexport) MxNotificationManager * NotificationManager();
MxResult DeleteObject(MxDSAction &ds);
MxResult DeleteObject(MxDSAction &p_dsAction);
MxVideoManager *MVideoManager(); MxVideoManager *MVideoManager();
MxAtomIdCounterSet *AtomIdCounterSet(); MxAtomIdCounterSet *AtomIdCounterSet();
MxObjectFactory *ObjectFactory(); MxObjectFactory *ObjectFactory();