#pragma once #include "Library/LiveActor/LiveActor.h" namespace al { class TriangleFilterBase; class CollisionPartsFilterBase; class ActorCollisionController; void getActorCollider(const LiveActor*); bool isExistActorCollider(const LiveActor*); void getActorCollisionPartsSensor(const LiveActor*); bool isExistCollisionParts(const LiveActor*); bool isEqualCollisionParts(const LiveActor*, const CollisionParts*); void validateCollisionParts(LiveActor*); void invalidateCollisionParts(LiveActor*); void validateCollisionPartsBySystem(LiveActor*); void invalidateCollisionPartsBySystem(LiveActor*); void isValidCollisionParts(const LiveActor*); void setCollisionPartsSpecialPurposeName(LiveActor*, const char*); void resetAllCollisionMtx(LiveActor*); void syncCollisionMtx(LiveActor*, const sead::Matrix34f*); void syncCollisionMtx(LiveActor*, CollisionParts*, const sead::Matrix34f*); void setSyncCollisionMtxPtr(LiveActor*, const sead::Matrix34f*); bool isOnGround(const LiveActor*, u32); bool isOnGroundFace(const LiveActor*); bool isCollidedGroundEdgeOrCorner(const LiveActor*); bool isOnGroundNoVelocity(const LiveActor*, u32); bool isOnGroundDegree(const LiveActor*, f32, u32); bool isOnGroundFaceDegree(const LiveActor*, f32); bool isOnGroundNoVelocityDegree(const LiveActor*, f32, u32); void getOnGroundNormal(const LiveActor*, u32); void setColliderRadius(LiveActor*, f32); void setColliderOffsetY(LiveActor*, f32); void getColliderRadius(const LiveActor*); void getColliderOffsetY(const LiveActor*); void getColliderFixReaction(const LiveActor*); void calcColliderPos(sead::Vector3f*, const LiveActor*); void validateColliderRobustCheck(LiveActor*); void invalidateColliderRobustCheck(LiveActor*); void setColliderReactMovePower(LiveActor*, bool); void calcColliderFloorRotatePower(sead::Quatf*, LiveActor*); void calcJumpInertia(sead::Vector3f*, LiveActor*, const sead::Vector3f&, f32); bool isCollidedGround(const LiveActor*); void calcJumpInertiaWall(sead::Vector3f*, LiveActor*, f32); bool isCollidedWall(const LiveActor*); void scaleVelocityInertiaWallHit(LiveActor*, f32, f32, f32); void getCollidedWallNormal(const LiveActor*); void calcCollidedNormalSum(const LiveActor*, sead::Vector3f*); void calcGroundNormalOrUpDir(sead::Vector3f*, const LiveActor*); void getCollidedGroundNormal(const LiveActor*); void calcGroundNormalOrGravityDir(sead::Vector3f*, const LiveActor*); void setColliderFilterTriangle(LiveActor*, const TriangleFilterBase*); void setColliderFilterCollisionParts(LiveActor*, const CollisionPartsFilterBase*); void createAndSetColliderFilterExistActor(LiveActor*); void createAndSetColliderFilterExistActor(LiveActor*, LiveActor*); void createAndSetColliderFilterSubActor(LiveActor*); void createAndSetColliderSpecialPurpose(LiveActor*, const char*); void createAndSetColliderSpecialPurposeForCollisionActor(LiveActor*, const char*); void createAndSetColliderIgnoreOptionalPurpose(LiveActor*, const char*); void createAndSetColliderSpecialAndIgnoreOptionalPurpose(LiveActor*, const char*, const char*); void createActorCollisionController(LiveActor*); void setColliderRadius(ActorCollisionController*, f32); void setColliderRadiusScale(ActorCollisionController*, f32); void setColliderOffsetY(ActorCollisionController*, f32); void resetActorCollisionController(ActorCollisionController*, s32); void updateActorCollisionController(ActorCollisionController*); void getCollidedFloorMaterialCodeName(const LiveActor*); void getCollidedFloorMaterialCodeName(Collider const*); void getCollidedWallMaterialCodeName(const LiveActor*); void getCollidedCeilingMaterialCodeName(const LiveActor*); bool isCollidedFloorCode(const LiveActor*, const char*); bool isCollidedCollisionCode(const LiveActor*, const char*, const char*); bool isCollidedWallCode(const LiveActor*, const char*); bool isCollidedCameraCode(const LiveActor*, const char*); bool isCollidedMaterialCode(const LiveActor*, const char*); bool isCollidedGroundFloorCode(const LiveActor*, const char*); bool isCollidedGroundCollisionCode(const LiveActor*, const char*, const char*); bool isCollided(const LiveActor*); bool isCollidedCeiling(const LiveActor*); bool isCollidedWallFace(const LiveActor*); bool isCollidedVelocity(const LiveActor*); bool isCollidedWallVelocity(const LiveActor*); bool isCollidedCeilingVelocity(const LiveActor*); void getCollidedCeilingNormal(const LiveActor*); void getCollidedGroundPos(const LiveActor*); void getCollidedWallPos(const LiveActor*); void getCollidedCeilingPos(const LiveActor*); void calcSpeedCollideWall(const LiveActor*); void calcSpeedCollideGround(const LiveActor*); void calcSpeedCollideCeiling(const LiveActor*); void getCollidedGroundCollisionParts(const LiveActor*); bool tryGetCollidedGroundCollisionParts(const LiveActor*); void getCollidedWallCollisionParts(const LiveActor*); bool tryGetCollidedWallCollisionParts(const LiveActor*); void getCollidedCeilingCollisionParts(const LiveActor*); bool tryGetCollidedCeilingCollisionParts(const LiveActor*); void getCollidedGroundSensor(const LiveActor*); bool tryGetCollidedGroundSensor(const LiveActor*); void getCollidedWallSensor(const LiveActor*); bool tryGetCollidedWallSensor(const LiveActor*); void getCollidedCeilingSensor(const LiveActor*); bool tryGetCollidedCeilingSensor(const LiveActor*); bool tryGetCollidedSensor(const LiveActor*); bool tryGetCollidedPos(sead::Vector3f*, const LiveActor*); void setForceCollisionScaleOne(const LiveActor*); void followRotateFrontAxisUpGround(LiveActor*); void followRotateFrontAxisUp(LiveActor*, const CollisionParts*); // void ActorFactory::ActorFactory(const char*); } // namespace al