From 5f5c27a0782cda67115197f8fe2ca2588b6e4a22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sat, 6 Feb 2021 16:33:10 +0100 Subject: [PATCH] ksys/act: Implement remaining BaseProc functions --- data/uking_functions.csv | 26 +- ...seProc16isSpecialJobTypeENS0_7JobTypeE.bin | Bin 0 -> 104 bytes lib/sead | 2 +- .../ActorSystem/actActorLimiter.cpp | 2 +- .../ActorSystem/actActorLinkConstDataAccess.h | 1 + src/KingSystem/ActorSystem/actBaseProc.cpp | 251 +++++++++++++++++- src/KingSystem/ActorSystem/actBaseProc.h | 25 +- .../ActorSystem/actBaseProcJobHandler.h | 2 +- src/KingSystem/ActorSystem/actBaseProcMgr.h | 17 +- 9 files changed, 294 insertions(+), 32 deletions(-) create mode 100644 expected/_ZN4ksys3act8BaseProc16isSpecialJobTypeENS0_7JobTypeE.bin diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 40b5d769..a3b50d34 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -91693,32 +91693,32 @@ 0x00000071011b9f84,ActorBase::startPreparingForPreDelete_,108,_ZN4ksys3act8BaseProc27startPreparingForPreDelete_Ev! 0x00000071011b9ff0,ActorBase::free,96,_ZN4ksys3act8BaseProc9destruct_Ei 0x00000071011ba050,ActorBase::requestPreDelete,324,_ZN4ksys3act8BaseProc16processPreDeleteEv -0x00000071011ba194,ActorBase::freeLinkData,24, +0x00000071011ba194,ActorBase::freeLinkData,24,_ZN4ksys3act8BaseProc12freeLinkDataEv 0x00000071011ba1ac,ActorBase::isSpecialJobType,84,_ZN4ksys3act8BaseProc17isSpecialJobType_ENS0_7JobTypeE -0x00000071011ba200,ActorBase::x,112, +0x00000071011ba200,ActorBase::x,112,_ZN4ksys3act8BaseProc16isSpecialJobTypeENS0_7JobTypeE 0x00000071011ba270,ActorBase::queueExtraJobPush,68,_ZN4ksys3act8BaseProc18queueExtraJobPush_ENS0_7JobTypeE -0x00000071011ba2b4,ActorBase::shouldSkipJobPush,144, +0x00000071011ba2b4,ActorBase::shouldSkipJobPush,144,_ZN4ksys3act8BaseProc17shouldSkipJobPushENS0_7JobTypeE 0x00000071011ba344,ActorBase::getConnectedCalcParent,32,_ZNK4ksys3act8BaseProc22getConnectedCalcParentEv -0x00000071011ba364,ActorBase::jobInvoked,564, +0x00000071011ba364,ActorBase::jobInvoked,564,_ZN4ksys3act8BaseProc10jobInvokedENS0_7JobTypeE 0x00000071011ba598,ActorBase::updateState,1076,_ZN4ksys3act8BaseProc18processStateUpdateEh! 0x00000071011ba9cc,ActorBase::afterUpdateState,48,_ZN4ksys3act8BaseProc17afterUpdateState_Ev 0x00000071011BA9FC,_ZN4ksys3act8BaseProc17x00000071011ba9fcEv,0xBC,_ZN4ksys3act8BaseProc17x00000071011ba9fcEv -0x00000071011baab8,ActorBase::setProcStateFlag,124, -0x00000071011bab34,ActorBase::acquire,196, +0x00000071011baab8,ActorBase::setProcStateFlag,124,_ZN4ksys3act8BaseProc12setStateFlagEj +0x00000071011bab34,ActorBase::acquire,196,_ZN4ksys3act8BaseProc7acquireERNS0_24ActorLinkConstDataAccessE 0x00000071011babf8,ActorBase::release,36,_ZN4ksys3act8BaseProc7releaseEv -0x00000071011bac1c,ActorBase::doDelete,244, +0x00000071011bac1c,ActorBase::doDelete,244,_ZN4ksys3act8BaseProc12startDelete_Ev 0x00000071011bad10,ActorBase::preDelete,164,_ZN4ksys3act8BaseProc11doPreDeleteEPb -0x00000071011badb4,ActorBase::setJobPriority,288, -0x00000071011baed4,ActorBase::setJobPriority2,288, -0x00000071011baff4,ActorBase::sleep,308, -0x00000071011bb128,ActorBase::wakeUp,484, +0x00000071011badb4,ActorBase::setJobPriority,288,_ZN4ksys3act8BaseProc14setJobPriorityEhNS0_7JobTypeE +0x00000071011baed4,ActorBase::setJobPriority2,288,_ZN4ksys3act8BaseProc15setJobPriority2EhNS0_7JobTypeE +0x00000071011baff4,ActorBase::sleep,308,_ZN4ksys3act8BaseProc5sleepENS1_15SleepWakeReasonE +0x00000071011bb128,ActorBase::wakeUp,484,_ZN4ksys3act8BaseProc6wakeUpENS1_15SleepWakeReasonE 0x00000071011bb30c,ActorBase::getConnectedCalcChild,32,_ZNK4ksys3act8BaseProc21getConnectedCalcChildEv 0x00000071011bb32c,ActorBase::setConnectedCalcChild,248,_ZN4ksys3act8BaseProc21setConnectedCalcChildEPS1_b 0x00000071011bb424,ActorBase::setConnectedCalcParent,248,_ZN4ksys3act8BaseProc22setConnectedCalcParentEPS1_b 0x00000071011bb51c,ActorBase::resetConnectedCalcChild,188,_ZN4ksys3act8BaseProc23resetConnectedCalcChildEb 0x00000071011bb5d8,ActorBase::resetConnectedCalcParent,188,_ZN4ksys3act8BaseProc24resetConnectedCalcParentEb -0x00000071011bb694,sub_71011BB694,12, -0x00000071011bb6a0,ActorBase::setCreatePriorityState2,12, +0x00000071011bb694,sub_71011BB694,12,_ZN4ksys3act8BaseProc23setCreatePriorityState1Ev +0x00000071011bb6a0,ActorBase::setCreatePriorityState2,12,_ZN4ksys3act8BaseProc23setCreatePriorityState2Ev 0x00000071011bb6ac,ActorBase::rtti1,112,_ZNK4ksys3act8BaseProc27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE 0x00000071011bb71c,ActorBase::rtti2,92,_ZNK4ksys3act8BaseProc18getRuntimeTypeInfoEv 0x00000071011bb778,_ZN4ksys3act8BaseProc20prepareForPreDelete_Ev,8,_ZN4ksys3act8BaseProc20prepareForPreDelete_Ev diff --git a/expected/_ZN4ksys3act8BaseProc16isSpecialJobTypeENS0_7JobTypeE.bin b/expected/_ZN4ksys3act8BaseProc16isSpecialJobTypeENS0_7JobTypeE.bin new file mode 100644 index 0000000000000000000000000000000000000000..11fc42ab1d482670784b263dd50b601dbcc5f1a4 GIT binary patch literal 104 zcmez3zi;K=YQ~j+of#&6VP;s>!Q}9hBhumLXJ$q%21fg92@DJ-511K@co`T(rZ_qL z3}Iy00#oyVS!C5iW?`^8c@~Dk1ONVq$a63h9t6@4nB}$pRy(fz;(utx0p|E?05wV} AYybcN literal 0 HcmV?d00001 diff --git a/lib/sead b/lib/sead index ac3d8764..f85c9358 160000 --- a/lib/sead +++ b/lib/sead @@ -1 +1 @@ -Subproject commit ac3d8764bba7dedeea62ce0d6841b0f801111321 +Subproject commit f85c9358c5f043bd5e6febecd5c31f55e7f5018e diff --git a/src/KingSystem/ActorSystem/actActorLimiter.cpp b/src/KingSystem/ActorSystem/actActorLimiter.cpp index 631ff074..ad805d7e 100644 --- a/src/KingSystem/ActorSystem/actActorLimiter.cpp +++ b/src/KingSystem/ActorSystem/actActorLimiter.cpp @@ -46,7 +46,7 @@ bool ActorLimiter::List::addActor(BaseProc* proc, bool allow_evicting_old_actors acquireActor(&target_node->proc_link, &acc); } - acc.deleteEx(BaseProc::DeleteReason::_15); + acc.deleteEx(BaseProc::DeleteReason::_f); } if (target_node == nullptr) diff --git a/src/KingSystem/ActorSystem/actActorLinkConstDataAccess.h b/src/KingSystem/ActorSystem/actActorLinkConstDataAccess.h index 9bc70714..27b39190 100644 --- a/src/KingSystem/ActorSystem/actActorLinkConstDataAccess.h +++ b/src/KingSystem/ActorSystem/actActorLinkConstDataAccess.h @@ -38,6 +38,7 @@ public: protected: friend class ActorConstDataAccess; + friend class BaseProc; bool mAcquired = false; BaseProc* mProc = nullptr; diff --git a/src/KingSystem/ActorSystem/actBaseProc.cpp b/src/KingSystem/ActorSystem/actBaseProc.cpp index b0a94ed3..b6fc7f16 100644 --- a/src/KingSystem/ActorSystem/actBaseProc.cpp +++ b/src/KingSystem/ActorSystem/actBaseProc.cpp @@ -1,4 +1,7 @@ #include "KingSystem/ActorSystem/actBaseProc.h" +#include +#include