diff --git a/src/OpenSHC/Audio/mss/SoundSystem/isSampleOrStreamPlaying.cpp b/src/OpenSHC/Audio/mss/SoundSystem/isSampleOrStreamPlaying.cpp new file mode 100644 index 0000000..5e856ef --- /dev/null +++ b/src/OpenSHC/Audio/mss/SoundSystem/isSampleOrStreamPlaying.cpp @@ -0,0 +1,29 @@ +#include "OpenSHC/Audio/MSS/SoundSystem.hpp" + +namespace OpenSHC { +namespace Audio { + namespace MSS { + + // FUNCTION: STRONGHOLDCRUSADER 0x00479A60 + BOOLEnum SoundSystem::isSampleOrStreamPlaying(SHC_SoundStreamInt streamIndex) + { + if (!(this->waveOutOpenUnk_0x8 && this->streamActiveUnk_0x20[streamIndex])) { + return false; + } + + if (streamIndex == enums::SND_STR_MUSIC) { + if (AIL_sample_status(this->musicSampleUnk_0x170) == SMP_PLAYING) { + return true; + } + } else { + HSTREAM const stream = this->stream_0xc[streamIndex]; + if (stream && AIL_stream_status(stream) == SMP_PLAYING) { + return true; + } + } + return false; + } + + } +} +} diff --git a/status/addresses-SHC-3BB0A8C1.txt b/status/addresses-SHC-3BB0A8C1.txt index f1a6853..5ce0a8b 100644 --- a/status/addresses-SHC-3BB0A8C1.txt +++ b/status/addresses-SHC-3BB0A8C1.txt @@ -10881,7 +10881,7 @@ SHC_3BB0A8C1_0x00479400 | 0.0% | Pending SHC_3BB0A8C1_0x00479540 | 0.0% | Pending SHC_3BB0A8C1_0x00479790 | 0.0% | Pending SHC_3BB0A8C1_0x004799A0 | 0.0% | Pending -SHC_3BB0A8C1_0x00479A60 | 0.0% | Pending +SHC_3BB0A8C1_0x00479A60 | 100.0% | Reimplemented SHC_3BB0A8C1_0x00479AB0 | 0.0% | Pending SHC_3BB0A8C1_0x00479AF0 | 0.0% | Pending SHC_3BB0A8C1_0x00479B70 | 0.0% | Pending