ksys/act: Start adding Behavior

This commit is contained in:
Léo Lam 2020-12-09 16:08:12 +01:00
parent 632517f727
commit ad32d1abe0
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
4 changed files with 73 additions and 15 deletions

View File

@ -37218,11 +37218,11 @@
0x0000007100615afc,AI_Behavior_AcceptLSwordDamageDCCallback::dtorDelete,96,
0x0000007100615b5c,AI_Behavior_AcceptLSwordDamageDCCallback::rtti1,288,
0x0000007100615c7c,AI_Behavior_AcceptLSwordDamageDCCallback::rtti2,92,
0x0000007100615cd8,AI_BehaviorBase::m4,8,
0x0000007100615ce0,AI_BehaviorBase::m5,8,
0x0000007100615ce8,AI_BehaviorBase::m11_null,4,
0x0000007100615cec,AI_BehaviorBase::m12,8,
0x0000007100615cf4,AI_BehaviorBase::m13_null,4,
0x0000007100615cd8,AI_BehaviorBase::m4,8,_ZN4ksys3act2ai8Behavior2m4Ev
0x0000007100615ce0,AI_BehaviorBase::m5,8,_ZN4ksys3act2ai8Behavior2m5Ev
0x0000007100615ce8,AI_BehaviorBase::m11_null,4,_ZN4ksys3act2ai8Behavior3m11Ev
0x0000007100615cec,AI_BehaviorBase::m12,8,_ZN4ksys3act2ai8Behavior3m12Ev
0x0000007100615cf4,AI_BehaviorBase::m13_null,4,_ZN4ksys3act2ai8Behavior3m13Ev
0x0000007100615cf8,AI_Behavior_AcceptLSwordDamageDCCallback::m14,8,
0x0000007100615d00,sub_7100615D00,140,
0x0000007100615d8c,sub_7100615D8C,140,
@ -37254,10 +37254,10 @@
0x0000007100616700,sub_7100616700,64,
0x0000007100616740,AI_Behavior_AirWallCollisionSpecify::rtti1,204,
0x000000710061680c,AI_Behavior_AirWallCollisionSpecify::rtti2,92,
0x0000007100616868,AI_BehaviorBase::dtor,4,
0x0000007100616868,AI_BehaviorBase::dtor,4,_ZN4ksys3act2ai8BehaviorD2Ev
0x000000710061686c,j__ZdlPv_141,4,
0x0000007100616870,AI_BehaviorBase::m6,8,
0x0000007100616878,AI_BehaviorBase::m9_null,4,
0x0000007100616870,AI_BehaviorBase::m6,8,_ZN4ksys3act2ai8Behavior2m6Ev
0x0000007100616878,AI_BehaviorBase::m9_null,4,_ZN4ksys3act2ai8Behavior2m9Ev
0x000000710061687c,sub_710061687C,48,
0x00000071006168ac,sub_71006168AC,92,
0x0000007100616908,sub_7100616908,8,
@ -37268,8 +37268,8 @@
0x0000007100616ac0,AI_Behavior_AirWallMaterialSpecify::rtti1,204,
0x0000007100616b8c,AI_Behavior_AirWallMaterialSpecify::rtti2,92,
0x0000007100616be8,j__ZdlPv_142,4,
0x0000007100616bec,AI_BehaviorBase::m7_null,4,
0x0000007100616bf0,AI_BehaviorBase::m10_null,4,
0x0000007100616bec,AI_BehaviorBase::m7_null,4,_ZN4ksys3act2ai8Behavior2m7Ev
0x0000007100616bf0,AI_BehaviorBase::m10_null,4,_ZN4ksys3act2ai8Behavior3m10Ev
0x0000007100616bf4,sub_7100616BF4,48,
0x0000007100616c24,sub_7100616C24,92,
0x0000007100616c80,AI_Behavior_AnimalAttack::ctor,84,
@ -73123,7 +73123,7 @@
0x0000007100d24400,PlacementStruct1::postPlaceActors1,156,
0x0000007100d2449c,PlacementStruct1::x_0,412,
0x0000007100d24638,sinitPlacementStruct1,684,
0x0000007100d248e4,AI_BehaviorBase::ctor,44,
0x0000007100d248e4,AI_BehaviorBase::ctor,44,_ZN4ksys3act2ai8BehaviorC1ERKNS2_7InitArgE
0x0000007100d24910,sub_7100D24910,256,
0x0000007100d24a10,sub_7100D24A10,176,
0x0000007100d24ac0,sub_7100D24AC0,212,
@ -73141,10 +73141,10 @@
0x0000007100d24dc0,sub_7100D24DC0,12,
0x0000007100d24dcc,sub_7100D24DCC,12,
0x0000007100d24dd8,sub_7100D24DD8,12,
0x0000007100d24de4,AI_BehaviorBase::m0,112,
0x0000007100d24e54,AI_BehaviorBase::m1,92,
0x0000007100d24eb0,AI_BehaviorBase::dtorDelete,4,
0x0000007100d24eb4,AI_BehaviorBase::m8_null,4,
0x0000007100d24de4,AI_BehaviorBase::m0,112,_ZNK4ksys3act2ai8Behavior27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
0x0000007100d24e54,AI_BehaviorBase::m1,92,_ZNK4ksys3act2ai8Behavior18getRuntimeTypeInfoEv
0x0000007100d24eb0,AI_BehaviorBase::dtorDelete,4,_ZN4ksys3act2ai8BehaviorD0Ev
0x0000007100d24eb4,AI_BehaviorBase::m8_null,4,_ZN4ksys3act2ai8Behavior2m8Ev
0x0000007100d24eb8,ai::Behaviors::ctor,28,
0x0000007100d24ed4,sub_7100D24ED4,4,
0x0000007100d24ed8,sub_7100D24ED8,200,

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

View File

@ -27,6 +27,8 @@ target_sources(uking PRIVATE
actAiActionBase.h
actAiAi.cpp
actAiAi.h
actAiBehavior.cpp
actAiBehavior.h
actAiClassDef.cpp
actAiClassDef.h
actAiParam.cpp

View File

@ -0,0 +1,8 @@
#include "KingSystem/ActorSystem/actAiBehavior.h"
namespace ksys::act::ai {
Behavior::Behavior(const InitArg& arg)
: mActor(arg.actor), mDefIdx(static_cast<u16>(arg.def_idx)) {}
} // namespace ksys::act::ai

View File

@ -0,0 +1,48 @@
#pragma once
#include <basis/seadTypes.h>
#include <prim/seadRuntimeTypeInfo.h>
#include "KingSystem/Utils/Types.h"
namespace ksys::act {
class Actor;
}
namespace ksys::act::ai {
class Behavior {
SEAD_RTTI_BASE(Behavior)
public:
struct InitArg {
Actor* actor;
/// The index of the behavior definition in the actor's AI program.
s32 def_idx;
};
KSYS_CHECK_SIZE_NX150(InitArg, 0x10);
explicit Behavior(const InitArg& arg);
virtual ~Behavior() = default;
virtual bool m4() { return false; }
virtual bool m5() { return false; }
virtual bool m6() { return true; }
virtual void m7() {}
virtual void m8() {}
virtual void m9() {}
virtual void m10() {}
virtual void m11() {}
virtual bool m12() { return true; }
virtual void m13() {}
protected:
Actor* mActor{};
u16 mDefIdx{};
u8 _12{};
u8 _13{};
void* _18{};
void* _20{};
};
KSYS_CHECK_SIZE_NX150(Behavior, 0x28);
} // namespace ksys::act::ai