mirror of https://github.com/zeldaret/botw.git
AirOctaFlyUp::enter ok
had to make a dummy variable in order to get a variable at 0x114 in AirOctaDataMgr, and also had to make function sub_71002FB17C so enter_ could still call it. loadParams_ still doesnt match with a difference of 0. Will look into sub_71002FB17C and the missing variables soon.
This commit is contained in:
parent
777733979e
commit
83b5065160
|
@ -1,6 +1,9 @@
|
||||||
#include "Game/AI/AI/aiAirOctaFlyUp.h"
|
#include "Game/AI/AI/aiAirOctaFlyUp.h"
|
||||||
#include "Game/DLC/aocHardModeManager.h"
|
#include "Game/DLC/aocHardModeManager.h"
|
||||||
#include "KingSystem/Utils/Thread/Message.h"
|
#include "KingSystem/Utils/Thread/Message.h"
|
||||||
|
#include "KingSystem/ActorSystem/actAiParam.h"
|
||||||
|
#include "KingSystem/ActorSystem/actAiInlineParam.h"
|
||||||
|
#include "KingSystem/ActorSystem/actActor.h"
|
||||||
|
|
||||||
namespace uking::ai {
|
namespace uking::ai {
|
||||||
|
|
||||||
|
@ -32,12 +35,20 @@ bool AirOctaFlyUp::handleMessage_( const ksys::Message& message) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void AirOctaFlyUp::enter_(ksys::act::ai::InlineParamPack* params) {
|
void AirOctaFlyUp::enter_(ksys::act::ai::InlineParamPack* params) {
|
||||||
ksys::act::ai::Ai::enter_(params);
|
if (auto* data_mgr = sead::DynamicCast<AirOctaDataMgr>((AirOctaDataMgr*)*mAirOctaDataMgr_a)){
|
||||||
|
data_mgr->unk_114 = 0;
|
||||||
|
data_mgr->sub_71002FB17C();
|
||||||
|
}
|
||||||
|
auto &mtx = getActor()->getMtx();
|
||||||
|
AirOctaY = mtx(1, 3);
|
||||||
|
ksys::act::ai::Ai::changeChild("開始");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AirOctaFlyUp::leave_() {
|
void AirOctaFlyUp::leave_() {
|
||||||
ksys::act::ai::Ai::leave_();
|
ksys::act::ai::Ai::leave_();
|
||||||
}
|
}
|
||||||
|
float sub_71002FB17C();
|
||||||
|
|
||||||
void AirOctaFlyUp::loadParams_() {
|
void AirOctaFlyUp::loadParams_() {
|
||||||
getStaticParam(&mFlyUpDuration_s, "FlyUpDuration");
|
getStaticParam(&mFlyUpDuration_s, "FlyUpDuration");
|
||||||
|
|
|
@ -2,17 +2,18 @@
|
||||||
|
|
||||||
#include "KingSystem/ActorSystem/actAiAi.h"
|
#include "KingSystem/ActorSystem/actAiAi.h"
|
||||||
#include "KingSystem/ActorSystem/actBaseProcLink.h"
|
#include "KingSystem/ActorSystem/actBaseProcLink.h"
|
||||||
|
#include "KingSystem/ActorSystem/actActor.h"
|
||||||
namespace uking::ai {
|
namespace uking::ai {
|
||||||
class AirOctaDataMgr {
|
class AirOctaDataMgr {
|
||||||
SEAD_RTTI_BASE(AirOctaDataMgr)
|
SEAD_RTTI_BASE(AirOctaDataMgr)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ksys::act::BaseProcLink& getProc() { return mBaseProcLink; }
|
ksys::act::BaseProcLink& getProc() { return mBaseProcLink; }
|
||||||
|
void sub_71002FB17C();
|
||||||
private:
|
|
||||||
/* 0x08 */ char unk_00[0x10];
|
/* 0x08 */ char unk_00[0x10];
|
||||||
/* 0x18 */ ksys::act::BaseProcLink mBaseProcLink;
|
/* 0x18 */ ksys::act::BaseProcLink mBaseProcLink;
|
||||||
|
char placeFiller[0xEC];
|
||||||
|
/*0x114 */ u32 unk_114;
|
||||||
};
|
};
|
||||||
|
|
||||||
class AirOctaFlyUp : public ksys::act::ai::Ai {
|
class AirOctaFlyUp : public ksys::act::ai::Ai {
|
||||||
|
@ -27,19 +28,20 @@ public:
|
||||||
void enter_(ksys::act::ai::InlineParamPack* params) override;
|
void enter_(ksys::act::ai::InlineParamPack* params) override;
|
||||||
void leave_() override;
|
void leave_() override;
|
||||||
void loadParams_() override;
|
void loadParams_() override;
|
||||||
|
float sub_71002FB17C();
|
||||||
protected:
|
protected:
|
||||||
// static_param at offset 0x38
|
// static_param at offset 0x38
|
||||||
const float* mFlyUpDuration_s{};
|
const float* mFlyUpDuration_s{};
|
||||||
// dynamic_param at offset 0x40
|
// dynamic_param at offset 0x40
|
||||||
float* mTargetDistance_d{};
|
float* mTargetDistance_d{};
|
||||||
// aitree_variable at offset 0x48
|
// aitree_variable at offset 0x48
|
||||||
// for whatever reason, removing getAITreeVariable(&mAirOctaDataMgr_a, "AirOctaDataMgr"); and replacing it with
|
// for whatever reason, removing void* mAirOctaDataMgr_a; and replacing it with
|
||||||
// AirOctaDataMgr** mAirOctaDataMgr_a{}; will make loadParams_ be not matching with a difference of 0 and make
|
// AirOctaDataMgr** mAirOctaDataMgr_a{}; will make loadParams_ be not matching with a difference of 0 and make
|
||||||
// handleMessage_ go from a difference of 5 to matching. ¯\_(ツ)_/¯ going from nonmatching to matching and
|
// handleMessage_ go from a difference of 5 to matching. ¯\_(ツ)_/¯ going from nonmatching to matching and
|
||||||
// making another function go from matching to not really unmatching is still net progress
|
// making another function go from matching to not really unmatching is still net progress
|
||||||
// getAITreeVariable(&mAirOctaDataMgr_a, "AirOctaDataMgr");
|
// void* mAirOctaDataMgr_a
|
||||||
AirOctaDataMgr** mAirOctaDataMgr_a{};
|
AirOctaDataMgr** mAirOctaDataMgr_a{};
|
||||||
|
float AirOctaY{};
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace uking::ai
|
} // namespace uking::ai
|
||||||
|
|
Loading…
Reference in New Issue