1#pragma once
2
3#include <math/seadVector.h>
4
5#include "Library/Collision/IUseCollision.h"
6
7namespace al {
8class CollisionDirector;
9class CollisionParts;
10class CollisionPartsFilterBase;
11} // namespace al
12
13class PlayerCollisionCheckSphereMove : public al::IUseCollision {
14public:
15 PlayerCollisionCheckSphereMove(al::CollisionDirector*, s32);
16
17 al::CollisionDirector* getCollisionDirector() const override;
18
19 bool checkSphereMove(const sead::Vector3f&, const sead::Vector3f&, f32);
20 void gatherCollisionParts(al::CollisionParts*);
21 u32 getNum() const;
22 f32 getTValue(u32) const;
23 const sead::Vector3f& getPos(u32) const;
24 const sead::Vector3f& getNormal(u32) const;
25 const al::CollisionParts* getCollisionParts(u32) const;
26 const char* getMapCodeName(u32) const;
27 const char* getWallCodeName(u32) const;
28 const char* getMaterialCodeName(u32) const;
29
30 void setCollisionPartsFilter(const al::CollisionPartsFilterBase* filter) {
31 mCollisionPartsFilter = filter;
32 }
33
34private:
35 void* _8[0x50 / 8];
36 const al::CollisionPartsFilterBase* mCollisionPartsFilter;
37};
38
39static_assert(sizeof(PlayerCollisionCheckSphereMove) == 0x60);
40