From 8958e05be178ff62ee2ae47c2b14c6ffae7b9ea7 Mon Sep 17 00:00:00 2001 From: TheRedDaemon <66257843+TheRedDaemon@users.noreply.github.com> Date: Fri, 12 Jun 2026 19:05:30 +0200 Subject: [PATCH] reimplement: SHC_3BB0A8C1_0x0047A660 100% --- src/OpenSHC/Audio/SoundEffectsHelperData1.hpp | 2 +- .../Audio/mss/SoundSystem/setupLossMusic.cpp | 22 +++++++++++++++++++ status/addresses-SHC-3BB0A8C1.txt | 2 +- 3 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 src/OpenSHC/Audio/mss/SoundSystem/setupLossMusic.cpp diff --git a/src/OpenSHC/Audio/SoundEffectsHelperData1.hpp b/src/OpenSHC/Audio/SoundEffectsHelperData1.hpp index ee6a431..555f771 100644 --- a/src/OpenSHC/Audio/SoundEffectsHelperData1.hpp +++ b/src/OpenSHC/Audio/SoundEffectsHelperData1.hpp @@ -43,7 +43,7 @@ namespace Audio { undefined4 field16_0x5c; // 0x0000005C length: 4 undefined4 DAT_WinMusicVariation; // 0x00000060 length: 4 undefined4 field18_0x64; // 0x00000064 length: 4 - undefined4 DAT_LossMusicVariation; // 0x00000068 length: 4 + int DAT_LossMusicVariation; // 0x00000068 length: 4 DWORD DAT_enemyInsideCastleSoundWarningCooldownTimer; // 0x0000006C length: 4 undefined4 field21_0x70; // 0x00000070 length: 4 WAVEFORMATEX SND_Waveformat; // 0x00000074 length: 18 diff --git a/src/OpenSHC/Audio/mss/SoundSystem/setupLossMusic.cpp b/src/OpenSHC/Audio/mss/SoundSystem/setupLossMusic.cpp new file mode 100644 index 0000000..b73aa13 --- /dev/null +++ b/src/OpenSHC/Audio/mss/SoundSystem/setupLossMusic.cpp @@ -0,0 +1,22 @@ +#include "../SoundSystem.func.hpp" + +#include "OpenSHC/Globals/DAT_SoundEffectsHelperData1.hpp" + +namespace OpenSHC { +namespace Audio { + namespace MSS { + + // FUNCTION: STRONGHOLDCRUSADER 0x0047A660 + void SoundSystem::setupLossMusic() + { + MACRO_CALL_MEMBER(SoundSystem_Func::setupVolumeAndSoundIDWithMultiplier, this)( + DAT_SoundEffectsHelperData1::ptr->DAT_LossMusicVariation + DE::SHCDE::MUSIC_TUNE_LOSE1, 100); + ++DAT_SoundEffectsHelperData1::ptr->DAT_LossMusicVariation; + if (DAT_SoundEffectsHelperData1::ptr->DAT_LossMusicVariation > 1) { + DAT_SoundEffectsHelperData1::ptr->DAT_LossMusicVariation = 0; + } + } + + } +} +} diff --git a/status/addresses-SHC-3BB0A8C1.txt b/status/addresses-SHC-3BB0A8C1.txt index 5bf99ba..8614572 100644 --- a/status/addresses-SHC-3BB0A8C1.txt +++ b/status/addresses-SHC-3BB0A8C1.txt @@ -10910,7 +10910,7 @@ SHC_3BB0A8C1_0x0047A570 | 100.0% | Reimplemented SHC_3BB0A8C1_0x0047A580 | 0.0% | Pending SHC_3BB0A8C1_0x0047A5E0 | 100.0% | Pending SHC_3BB0A8C1_0x0047A630 | 0.0% | Pending -SHC_3BB0A8C1_0x0047A660 | 0.0% | Pending +SHC_3BB0A8C1_0x0047A660 | 100.0% | Reimplemented SHC_3BB0A8C1_0x0047A690 | 0.0% | Pending SHC_3BB0A8C1_0x0047A790 | 0.0% | Pending SHC_3BB0A8C1_0x0047A9E0 | 0.0% | Pending