ksys/act: Clean up RootAiFlag/RootAiFlag2 definitions and usage

This commit is contained in:
Léo Lam 2022-12-22 13:52:29 +01:00
parent 4df2370639
commit 2616802996
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
6 changed files with 25 additions and 30 deletions

View File

@ -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

Can't render this file because it is too large.

View File

@ -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) {

View File

@ -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 <typename T>

View File

@ -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);

View File

@ -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) {

View File

@ -1,6 +1,6 @@
#pragma once
#include <prim/seadTypedBitFlag.h>
#include <prim/seadBitFlag.h>
#include <thread/seadAtomic.h>
#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<f32> _168 = 1.0;
sead::TypedBitFlag<RootAiFlag> _16c;
sead::TypedBitFlag<RootAiFlag2> _16e;
// RootAiFlag
sead::BitFlag16 _16c;
// RootAiFlag2
sead::BitFlag16 _16e;
ParamPack mMapUnitParams;
ParamPack mAiTreeParams;
};