mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-24 08:41:16 +00:00
Merge branch 'master' into score
This commit is contained in:
commit
eb62e0c112
@ -11,6 +11,9 @@
|
|||||||
// 0x100f4588
|
// 0x100f4588
|
||||||
MxAtomId *g_nocdSourceName = NULL;
|
MxAtomId *g_nocdSourceName = NULL;
|
||||||
|
|
||||||
|
// 0x100f456c
|
||||||
|
MxAtomId *g_jukeboxScript = NULL;
|
||||||
|
|
||||||
// 0x101020e8
|
// 0x101020e8
|
||||||
void (*g_omniUserMessage)(const char *,int);
|
void (*g_omniUserMessage)(const char *,int);
|
||||||
|
|
||||||
@ -26,10 +29,11 @@ LegoOmni::~LegoOmni()
|
|||||||
Destroy();
|
Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1005b560 STUB
|
// OFFSET: LEGO1 0x1005b560
|
||||||
void LegoOmni::CreateBackgroundAudio()
|
void LegoOmni::CreateBackgroundAudio()
|
||||||
{
|
{
|
||||||
// TODO
|
if (m_bkgAudioManager)
|
||||||
|
m_bkgAudioManager->Create(*g_jukeboxScript, 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1005af10 STUB
|
// OFFSET: LEGO1 0x1005af10 STUB
|
||||||
@ -308,9 +312,10 @@ MxResult LegoOmni::Start(MxDSAction* action)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LegoOmni::DeleteObject(MxDSAction &ds)
|
MxResult LegoOmni::DeleteObject(MxDSAction &ds)
|
||||||
{
|
{
|
||||||
// FIXME: Stub
|
// FIXME: Stub
|
||||||
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
MxBool LegoOmni::DoesEntityExist(MxDSAction &ds)
|
MxBool LegoOmni::DoesEntityExist(MxDSAction &ds)
|
||||||
|
|||||||
@ -58,7 +58,7 @@ class LegoOmni : public MxOmni
|
|||||||
virtual MxResult Create(COMPAT_CONST MxOmniCreateParam &p) override; // vtable+18
|
virtual MxResult Create(COMPAT_CONST MxOmniCreateParam &p) override; // vtable+18
|
||||||
virtual void Destroy() override; // vtable+1c
|
virtual void Destroy() override; // vtable+1c
|
||||||
virtual MxResult Start(MxDSAction* action) override;
|
virtual MxResult Start(MxDSAction* action) override;
|
||||||
virtual void DeleteObject(MxDSAction &ds) override;
|
virtual MxResult DeleteObject(MxDSAction &ds) override;
|
||||||
virtual MxBool DoesEntityExist(MxDSAction &ds) override;
|
virtual MxBool DoesEntityExist(MxDSAction &ds) override;
|
||||||
virtual void vtable0x2c() override;
|
virtual void vtable0x2c() override;
|
||||||
virtual int vtable0x30(char*, int, MxCore*) override;
|
virtual int vtable0x30(char*, int, MxCore*) override;
|
||||||
|
|||||||
@ -1,20 +1,48 @@
|
|||||||
#include "legosoundmanager.h"
|
#include "legosoundmanager.h"
|
||||||
|
#include "mxautolocker.h"
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100298a0 STUB
|
// OFFSET: LEGO1 0x100298a0
|
||||||
LegoSoundManager::LegoSoundManager()
|
LegoSoundManager::LegoSoundManager()
|
||||||
{
|
{
|
||||||
// TODO
|
Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x10029940 STUB
|
// OFFSET: LEGO1 0x10029940
|
||||||
LegoSoundManager::~LegoSoundManager()
|
LegoSoundManager::~LegoSoundManager()
|
||||||
{
|
{
|
||||||
// TODO
|
Destroy(TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1002a390
|
||||||
|
void LegoSoundManager::Destroy()
|
||||||
|
{
|
||||||
|
Destroy(FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100299b0 STUB
|
||||||
|
void LegoSoundManager::Destroy(MxBool p_fromDestructor)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100299f0 STUB
|
||||||
|
MxResult LegoSoundManager::Create(MxU32 p_frequencyMS, MxBool p_createThread)
|
||||||
|
{
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100299a0
|
||||||
|
void LegoSoundManager::Init()
|
||||||
|
{
|
||||||
|
unk0x40 = 0;
|
||||||
|
unk0x3c = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1002a3a0 STUB
|
// OFFSET: LEGO1 0x1002a3a0 STUB
|
||||||
MxResult LegoSoundManager::Tickle()
|
MxResult LegoSoundManager::Tickle()
|
||||||
{
|
{
|
||||||
// TODO
|
MxMediaManager::Tickle();
|
||||||
return 0;
|
MxAutoLocker lock(&this->m_criticalSection);
|
||||||
|
|
||||||
|
return 0; // TODO: call something in unk0x40
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,11 +10,17 @@ class LegoSoundManager : public MxSoundManager
|
|||||||
public:
|
public:
|
||||||
LegoSoundManager();
|
LegoSoundManager();
|
||||||
virtual ~LegoSoundManager() override;
|
virtual ~LegoSoundManager() override;
|
||||||
|
|
||||||
virtual MxResult Tickle() override; // vtable+08
|
virtual MxResult Tickle() override; // vtable+08
|
||||||
|
virtual void Destroy() override; // vtable+18
|
||||||
|
virtual MxResult Create(MxU32 p_frequencyMS, MxBool p_createThread) override; //vtable+0x30
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void Init();
|
void Init();
|
||||||
|
void Destroy(MxBool p_fromDestructor);
|
||||||
|
|
||||||
|
undefined4 unk0x3c;
|
||||||
|
undefined4 unk0x40;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // LEGOSOUNDMANAGER_H
|
#endif // LEGOSOUNDMANAGER_H
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
#include "mxbackgroundaudiomanager.h"
|
#include "mxbackgroundaudiomanager.h"
|
||||||
|
|
||||||
#include "mxomni.h"
|
#include "mxomni.h"
|
||||||
|
#include "mxstreamer.h"
|
||||||
|
#include "mxticklemanager.h"
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(MxBackgroundAudioManager, 0x150)
|
DECOMP_SIZE_ASSERT(MxBackgroundAudioManager, 0x150)
|
||||||
|
|
||||||
@ -20,14 +22,29 @@ MxBackgroundAudioManager::MxBackgroundAudioManager()
|
|||||||
// OFFSET: LEGO1 0x1007ec20
|
// OFFSET: LEGO1 0x1007ec20
|
||||||
MxBackgroundAudioManager::~MxBackgroundAudioManager()
|
MxBackgroundAudioManager::~MxBackgroundAudioManager()
|
||||||
{
|
{
|
||||||
// TODO
|
TickleManager()->UnregisterClient(this);
|
||||||
NotificationManager()->Unregister(this);
|
NotificationManager()->Unregister(this);
|
||||||
|
DestroyMusic();
|
||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1007f470
|
// OFFSET: LEGO1 0x1007f470
|
||||||
void MxBackgroundAudioManager::Stop()
|
void MxBackgroundAudioManager::Stop()
|
||||||
{
|
{
|
||||||
// TODO
|
if (m_action2.GetObjectId() != -1)
|
||||||
|
DeleteObject(m_action2);
|
||||||
|
|
||||||
|
m_unk138 = 0;
|
||||||
|
m_action2.SetAtomId(MxAtomId());
|
||||||
|
m_action2.SetObjectId(-1);
|
||||||
|
|
||||||
|
if (m_action1.GetObjectId() != -1)
|
||||||
|
DeleteObject(m_action1);
|
||||||
|
|
||||||
|
m_unka0 = 0;
|
||||||
|
m_action1.SetAtomId(MxAtomId());
|
||||||
|
m_unk148 = 0;
|
||||||
|
m_action1.SetObjectId(-1);
|
||||||
|
m_unk13c = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1007f5f0
|
// OFFSET: LEGO1 0x1007f5f0
|
||||||
@ -47,3 +64,45 @@ void MxBackgroundAudioManager::Init()
|
|||||||
this->m_unka0 = 0;
|
this->m_unka0 = 0;
|
||||||
this->m_unk13c = 0;
|
this->m_unk13c = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1007ece0
|
||||||
|
MxResult MxBackgroundAudioManager::Create(MxAtomId &p_script, MxU32 p_frequencyMS)
|
||||||
|
{
|
||||||
|
MxResult result = OpenMusic(p_script);
|
||||||
|
|
||||||
|
if (result == SUCCESS) {
|
||||||
|
TickleManager()->RegisterClient(this, p_frequencyMS);
|
||||||
|
m_musicEnabled = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1007ed20
|
||||||
|
MxResult MxBackgroundAudioManager::OpenMusic(MxAtomId &p_script)
|
||||||
|
{
|
||||||
|
if (m_script.GetInternal())
|
||||||
|
DestroyMusic();
|
||||||
|
|
||||||
|
MxResult result = FAILURE;
|
||||||
|
|
||||||
|
if (Streamer()->Open(p_script.GetInternal(), 0)) {
|
||||||
|
m_script = p_script;
|
||||||
|
result = SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1007ed70
|
||||||
|
void MxBackgroundAudioManager::DestroyMusic()
|
||||||
|
{
|
||||||
|
if (m_script.GetInternal()) {
|
||||||
|
MxDSAction ds;
|
||||||
|
ds.SetAtomId(m_script);
|
||||||
|
ds.SetUnknown24(-2);
|
||||||
|
DeleteObject(ds);
|
||||||
|
Streamer()->Close(m_script.GetInternal());
|
||||||
|
m_musicEnabled = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -28,10 +28,13 @@ class MxBackgroundAudioManager : public MxCore
|
|||||||
}
|
}
|
||||||
|
|
||||||
__declspec(dllexport) void Enable(unsigned char p);
|
__declspec(dllexport) void Enable(unsigned char p);
|
||||||
|
virtual MxResult Create(MxAtomId &p_script, MxU32 p_frequencyMS);
|
||||||
|
|
||||||
void Stop();
|
void Stop();
|
||||||
private:
|
private:
|
||||||
void Init();
|
void Init();
|
||||||
|
MxResult OpenMusic(MxAtomId &p_script);
|
||||||
|
void DestroyMusic();
|
||||||
|
|
||||||
MxBool m_musicEnabled; // 0x8
|
MxBool m_musicEnabled; // 0x8
|
||||||
MxDSAction m_action1; // 0xc
|
MxDSAction m_action1; // 0xc
|
||||||
@ -42,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
|
||||||
|
|||||||
@ -68,9 +68,10 @@ MxResult MxOmni::Start(MxDSAction* p_dsAction)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100b00c0 STUB
|
// OFFSET: LEGO1 0x100b00c0 STUB
|
||||||
void MxOmni::DeleteObject(MxDSAction &p_dsAction)
|
MxResult MxOmni::DeleteObject(MxDSAction &p_dsAction)
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100b09a0
|
// OFFSET: LEGO1 0x100b09a0
|
||||||
@ -404,9 +405,9 @@ MxEventManager* EventManager()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100acf70
|
// OFFSET: LEGO1 0x100acf70
|
||||||
void DeleteObject(MxDSAction &ds)
|
MxResult DeleteObject(MxDSAction &p_dsAction)
|
||||||
{
|
{
|
||||||
MxOmni::GetInstance()->DeleteObject(ds);
|
return MxOmni::GetInstance()->DeleteObject(p_dsAction);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Offset: LEGO1 0x100159e0
|
// Offset: LEGO1 0x100159e0
|
||||||
|
|||||||
@ -43,7 +43,7 @@ class MxOmni : public MxCore
|
|||||||
virtual MxResult Create(COMPAT_CONST MxOmniCreateParam &p); // vtable+18
|
virtual MxResult Create(COMPAT_CONST MxOmniCreateParam &p); // vtable+18
|
||||||
virtual void Destroy(); // vtable+1c
|
virtual void Destroy(); // vtable+1c
|
||||||
virtual MxResult Start(MxDSAction* p_dsAction); // vtable+20
|
virtual MxResult Start(MxDSAction* p_dsAction); // vtable+20
|
||||||
virtual void DeleteObject(MxDSAction &p_dsAction); // vtable+24
|
virtual MxResult DeleteObject(MxDSAction &p_dsAction); // vtable+24
|
||||||
virtual MxBool DoesEntityExist(MxDSAction &p_dsAction); // vtable+28
|
virtual MxBool DoesEntityExist(MxDSAction &p_dsAction); // vtable+28
|
||||||
virtual void vtable0x2c(); // vtable+2c
|
virtual void vtable0x2c(); // vtable+2c
|
||||||
virtual int vtable0x30(char*, int, MxCore*); // vtable+30
|
virtual int vtable0x30(char*, int, MxCore*); // vtable+30
|
||||||
@ -96,6 +96,7 @@ __declspec(dllexport) MxMusicManager * MusicManager();
|
|||||||
__declspec(dllexport) MxEventManager * EventManager();
|
__declspec(dllexport) MxEventManager * EventManager();
|
||||||
__declspec(dllexport) MxNotificationManager * NotificationManager();
|
__declspec(dllexport) MxNotificationManager * NotificationManager();
|
||||||
|
|
||||||
|
MxResult DeleteObject(MxDSAction &p_dsAction);
|
||||||
MxVideoManager *MVideoManager();
|
MxVideoManager *MVideoManager();
|
||||||
MxAtomIdCounterSet *AtomIdCounterSet();
|
MxAtomIdCounterSet *AtomIdCounterSet();
|
||||||
MxObjectFactory *ObjectFactory();
|
MxObjectFactory *ObjectFactory();
|
||||||
|
|||||||
@ -58,11 +58,23 @@ MxResult MxSoundManager::Create(MxU32 p_frequencyMS, MxBool p_createThread)
|
|||||||
// OFFSET: LEGO1 0x100aed10 STUB
|
// OFFSET: LEGO1 0x100aed10 STUB
|
||||||
void MxSoundManager::vtable0x34()
|
void MxSoundManager::vtable0x34()
|
||||||
{
|
{
|
||||||
// TODO STUB
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100aee10 STUB
|
// OFFSET: LEGO1 0x100aee10 STUB
|
||||||
void MxSoundManager::vtable0x38()
|
void MxSoundManager::vtable0x38()
|
||||||
{
|
{
|
||||||
// TODO STUB
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100aeab0
|
||||||
|
void MxSoundManager::Destroy()
|
||||||
|
{
|
||||||
|
Destroy(FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100aeac0 STUB
|
||||||
|
void MxSoundManager::SetVolume(MxS32 p_volume)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,6 +14,8 @@ class MxSoundManager : public MxAudioManager
|
|||||||
MxSoundManager();
|
MxSoundManager();
|
||||||
virtual ~MxSoundManager() override; // vtable+0x0
|
virtual ~MxSoundManager() override; // vtable+0x0
|
||||||
|
|
||||||
|
virtual void Destroy() override; // vtable+18
|
||||||
|
virtual void SetVolume(MxS32 p_volume) override; // vtable+2c
|
||||||
virtual MxResult Create(MxU32 p_frequencyMS, MxBool p_createThread); //vtable+0x30
|
virtual MxResult Create(MxU32 p_frequencyMS, MxBool p_createThread); //vtable+0x30
|
||||||
virtual void vtable0x34(); // vtable+0x34
|
virtual void vtable0x34(); // vtable+0x34
|
||||||
virtual void vtable0x38(); // vtable+0x38
|
virtual void vtable0x38(); // vtable+0x38
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user