diff --git a/data/file_list.yml b/data/file_list.yml index 40ba3bfee..508e44aa0 100644 --- a/data/file_list.yml +++ b/data/file_list.yml @@ -154240,7 +154240,7 @@ Util/HackerJudge.o: - offset: 0x551f98 size: 24 label: _ZN11HackerJudgeC2EPP14IUsePlayerHack - status: NotDecompiled + status: Matching Util/HelpFunction.o: '.text': - offset: 0x551fb0 diff --git a/src/Enemy/Gamane.cpp b/src/Enemy/Gamane.cpp index a084c2986..bb806c8e3 100644 --- a/src/Enemy/Gamane.cpp +++ b/src/Enemy/Gamane.cpp @@ -27,7 +27,7 @@ #include "Enemy/GamaneBullet.h" #include "Enemy/GamaneHackState.h" #include "Enemy/HackerDepthShadowMapCtrl.h" -#include "Player/HackerJudge.h" +#include "Player/HackerJudgeNormalFall.h" #include "Player/PlayerHackStartShaderCtrl.h" #include "Util/Hack.h" #include "Util/ItemUtil.h" diff --git a/src/Enemy/KaronWingStateHack.cpp b/src/Enemy/KaronWingStateHack.cpp index 221a68a6c..39e344f7b 100644 --- a/src/Enemy/KaronWingStateHack.cpp +++ b/src/Enemy/KaronWingStateHack.cpp @@ -18,7 +18,8 @@ #include "Enemy/HackerDepthShadowMapCtrl.h" #include "Player/CollisionShapeInfo.h" #include "Player/CollisionShapeKeeper.h" -#include "Player/HackerJudge.h" +#include "Player/HackerJudgeNormalFall.h" +#include "Player/HackerJudgeStartRun.h" #include "Player/HackerStateWingFly.h" #include "Player/PlayerActionTurnControl.h" #include "Player/PlayerCollider.h" diff --git a/src/MapObj/AnagramAlphabetCharacter.cpp b/src/MapObj/AnagramAlphabetCharacter.cpp index df1835d90..ce833d3b3 100644 --- a/src/MapObj/AnagramAlphabetCharacter.cpp +++ b/src/MapObj/AnagramAlphabetCharacter.cpp @@ -16,7 +16,8 @@ #include "MapObj/AnagramAlphabet.h" #include "MapObj/CapTargetParts.h" -#include "Player/HackerJudge.h" +#include "Player/HackerJudgeNormalFall.h" +#include "Player/HackerJudgeStartRun.h" #include "Player/PlayerHackStartShaderCtrl.h" #include "Util/Hack.h" #include "Util/JudgeUtil.h" diff --git a/src/Player/HackerJudge.h b/src/Player/HackerJudge.h deleted file mode 100644 index 27c09fb53..000000000 --- a/src/Player/HackerJudge.h +++ /dev/null @@ -1,71 +0,0 @@ -#pragma once - -#include - -#include "Library/HostIO/HioNode.h" - -#include "Player/IJudge.h" - -namespace al { -class LiveActor; -} - -class IUsePlayerCollision; -class IUsePlayerHack; - -class HackerJudge : public al::HioNode, public IJudge { -public: - HackerJudge(IUsePlayerHack** parent) { mHacker = parent; }; - - void reset() override; - void update() override; - bool judge() const override; - - IUsePlayerHack** getHacker() const { return mHacker; }; - -private: - IUsePlayerHack** mHacker; -}; - -class HackerJudgeNormalFall : public HackerJudge { -public: - HackerJudgeNormalFall(const al::LiveActor* parent, s32 unk); - void reset() override; - void update() override; - bool judge() const override; - - void setPlayerCollision(IUsePlayerCollision* playerCollision) { - mPlayerCollision = playerCollision; - } - -private: - s32 field_10; - s32 field_14; - IUsePlayerCollision* mPlayerCollision; -}; - -class HackerJudgeStartJump : public HackerJudge { -public: - HackerJudgeStartJump(IUsePlayerHack**); - void reset() override; - void update() override; - bool judge() const override; -}; - -class HackerJudgeStartRun : public HackerJudge { -public: - HackerJudgeStartRun(const al::LiveActor*, IUsePlayerHack**); - void reset() override; - void update() override; - bool judge() const override; - - void setPlayerCollision(IUsePlayerCollision* playerCollision) { - mPlayerCollision = playerCollision; - } - -private: - al::LiveActor* mParent; - s32 field_18; - IUsePlayerCollision* mPlayerCollision; - f32 field_28; -}; diff --git a/src/Player/HackerJudgeNormalFall.h b/src/Player/HackerJudgeNormalFall.h new file mode 100644 index 000000000..fd4f5276a --- /dev/null +++ b/src/Player/HackerJudgeNormalFall.h @@ -0,0 +1,33 @@ +#pragma once + +#include + +#include "Library/HostIO/HioNode.h" + +#include "Player/IJudge.h" + +namespace al { +class LiveActor; +} + +class IUsePlayerCollision; + +class HackerJudgeNormalFall : public al::HioNode, public IJudge { +public: + HackerJudgeNormalFall(const al::LiveActor* parent, s32 unk); + void reset() override; + void update() override; + bool judge() const override; + + void setPlayerCollision(IUsePlayerCollision* playerCollision) { + mPlayerCollision = playerCollision; + } + +private: + al::LiveActor* mActor; + s32 _10; + s32 _14; + IUsePlayerCollision* mPlayerCollision; +}; + +static_assert(sizeof(HackerJudgeNormalFall) == 0x20); diff --git a/src/Player/HackerJudgeStartJump.h b/src/Player/HackerJudgeStartJump.h new file mode 100644 index 000000000..f1bd73640 --- /dev/null +++ b/src/Player/HackerJudgeStartJump.h @@ -0,0 +1,15 @@ +#pragma once + +#include "Util/HackerJudge.h" + +class IUsePlayerHack; + +class HackerJudgeStartJump : public HackerJudge { +public: + HackerJudgeStartJump(IUsePlayerHack**); + void reset() override; + void update() override; + bool judge() const override; +}; + +static_assert(sizeof(HackerJudgeStartJump) == 0x10); diff --git a/src/Player/HackerJudgeStartRun.h b/src/Player/HackerJudgeStartRun.h new file mode 100644 index 000000000..0f4af5d13 --- /dev/null +++ b/src/Player/HackerJudgeStartRun.h @@ -0,0 +1,32 @@ +#pragma once + +#include + +#include "Util/HackerJudge.h" + +namespace al { +class LiveActor; +} + +class IUsePlayerCollision; +class IUsePlayerHack; + +class HackerJudgeStartRun : public HackerJudge { +public: + HackerJudgeStartRun(const al::LiveActor*, IUsePlayerHack**); + void reset() override; + void update() override; + bool judge() const override; + + void setPlayerCollision(IUsePlayerCollision* playerCollision) { + mPlayerCollision = playerCollision; + } + +private: + al::LiveActor* mParent; + s32 _18; + IUsePlayerCollision* mPlayerCollision; + f32 _28; +}; + +static_assert(sizeof(HackerJudgeStartRun) == 0x30); diff --git a/src/Util/HackerJudge.cpp b/src/Util/HackerJudge.cpp new file mode 100644 index 000000000..12dd22343 --- /dev/null +++ b/src/Util/HackerJudge.cpp @@ -0,0 +1,3 @@ +#include "Util/HackerJudge.h" + +HackerJudge::HackerJudge(IUsePlayerHack** parent) : mHacker(parent) {} diff --git a/src/Util/HackerJudge.h b/src/Util/HackerJudge.h new file mode 100644 index 000000000..255633042 --- /dev/null +++ b/src/Util/HackerJudge.h @@ -0,0 +1,23 @@ +#pragma once + +#include + +#include "Library/HostIO/HioNode.h" + +#include "Player/IJudge.h" + +class IUsePlayerHack; + +class HackerJudge : public al::HioNode, public IJudge { +public: + HackerJudge(IUsePlayerHack** parent); + + void reset() override = 0; + void update() override = 0; + bool judge() const override = 0; + + IUsePlayerHack** getHacker() const { return mHacker; }; + +private: + IUsePlayerHack** mHacker; +};