1#pragma once
2
3#include <math/seadVector.h>
4
5#include "Library/Nerve/NerveStateBase.h"
6
7namespace al {
8class LiveActor;
9} // namespace al
10class PlayerConst;
11class PlayerInput;
12class IUsePlayerCollision;
13class PlayerAnimator;
14
15class PlayerStateNormalWallSlide : public al::ActorStateBase {
16public:
17 PlayerStateNormalWallSlide(al::LiveActor*, const PlayerConst*, const PlayerInput*,
18 IUsePlayerCollision*, PlayerAnimator*);
19
20 void appear() override;
21 void exeKeep();
22 bool followNormal();
23 void exeSlide();
24
25 const sead::Vector3f& getNormalStart() const { return mNormalStart; }
26
27private:
28 const PlayerConst* mConst;
29 const PlayerInput* mInput;
30 IUsePlayerCollision* mCollision;
31 PlayerAnimator* mAnimator;
32 sead::Vector3f mNormalStart = {0.0f, 0.0f, 0.0f};
33 sead::Vector3f mNormalEnd = {0.0f, 0.0f, 0.0f};
34 f32 _58 = 0;
35 s32 _5c = 0;
36 bool _60 = 0;
37};
38