action: Implement Fork

This commit is contained in:
Léo Lam 2021-04-07 19:24:38 +02:00
parent 2cf1e01137
commit 88f69b04ec
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
4 changed files with 21 additions and 4 deletions

View File

@ -1245,7 +1245,7 @@ action::ForceSystemFadeOut:
action::ForestGiantWakeUp:
status: pending
action::Fork:
status: pending
status: done
action::ForkAddCalcScaleMapUnit:
status: pending
action::ForkAddLinearImpulse:

View File

@ -9369,11 +9369,11 @@
0x00000071001627f0,_ZN5uking6action4ForkD1Ev,20,_ZN5uking6action4ForkD1Ev
0x0000007100162804,_ZN5uking6action4ForkD0Ev,52,_ZN5uking6action4ForkD0Ev
0x0000007100162838,_ZN5uking6action4Fork5init_EPN4sead4HeapE,8,_ZN5uking6action4Fork5init_EPN4sead4HeapE
0x0000007100162840,_ZN5uking6action4Fork6enter_EPN4ksys3act2ai15InlineParamPackE,28,
0x0000007100162840,_ZN5uking6action4Fork6enter_EPN4ksys3act2ai15InlineParamPackE,28,_ZN5uking6action4Fork6enter_EPN4ksys3act2ai15InlineParamPackE
0x000000710016285c,_ZN5uking6action4Fork5calc_Ev,4,_ZN5uking6action4Fork5calc_Ev
0x0000007100162860,_ZN5uking6action4Fork6leave_Ev,4,_ZN5uking6action4Fork6leave_Ev
0x0000007100162864,_ZN5uking6action4Fork11loadParams_Ev,100,_ZN5uking6action4Fork11loadParams_Ev
0x00000071001628c8,sub_71001628C8,52,
0x00000071001628c8,sub_71001628C8,52,_ZN5uking6action4Fork11setEndStateEv
0x00000071001628fc,_ZNK5uking6action4Fork27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE,288,_ZNK5uking6action4Fork27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
0x0000007100162a1c,_ZNK5uking6action4Fork18getRuntimeTypeInfoEv,92,_ZNK5uking6action4Fork18getRuntimeTypeInfoEv
0x0000007100162a78,AI_Action_ForkSetJustAvoid::ctor,60,

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

View File

@ -11,7 +11,8 @@ bool Fork::init_(sead::Heap* heap) {
}
void Fork::enter_(ksys::act::ai::InlineParamPack* params) {
ksys::act::ai::Action::enter_(params);
if (*mIsChangeable_s)
mFlags.set(Flag::_4);
}
void Fork::leave_() {
@ -27,4 +28,18 @@ void Fork::calc_() {
ksys::act::ai::Action::calc_();
}
void Fork::setEndState() {
switch (*mEndState_s) {
case 0:
setFinished();
break;
case 1:
setFailed();
break;
case 2:
mFlags.set(ksys::act::ai::ActionBase::Flag::_4);
break;
}
}
} // namespace uking::action

View File

@ -16,6 +16,8 @@ public:
void loadParams_() override;
protected:
void setEndState();
void calc_() override;
// static_param at offset 0x20