| 1 | #pragma once |
|---|---|
| 2 | |
| 3 | #include <basis/seadTypes.h> |
| 4 | #include <math/seadVector.h> |
| 5 | |
| 6 | #include "Library/Nerve/NerveStateBase.h" |
| 7 | |
| 8 | namespace al { |
| 9 | class LiveActor; |
| 10 | } // namespace al |
| 11 | |
| 12 | class IUsePlayerCollision; |
| 13 | class IUsePlayerHack; |
| 14 | class HackerJudgeNormalFall; |
| 15 | class HackerJudgeStartRun; |
| 16 | class PlayerActionTurnControl; |
| 17 | |
| 18 | class HackerStateNormalMove : public al::ActorStateBase { |
| 19 | public: |
| 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 | |
| 60 | private: |
| 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 |