From b79feecc85de3765b98bdb3e0ac00e44485c132b Mon Sep 17 00:00:00 2001 From: sourcehold Date: Tue, 12 May 2026 23:55:40 +0200 Subject: [PATCH] reimplement: SHC_3BB0A8C1_0x004CB120 100% --- src/OpenSHC/AI/AICState.func.hpp | 2 +- .../AI/AICState/getAIBuildInterval.cpp | 20 +++++++++++++++++++ status/addresses-SHC-3BB0A8C1.txt | 2 +- 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 src/OpenSHC/AI/AICState/getAIBuildInterval.cpp diff --git a/src/OpenSHC/AI/AICState.func.hpp b/src/OpenSHC/AI/AICState.func.hpp index d7786ea..7b09ef5 100644 --- a/src/OpenSHC/AI/AICState.func.hpp +++ b/src/OpenSHC/AI/AICState.func.hpp @@ -108,7 +108,7 @@ namespace AI { setFoodBuyPlan; MACRO_FUNCTION_RESOLVER( - int (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CB120, &AICState::getAIBuildInterval) + int (AICState::*)(int), true, Address::SHC_3BB0A8C1_0x004CB120, &AICState::getAIBuildInterval) getAIBuildInterval; MACRO_FUNCTION_RESOLVER( diff --git a/src/OpenSHC/AI/AICState/getAIBuildInterval.cpp b/src/OpenSHC/AI/AICState/getAIBuildInterval.cpp new file mode 100644 index 0000000..d4c71b2 --- /dev/null +++ b/src/OpenSHC/AI/AICState/getAIBuildInterval.cpp @@ -0,0 +1,20 @@ +#include "OpenSHC/AI/AICState.hpp" +#include "OpenSHC/Globals/DAT_GameState.hpp" +namespace OpenSHC { +namespace AI { + + // FUNCTION: STRONGHOLDCRUSADER 0x004cb120 + int AICState::getAIBuildInterval(int playerID) + + { + int _aiType; + + _aiType = DAT_GameState::ptr->playerDataArray[playerID].aiType; + if (_aiType == 0) { + return _aiType; + } + + return this->DAT_AICArray[(_aiType - 1)].buildInterval; + } +} +} diff --git a/status/addresses-SHC-3BB0A8C1.txt b/status/addresses-SHC-3BB0A8C1.txt index f1a6853..dd40b88 100644 --- a/status/addresses-SHC-3BB0A8C1.txt +++ b/status/addresses-SHC-3BB0A8C1.txt @@ -16807,7 +16807,7 @@ SHC_3BB0A8C1_0x004CAD10 | 0.0% | Pending SHC_3BB0A8C1_0x004CAE20 | 0.0% | Pending SHC_3BB0A8C1_0x004CAEA0 | 0.0% | Pending SHC_3BB0A8C1_0x004CB060 | 0.0% | Pending -SHC_3BB0A8C1_0x004CB120 | 0.0% | Pending +SHC_3BB0A8C1_0x004CB120 | 100.0% | Reimplemented SHC_3BB0A8C1_0x004CB150 | 0.0% | Pending SHC_3BB0A8C1_0x004CB180 | 0.0% | Pending SHC_3BB0A8C1_0x004CB1B0 | 0.0% | Pending