From 61f3218107a9d0ba1dd0e56e22df05db5bcbde99 Mon Sep 17 00:00:00 2001 From: TheRedDaemon <66257843+TheRedDaemon@users.noreply.github.com> Date: Wed, 20 May 2026 21:27:01 +0200 Subject: [PATCH] reimplement: SHC_3BB0A8C1_0x00479D90 100% --- .../SoundSystem/getAndUpdateSampleStatus.cpp | 30 +++++++++++++++++++ status/addresses-SHC-3BB0A8C1.txt | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 src/OpenSHC/Audio/mss/SoundSystem/getAndUpdateSampleStatus.cpp diff --git a/src/OpenSHC/Audio/mss/SoundSystem/getAndUpdateSampleStatus.cpp b/src/OpenSHC/Audio/mss/SoundSystem/getAndUpdateSampleStatus.cpp new file mode 100644 index 0000000..9badd2f --- /dev/null +++ b/src/OpenSHC/Audio/mss/SoundSystem/getAndUpdateSampleStatus.cpp @@ -0,0 +1,30 @@ +#include "OpenSHC/Audio/MSS/SoundSystem.func.hpp" + +namespace OpenSHC { +namespace Audio { + namespace MSS { + + // FUNCTION: STRONGHOLDCRUSADER 0x00479D90 + BOOLEnum SoundSystem::getAndUpdateSampleStatus(int soundIndex) + { + if (!this->waveOutOpenUnk_0x8) { + return FALSE; + } + if (this->soundFileCurrSampleNum_0x28c[soundIndex] < 0) { + return FALSE; + } + + unsigned int const status + = AIL_sample_status(this->sample_0x190[this->soundFileCurrSampleNum_0x28c[soundIndex] + -1]); + if (status == SMP_PLAYING) { + return TRUE; + } + + this->sampleSoundIndex_0x20c[this->soundFileCurrSampleNum_0x28c[soundIndex]] = 0; + this->soundFileCurrSampleNum_0x28c[soundIndex] = -1; + return FALSE; + } + + } +} +} diff --git a/status/addresses-SHC-3BB0A8C1.txt b/status/addresses-SHC-3BB0A8C1.txt index 15c10d4..def47d7 100644 --- a/status/addresses-SHC-3BB0A8C1.txt +++ b/status/addresses-SHC-3BB0A8C1.txt @@ -10888,7 +10888,7 @@ SHC_3BB0A8C1_0x00479B70 | 0.0% | Pending SHC_3BB0A8C1_0x00479C20 | 0.0% | Pending SHC_3BB0A8C1_0x00479C80 | 0.0% | Pending SHC_3BB0A8C1_0x00479CF0 | 100.0% | Reimplemented -SHC_3BB0A8C1_0x00479D90 | 0.0% | Pending +SHC_3BB0A8C1_0x00479D90 | 100.0% | Reimplemented SHC_3BB0A8C1_0x00479DF0 | 0.0% | Pending SHC_3BB0A8C1_0x00479E60 | 0.0% | Pending SHC_3BB0A8C1_0x00479F30 | 0.0% | Pending