mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-22 07:28:00 -05:00
MxBackgroundAudioManager (#97)
* Start MxBackgroundAudioManager * Match MxBackgroundAudioManager constructor. This took WAY too much time. * add size assert * improve readability of MxBackgroundAudioManager::Enable While the previous iteration wasn't incorrect, it definitely reads like pseudocode (i.e. it's very unlikely any actual developers would have written that). This is much more readable/likely to have been written and still results in the same asm. --------- Co-authored-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
This commit is contained in:
parent
694045abd8
commit
dc585c7f61
2 changed files with 47 additions and 2 deletions
|
@ -1,13 +1,29 @@
|
|||
#include "mxbackgroundaudiomanager.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(MxBackgroundAudioManager, 0x150)
|
||||
|
||||
// OFFSET: LEGO1 0x1007ea90
|
||||
MxBackgroundAudioManager::MxBackgroundAudioManager()
|
||||
{
|
||||
// TODO
|
||||
NotificationManager()->Register(this);
|
||||
m_unka0 = 0;
|
||||
m_unk138 = 0;
|
||||
m_unk13c = 0;
|
||||
m_unk140 = 0;
|
||||
m_unk144 = 0;
|
||||
m_unk148 = 0;
|
||||
m_musicEnabled = FALSE;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1007ec20
|
||||
MxBackgroundAudioManager::~MxBackgroundAudioManager()
|
||||
{
|
||||
// TODO
|
||||
NotificationManager()->Unregister(this);
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1007f470
|
||||
void MxBackgroundAudioManager::Stop()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
@ -15,5 +31,17 @@ MxBackgroundAudioManager::~MxBackgroundAudioManager()
|
|||
// OFFSET: LEGO1 0x1007f5f0
|
||||
void MxBackgroundAudioManager::Enable(MxBool p)
|
||||
{
|
||||
// TODO
|
||||
if (this->m_musicEnabled != p) {
|
||||
this->m_musicEnabled = p;
|
||||
if (!p) {
|
||||
Stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1007f650
|
||||
void MxBackgroundAudioManager::Init()
|
||||
{
|
||||
this->m_unka0 = 0;
|
||||
this->m_unk13c = 0;
|
||||
}
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
#define MXBACKGROUNDAUDIOMANAGER_H
|
||||
|
||||
#include "mxcore.h"
|
||||
#include "mxdsaction.h"
|
||||
#include "mxtypes.h"
|
||||
#include "mxnotificationmanager.h"
|
||||
|
||||
// VTABLE 0x100d9fe8
|
||||
// SIZE 0x150
|
||||
|
@ -25,6 +28,20 @@ class MxBackgroundAudioManager : public MxCore
|
|||
}
|
||||
|
||||
__declspec(dllexport) void Enable(unsigned char p);
|
||||
private:
|
||||
void Stop();
|
||||
void Init();
|
||||
|
||||
MxBool m_musicEnabled; // 0x8
|
||||
MxDSAction m_action1; // 0xc
|
||||
MxS32 m_unka0;
|
||||
MxDSAction m_action2; // 0xa4
|
||||
MxS32 m_unk138;
|
||||
MxS32 m_unk13c;
|
||||
MxS32 m_unk140;
|
||||
MxS32 m_unk144;
|
||||
MxS16 m_unk148;
|
||||
MxAtomId m_unk14c;
|
||||
};
|
||||
|
||||
#endif // MXBACKGROUNDAUDIOMANAGER_H
|
||||
|
|
Loading…
Reference in a new issue