mirror of https://github.com/zeldaret/botw.git
BaseProc::getConnectedCalcParent
BaseProc::setConnectedCalcParent
This commit is contained in:
parent
fc306aa5f0
commit
ff99d77635
|
@ -89467,7 +89467,7 @@
|
|||
0x00000071011ba200,ActorBase::x,112,
|
||||
0x00000071011ba270,ActorBase::queueExtraJobPush,68,_ZN4ksys3act8BaseProc18queueExtraJobPush_ENS0_7JobTypeE
|
||||
0x00000071011ba2b4,ActorBase::shouldSkipJobPush,144,
|
||||
0x00000071011ba344,ActorBase::getConnectedCalcParent,32,
|
||||
0x00000071011ba344,ActorBase::getConnectedCalcParent,32,_ZNK4ksys3act8BaseProc22getConnectedCalcParentEv
|
||||
0x00000071011ba364,ActorBase::jobInvoked,564,
|
||||
0x00000071011ba598,ActorBase::updateState,1076,_ZN4ksys3act8BaseProc18processStateUpdateEh!
|
||||
0x00000071011ba9cc,ActorBase::afterUpdateState,48,_ZN4ksys3act8BaseProc17afterUpdateState_Ev
|
||||
|
@ -89483,7 +89483,7 @@
|
|||
0x00000071011bb128,ActorBase::wakeUp,484,
|
||||
0x00000071011bb30c,ActorBase::getConnectedCalcChild,32,
|
||||
0x00000071011bb32c,ActorBase::setConnectedCalcChild,248,
|
||||
0x00000071011bb424,ActorBase::setConnectedCalcParent,248,
|
||||
0x00000071011bb424,ActorBase::setConnectedCalcParent,248,_ZN4ksys3act8BaseProc22setConnectedCalcParentEPS1_b
|
||||
0x00000071011bb51c,ActorBase::resetConnectedCalcChild,188,
|
||||
0x00000071011bb5d8,ActorBase::resetConnectedCalcParent,188,
|
||||
0x00000071011bb6a0,ActorBase::setCreatePriorityState2,12,
|
||||
|
|
Can't render this file because it is too large.
|
|
@ -66,7 +66,7 @@ bool BaseProc::deleteLater(DeleteReason reason) {
|
|||
}
|
||||
}
|
||||
|
||||
if (!BaseProcMgr::instance()->addToUpdateStateList(*this))
|
||||
if (!BaseProcMgr::instance()->addToUpdateStateList(*this, StateFlags::RequestDelete))
|
||||
onDeleteRequested_(reason);
|
||||
|
||||
if (!is_high_prio)
|
||||
|
@ -425,4 +425,28 @@ bool BaseProc::x00000071011ba9fc() {
|
|||
return true;
|
||||
}
|
||||
|
||||
BaseProc* BaseProc::getConnectedCalcParent() const {
|
||||
if (mConnectedCalcParent == nullptr || mConnectedCalcParent->mState == State::Delete)
|
||||
return nullptr;
|
||||
|
||||
return mConnectedCalcParent;
|
||||
}
|
||||
|
||||
bool BaseProc::setConnectedCalcParent(BaseProc* parent, bool delete_parent_on_delete) {
|
||||
if (parent == nullptr)
|
||||
return false;
|
||||
|
||||
if (isDeletedOrDeleting() || parent->isDeletedOrDeleting())
|
||||
return false;
|
||||
|
||||
if (BaseProcMgr::instance()->addToUpdateStateList(*this, StateFlags::RequestSetParent))
|
||||
return false;
|
||||
|
||||
mConnectedCalcParentNew = parent;
|
||||
|
||||
mFlags.change(Flags::DeleteParentOnDelete, delete_parent_on_delete);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace ksys::act
|
||||
|
|
|
@ -107,7 +107,7 @@ public:
|
|||
void release();
|
||||
|
||||
BaseProc* getConnectedCalcParent() const;
|
||||
void setConnectedCalcParent(BaseProc* parent, bool delete_parent_on_delete);
|
||||
bool setConnectedCalcParent(BaseProc* parent, bool delete_parent_on_delete);
|
||||
void resetConnectedCalcParent(bool clear_existing_set_request);
|
||||
|
||||
BaseProc* getConnectedCalcChild() const;
|
||||
|
|
|
@ -69,7 +69,7 @@ public:
|
|||
void unregisterProc(BaseProc& proc);
|
||||
|
||||
void addToPreDeleteList(BaseProc& proc);
|
||||
bool addToUpdateStateList(BaseProc& proc);
|
||||
bool addToUpdateStateList(BaseProc& proc, BaseProc::StateFlags flags);
|
||||
void eraseFromPreDeleteList(BaseProc& proc);
|
||||
void eraseFromUpdateStateList(BaseProc& proc);
|
||||
void processPreDeleteList();
|
||||
|
@ -210,11 +210,10 @@ private:
|
|||
};
|
||||
KSYS_CHECK_SIZE_NX150(BaseProcMgr, 0x21a0);
|
||||
|
||||
inline bool BaseProcMgr::addToUpdateStateList(BaseProc& proc) {
|
||||
inline bool BaseProcMgr::addToUpdateStateList(BaseProc& proc, BaseProc::StateFlags flag) {
|
||||
auto lock = sead::makeScopedLock(mProcUpdateStateListCS);
|
||||
doAddToUpdateStateList_(proc);
|
||||
return (proc.mStateFlags.set(BaseProc::StateFlags::RequestDelete) &
|
||||
u32(BaseProc::StateFlags::RequestDelete)) != 0;
|
||||
return (proc.mStateFlags.set(flag) & u32(flag)) != 0;
|
||||
}
|
||||
|
||||
} // namespace ksys::act
|
||||
|
|
Loading…
Reference in New Issue