From af72c37bad4ae78c0f92066ca1b0b66e7bae039b Mon Sep 17 00:00:00 2001 From: TheRedDaemon <66257843+TheRedDaemon@users.noreply.github.com> Date: Mon, 13 Jul 2026 21:09:31 +0200 Subject: [PATCH] reimplement: SHC_3BB0A8C1_0x00449D50 100% --- .../SFX/SFXState/scheduleSFXVariation.cpp | 26 +++++++++++++++++++ status/addresses-SHC-3BB0A8C1.txt | 6 ++--- 2 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 src/OpenSHC/Audio/SFX/SFXState/scheduleSFXVariation.cpp diff --git a/src/OpenSHC/Audio/SFX/SFXState/scheduleSFXVariation.cpp b/src/OpenSHC/Audio/SFX/SFXState/scheduleSFXVariation.cpp new file mode 100644 index 00000000..bb1b707c --- /dev/null +++ b/src/OpenSHC/Audio/SFX/SFXState/scheduleSFXVariation.cpp @@ -0,0 +1,26 @@ +#include "../SFXState.func.hpp" + +namespace OpenSHC { +namespace Audio { + namespace SFX { + + // FUNCTION: STRONGHOLDCRUSADER 0x00449D50 + void SFXState::scheduleSFXVariation(int sfxGroupID, int variationIndex) + { + if (variationIndex > this->DAT_SoundStructures2[sfxGroupID].variationCount - 1 || variationIndex < 0) { + return; + } + int const soundId = this->DAT_SoundStructures2[sfxGroupID].soundID + variationIndex; + this->DAT_SoundStructures[soundId].scheduledPlayCounter++; + this->DAT_SoundStructures[soundId].volumePercentage + = this->DAT_SoundStructures[soundId].baseVolumePercentageUnk; + this->DAT_SoundStructures[soundId].samplePan = 64; + ++this->DAT_SFXCounter1 = this->DAT_SFXCounter1; + if (this->DAT_SFXCounter1 > this->highestSFXCounter) { + this->highestSFXCounter = this->DAT_SFXCounter1; + } + } + + } +} +} diff --git a/status/addresses-SHC-3BB0A8C1.txt b/status/addresses-SHC-3BB0A8C1.txt index 4abdb78e..5bf7cfa0 100644 --- a/status/addresses-SHC-3BB0A8C1.txt +++ b/status/addresses-SHC-3BB0A8C1.txt @@ -8125,9 +8125,9 @@ SHC_3BB0A8C1_0x00449B10 | 0.0% | Pending SHC_3BB0A8C1_0x00449B20 | 100.0% | Reimplemented SHC_3BB0A8C1_0x00449B30 | 0.0% | Pending SHC_3BB0A8C1_0x00449C40 | 0.0% | Pending -SHC_3BB0A8C1_0x00449CC0 | 100.0% | Pending -SHC_3BB0A8C1_0x00449D50 | 0.0% | Pending -SHC_3BB0A8C1_0x00449DC0 | 100.0% | Pending +SHC_3BB0A8C1_0x00449CC0 | 100.0% | Reimplemented +SHC_3BB0A8C1_0x00449D50 | 100.0% | Reimplemented +SHC_3BB0A8C1_0x00449DC0 | 100.0% | Reimplemented SHC_3BB0A8C1_0x00449F10 | 0.0% | Pending SHC_3BB0A8C1_0x00449FF0 | 0.0% | Pending SHC_3BB0A8C1_0x0044A010 | 0.0% | Pending