1#pragma once
2
3#include "Library/LiveActor/LiveActor.h"
4
5namespace al {
6class ActorCollisionController;
7class CollisionPartsFilterBase;
8class HitSensor;
9class TriangleFilterBase;
10
11Collider* getActorCollider(const LiveActor*);
12bool isExistActorCollider(const LiveActor*);
13void getActorCollisionPartsSensor(const LiveActor*);
14bool isExistCollisionParts(const LiveActor*);
15bool isEqualCollisionParts(const LiveActor*, const CollisionParts*);
16void validateCollisionParts(LiveActor*);
17void invalidateCollisionParts(LiveActor*);
18void validateCollisionPartsBySystem(LiveActor*);
19void invalidateCollisionPartsBySystem(LiveActor*);
20void isValidCollisionParts(const LiveActor*);
21void setCollisionPartsSpecialPurposeName(LiveActor*, const char*);
22void resetAllCollisionMtx(LiveActor*);
23void syncCollisionMtx(LiveActor*, const sead::Matrix34f*);
24void syncCollisionMtx(LiveActor*, CollisionParts*, const sead::Matrix34f*);
25void setSyncCollisionMtxPtr(LiveActor*, const sead::Matrix34f*);
26bool isOnGround(const LiveActor*, u32);
27bool isOnGroundFace(const LiveActor*);
28bool isCollidedGroundEdgeOrCorner(const LiveActor*);
29bool isOnGroundNoVelocity(const LiveActor*, u32);
30bool isOnGroundDegree(const LiveActor*, f32, u32);
31bool isOnGroundFaceDegree(const LiveActor*, f32);
32bool isOnGroundNoVelocityDegree(const LiveActor*, f32, u32);
33const sead::Vector3f& getOnGroundNormal(const LiveActor*, u32);
34void setColliderRadius(LiveActor*, f32);
35void setColliderOffsetY(LiveActor*, f32);
36f32 getColliderRadius(const LiveActor*);
37f32 getColliderOffsetY(const LiveActor*);
38void getColliderFixReaction(const LiveActor*);
39void calcColliderPos(sead::Vector3f*, const LiveActor*);
40void validateColliderRobustCheck(LiveActor*);
41void invalidateColliderRobustCheck(LiveActor*);
42void setColliderReactMovePower(LiveActor*, bool);
43void calcColliderFloorRotatePower(sead::Quatf*, LiveActor*);
44void calcJumpInertia(sead::Vector3f*, LiveActor*, const sead::Vector3f&, f32);
45bool isCollidedGround(const LiveActor*);
46void calcJumpInertiaWall(sead::Vector3f*, LiveActor*, f32);
47bool isCollidedWall(const LiveActor*);
48void scaleVelocityInertiaWallHit(LiveActor*, f32, f32, f32);
49const sead::Vector3f& getCollidedWallNormal(const LiveActor*);
50void calcCollidedNormalSum(const LiveActor*, sead::Vector3f*);
51void calcGroundNormalOrUpDir(sead::Vector3f*, const LiveActor*);
52const sead::Vector3f& getCollidedGroundNormal(const LiveActor*);
53void calcGroundNormalOrGravityDir(sead::Vector3f*, const LiveActor*);
54void setColliderFilterTriangle(LiveActor*, const TriangleFilterBase*);
55void setColliderFilterCollisionParts(LiveActor*, const CollisionPartsFilterBase*);
56void createAndSetColliderFilterExistActor(LiveActor*);
57void createAndSetColliderFilterExistActor(LiveActor*, LiveActor*);
58void createAndSetColliderFilterSubActor(LiveActor*);
59void createAndSetColliderSpecialPurpose(LiveActor*, const char*);
60void createAndSetColliderSpecialPurposeForCollisionActor(LiveActor*, const char*);
61void createAndSetColliderIgnoreOptionalPurpose(LiveActor*, const char*);
62void createAndSetColliderSpecialAndIgnoreOptionalPurpose(LiveActor*, const char*, const char*);
63void createActorCollisionController(LiveActor*);
64void setColliderRadius(ActorCollisionController*, f32);
65void setColliderRadiusScale(ActorCollisionController*, f32);
66void setColliderOffsetY(ActorCollisionController*, f32);
67void resetActorCollisionController(ActorCollisionController*, s32);
68void updateActorCollisionController(ActorCollisionController*);
69const char* getCollidedFloorMaterialCodeName(const LiveActor*);
70const char* getCollidedFloorMaterialCodeName(const Collider*);
71const char* getCollidedWallMaterialCodeName(const LiveActor*);
72const char* getCollidedCeilingMaterialCodeName(const LiveActor*);
73bool isCollidedFloorCode(const LiveActor*, const char*);
74bool isCollidedCollisionCode(const LiveActor*, const char*, const char*);
75bool isCollidedWallCode(const LiveActor*, const char*);
76bool isCollidedCameraCode(const LiveActor*, const char*);
77bool isCollidedMaterialCode(const LiveActor*, const char*);
78bool isCollidedGroundFloorCode(const LiveActor*, const char*);
79bool isCollidedGroundCollisionCode(const LiveActor*, const char*, const char*);
80bool isCollided(const LiveActor*);
81bool isCollidedCeiling(const LiveActor*);
82bool isCollidedWallFace(const LiveActor*);
83bool isCollidedVelocity(const LiveActor*);
84bool isCollidedWallVelocity(const LiveActor*);
85bool isCollidedCeilingVelocity(const LiveActor*);
86const sead::Vector3f& getCollidedCeilingNormal(const LiveActor*);
87const sead::Vector3f& getCollidedGroundPos(const LiveActor*);
88const sead::Vector3f& getCollidedWallPos(const LiveActor*);
89const sead::Vector3f& getCollidedCeilingPos(const LiveActor*);
90void calcSpeedCollideWall(const LiveActor*);
91void calcSpeedCollideGround(const LiveActor*);
92void calcSpeedCollideCeiling(const LiveActor*);
93void getCollidedGroundCollisionParts(const LiveActor*);
94bool tryGetCollidedGroundCollisionParts(const LiveActor*);
95void getCollidedWallCollisionParts(const LiveActor*);
96bool tryGetCollidedWallCollisionParts(const LiveActor*);
97void getCollidedCeilingCollisionParts(const LiveActor*);
98bool tryGetCollidedCeilingCollisionParts(const LiveActor*);
99void getCollidedGroundSensor(const LiveActor*);
100HitSensor* tryGetCollidedGroundSensor(const LiveActor*);
101HitSensor* getCollidedWallSensor(const LiveActor*);
102HitSensor* tryGetCollidedWallSensor(const LiveActor*);
103HitSensor* getCollidedCeilingSensor(const LiveActor*);
104HitSensor* tryGetCollidedCeilingSensor(const LiveActor*);
105HitSensor* tryGetCollidedSensor(const LiveActor*);
106bool tryGetCollidedPos(sead::Vector3f*, const LiveActor*);
107void setForceCollisionScaleOne(const LiveActor*);
108void followRotateFrontAxisUpGround(LiveActor*);
109void followRotateFrontAxisUp(LiveActor*, const CollisionParts*);
110// void ActorFactory::ActorFactory(const char*);
111} // namespace al
112