1#pragma once
2
3#include <math/seadVector.h>
4
5namespace al {
6class LiveActor;
7}
8class PlayerConst;
9class PlayerTrigger;
10class IUsePlayerCollision;
11class PlayerCounterAfterCapCatch;
12
13class PlayerCapActionHistory {
14public:
15 PlayerCapActionHistory(const al::LiveActor* player, const PlayerConst* pConst,
16 const PlayerTrigger* trigger, const IUsePlayerCollision* collider);
17 void update();
18 void clearLandLimit();
19 void clearLimitHeight();
20 void clearCapJump();
21 void clearLandLimitStandAngle();
22 void clearWallAirLimit();
23 void recordLimitHeight();
24 bool isOverLimitHeight() const;
25
26private:
27 const al::LiveActor* mPlayer;
28 const PlayerConst* mConst;
29 const PlayerTrigger* mTrigger;
30 const IUsePlayerCollision* mCollision;
31 PlayerCounterAfterCapCatch* mCounterAfterCapCatch;
32 bool mIsLimitHeight = false;
33 sead::Vector3f mHeightLimit = sead::Vector3f::zero;
34 bool mIsCapJumpPossible = true;
35 // seems to be always set to `true`
36 bool _39 = true;
37};
38