diff --git a/data/uking_functions.csv b/data/uking_functions.csv index b89a8d30..c426b961 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -73024,7 +73024,7 @@ Address,Quality,Size,Name 0x0000007100d1679c,O,000516,_ZN4ksys3act2ai10ActionBase8takeOverEPS2_RKN4sead14SafeStringBaseIcEE 0x0000007100d169a0,O,000188,_ZNK4ksys3act2ai10ActionBase10copyParamsEPNS1_15InlineParamPackEb 0x0000007100d16a5c,O,000084,_ZN4ksys3act2ai10ActionBase5leaveEv -0x0000007100d16ab0,O,000032,_ZNK4ksys3act2ai10ActionBase16setRootAiFlagBitEi +0x0000007100d16ab0,O,000032,_ZNK4ksys3act2ai10ActionBase13setRootAiFlagENS1_10RootAiFlagE 0x0000007100d16ad0,O,000068,_ZN4ksys3act2ai10ActionBase8reenter_EPS2_b 0x0000007100d16b14,O,000240,_ZN4ksys3act2ai10ActionBase22updateBehaviorsOnLeaveEv 0x0000007100d16c04,O,000060,_ZN4ksys3act2ai10ActionBase7oneShotEPNS1_15InlineParamPackE @@ -73038,8 +73038,8 @@ Address,Quality,Size,Name 0x0000007100d16dc4,O,000020,_ZN4ksys3act2ai10ActionBase9setFailedEv 0x0000007100d16dd8,O,000392,_ZNK4ksys3act2ai10ActionBase14getCurrentNameEPN4sead22BufferedSafeStringBaseIcEEPS2_ 0x0000007100d16f60,O,000012,_ZNK4ksys3act2ai10ActionBase9getParamsEPNS1_18ParamNameTypePairsEb -0x0000007100d16f6c,O,000032,_ZNK4ksys3act2ai10ActionBase18resetRootAiFlagBitEi -0x0000007100d16f8c,O,000036,_ZNK4ksys3act2ai10ActionBase18testRootAiFlag2BitEi +0x0000007100d16f6c,O,000032,_ZNK4ksys3act2ai10ActionBase15resetRootAiFlagENS1_10RootAiFlagE +0x0000007100d16f8c,O,000036,_ZNK4ksys3act2ai10ActionBase15testRootAiFlag2ENS1_11RootAiFlag2E 0x0000007100d16fb0,O,000116,_ZNK4ksys3act2ai10ActionBase14getStaticParamIPKcEEbPT_RKN4sead14SafeStringBaseIcEE 0x0000007100d17024,O,000116,_ZNK4ksys3act2ai10ActionBase14getStaticParamIN4sead14SafeStringBaseIcEEEEbPT_RKS6_ 0x0000007100d17098,O,000116,_ZNK4ksys3act2ai10ActionBase14getStaticParamIPKiEEbPT_RKN4sead14SafeStringBaseIcEE diff --git a/src/Game/AI/AI/aiForkAI.cpp b/src/Game/AI/AI/aiForkAI.cpp index e12073e8..e456dbb4 100644 --- a/src/Game/AI/AI/aiForkAI.cpp +++ b/src/Game/AI/AI/aiForkAI.cpp @@ -22,7 +22,7 @@ void ForkAI::enter_(ksys::act::ai::InlineParamPack* params) { SEAD_WARN("ForkAI::enter_: no children"); changeChildIdx(num_children - 1); } - setRootAiFlag(ksys::act::ai::RootAiFlag::_100); + setRootAiFlag(ksys::act::ai::RootAiFlag::_8); } bool ForkAI::reenter(ksys::act::ai::ActionBase* other, const sead::SafeString& context) { diff --git a/src/KingSystem/ActorSystem/actAiActionBase.cpp b/src/KingSystem/ActorSystem/actAiActionBase.cpp index 1dc0773d..81320ef1 100644 --- a/src/KingSystem/ActorSystem/actAiActionBase.cpp +++ b/src/KingSystem/ActorSystem/actAiActionBase.cpp @@ -146,7 +146,7 @@ bool ActionBase::takeOver(ActionBase* src, const sead::SafeString& context) { ret = reenter(src, context); } - mActor->getRootAi()->_16c.set(RootAiFlag::_100); + setRootAiFlag(RootAiFlag::_8); return ret; } @@ -175,8 +175,8 @@ void ActionBase::leave() { postLeave(); } -void ActionBase::setRootAiFlagBit(int bit) const { - mActor->getRootAi()->_16c.set(RootAiFlag(1u << bit)); +void ActionBase::setRootAiFlag(RootAiFlag flag) const { + mActor->getRootAi()->_16c.setBit(int(flag)); } bool ActionBase::reenter_(ActionBase* other, bool x) { @@ -267,12 +267,12 @@ void ActionBase::getParams(ParamNameTypePairs* pairs, bool update_use_count) con mParams.getPairs(pairs, update_use_count); } -void ActionBase::resetRootAiFlagBit(int bit) const { - mActor->getRootAi()->_16c.reset(RootAiFlag(1u << bit)); +void ActionBase::resetRootAiFlag(RootAiFlag flag) const { + mActor->getRootAi()->_16c.resetBit(int(flag)); } -bool ActionBase::testRootAiFlag2Bit(int bit) const { - return mActor->getRootAi()->_16e.isOn(RootAiFlag2(1u << bit)); +bool ActionBase::testRootAiFlag2(RootAiFlag2 flag) const { + return mActor->getRootAi()->_16e.isOnBit(int(flag)); } template diff --git a/src/KingSystem/ActorSystem/actAiActionBase.h b/src/KingSystem/ActorSystem/actAiActionBase.h index db47be42..3dbecd22 100644 --- a/src/KingSystem/ActorSystem/actAiActionBase.h +++ b/src/KingSystem/ActorSystem/actAiActionBase.h @@ -35,8 +35,8 @@ enum class ActionType { Action = 1, }; -enum class RootAiFlag : u16; -enum class RootAiFlag2 : u16; +enum class RootAiFlag; +enum class RootAiFlag2; sead::SafeString* getDefaultString(); s32* getDefaultInt(); @@ -146,16 +146,9 @@ protected: void setFinished(); void setFailed(); - void setRootAiFlagBit(int bit) const; - void setRootAiFlag(RootAiFlag flag) const { setRootAiFlagBit(sead::log2(u32(flag))); } - - void resetRootAiFlagBit(int bit) const; - void resetRootAiFlag(RootAiFlag flag) const { resetRootAiFlagBit(sead::log2(u32(flag))); } - - bool testRootAiFlag2Bit(int bit) const; - bool testRootAiFlag2(RootAiFlag2 flag) const { - return testRootAiFlag2Bit(sead::log2(u32(flag))); - } + void setRootAiFlag(RootAiFlag flag) const; + void resetRootAiFlag(RootAiFlag flag) const; + bool testRootAiFlag2(RootAiFlag2 flag) const; void resetFlags() { mFlags.reset(Flag::Failed); diff --git a/src/KingSystem/ActorSystem/actAiAi.cpp b/src/KingSystem/ActorSystem/actAiAi.cpp index 632e3873..26949474 100644 --- a/src/KingSystem/ActorSystem/actAiAi.cpp +++ b/src/KingSystem/ActorSystem/actAiAi.cpp @@ -138,7 +138,7 @@ void Ai::changeChild(u32 idx, InlineParamPack* params) { if (mChildren[idx]) mChildren[idx]->enter(pack, getName()); - setRootAiFlag(RootAiFlag::_100); + setRootAiFlag(RootAiFlag::_8); }; if (mFlags.isOff(Flag::DynamicParamChild) || params) { diff --git a/src/KingSystem/ActorSystem/actAiRoot.h b/src/KingSystem/ActorSystem/actAiRoot.h index 1365b8c2..c9b61df6 100644 --- a/src/KingSystem/ActorSystem/actAiRoot.h +++ b/src/KingSystem/ActorSystem/actAiRoot.h @@ -1,6 +1,6 @@ #pragma once -#include +#include #include #include "KingSystem/ActorSystem/actAiAction.h" #include "KingSystem/ActorSystem/actAiAi.h" @@ -17,12 +17,12 @@ public: virtual ~IRootAi() = default; }; -enum class RootAiFlag : u16 { - _100 = 0x100, // 8 +enum class RootAiFlag { + _8 = 8, }; // TODO: rename -enum class RootAiFlag2 : u16 {}; +enum class RootAiFlag2 {}; class RootAi : public Ai, public IRootAi { SEAD_RTTI_OVERRIDE(RootAi, Ai) @@ -102,8 +102,10 @@ private: void* _160{}; // TODO: is this really an atomic? sead::Atomic _168 = 1.0; - sead::TypedBitFlag _16c; - sead::TypedBitFlag _16e; + // RootAiFlag + sead::BitFlag16 _16c; + // RootAiFlag2 + sead::BitFlag16 _16e; ParamPack mMapUnitParams; ParamPack mAiTreeParams; };