Implement/Match JukeboxEntity (#562)

* Implement/Match JukeboxEntity

* Style/naming

* Style/naming

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
Nathan M Gilbert
2024-02-14 11:48:39 -05:00
committed by GitHub
parent 1b696e4bd8
commit 271df035fd
8 changed files with 149 additions and 21 deletions

View File

@@ -25,8 +25,16 @@ public:
return !strcmp(p_name, JukeBoxEntity::ClassName()) || LegoEntity::IsA(p_name);
}
void StartAction();
void StopAction(MxU32 p_state);
inline MxBool IsBackgroundAudioEnabled() { return m_audioEnabled; }
// SYNTHETIC: LEGO1 0x10085db0
// JukeBoxEntity::`scalar deleting destructor'
protected:
MxBool m_audioEnabled; // 0x68
};
#endif // JUKEBOXENTITY_H

View File

@@ -22,8 +22,16 @@ public:
MxBool VTable0x14() override; // vtable+0x14
inline MxU32 IsActive() { return m_active; }
inline void SetActive(MxU32 p_active) { m_active = p_active; }
inline MxU32 GetState() { return m_state; }
// SYNTHETIC: LEGO1 0x1000f3d0
// JukeBoxState::`scalar deleting destructor'
protected:
MxU32 m_state; // 0x08
MxU32 m_active; // 0x0c
};
#endif // JUKEBOXSTATE_H

View File

@@ -107,12 +107,14 @@ public:
inline Act GetLoadedAct() { return m_loadedAct; }
inline Area GetCurrentArea() { return m_currentArea; }
inline Area GetPreviousArea() { return m_previousArea; }
inline MxU32 GetUnknown0x41c() { return m_unk0x41c; }
inline Area GetUnknown0x42c() { return m_unk0x42c; }
inline void SetDirty(MxBool p_dirty) { m_isDirty = p_dirty; }
inline void SetCurrentArea(Area p_currentArea) { m_currentArea = p_currentArea; }
inline void SetPreviousArea(Area p_previousArea) { m_previousArea = p_previousArea; }
inline void SetUnknown0x0c(MxU8 p_unk0x0c) { m_unk0x0c = p_unk0x0c; }
inline void SetUnknown0x41c(undefined4 p_unk0x41c) { m_unk0x41c = p_unk0x41c; }
inline void SetUnknown0x42c(Area p_unk0x42c) { m_unk0x42c = p_unk0x42c; }
void SetCurrentAct(Act p_currentAct);
@@ -147,7 +149,8 @@ private:
MxU16 m_unk0x24; // 0x24
undefined m_unk0x28[128]; // 0x28
ScoreStruct m_unk0xa6; // 0xa6
undefined m_unk0x41a[8]; // 0x41a - might be part of the structure at 0xa6
undefined m_unk0x41a[2]; // 0x41a - might be part of the structure at 0xa6
undefined4 m_unk0x41c; // 0x41c
MxBool m_isDirty; // 0x420
Area m_currentArea; // 0x424
Area m_previousArea; // 0x428

View File

@@ -31,7 +31,7 @@ public:
return !strcmp(p_name, MxBackgroundAudioManager::ClassName()) || MxCore::IsA(p_name);
}
inline MxBool GetMusicEnabled() { return m_musicEnabled; }
inline MxBool GetEnabled() { return m_enabled; }
void StartAction(MxParam& p_param);
void StopAction(MxParam& p_param);
@@ -56,7 +56,7 @@ private:
MxResult OpenMusic(MxAtomId& p_script);
void DestroyMusic();
MxBool m_musicEnabled; // 0x08
MxBool m_enabled; // 0x08
MxDSAction m_action1; // 0x0c
MxAudioPresenter* m_unk0xa0; // 0xa0
MxDSAction m_action2; // 0xa4

View File

@@ -40,9 +40,9 @@ public:
private:
void CreateRadioState();
RadioState* m_state; // 0x08
MxBool m_unk0x0c; // 0x0c
MxBool m_bgAudioPreviouslyEnabled; // 0x0d
RadioState* m_state; // 0x08
MxBool m_unk0x0c; // 0x0c
MxBool m_audioEnabled; // 0x0d
MxLong HandleEndAction(MxEndActionNotificationParam& p_param);
MxLong HandleClick(LegoControlManagerEvent& p_param);