mirror of https://github.com/zeldaret/botw.git
ksys/act: Start adding ai::ActionBase
This commit is contained in:
parent
5a1a488ed3
commit
933811d34a
|
@ -15,7 +15,7 @@ set(CMAKE_CXX_EXTENSIONS OFF)
|
||||||
add_executable(uking)
|
add_executable(uking)
|
||||||
target_include_directories(uking PRIVATE src)
|
target_include_directories(uking PRIVATE src)
|
||||||
target_compile_options(uking PRIVATE -fno-rtti -fno-exceptions)
|
target_compile_options(uking PRIVATE -fno-rtti -fno-exceptions)
|
||||||
target_compile_options(uking PRIVATE -Wall -Wextra -Wdeprecated)
|
target_compile_options(uking PRIVATE -Wall -Wextra -Wdeprecated -Wno-unused-parameter)
|
||||||
target_compile_options(uking PRIVATE -fno-strict-aliasing)
|
target_compile_options(uking PRIVATE -fno-strict-aliasing)
|
||||||
target_compile_options(uking PRIVATE -Wno-invalid-offsetof)
|
target_compile_options(uking PRIVATE -Wno-invalid-offsetof)
|
||||||
|
|
||||||
|
|
|
@ -1310,9 +1310,9 @@
|
||||||
0x000000710004be58,AI_Action_ActivateAttackSensor::loadParams,436,
|
0x000000710004be58,AI_Action_ActivateAttackSensor::loadParams,436,
|
||||||
0x000000710004c00c,AI_Action_ActivateAttackSensor::rtti1,288,
|
0x000000710004c00c,AI_Action_ActivateAttackSensor::rtti1,288,
|
||||||
0x000000710004c12c,AI_Action_ActivateAttackSensor::rtti2,92,
|
0x000000710004c12c,AI_Action_ActivateAttackSensor::rtti2,92,
|
||||||
0x000000710004c188,AI_AIOrActionBase::isFlag1Set,12,_ZN4ksys3act2ai10ActionBase8isFailedEv
|
0x000000710004c188,AI_AIOrActionBase::isFlag1Set,12,_ZNK4ksys3act2ai10ActionBase8isFailedEv
|
||||||
0x000000710004c194,AI_AIOrActionBase::isFinished,12,_ZN4ksys3act2ai10ActionBase10isFinishedEv
|
0x000000710004c194,AI_AIOrActionBase::isFinished,12,_ZNK4ksys3act2ai10ActionBase10isFinishedEv
|
||||||
0x000000710004c1a0,AI_AIOrActionBase::isFlag2Set,12,
|
0x000000710004c1a0,AI_AIOrActionBase::isFlag2Set,12,_ZNK4ksys3act2ai10ActionBase10isFlag4SetEv
|
||||||
0x000000710004c1ac,AI_AIOrActionBase::ret0,8,
|
0x000000710004c1ac,AI_AIOrActionBase::ret0,8,
|
||||||
0x000000710004c1b4,AI_AIOrActionBase::ret0_2,8,
|
0x000000710004c1b4,AI_AIOrActionBase::ret0_2,8,
|
||||||
0x000000710004c1bc,AI_AIOrActionBase::m9_null,4,
|
0x000000710004c1bc,AI_AIOrActionBase::m9_null,4,
|
||||||
|
@ -1325,7 +1325,7 @@
|
||||||
0x000000710004c1ec,AI_AIOrActionBase::ret0_1,8,
|
0x000000710004c1ec,AI_AIOrActionBase::ret0_1,8,
|
||||||
0x000000710004c1f4,AI_AIOrActionBase::ret1_1,8,
|
0x000000710004c1f4,AI_AIOrActionBase::ret1_1,8,
|
||||||
0x000000710004c1fc,AI_AIOrActionBase::ret0_5,8,
|
0x000000710004c1fc,AI_AIOrActionBase::ret0_5,8,
|
||||||
0x000000710004c204,AI_ActionBase::isAction,8,_ZN4ksys3act2ai6Action8isActionEv
|
0x000000710004c204,AI_ActionBase::isAction,8,_ZNK4ksys3act2ai6Action8isActionEv
|
||||||
0x000000710004c20c,AI_AIOrActionBase::m28,16,
|
0x000000710004c20c,AI_AIOrActionBase::m28,16,
|
||||||
0x000000710004c21c,AI_AIOrActionBase::m29_null,4,
|
0x000000710004c21c,AI_AIOrActionBase::m29_null,4,
|
||||||
0x000000710004c220,AI_AIOrActionBase::ret0_6,8,
|
0x000000710004c220,AI_AIOrActionBase::ret0_6,8,
|
||||||
|
@ -15799,18 +15799,18 @@
|
||||||
0x000000710024980c,AI_Action_SetInstEventFlag::init,8,
|
0x000000710024980c,AI_Action_SetInstEventFlag::init,8,
|
||||||
0x0000007100249814,AI_Action_SetInstEventFlag::oneShot,28,
|
0x0000007100249814,AI_Action_SetInstEventFlag::oneShot,28,
|
||||||
0x0000007100249830,AI_Action_SetInstEventFlag::loadParams,4,
|
0x0000007100249830,AI_Action_SetInstEventFlag::loadParams,4,
|
||||||
0x0000007100249834,AI_Action_SetInstEventFlag::rtti1,288,
|
0x0000007100249834,AI_Action_SetInstEventFlag::rtti1,288,_ZNK5uking6action22SetInstEventFlagAction27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
|
||||||
0x0000007100249954,AI_Action_SetInstEventFlag::rtti2,92,
|
0x0000007100249954,AI_Action_SetInstEventFlag::rtti2,92,_ZNK5uking6action22SetInstEventFlagAction18getRuntimeTypeInfoEv
|
||||||
0x00000071002499b0,AI_Action_SetLinkTagBasic::ctor,52,_ZN5uking6action21SetLinkTagBasicActionC1ERKN4ksys3act2ai10ActionBase7InitArgE
|
0x00000071002499b0,AI_Action_SetLinkTagBasic::ctor,52,_ZN5uking6action21SetLinkTagBasicActionC1ERKN4ksys3act2ai10ActionBase7InitArgE
|
||||||
0x00000071002499e4,AI_Action_SetLinkTagBasic::dtor,20,_ZN5uking6action21SetLinkTagBasicActionD1Ev
|
0x00000071002499e4,AI_Action_SetLinkTagBasic::dtor,20,_ZN5uking6action21SetLinkTagBasicActionD1Ev
|
||||||
0x00000071002499f8,AI_Action_SetLinkTagBasic::dtorDelete,52,_ZN5uking6action21SetLinkTagBasicActionD0Ev
|
0x00000071002499f8,AI_Action_SetLinkTagBasic::dtorDelete,52,_ZN5uking6action21SetLinkTagBasicActionD0Ev
|
||||||
0x0000007100249a2c,AI_Action_SetLinkTagBasic::init,8,
|
0x0000007100249a2c,AI_Action_SetLinkTagBasic::init,8,
|
||||||
0x0000007100249a34,AI_Action_SetLinkTagBasic::enter,60,_ZN5uking6action21SetLinkTagBasicAction5enterEv
|
0x0000007100249a34,AI_Action_SetLinkTagBasic::enter,60,_ZN5uking6action21SetLinkTagBasicAction6enter_EPN4ksys3act2ai15InlineParamPackE
|
||||||
0x0000007100249a70,AI_Action_SetLinkTagBasic::calc,4,
|
0x0000007100249a70,AI_Action_SetLinkTagBasic::calc,4,
|
||||||
0x0000007100249a74,AI_Action_SetLinkTagBasic::leave,4,
|
0x0000007100249a74,AI_Action_SetLinkTagBasic::leave,4,
|
||||||
0x0000007100249a78,AI_Action_SetLinkTagBasic::loadParams,64,_ZN5uking6action21SetLinkTagBasicAction10loadParamsEv
|
0x0000007100249a78,AI_Action_SetLinkTagBasic::loadParams,64,_ZN5uking6action21SetLinkTagBasicAction11loadParams_Ev
|
||||||
0x0000007100249ab8,AI_Action_SetLinkTagBasic::rtti1,288,
|
0x0000007100249ab8,AI_Action_SetLinkTagBasic::rtti1,288,_ZNK5uking6action21SetLinkTagBasicAction27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
|
||||||
0x0000007100249bd8,AI_Action_SetLinkTagBasic::rtti2,92,
|
0x0000007100249bd8,AI_Action_SetLinkTagBasic::rtti2,92,_ZNK5uking6action21SetLinkTagBasicAction18getRuntimeTypeInfoEv
|
||||||
0x0000007100249c34,AI_Action_SetMaterialVisible::ctor,76,
|
0x0000007100249c34,AI_Action_SetMaterialVisible::ctor,76,
|
||||||
0x0000007100249c80,AI_Action_SetMaterialVisible::dtor,20,
|
0x0000007100249c80,AI_Action_SetMaterialVisible::dtor,20,
|
||||||
0x0000007100249c94,AI_Action_SetMaterialVisible::dtorDelete,52,
|
0x0000007100249c94,AI_Action_SetMaterialVisible::dtorDelete,52,
|
||||||
|
@ -72993,7 +72993,7 @@
|
||||||
0x0000007100d15fc0,sub_7100D15FC0,108,
|
0x0000007100d15fc0,sub_7100D15FC0,108,
|
||||||
0x0000007100d1602c,j_BaseProcLink::cleanUp,4,
|
0x0000007100d1602c,j_BaseProcLink::cleanUp,4,
|
||||||
0x0000007100d16030,sub_7100D16030,8,
|
0x0000007100d16030,sub_7100D16030,8,
|
||||||
0x0000007100d16038,AI_AIOrActionBase::ctor,84,_ZN4ksys3act2ai10ActionBaseC1ERKNS2_7InitArgE
|
0x0000007100d16038,AI_AIOrActionBase::ctor,84,_ZN4ksys3act2ai10ActionBaseC2ERKNS2_7InitArgE
|
||||||
0x0000007100d1608c,AI_AIOrActionBase::preInit,808,
|
0x0000007100d1608c,AI_AIOrActionBase::preInit,808,
|
||||||
0x0000007100d163b4,AI_AIOrActionBase::getClassName,176,
|
0x0000007100d163b4,AI_AIOrActionBase::getClassName,176,
|
||||||
0x0000007100d16464,AI_AIOrActionBase::x_0,24,
|
0x0000007100d16464,AI_AIOrActionBase::x_0,24,
|
||||||
|
@ -73049,8 +73049,8 @@
|
||||||
0x0000007100d17358,ai::getDefaultBaseProcHandle,16,
|
0x0000007100d17358,ai::getDefaultBaseProcHandle,16,
|
||||||
0x0000007100d17368,sub_7100D17368,12,
|
0x0000007100d17368,sub_7100D17368,12,
|
||||||
0x0000007100d17374,AI_AIOrActionBase::getDefaultString20,12,
|
0x0000007100d17374,AI_AIOrActionBase::getDefaultString20,12,
|
||||||
0x0000007100d17380,AI_AIOrActionBase::rtti1,112,
|
0x0000007100d17380,AI_AIOrActionBase::rtti1,112,_ZNK4ksys3act2ai10ActionBase27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
|
||||||
0x0000007100d173f0,AI_AIOrActionBase::rtti2,92,
|
0x0000007100d173f0,AI_AIOrActionBase::rtti2,92,_ZNK4ksys3act2ai10ActionBase18getRuntimeTypeInfoEv
|
||||||
0x0000007100d1744c,AI_AIOrActionBase::dtorDelete,52,_ZN4ksys3act2ai10ActionBaseD0Ev
|
0x0000007100d1744c,AI_AIOrActionBase::dtorDelete,52,_ZN4ksys3act2ai10ActionBaseD0Ev
|
||||||
0x0000007100d17480,AI_AIOrActionBase::m20_null,4,
|
0x0000007100d17480,AI_AIOrActionBase::m20_null,4,
|
||||||
0x0000007100d17484,sub_7100D17484,336,
|
0x0000007100d17484,sub_7100D17484,336,
|
||||||
|
@ -73065,7 +73065,7 @@
|
||||||
0x0000007100d17d84,ai::InlineParamPack::addBool,116,_ZN4ksys3act2ai15InlineParamPack7addBoolEbRKN4sead14SafeStringBaseIcEEi
|
0x0000007100d17d84,ai::InlineParamPack::addBool,116,_ZN4ksys3act2ai15InlineParamPack7addBoolEbRKN4sead14SafeStringBaseIcEEi
|
||||||
0x0000007100d17df8,ai::InlineParamPack::addActor,132,_ZN4ksys3act2ai15InlineParamPack8addActorERKNS0_12BaseProcLinkERKN4sead14SafeStringBaseIcEEi
|
0x0000007100d17df8,ai::InlineParamPack::addActor,132,_ZN4ksys3act2ai15InlineParamPack8addActorERKNS0_12BaseProcLinkERKN4sead14SafeStringBaseIcEEi
|
||||||
0x0000007100d17e7c,ai::InlineParamPack::addMesTransceiverId,152,_ZN4ksys3act2ai15InlineParamPack19addMesTransceiverIdERKNS_3mes13TransceiverIdERKN4sead14SafeStringBaseIcEEi
|
0x0000007100d17e7c,ai::InlineParamPack::addMesTransceiverId,152,_ZN4ksys3act2ai15InlineParamPack19addMesTransceiverIdERKNS_3mes13TransceiverIdERKN4sead14SafeStringBaseIcEEi
|
||||||
0x0000007100d17f14,sub_7100D17F14,112,_ZN4ksys3act2ai9ParamPack8getPairsEPNS1_18ParamNameTypePairsEb
|
0x0000007100d17f14,sub_7100D17F14,112,_ZNK4ksys3act2ai9ParamPack8getPairsEPNS1_18ParamNameTypePairsEb
|
||||||
0x0000007100d17f84,sub_7100D17F84,432,_ZN4ksys3act2ai18ParamNameTypePairs7addPairENS_14AIDefParamTypeERKN4sead14SafeStringBaseIcEEb
|
0x0000007100d17f84,sub_7100D17F84,432,_ZN4ksys3act2ai18ParamNameTypePairs7addPairENS_14AIDefParamTypeERKN4sead14SafeStringBaseIcEEb
|
||||||
0x0000007100d18134,ai::ParamPack::getString,160,_ZNK4ksys3act2ai9ParamPack9getStringEPN4sead14SafeStringBaseIcEERKS5_
|
0x0000007100d18134,ai::ParamPack::getString,160,_ZNK4ksys3act2ai9ParamPack9getStringEPN4sead14SafeStringBaseIcEERKS5_
|
||||||
0x0000007100d181d4,ai::ParamPack::getString_0,316,_ZNK4ksys3act2ai9ParamPack9setStringERKN4sead14SafeStringBaseIcEES7_
|
0x0000007100d181d4,ai::ParamPack::getString_0,316,_ZNK4ksys3act2ai9ParamPack9setStringERKN4sead14SafeStringBaseIcEES7_
|
||||||
|
|
Can't render this file because it is too large.
|
|
@ -7,11 +7,14 @@
|
||||||
namespace uking::action {
|
namespace uking::action {
|
||||||
|
|
||||||
class SetInstEventFlagAction : public ksys::act::ai::Action {
|
class SetInstEventFlagAction : public ksys::act::ai::Action {
|
||||||
|
SEAD_RTTI_OVERRIDE(SetInstEventFlagAction, ksys::act::ai::Action)
|
||||||
public:
|
public:
|
||||||
explicit SetInstEventFlagAction(const InitArg& arg);
|
explicit SetInstEventFlagAction(const InitArg& arg);
|
||||||
~SetInstEventFlagAction() override;
|
~SetInstEventFlagAction() override;
|
||||||
|
|
||||||
void oneShot() override;
|
bool oneShot() override;
|
||||||
|
bool init_(sead::Heap* heap) override;
|
||||||
|
void loadParams_() override;
|
||||||
};
|
};
|
||||||
KSYS_CHECK_SIZE_NX150(SetInstEventFlagAction, 0x20);
|
KSYS_CHECK_SIZE_NX150(SetInstEventFlagAction, 0x20);
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,11 @@
|
||||||
|
|
||||||
namespace uking::action {
|
namespace uking::action {
|
||||||
|
|
||||||
SetLinkTagBasicAction::SetLinkTagBasicAction(const InitArg& arg)
|
SetLinkTagBasicAction::SetLinkTagBasicAction(const InitArg& arg) : ksys::act::ai::Action(arg) {}
|
||||||
: ksys::act::ai::Action(arg) {}
|
|
||||||
|
|
||||||
SetLinkTagBasicAction::~SetLinkTagBasicAction() = default;
|
SetLinkTagBasicAction::~SetLinkTagBasicAction() = default;
|
||||||
|
|
||||||
void SetLinkTagBasicAction::enter() {
|
void SetLinkTagBasicAction::enter_(ksys::act::ai::InlineParamPack* params) {
|
||||||
if (IsOn.value())
|
if (IsOn.value())
|
||||||
mActor->emitBasicSigOn();
|
mActor->emitBasicSigOn();
|
||||||
else
|
else
|
||||||
|
@ -17,7 +16,7 @@ void SetLinkTagBasicAction::enter() {
|
||||||
setFinished();
|
setFinished();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetLinkTagBasicAction::loadParams() {
|
void SetLinkTagBasicAction::loadParams_() {
|
||||||
getParamStatic(&IsOn, "IsOn");
|
getParamStatic(&IsOn, "IsOn");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,12 +7,13 @@
|
||||||
namespace uking::action {
|
namespace uking::action {
|
||||||
|
|
||||||
class SetLinkTagBasicAction : public ksys::act::ai::Action {
|
class SetLinkTagBasicAction : public ksys::act::ai::Action {
|
||||||
|
SEAD_RTTI_OVERRIDE(SetLinkTagBasicAction, ksys::act::ai::Action)
|
||||||
public:
|
public:
|
||||||
explicit SetLinkTagBasicAction(const InitArg& arg);
|
explicit SetLinkTagBasicAction(const InitArg& arg);
|
||||||
~SetLinkTagBasicAction() override;
|
~SetLinkTagBasicAction() override;
|
||||||
|
|
||||||
void enter() override;
|
void enter_(ksys::act::ai::InlineParamPack* params) override;
|
||||||
void loadParams() override;
|
void loadParams_() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ksys::act::ai::ParamRef<bool> IsOn;
|
ksys::act::ai::ParamRef<bool> IsOn;
|
||||||
|
|
|
@ -4,8 +4,4 @@ namespace ksys::act::ai {
|
||||||
|
|
||||||
Action::Action(const InitArg& arg) : ActionBase(arg) {}
|
Action::Action(const InitArg& arg) : ActionBase(arg) {}
|
||||||
|
|
||||||
bool Action::isAction() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace ksys::act::ai
|
} // namespace ksys::act::ai
|
||||||
|
|
|
@ -6,14 +6,15 @@
|
||||||
namespace ksys::act::ai {
|
namespace ksys::act::ai {
|
||||||
|
|
||||||
class Action : public ActionBase {
|
class Action : public ActionBase {
|
||||||
|
SEAD_RTTI_OVERRIDE(Action, ActionBase)
|
||||||
public:
|
public:
|
||||||
explicit Action(const InitArg& arg);
|
explicit Action(const InitArg& arg);
|
||||||
|
|
||||||
virtual void enter() {}
|
void calc() override;
|
||||||
virtual void loadParams() {}
|
bool isAction() const override { return true; }
|
||||||
virtual void oneShot() {}
|
|
||||||
|
|
||||||
bool isAction() override;
|
protected:
|
||||||
|
virtual void calc_() {}
|
||||||
};
|
};
|
||||||
KSYS_CHECK_SIZE_NX150(Action, 0x20);
|
KSYS_CHECK_SIZE_NX150(Action, 0x20);
|
||||||
|
|
||||||
|
|
|
@ -5,22 +5,26 @@ namespace ksys::act::ai {
|
||||||
ActionBase::ActionBase(const InitArg& arg)
|
ActionBase::ActionBase(const InitArg& arg)
|
||||||
: mActor{arg.actor}, mDefinitionIdx{u16(arg.def_idx)}, mRootIdx{u8(arg.root_idx)} {}
|
: mActor{arg.actor}, mDefinitionIdx{u16(arg.def_idx)}, mRootIdx{u8(arg.root_idx)} {}
|
||||||
|
|
||||||
bool ActionBase::isFinished() {
|
bool ActionBase::isFinished() const {
|
||||||
return mStatus.isOn(Status::Finished);
|
return mFlags.isOn(Flag::Finished);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ActionBase::isFailed() {
|
bool ActionBase::isFailed() const {
|
||||||
return mStatus.isOn(Status::Failed);
|
return mFlags.isOn(Flag::Failed);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ActionBase::isFlag4Set() const {
|
||||||
|
return mFlags.isOn(Flag::_4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActionBase::setFinished() {
|
void ActionBase::setFinished() {
|
||||||
mStatus.set(Status::Finished);
|
mFlags.set(Flag::Finished);
|
||||||
mStatus.reset(Status::Failed);
|
mFlags.reset(Flag::Failed);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActionBase::setFailed() {
|
void ActionBase::setFailed() {
|
||||||
mStatus.set(Status::Failed);
|
mFlags.set(Flag::Failed);
|
||||||
mStatus.reset(Status::Finished);
|
mFlags.reset(Flag::Finished);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace ksys::act::ai
|
} // namespace ksys::act::ai
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <basis/seadTypes.h>
|
#include <basis/seadTypes.h>
|
||||||
|
#include <prim/seadRuntimeTypeInfo.h>
|
||||||
#include <prim/seadTypedBitFlag.h>
|
#include <prim/seadTypedBitFlag.h>
|
||||||
#include "KingSystem/ActorSystem/actActor.h"
|
#include "KingSystem/ActorSystem/actActor.h"
|
||||||
#include "KingSystem/ActorSystem/actAiParam.h"
|
#include "KingSystem/ActorSystem/actAiParam.h"
|
||||||
|
@ -12,7 +13,9 @@ class Actor;
|
||||||
|
|
||||||
namespace ai {
|
namespace ai {
|
||||||
|
|
||||||
|
/// Base class for actions and AIs, which can be seen as looping actions.
|
||||||
class ActionBase {
|
class ActionBase {
|
||||||
|
SEAD_RTTI_BASE(ActionBase)
|
||||||
public:
|
public:
|
||||||
struct InitArg {
|
struct InitArg {
|
||||||
Actor* actor;
|
Actor* actor;
|
||||||
|
@ -25,9 +28,40 @@ public:
|
||||||
explicit ActionBase(const InitArg& arg);
|
explicit ActionBase(const InitArg& arg);
|
||||||
virtual ~ActionBase() = default;
|
virtual ~ActionBase() = default;
|
||||||
|
|
||||||
virtual bool isAction();
|
const char* getName() const;
|
||||||
|
bool init(sead::Heap* heap, bool load_map_or_tree_params);
|
||||||
|
|
||||||
enum class Status : u8 {
|
virtual bool isFinished() const;
|
||||||
|
virtual bool isFailed() const;
|
||||||
|
virtual bool isFlag4Set() const;
|
||||||
|
|
||||||
|
virtual bool m7() { return false; }
|
||||||
|
virtual bool m8() { return false; }
|
||||||
|
virtual void m9() {}
|
||||||
|
virtual bool oneShot() { return true; }
|
||||||
|
virtual bool init_(sead::Heap* heap) { return true; }
|
||||||
|
virtual void enter_(InlineParamPack* params) {}
|
||||||
|
virtual bool reenter_(ActionBase* other, bool x);
|
||||||
|
virtual void leave_() {}
|
||||||
|
virtual void loadParams_() {}
|
||||||
|
virtual bool m16() { return false; }
|
||||||
|
virtual bool m17() { return false; }
|
||||||
|
virtual bool m18() { return true; }
|
||||||
|
virtual void m19() {}
|
||||||
|
virtual void calc() {}
|
||||||
|
virtual void getCurrentName(sead::BufferedSafeString* name, ActionBase* parent) const;
|
||||||
|
virtual void* m22() { return nullptr; }
|
||||||
|
virtual void getParams(ParamNameTypePairs* pairs, bool update_use_count) const;
|
||||||
|
virtual s32 m24() { return 0; }
|
||||||
|
virtual bool m25() { return true; }
|
||||||
|
virtual ActionBase* getCurrentChild() const { return nullptr; }
|
||||||
|
virtual bool isAction() const = 0;
|
||||||
|
virtual bool reenter(ActionBase* other) { return reenter_(other, false); }
|
||||||
|
virtual void postLeave() {}
|
||||||
|
virtual ActionBase* getAction(s32 idx) const { return nullptr; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
enum class Flag : u8 {
|
||||||
Finished = 1,
|
Finished = 1,
|
||||||
Failed = 2,
|
Failed = 2,
|
||||||
_4 = 4,
|
_4 = 4,
|
||||||
|
@ -38,9 +72,6 @@ public:
|
||||||
_80 = 0x80,
|
_80 = 0x80,
|
||||||
};
|
};
|
||||||
|
|
||||||
protected:
|
|
||||||
bool isFinished();
|
|
||||||
bool isFailed();
|
|
||||||
void setFinished();
|
void setFinished();
|
||||||
void setFailed();
|
void setFailed();
|
||||||
|
|
||||||
|
@ -51,7 +82,7 @@ protected:
|
||||||
ParamPack mParams;
|
ParamPack mParams;
|
||||||
u16 mDefinitionIdx;
|
u16 mDefinitionIdx;
|
||||||
u8 mRootIdx;
|
u8 mRootIdx;
|
||||||
sead::TypedBitFlag<Status, u8> mStatus;
|
sead::TypedBitFlag<Flag> mFlags;
|
||||||
u16 mClassIdx;
|
u16 mClassIdx;
|
||||||
u16 mPrevClassIdx;
|
u16 mPrevClassIdx;
|
||||||
};
|
};
|
||||||
|
|
|
@ -196,7 +196,7 @@ void InlineParamPack::addMesTransceiverId(const mes::TransceiverId& value,
|
||||||
param.type = AIDefParamType::MesTransceiverId;
|
param.type = AIDefParamType::MesTransceiverId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ParamPack::getPairs(ParamNameTypePairs* pairs, bool update_use_count) {
|
void ParamPack::getPairs(ParamNameTypePairs* pairs, bool update_use_count) const {
|
||||||
for (auto* param = mParams; param; param = param->next) {
|
for (auto* param = mParams; param; param = param->next) {
|
||||||
if (param->data)
|
if (param->data)
|
||||||
pairs->addPair(param->type, param->name, update_use_count);
|
pairs->addPair(param->type, param->name, update_use_count);
|
||||||
|
|
|
@ -82,7 +82,7 @@ public:
|
||||||
bool load(const Actor& actor, const ParamNameTypePairs& pairs, s32 count, sead::Heap* heap);
|
bool load(const Actor& actor, const ParamNameTypePairs& pairs, s32 count, sead::Heap* heap);
|
||||||
void* getAITreeVariablePointer(const sead::SafeString& key, AIDefParamType type, bool x) const;
|
void* getAITreeVariablePointer(const sead::SafeString& key, AIDefParamType type, bool x) const;
|
||||||
void copy(InlineParamPack* dest, bool x);
|
void copy(InlineParamPack* dest, bool x);
|
||||||
void getPairs(ParamNameTypePairs* pairs, bool update_use_count);
|
void getPairs(ParamNameTypePairs* pairs, bool update_use_count) const;
|
||||||
|
|
||||||
bool getString(sead::SafeString* value, const sead::SafeString& key) const;
|
bool getString(sead::SafeString* value, const sead::SafeString& key) const;
|
||||||
bool setString(const sead::SafeString& value, const sead::SafeString& key) const;
|
bool setString(const sead::SafeString& value, const sead::SafeString& key) const;
|
||||||
|
|
Loading…
Reference in New Issue