mirror of
https://github.com/isledecomp/isle-portable.git
synced 2025-09-24 04:26:55 -04:00
Implement/match LegoActor::Mute (#992)
This commit is contained in:
parent
4898a55508
commit
0c7c77aad3
@ -53,7 +53,7 @@ public:
|
|||||||
static const char* GetActorName(MxU8 p_id);
|
static const char* GetActorName(MxU8 p_id);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void FUN_1002d6e0(MxBool);
|
void Mute(MxBool p_muted);
|
||||||
|
|
||||||
MxFloat m_frequencyFactor; // 0x68
|
MxFloat m_frequencyFactor; // 0x68
|
||||||
LegoCacheSound* m_sound; // 0x6c
|
LegoCacheSound* m_sound; // 0x6c
|
||||||
|
@ -44,6 +44,7 @@ public:
|
|||||||
void FUN_10006b80();
|
void FUN_10006b80();
|
||||||
void FUN_10006be0();
|
void FUN_10006be0();
|
||||||
void SetDistance(MxS32 p_min, MxS32 p_max);
|
void SetDistance(MxS32 p_min, MxS32 p_max);
|
||||||
|
void Mute(MxBool p_mute);
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x10006610
|
// SYNTHETIC: LEGO1 0x10006610
|
||||||
// LegoCacheSound::`scalar deleting destructor'
|
// LegoCacheSound::`scalar deleting destructor'
|
||||||
@ -66,7 +67,7 @@ private:
|
|||||||
MxS32 m_volume; // 0x6c
|
MxS32 m_volume; // 0x6c
|
||||||
MxBool m_unk0x70; // 0x70
|
MxBool m_unk0x70; // 0x70
|
||||||
MxString m_unk0x74; // 0x74
|
MxString m_unk0x74; // 0x74
|
||||||
undefined m_unk0x84; // 0x84
|
MxBool m_muted; // 0x84
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // LEGOCACHSOUND_H
|
#endif // LEGOCACHSOUND_H
|
||||||
|
@ -29,7 +29,7 @@ void LegoCacheSound::Init()
|
|||||||
m_unk0x70 = FALSE;
|
m_unk0x70 = FALSE;
|
||||||
m_looping = TRUE;
|
m_looping = TRUE;
|
||||||
m_volume = 79;
|
m_volume = 79;
|
||||||
m_unk0x84 = 0;
|
m_muted = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10006710
|
// FUNCTION: LEGO1 0x10006710
|
||||||
@ -226,7 +226,7 @@ void LegoCacheSound::FUN_10006be0()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_unk0x74.GetLength() != 0 && !m_unk0x84) {
|
if (m_unk0x74.GetLength() != 0 && !m_muted) {
|
||||||
if (!m_sound.UpdatePosition(m_dsBuffer)) {
|
if (!m_sound.UpdatePosition(m_dsBuffer)) {
|
||||||
if (m_unk0x6a) {
|
if (m_unk0x6a) {
|
||||||
return;
|
return;
|
||||||
@ -253,6 +253,22 @@ void LegoCacheSound::FUN_10006cd0(undefined4, undefined4)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10006d40
|
||||||
|
// FUNCTION: BETA10 0x10066ec8
|
||||||
|
void LegoCacheSound::Mute(MxBool p_muted)
|
||||||
|
{
|
||||||
|
if (m_muted != p_muted) {
|
||||||
|
m_muted = p_muted;
|
||||||
|
|
||||||
|
if (m_muted) {
|
||||||
|
m_dsBuffer->Stop();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
m_dsBuffer->Play(0, 0, m_looping);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10006d80
|
// FUNCTION: LEGO1 0x10006d80
|
||||||
// FUNCTION: BETA10 0x100670e7
|
// FUNCTION: BETA10 0x100670e7
|
||||||
MxString LegoCacheSound::FUN_10006d80(const MxString& p_str)
|
MxString LegoCacheSound::FUN_10006d80(const MxString& p_str)
|
||||||
|
@ -107,7 +107,7 @@ void LegoActor::ParseAction(char* p_extra)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (KeyValueStringParse(value, g_strMUTE, p_extra)) {
|
if (KeyValueStringParse(value, g_strMUTE, p_extra)) {
|
||||||
FUN_1002d6e0(TRUE);
|
Mute(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (KeyValueStringParse(value, g_strVISIBILITY, p_extra)) {
|
if (KeyValueStringParse(value, g_strVISIBILITY, p_extra)) {
|
||||||
@ -139,8 +139,10 @@ void LegoActor::SetROI(LegoROI* p_roi, MxBool p_bool1, MxBool p_bool2)
|
|||||||
LegoEntity::SetROI(p_roi, p_bool1, p_bool2);
|
LegoEntity::SetROI(p_roi, p_bool1, p_bool2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x1002d6e0
|
// FUNCTION: LEGO1 0x1002d6e0
|
||||||
void LegoActor::FUN_1002d6e0(MxBool)
|
void LegoActor::Mute(MxBool p_muted)
|
||||||
{
|
{
|
||||||
// TODO
|
if (m_sound != NULL) {
|
||||||
|
m_sound->Mute(p_muted);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user