diff --git a/src/OpenSHC/Audio/mss/SoundSystem/meth_0x479b70.cpp b/src/OpenSHC/Audio/mss/SoundSystem/meth_0x479b70.cpp new file mode 100644 index 0000000..1d2d514 --- /dev/null +++ b/src/OpenSHC/Audio/mss/SoundSystem/meth_0x479b70.cpp @@ -0,0 +1,37 @@ +#include "../SoundSystem.func.hpp" + +namespace OpenSHC { +namespace Audio { + namespace MSS { + + // NOTE: + // This functions seems to reset the 0 indexed stream, most likely the music stream + // Index 3 seems to be general NPC voices (at least) + // Assumption: + // The tested flag here ("unkownFlag1" currently) might indicate that playing this sample should lower the music + // volume, or that the music volume is currently lowered + + // FUNCTION: STRONGHOLDCRUSADER 0x00479B70 + void SoundSystem::meth_0x479b70() + { + if (!this->waveOutOpenUnk_0x8) { + return; + } + + if (this->streamFlagsUnkAndLoopCount_0x34[3].unknownFlag1 && this->streamActiveUnk_0x20[3] + && AIL_stream_status(this->stream_0xc[3]) != SMP_PLAYING) { + this->streamFlagsUnkAndLoopCount_0x34[3].unknownFlag1 = false; + AIL_set_sample_volume( + this->musicSampleUnk_0x170, (this->streamVolume[0] * this->streamFileVolumeNextUnk_0x48[0]) / 100); + } + if (this->streamFlagsUnkAndLoopCount_0x34[4].unknownFlag1 && this->streamActiveUnk_0x20[4] + && AIL_stream_status(this->stream_0xc[4]) != SMP_PLAYING) { + this->streamFlagsUnkAndLoopCount_0x34[4].unknownFlag1 = false; + AIL_set_sample_volume( + this->musicSampleUnk_0x170, (this->streamVolume[0] * this->streamFileVolumeNextUnk_0x48[0]) / 100); + } + } + + } +} +} diff --git a/status/addresses-SHC-3BB0A8C1.txt b/status/addresses-SHC-3BB0A8C1.txt index 1a684d6..e607c1c 100644 --- a/status/addresses-SHC-3BB0A8C1.txt +++ b/status/addresses-SHC-3BB0A8C1.txt @@ -10884,7 +10884,7 @@ SHC_3BB0A8C1_0x004799A0 | 0.0% | Pending SHC_3BB0A8C1_0x00479A60 | 100.0% | Reimplemented SHC_3BB0A8C1_0x00479AB0 | 0.0% | Pending SHC_3BB0A8C1_0x00479AF0 | 100.0% | Reimplemented -SHC_3BB0A8C1_0x00479B70 | 0.0% | Pending +SHC_3BB0A8C1_0x00479B70 | 100.0% | Reimplemented SHC_3BB0A8C1_0x00479C20 | 0.0% | Pending SHC_3BB0A8C1_0x00479C80 | 0.0% | Pending SHC_3BB0A8C1_0x00479CF0 | 100.0% | Reimplemented