1#pragma once
2
3#include <math/seadVector.h>
4
5class IUsePlayerCollision;
6
7class PlayerWallActionHistory {
8public:
9 PlayerWallActionHistory();
10 void update(const IUsePlayerCollision* collider);
11 void reset();
12 void recordWallJump(const IUsePlayerCollision* collider, const sead::Vector3f& position);
13 void recordWallJump(const sead::Vector3f& position, const sead::Vector3f& normal);
14 void recordWallLeave(const sead::Vector3f& position, const sead::Vector3f& normal);
15
16private:
17 bool mIsJumpStored = false;
18 sead::Vector3f mJumpWallPosition = {0.0f, 0.0f, 0.0f};
19 sead::Vector3f mJumpWallNormal = {0.0f, 0.0f, 0.0f};
20 bool mIsLeaveStored = false;
21 sead::Vector3f mLeaveWallPosition = {0.0f, 0.0f, 0.0f};
22 sead::Vector3f mLeaveWallNormal = {0.0f, 0.0f, 0.0f};
23};
24
25static_assert(sizeof(PlayerWallActionHistory) == 0x38);
26