diff --git a/src/OpenSHC/Audio/mss/SoundSystem/playSoundOnStream3Unk.cpp b/src/OpenSHC/Audio/mss/SoundSystem/playSoundOnStream3Unk.cpp new file mode 100644 index 00000000..3c0d5da4 --- /dev/null +++ b/src/OpenSHC/Audio/mss/SoundSystem/playSoundOnStream3Unk.cpp @@ -0,0 +1,29 @@ +#include "../SoundSystem.func.hpp" + +#include "OpenSHC/Audio/SFX/SFXState.func.hpp" + +#include "OpenSHC/Globals/DAT_SFXState.hpp" +#include "OpenSHC/Globals/DAT_SoundSystemState.hpp" + +namespace OpenSHC { +namespace Audio { + namespace MSS { + + // FUNCTION: STRONGHOLDCRUSADER 0x0047B830 + void SoundSystem::playSoundOnStream3Unk(char* filename, SoundFlagsAndLoopCount flagsAndLoopCount) + { + if (!this->waveOutOpenUnk_0x8) { + return; + } + int const volume + = MACRO_CALL_MEMBER(SFX::SFXState_Func::getSoundVolumeForFilename, DAT_SFXState::ptr)(filename); + this->streamFileVolumeNextUnk_0x48[3] = volume; + this->streamFileVolumeNextUnk_0x48[4] = volume; + MACRO_CALL_MEMBER(SoundSystem_Func::playSoundStreamUnk, this)( + enums::SND_STR_SPEECH_1, filename, flagsAndLoopCount); + DAT_SoundSystemState::instance.lastUsedSpeechStreamUnk_0x3284 = 3; + } + } + +} +} diff --git a/status/addresses-SHC-3BB0A8C1.txt b/status/addresses-SHC-3BB0A8C1.txt index 9a530798..7c181d8c 100644 --- a/status/addresses-SHC-3BB0A8C1.txt +++ b/status/addresses-SHC-3BB0A8C1.txt @@ -10935,7 +10935,7 @@ SHC_3BB0A8C1_0x0047B700 | 0.0% | Pending SHC_3BB0A8C1_0x0047B760 | 100.0% | Reimplemented SHC_3BB0A8C1_0x0047B7D0 | 100.0% | Reimplemented SHC_3BB0A8C1_0x0047B800 | 100.0% | Reimplemented -SHC_3BB0A8C1_0x0047B830 | 0.0% | Pending +SHC_3BB0A8C1_0x0047B830 | 100.0% | Reimplemented SHC_3BB0A8C1_0x0047B870 | 100.0% | Reimplemented SHC_3BB0A8C1_0x0047B890 | 100.0% | Reimplemented SHC_3BB0A8C1_0x0047BF20 | 0.0% | Pending