From 76378caa60cee9373416259d2b53a4abcedfe369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Thu, 17 Sep 2020 17:47:32 +0200 Subject: ksys/act: Add more ActorConstDataAccess functions Implements a couple of simple wrappers around BaseProc member functions --- .../ActorSystem/actActorConstDataAccess.cpp | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'src/KingSystem/ActorSystem/actActorConstDataAccess.cpp') diff --git a/src/KingSystem/ActorSystem/actActorConstDataAccess.cpp b/src/KingSystem/ActorSystem/actActorConstDataAccess.cpp index ff3ccf22..1765c745 100644 --- a/src/KingSystem/ActorSystem/actActorConstDataAccess.cpp +++ b/src/KingSystem/ActorSystem/actActorConstDataAccess.cpp @@ -44,6 +44,43 @@ void ActorConstDataAccess::debugLog(s32, const sead::SafeString&) const { // Intentionally left empty. } +const sead::SafeString& ActorConstDataAccess::getName() const { + auto* proc = getProcIfActor(mProc); + if (!proc) + return sead::SafeString::cEmptyString; + return proc->getName(); +} + +u32 ActorConstDataAccess::getId() const { + auto* proc = getProcIfActor(mProc); + if (!proc) + return 0xffffffff; + return proc->getId(); +} + +bool ActorConstDataAccess::acquireConnectedCalcParent(ActorLinkConstDataAccess* accessor) const { + auto* proc = getProcIfActor(mProc); + if (!proc) + return false; + + accessor->acquire(sead::DynamicCast(proc->getConnectedCalcParent())); + return accessor->mProc != nullptr; +} + +bool ActorConstDataAccess::acquireConnectedCalcChild(ActorLinkConstDataAccess* accessor) const { + auto* proc = getProcIfActor(mProc); + if (!proc) + return false; + + accessor->acquire(sead::DynamicCast(proc->getConnectedCalcChild())); + return accessor->mProc != nullptr; +} + +bool ActorConstDataAccess::hasConnectedCalcParent() const { + auto* proc = getProcIfActor(mProc); + return proc && sead::DynamicCast(proc->getConnectedCalcParent()) != nullptr; +} + bool acquireActor(BaseProcLink* link, ActorConstDataAccess* accessor) { return link->getProcInContext([accessor](BaseProc* proc, bool valid) { if (!proc) { -- cgit v1.2.3