1#pragma once
2
3#include <basis/seadTypes.h>
4#include <math/seadVector.h>
5
6#include "Library/Nerve/NerveStateBase.h"
7
8namespace al {
9class LiveActor;
10} // namespace al
11
12class IUsePlayerCollision;
13class IUsePlayerHack;
14class HackerJudgeNormalFall;
15class HackerJudgeStartRun;
16class PlayerActionTurnControl;
17
18class HackerStateNormalMove : public al::ActorStateBase {
19public:
20 HackerStateNormalMove(al::LiveActor*, IUsePlayerHack**, const char*, const char*, const char*);
21
22 void appear() override;
23 void setLandNerve();
24 void setupFallTime(s32);
25 void changeWaitAnim(const char*);
26 void changeRunAnim(const char*);
27 void changeFallAnim(const char*);
28 void usePlayerTurnControl(bool);
29 void usePlayerCollision(IUsePlayerCollision*);
30 bool isWaiting() const;
31 bool isFalling() const;
32 void exeWait();
33 void updateGroundWait();
34 bool tryPivot();
35 void exeMove();
36 void calcGravityDirLocal(sead::Vector3f*) const;
37 void updateGroundMove();
38 void exeBrake();
39 void exePivot();
40 void exeFall();
41
42 PlayerActionTurnControl* getTurnControl() const { return mPlayerActionTurnControl; }
43
44 void set_49(bool isEnabled) { _49 = isEnabled; }
45
46 void set_54(f32 value) { _54 = value; }
47
48 void set_5c(f32 value) { _5c = value; }
49
50 void setMoveVelocity(f32 velocity) {
51 mHasMoveVelocity = true;
52 mMoveVelocity = velocity;
53 }
54
55 void setTurnAngle(f32 turnAngle) {
56 mHasTurnAngle = true;
57 mTurnAngle = turnAngle;
58 }
59
60private:
61 IUsePlayerHack** mHacker;
62 HackerJudgeNormalFall* mHackerJudgeNormalFall;
63 HackerJudgeStartRun* mHackerJudgeStartRun;
64 PlayerActionTurnControl* mPlayerActionTurnControl;
65 IUsePlayerCollision* mIUsePlayerCollision;
66 bool mIsUsePlayerTurnControl;
67 bool _49;
68 f32 _4c;
69 f32 _50;
70 f32 _54;
71 f32 _58;
72 f32 _5c;
73 bool mHasMoveVelocity;
74 f32 mMoveVelocity;
75 bool mHasTurnAngle;
76 f32 mTurnAngle;
77 sead::Vector3f mMoveDirection;
78 const char* mWaitAnim;
79 const char* mRunAnim;
80 const char* mFallAnim;
81 bool _98;
82 bool _99;
83};
84