1#pragma once
2
3#include <math/seadVector.h>
4
5namespace al {
6class CollisionParts;
7class HitSensor;
8class LiveActor;
9} // namespace al
10
11class IUsePlayerCollision;
12class PlayerConst;
13class PlayerModelHolder;
14
15namespace rs {
16
17bool trySendMsgPlayerReflectOrTrample(const al::LiveActor*, al::HitSensor*, al::HitSensor*);
18
19bool findWallCatchPos(const al::CollisionParts**, sead::Vector3f*, sead::Vector3f*,
20 const al::LiveActor*, const sead::Vector3f&, const sead::Vector3f&,
21 const sead::Vector3f&, f32, f32, f32, f32, f32, f32, f32);
22
23bool findGrabCeilPosNoWallHit(const al::CollisionParts**, sead::Vector3f*, sead::Vector3f*,
24 sead::Vector3f*, const al::LiveActor*, const sead::Vector3f&,
25 const sead::Vector3f&, f32, f32, f32);
26
27bool findGrabCeilPosWallHit(const al::CollisionParts**, sead::Vector3f*, sead::Vector3f*,
28 sead::Vector3f*, const al::LiveActor*, const sead::Vector3f&,
29 const sead::Vector3f&, f32, f32, f32);
30
31void calcOffsetAllRoot(sead::Vector3f* offset, const PlayerModelHolder* model);
32
33bool convergeOnGroundCount(s32*, const al::LiveActor*, const IUsePlayerCollision*, s32, s32);
34
35bool isOnGroundRunAngle(const al::LiveActor*, const IUsePlayerCollision*, const PlayerConst*);
36
37void startHitReactionHipDropLand(al::LiveActor*, bool);
38
39void waitGround(al::LiveActor*, const IUsePlayerCollision*, f32, f32, f32, f32);
40
41void slerpUpFront(al::LiveActor*, const sead::Vector3f&, const sead::Vector3f&, f32, f32);
42
43bool calcSlideDir(sead::Vector3f*, const sead::Vector3f&, const sead::Vector3f&);
44
45void moveDivingJump(al::LiveActor*, const sead::Vector3f&, f32, f32, f32, f32, f32, f32, f32, f32);
46
47void sendPlayerCollisionTouchMsg(const al::LiveActor*, al::HitSensor*, const IUsePlayerCollision*);
48} // namespace rs
49