| 1 | #pragma once |
|---|---|
| 2 | |
| 3 | #include <math/seadVector.h> |
| 4 | |
| 5 | namespace al { |
| 6 | class LiveActor; |
| 7 | class AreaObj; |
| 8 | } // namespace al |
| 9 | class PlayerModelHolder; |
| 10 | |
| 11 | class PlayerAreaChecker { |
| 12 | public: |
| 13 | PlayerAreaChecker(const al::LiveActor* player, const PlayerModelHolder* modelHolder); |
| 14 | bool isInWater(const sead::Vector3f& pos) const; |
| 15 | bool isInWaterDouble(const sead::Vector3f& pos, f32 gravityFactor) const; |
| 16 | bool isInWaterWallCatch(const sead::Vector3f& pos, f32 gravityFactor) const; |
| 17 | bool isInWaterIce(const sead::Vector3f& pos) const; |
| 18 | bool isInWaterIceDouble(const sead::Vector3f& pos, f32 gravityFactor) const; |
| 19 | bool isInWet(const sead::Vector3f& pos) const; |
| 20 | bool isInRise(const sead::Vector3f& pos) const; |
| 21 | bool isInHackCancel(const sead::Vector3f& pos) const; |
| 22 | bool isInRecovery(const al::AreaObj** area, const sead::Vector3f& pos) const; |
| 23 | bool isInRecoveryBan(const sead::Vector3f& pos) const; |
| 24 | bool isInWallClimbBan(const sead::Vector3f& pos) const; |
| 25 | bool isInForceRecovery(sead::Vector3f* targetPos, sead::Vector3f* targetUp, |
| 26 | const al::AreaObj** area, const sead::Vector3f& pos) const; |
| 27 | bool isInShadowLength(f32* shadowLength, const sead::Vector3f& pos) const; |
| 28 | bool isInCarryBan(const sead::Vector3f& pos) const; |
| 29 | const al::AreaObj* tryFindStainArea(const sead::Vector3f& pos) const; |
| 30 | const al::AreaObj* tryFindInvalidateInputFall(const sead::Vector3f& pos) const; |
| 31 | |
| 32 | private: |
| 33 | const al::LiveActor* mPlayer; |
| 34 | const PlayerModelHolder* mModelHolder; |
| 35 | }; |
| 36 | |
| 37 | static_assert(sizeof(PlayerAreaChecker) == 0x10); |
| 38 |