mirror of
https://github.com/zeldaret/botw
synced 2026-05-30 08:56:30 -04:00
BaseProc child connection functions
This commit is contained in:
committed by
Léo Lam
parent
ff99d77635
commit
a49164a85f
@@ -449,4 +449,54 @@ bool BaseProc::setConnectedCalcParent(BaseProc* parent, bool delete_parent_on_de
|
||||
return true;
|
||||
}
|
||||
|
||||
void BaseProc::resetConnectedCalcParent(bool clear_existing_set_request) {
|
||||
if (isDeletedOrDeleting())
|
||||
return;
|
||||
|
||||
if (clear_existing_set_request) {
|
||||
mStateFlags.reset(StateFlags::RequestSetParent);
|
||||
mConnectedCalcParentNew = nullptr;
|
||||
}
|
||||
|
||||
if (mConnectedCalcParent)
|
||||
BaseProcMgr::instance()->addToUpdateStateList(*this, StateFlags::RequestResetParent);
|
||||
}
|
||||
|
||||
BaseProc* BaseProc::getConnectedCalcChild() const {
|
||||
if (!mConnectedCalcChild || mConnectedCalcChild->mState == State::Delete)
|
||||
return nullptr;
|
||||
|
||||
return mConnectedCalcChild;
|
||||
}
|
||||
|
||||
bool BaseProc::setConnectedCalcChild(BaseProc* child, bool delete_child_on_delete) {
|
||||
if (child == nullptr)
|
||||
return false;
|
||||
|
||||
if (isDeletedOrDeleting() || child->isDeletedOrDeleting())
|
||||
return false;
|
||||
|
||||
if (BaseProcMgr::instance()->addToUpdateStateList(*this, StateFlags::RequestSetChild))
|
||||
return false;
|
||||
|
||||
mConnectedCalcChildNew = child;
|
||||
|
||||
mFlags.change(Flags::DeleteChildOnDelete, delete_child_on_delete);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void BaseProc::resetConnectedCalcChild(bool clear_existing_set_request) {
|
||||
if (isDeletedOrDeleting())
|
||||
return;
|
||||
|
||||
if (clear_existing_set_request) {
|
||||
mStateFlags.reset(StateFlags::RequestSetChild);
|
||||
mConnectedCalcChildNew = nullptr;
|
||||
}
|
||||
|
||||
if (mConnectedCalcChild)
|
||||
BaseProcMgr::instance()->addToUpdateStateList(*this, StateFlags::RequestResetChild);
|
||||
}
|
||||
|
||||
} // namespace ksys::act
|
||||
|
||||
Reference in New Issue
Block a user