mirror of https://github.com/zeldaret/botw.git
ksys/act: Fix pre-delete function signature
Tiny differences you only notice when doing matching decomp.
This commit is contained in:
parent
b90017bf3b
commit
1e4f1902c0
|
@ -116,7 +116,7 @@
|
||||||
0x0000007100001690,Armor::m1,36,
|
0x0000007100001690,Armor::m1,36,
|
||||||
0x00000071000016b4,Armor::m2,8,
|
0x00000071000016b4,Armor::m2,8,
|
||||||
0x00000071000016bc,Armor::m3,92,
|
0x00000071000016bc,Armor::m3,92,
|
||||||
0x0000007100001718,ActorBase::preDelete2,4,_ZN4ksys3act8BaseProc11preDelete2_EPb
|
0x0000007100001718,ActorBase::preDelete2,4,_ZN4ksys3act8BaseProc11preDelete2_ERKNS1_12PreDeleteArgE
|
||||||
0x000000710000171c,ArmorBase::m31,4,
|
0x000000710000171c,ArmorBase::m31,4,
|
||||||
0x0000007100001720,Actor::m36,56,
|
0x0000007100001720,Actor::m36,56,
|
||||||
0x0000007100001758,Actor::m48,8,
|
0x0000007100001758,Actor::m48,8,
|
||||||
|
@ -73639,7 +73639,7 @@
|
||||||
0x0000007100d39f7c,ActorBase::shouldClearStateFlag4000,8,_ZN4ksys3act8BaseProc25shouldClearStateFlag4000_Ev
|
0x0000007100d39f7c,ActorBase::shouldClearStateFlag4000,8,_ZN4ksys3act8BaseProc25shouldClearStateFlag4000_Ev
|
||||||
0x0000007100d39f84,ActorBase::onEnterDelete,4,_ZN4ksys3act8BaseProc14onEnterDelete_Ev
|
0x0000007100d39f84,ActorBase::onEnterDelete,4,_ZN4ksys3act8BaseProc14onEnterDelete_Ev
|
||||||
0x0000007100d39f88,ActorBase::onEnterSleep,4,_ZN4ksys3act8BaseProc13onEnterSleep_Ev
|
0x0000007100d39f88,ActorBase::onEnterSleep,4,_ZN4ksys3act8BaseProc13onEnterSleep_Ev
|
||||||
0x0000007100d39f8c,ActorBase::preDelete3,4,_ZN4ksys3act8BaseProc11preDelete3_EPb
|
0x0000007100d39f8c,ActorBase::preDelete3,4,_ZN4ksys3act8BaseProc11preDelete3_ERKNS1_12PreDeleteArgE
|
||||||
0x0000007100d39f90,ActorBase::preDelete1,4,_ZN4ksys3act8BaseProc11preDelete1_Ev
|
0x0000007100d39f90,ActorBase::preDelete1,4,_ZN4ksys3act8BaseProc11preDelete1_Ev
|
||||||
0x0000007100d39f94,ActorBase::prePushJob1,4,_ZN4ksys3act8BaseProc11onJobPush1_ENS0_7JobTypeE
|
0x0000007100d39f94,ActorBase::prePushJob1,4,_ZN4ksys3act8BaseProc11onJobPush1_ENS0_7JobTypeE
|
||||||
0x0000007100d39f98,j__ZdlPv_844,4,
|
0x0000007100d39f98,j__ZdlPv_844,4,
|
||||||
|
@ -91707,7 +91707,7 @@
|
||||||
0x00000071011bab34,ActorBase::acquire,196,_ZN4ksys3act8BaseProc7acquireERNS0_24ActorLinkConstDataAccessE
|
0x00000071011bab34,ActorBase::acquire,196,_ZN4ksys3act8BaseProc7acquireERNS0_24ActorLinkConstDataAccessE
|
||||||
0x00000071011babf8,ActorBase::release,36,_ZN4ksys3act8BaseProc7releaseEv
|
0x00000071011babf8,ActorBase::release,36,_ZN4ksys3act8BaseProc7releaseEv
|
||||||
0x00000071011bac1c,ActorBase::doDelete,244,_ZN4ksys3act8BaseProc12startDelete_Ev
|
0x00000071011bac1c,ActorBase::doDelete,244,_ZN4ksys3act8BaseProc12startDelete_Ev
|
||||||
0x00000071011bad10,ActorBase::preDelete,164,_ZN4ksys3act8BaseProc11doPreDeleteEPb
|
0x00000071011bad10,ActorBase::preDelete,164,_ZN4ksys3act8BaseProc11doPreDeleteERKNS1_12PreDeleteArgE
|
||||||
0x00000071011badb4,ActorBase::setJobPriority,288,_ZN4ksys3act8BaseProc14setJobPriorityEhNS0_7JobTypeE
|
0x00000071011badb4,ActorBase::setJobPriority,288,_ZN4ksys3act8BaseProc14setJobPriorityEhNS0_7JobTypeE
|
||||||
0x00000071011baed4,ActorBase::setJobPriority2,288,_ZN4ksys3act8BaseProc15setJobPriority2EhNS0_7JobTypeE
|
0x00000071011baed4,ActorBase::setJobPriority2,288,_ZN4ksys3act8BaseProc15setJobPriority2EhNS0_7JobTypeE
|
||||||
0x00000071011baff4,ActorBase::sleep,308,_ZN4ksys3act8BaseProc5sleepENS1_15SleepWakeReasonE
|
0x00000071011baff4,ActorBase::sleep,308,_ZN4ksys3act8BaseProc5sleepENS1_15SleepWakeReasonE
|
||||||
|
|
Can't render this file because it is too large.
|
|
@ -189,7 +189,7 @@ void BaseProc::onEnterDelete_() {}
|
||||||
|
|
||||||
void BaseProc::onEnterSleep_() {}
|
void BaseProc::onEnterSleep_() {}
|
||||||
|
|
||||||
void BaseProc::preDelete3_(bool*) {}
|
void BaseProc::preDelete3_(const PreDeleteArg& arg) {}
|
||||||
|
|
||||||
bool BaseProc::prepareInit_(sead::Heap*, BaseProc::PrepareArg&) {
|
bool BaseProc::prepareInit_(sead::Heap*, BaseProc::PrepareArg&) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -197,7 +197,7 @@ bool BaseProc::prepareInit_(sead::Heap*, BaseProc::PrepareArg&) {
|
||||||
|
|
||||||
void BaseProc::onPreDeleteStart_(PrepareArg&) {}
|
void BaseProc::onPreDeleteStart_(PrepareArg&) {}
|
||||||
|
|
||||||
void BaseProc::preDelete2_(bool*) {}
|
void BaseProc::preDelete2_(const PreDeleteArg& arg) {}
|
||||||
|
|
||||||
void BaseProc::preDelete1_() {}
|
void BaseProc::preDelete1_() {}
|
||||||
|
|
||||||
|
@ -475,12 +475,12 @@ void BaseProc::freeLinkData() {
|
||||||
BaseProcLinkDataMgr::instance()->releaseLink(this);
|
BaseProcLinkDataMgr::instance()->releaseLink(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseProc::doPreDelete(bool* do_not_destruct_immediately) {
|
void BaseProc::doPreDelete(const PreDeleteArg& arg) {
|
||||||
preDelete1_();
|
preDelete1_();
|
||||||
preDelete2_(do_not_destruct_immediately);
|
preDelete2_(arg);
|
||||||
preDelete3_(do_not_destruct_immediately);
|
preDelete3_(arg);
|
||||||
|
|
||||||
if (*do_not_destruct_immediately)
|
if (arg.do_not_destruct_immediately)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mFlags.set(Flags::Destructed);
|
mFlags.set(Flags::Destructed);
|
||||||
|
|
|
@ -69,6 +69,10 @@ public:
|
||||||
};
|
};
|
||||||
KSYS_CHECK_SIZE_NX150(CreateArg, 0x28);
|
KSYS_CHECK_SIZE_NX150(CreateArg, 0x28);
|
||||||
|
|
||||||
|
struct PreDeleteArg {
|
||||||
|
bool do_not_destruct_immediately = false;
|
||||||
|
};
|
||||||
|
|
||||||
explicit BaseProc(const CreateArg& arg);
|
explicit BaseProc(const CreateArg& arg);
|
||||||
virtual ~BaseProc();
|
virtual ~BaseProc();
|
||||||
|
|
||||||
|
@ -127,6 +131,9 @@ public:
|
||||||
onJobPush2_(type);
|
onJobPush2_(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Actually pre-delete the actor. Called from BaseProcDeleter.
|
||||||
|
void doPreDelete(const PreDeleteArg& arg);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
friend class BaseProcLinkDataMgr;
|
friend class BaseProcLinkDataMgr;
|
||||||
friend class BaseProcMgr;
|
friend class BaseProcMgr;
|
||||||
|
@ -232,14 +239,14 @@ protected:
|
||||||
virtual void onEnterSleep_();
|
virtual void onEnterSleep_();
|
||||||
|
|
||||||
/// Called to actually pre-delete (third and final callback).
|
/// Called to actually pre-delete (third and final callback).
|
||||||
virtual void preDelete3_(bool* do_not_destruct_immediately);
|
virtual void preDelete3_(const PreDeleteArg& arg);
|
||||||
|
|
||||||
virtual bool prepareInit_(sead::Heap* heap, PrepareArg& arg);
|
virtual bool prepareInit_(sead::Heap* heap, PrepareArg& arg);
|
||||||
|
|
||||||
/// Called when pre-delete actually starts (after preparation, before requesting it).
|
/// Called when pre-delete actually starts (after preparation, before requesting it).
|
||||||
virtual void onPreDeleteStart_(PrepareArg&);
|
virtual void onPreDeleteStart_(PrepareArg&);
|
||||||
/// Called to actually pre-delete (second callback).
|
/// Called to actually pre-delete (second callback).
|
||||||
virtual void preDelete2_(bool* do_not_destruct_immediately);
|
virtual void preDelete2_(const PreDeleteArg& arg);
|
||||||
/// Called to actually pre-delete (first callback).
|
/// Called to actually pre-delete (first callback).
|
||||||
virtual void preDelete1_();
|
virtual void preDelete1_();
|
||||||
|
|
||||||
|
@ -258,8 +265,6 @@ protected:
|
||||||
|
|
||||||
bool processStateUpdate(u8 counter);
|
bool processStateUpdate(u8 counter);
|
||||||
void processPreDelete();
|
void processPreDelete();
|
||||||
/// Actually pre-delete the actor. Called from BaseProcDeleter.
|
|
||||||
void doPreDelete(bool* do_not_destruct_immediately);
|
|
||||||
void startDelete_();
|
void startDelete_();
|
||||||
|
|
||||||
/// Called from BaseProcMgr when a job for this process is invoked.
|
/// Called from BaseProcMgr when a job for this process is invoked.
|
||||||
|
|
Loading…
Reference in New Issue