diff --git a/src/OpenSHC/Audio/mss/SoundSystem/deactivateSoundFromMenuFuncUnk.cpp b/src/OpenSHC/Audio/mss/SoundSystem/deactivateSoundFromMenuFuncUnk.cpp new file mode 100644 index 0000000..24fa3f8 --- /dev/null +++ b/src/OpenSHC/Audio/mss/SoundSystem/deactivateSoundFromMenuFuncUnk.cpp @@ -0,0 +1,35 @@ +#include "OpenSHC/Audio/MSS/SoundSystem.func.hpp" + +#include + +namespace OpenSHC { +namespace Audio { + namespace MSS { + + // FUNCTION: STRONGHOLDCRUSADER 0x00479F30 + void SoundSystem::deactivateSoundFromMenuFuncUnk() + { + if (!this->waveOutOpenUnk_0x8) { + return; + } + + for (int i = 0; i < 5; ++i) { + unsigned int const copy = *((unsigned int*)&this->streamFlagsUnkAndLoopCount_0x34[i]) & 0x7fffffff; + this->streamFlagsUnkAndLoopCount_0x34[i] = *((UnkSoundFlagsAndLoopCount*)©); + MACRO_CALL_MEMBER(SoundSystem_Func::endSoundStream, this)(i); + } + + for (int i = 0; i < 31; ++i) { + AIL_end_sample(this->sample_0x190[i]); + this->sampleSoundIndex_0x20c[i + 1] = 0; + } + + for (int i = 1; i < this->loadedSoundsCountAndIndex_0x316c; ++i) { + this->soundFileCurrSampleNum_0x28c[i] = -1; + } + this->soundActiveUnk_0x0 = 0; + } + + } +} +} diff --git a/status/addresses-SHC-3BB0A8C1.txt b/status/addresses-SHC-3BB0A8C1.txt index 4e9089a..dc44d86 100644 --- a/status/addresses-SHC-3BB0A8C1.txt +++ b/status/addresses-SHC-3BB0A8C1.txt @@ -10891,7 +10891,7 @@ SHC_3BB0A8C1_0x00479CF0 | 100.0% | Reimplemented SHC_3BB0A8C1_0x00479D90 | 100.0% | Reimplemented SHC_3BB0A8C1_0x00479DF0 | 0.0% | Pending SHC_3BB0A8C1_0x00479E60 | 100.0% | Reimplemented -SHC_3BB0A8C1_0x00479F30 | 0.0% | Pending +SHC_3BB0A8C1_0x00479F30 | 100.0% | Reimplemented SHC_3BB0A8C1_0x00479FC0 | 0.0% | Pending SHC_3BB0A8C1_0x0047A080 | 0.0% | Pending SHC_3BB0A8C1_0x0047A130 | 0.0% | Pending