diff --git a/src/OpenSHC/AI/AIVState/setupAIVMetadata.cpp b/src/OpenSHC/AI/AIVState/setupAIVMetadata.cpp new file mode 100644 index 0000000..02d5f32 --- /dev/null +++ b/src/OpenSHC/AI/AIVState/setupAIVMetadata.cpp @@ -0,0 +1,35 @@ +#include "OpenSHC/AI/AICState.func.hpp" +#include "OpenSHC/AI/AIVState.hpp" +#include "OpenSHC/Globals/DAT_AICState.hpp" +#include "OpenSHC/Globals/DAT_GameState.hpp" + +namespace OpenSHC { +namespace AI { + + // FUNCTION: STRONGHOLDCRUSADER 0x004ECEF0 + int AIVState::setupAIVMetadata(int playerID) + { + for (int aivID = 1; aivID < 9; ++aivID) { + if (this->SEC_AIVS[aivID].playerID != 0) { + continue; + } + + this->SEC_AIVS[aivID].playerID = playerID; + + this->SEC_AIVS[aivID].aiType = DAT_GameState::ptr->playerDataArray[playerID].aiType; + + this->SEC_AIVS[aivID].currentStepGoal = 0; + this->SEC_AIVS[aivID].aivPoorCounter = 0; + this->SEC_AIVS[aivID].aivSubType = 0; + + this->SEC_AIVS[aivID].aivPoorLimit_OR_AIC_buildInterval + = MACRO_CALL_MEMBER(AICState_Func::getAIBuildInterval, DAT_AICState::ptr)(playerID); + + ++this->aivCount; + return aivID; + } + return 0; + } + +} +} diff --git a/status/addresses-SHC-3BB0A8C1.txt b/status/addresses-SHC-3BB0A8C1.txt index 3612033..d05f2c9 100644 --- a/status/addresses-SHC-3BB0A8C1.txt +++ b/status/addresses-SHC-3BB0A8C1.txt @@ -18496,7 +18496,7 @@ SHC_3BB0A8C1_0x004ECDB0 | 0.0% | Pending SHC_3BB0A8C1_0x004ECDE0 | 0.0% | Pending SHC_3BB0A8C1_0x004ECDF0 | 0.0% | Pending SHC_3BB0A8C1_0x004ECE60 | 0.0% | Pending -SHC_3BB0A8C1_0x004ECEF0 | 0.0% | Pending +SHC_3BB0A8C1_0x004ECEF0 | 100.0% | Reimplemented SHC_3BB0A8C1_0x004ECF70 | 0.0% | Pending SHC_3BB0A8C1_0x004ECFE0 | 0.0% | Pending SHC_3BB0A8C1_0x004ED070 | 0.0% | Pending