mirror of
https://github.com/isledecomp/isle-portable.git
synced 2025-03-10 15:07:49 -04:00
Implement/match LegoActor::Mute (#992)
This commit is contained in:
parent
4898a55508
commit
0c7c77aad3
4 changed files with 27 additions and 8 deletions
LEGO1/lego/legoomni
|
@ -53,7 +53,7 @@ public:
|
|||
static const char* GetActorName(MxU8 p_id);
|
||||
|
||||
protected:
|
||||
void FUN_1002d6e0(MxBool);
|
||||
void Mute(MxBool p_muted);
|
||||
|
||||
MxFloat m_frequencyFactor; // 0x68
|
||||
LegoCacheSound* m_sound; // 0x6c
|
||||
|
|
|
@ -44,6 +44,7 @@ public:
|
|||
void FUN_10006b80();
|
||||
void FUN_10006be0();
|
||||
void SetDistance(MxS32 p_min, MxS32 p_max);
|
||||
void Mute(MxBool p_mute);
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10006610
|
||||
// LegoCacheSound::`scalar deleting destructor'
|
||||
|
@ -66,7 +67,7 @@ private:
|
|||
MxS32 m_volume; // 0x6c
|
||||
MxBool m_unk0x70; // 0x70
|
||||
MxString m_unk0x74; // 0x74
|
||||
undefined m_unk0x84; // 0x84
|
||||
MxBool m_muted; // 0x84
|
||||
};
|
||||
|
||||
#endif // LEGOCACHSOUND_H
|
||||
|
|
|
@ -29,7 +29,7 @@ void LegoCacheSound::Init()
|
|||
m_unk0x70 = FALSE;
|
||||
m_looping = TRUE;
|
||||
m_volume = 79;
|
||||
m_unk0x84 = 0;
|
||||
m_muted = FALSE;
|
||||
}
|
||||
|
||||
// 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_unk0x6a) {
|
||||
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: BETA10 0x100670e7
|
||||
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)) {
|
||||
FUN_1002d6e0(TRUE);
|
||||
Mute(TRUE);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1002d6e0
|
||||
void LegoActor::FUN_1002d6e0(MxBool)
|
||||
// FUNCTION: LEGO1 0x1002d6e0
|
||||
void LegoActor::Mute(MxBool p_muted)
|
||||
{
|
||||
// TODO
|
||||
if (m_sound != NULL) {
|
||||
m_sound->Mute(p_muted);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue