diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 39a1ba94..2a129d9a 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -89474,7 +89474,7 @@ 0x00000071011BA9FC,_ZN4ksys3act8BaseProc17x00000071011ba9fcEv,0xBC,_ZN4ksys3act8BaseProc17x00000071011ba9fcEv 0x00000071011baab8,ActorBase::setProcStateFlag,124, 0x00000071011bab34,ActorBase::acquire,196, -0x00000071011babf8,ActorBase::release,36, +0x00000071011babf8,ActorBase::release,36,_ZN4ksys3act8BaseProc7releaseEv 0x00000071011bac1c,ActorBase::doDelete,244, 0x00000071011bad10,ActorBase::preDelete,164,_ZN4ksys3act8BaseProc11doPreDeleteEPb 0x00000071011badb4,ActorBase::setJobPriority,288, diff --git a/src/KingSystem/ActorSystem/actBaseProc.cpp b/src/KingSystem/ActorSystem/actBaseProc.cpp index 2748f667..b0a94ed3 100644 --- a/src/KingSystem/ActorSystem/actBaseProc.cpp +++ b/src/KingSystem/ActorSystem/actBaseProc.cpp @@ -425,6 +425,11 @@ bool BaseProc::x00000071011ba9fc() { return true; } +void BaseProc::release() { + if (mRefCount >= 1) + mRefCount--; +} + BaseProc* BaseProc::getConnectedCalcParent() const { if (mConnectedCalcParent == nullptr || mConnectedCalcParent->mState == State::Delete) return nullptr; diff --git a/src/KingSystem/ActorSystem/actBaseProc.h b/src/KingSystem/ActorSystem/actBaseProc.h index 4d2675f0..1c9aa7cc 100644 --- a/src/KingSystem/ActorSystem/actBaseProc.h +++ b/src/KingSystem/ActorSystem/actBaseProc.h @@ -282,7 +282,7 @@ protected: sead::ListNode mDeleteListNode; BaseProcMapNode mMapNode{this}; BaseProcUnit* mProcUnit = nullptr; - sead::Atomic mRefCount = 0; + sead::Atomic mRefCount = 0; private: void unlinkProcUnit_();