From dc2c6449b8e43ea785c6fe81512ae91b2f23fdd8 Mon Sep 17 00:00:00 2001 From: TheRedDaemon <66257843+TheRedDaemon@users.noreply.github.com> Date: Sat, 30 May 2026 23:16:14 +0200 Subject: [PATCH] reimplement: SHC_3BB0A8C1_0x0047A130 100% --- .../mapLoadingAndLaunchGameRelated1.cpp | 34 +++++++++++++++++++ src/OpenSHC/Map/AttackInfo.hpp | 4 +-- status/addresses-SHC-3BB0A8C1.txt | 2 +- 3 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 src/OpenSHC/Audio/mss/SoundSystem/mapLoadingAndLaunchGameRelated1.cpp diff --git a/src/OpenSHC/Audio/mss/SoundSystem/mapLoadingAndLaunchGameRelated1.cpp b/src/OpenSHC/Audio/mss/SoundSystem/mapLoadingAndLaunchGameRelated1.cpp new file mode 100644 index 00000000..61133dc7 --- /dev/null +++ b/src/OpenSHC/Audio/mss/SoundSystem/mapLoadingAndLaunchGameRelated1.cpp @@ -0,0 +1,34 @@ +#include "../SoundSystem.func.hpp" + +#include "OpenSHC/Random/RNG.func.hpp" + +#include "OpenSHC/Globals/DAT_GameCore.hpp" +#include "OpenSHC/Globals/DAT_SoundEffectsHelperData1.hpp" +#include "OpenSHC/Globals/DAT_TroopValueState.hpp" +#include "OpenSHC/Globals/SEC_RNG.hpp" + +namespace OpenSHC { +namespace Audio { + namespace MSS { + + // FUNCTION: STRONGHOLDCRUSADER 0x0047A130 + void SoundSystem::mapLoadingAndLaunchGameRelated1() + { + DAT_SoundEffectsHelperData1::ptr->SEC_Section1079.field0_0x0 = 1; + DAT_SoundEffectsHelperData1::ptr->SEC_Section1079.field1_0x4 = SEC_RNG::ptr->currentNumber1 % 4; + MACRO_CALL_MEMBER(Random::RNG_Func::nextRandomNumber1, SEC_RNG::ptr)(); + DAT_SoundEffectsHelperData1::ptr->SEC_Section1079.incrementorUpTo4 = SEC_RNG::ptr->currentNumber1 % 4 + 1; + DAT_GameCore::ptr->cowPoisonTrackerUnk = 0; + DAT_GameCore::ptr->someSoundMatchTime_1 = DAT_GameCore::ptr->mapTimeInTicks; + DAT_GameCore::ptr->battleLevel = 0; + DAT_GameCore::ptr->battleLevel2 = 0; + DAT_GameCore::ptr->field36_0x90 = 0; + DAT_TroopValueState::ptr->attackInfo.field_0x469d8 = 0; + DAT_TroopValueState::ptr->attackInfo.field_0x469e0 = 0; + DAT_TroopValueState::ptr->attackInfo.field128082_0x469dc = 0; + DAT_SoundEffectsHelperData1::ptr->field8_0x3c = 0; + } + + } +} +} diff --git a/src/OpenSHC/Map/AttackInfo.hpp b/src/OpenSHC/Map/AttackInfo.hpp index 2d7caf68..5bd4044a 100644 --- a/src/OpenSHC/Map/AttackInfo.hpp +++ b/src/OpenSHC/Map/AttackInfo.hpp @@ -179,9 +179,9 @@ namespace Map { int unknownSignpostRelatedArray; // 0x0004690C length: 4 undefined1 padding_0x46910[196]; // 0x00046910 length: 196 int field128077_0x469d4; // 0x000469D4 length: 4 - undefined1 padding_0x469d8[4]; // 0x000469D8 length: 4 + int field_0x469d8; // 0x000469D8 length: 4 int field128082_0x469dc; // 0x000469DC length: 4 - undefined1 padding_0x469e0[4]; // 0x000469E0 length: 4 + int field_0x469e0; // 0x000469E0 length: 4 int knights; // 0x000469E4 length: 4 int ranged; // 0x000469E8 length: 4 undefined1 padding_0x469ec[8]; // 0x000469EC length: 8 diff --git a/status/addresses-SHC-3BB0A8C1.txt b/status/addresses-SHC-3BB0A8C1.txt index b68c0701..43024916 100644 --- a/status/addresses-SHC-3BB0A8C1.txt +++ b/status/addresses-SHC-3BB0A8C1.txt @@ -10894,7 +10894,7 @@ SHC_3BB0A8C1_0x00479E60 | 100.0% | Reimplemented SHC_3BB0A8C1_0x00479F30 | 100.0% | Reimplemented SHC_3BB0A8C1_0x00479FC0 | 0.0% | Pending SHC_3BB0A8C1_0x0047A080 | 0.0% | Pending -SHC_3BB0A8C1_0x0047A130 | 0.0% | Pending +SHC_3BB0A8C1_0x0047A130 | 100.0% | Reimplemented, but requires all used structs to be active SHC_3BB0A8C1_0x0047A1B0 | 0.0% | Pending SHC_3BB0A8C1_0x0047A220 | 0.0% | Pending SHC_3BB0A8C1_0x0047A290 | 0.0% | Pending