mirror of
https://github.com/MonsterDruide1/OdysseyDecomp
synced 2026-04-29 20:14:41 +00:00
117 lines
7 KiB
C++
117 lines
7 KiB
C++
#pragma once
|
|
|
|
#include "Library/LiveActor/LiveActor.h"
|
|
|
|
namespace al {
|
|
class ActorCollisionController;
|
|
class CollisionPartsFilterBase;
|
|
class HitSensor;
|
|
class TriangleFilterBase;
|
|
|
|
Collider* getActorCollider(const LiveActor* actor);
|
|
bool isExistActorCollider(const LiveActor* actor);
|
|
const HitSensor* getActorCollisionPartsSensor(const LiveActor* actor);
|
|
bool isExistCollisionParts(const LiveActor* actor);
|
|
bool isEqualCollisionParts(const LiveActor* actor, const CollisionParts*);
|
|
void validateCollisionParts(LiveActor* actor);
|
|
void invalidateCollisionParts(LiveActor* actor);
|
|
void validateCollisionPartsBySystem(LiveActor* actor);
|
|
void invalidateCollisionPartsBySystem(LiveActor* actor);
|
|
bool isValidCollisionParts(const LiveActor* actor);
|
|
void setCollisionPartsSpecialPurposeName(LiveActor* actor, const char* name);
|
|
void resetAllCollisionMtx(LiveActor* actor);
|
|
void syncCollisionMtx(LiveActor* actor, const sead::Matrix34f* mtx);
|
|
void syncCollisionMtx(LiveActor* actor, CollisionParts* collisionParts, const sead::Matrix34f* mtx);
|
|
void setSyncCollisionMtxPtr(LiveActor* actor, const sead::Matrix34f* mtx);
|
|
bool isOnGround(const LiveActor* actor, u32 coyoteTime);
|
|
bool isOnGroundFace(const LiveActor* actor);
|
|
bool isCollidedGroundEdgeOrCorner(const LiveActor* actor);
|
|
bool isOnGroundNoVelocity(const LiveActor* actor, u32 coyoteTime);
|
|
bool isOnGroundDegree(const LiveActor* actor, f32 angle, u32 coyoteTime);
|
|
bool isOnGroundFaceDegree(const LiveActor* actor, f32 angle);
|
|
bool isOnGroundNoVelocityDegree(const LiveActor* actor, f32, u32 angle);
|
|
const sead::Vector3f& getOnGroundNormal(const LiveActor* actor, u32 offset);
|
|
void setColliderRadius(LiveActor* actor, f32 radius);
|
|
void setColliderOffsetY(LiveActor* actor, f32 offsetY);
|
|
f32 getColliderRadius(const LiveActor* actor);
|
|
f32 getColliderOffsetY(const LiveActor* actor);
|
|
const sead::Vector3f& getColliderFixReaction(const LiveActor* actor);
|
|
void calcColliderPos(sead::Vector3f*, const LiveActor* actor);
|
|
void validateColliderRobustCheck(LiveActor* actor);
|
|
void invalidateColliderRobustCheck(LiveActor* actor);
|
|
void setColliderReactMovePower(LiveActor* actor, bool isEnabled);
|
|
void calcColliderFloorRotatePower(sead::Quatf*, LiveActor* actor);
|
|
void calcJumpInertia(sead::Vector3f* outJumpInertia, LiveActor* actor,
|
|
const sead::Vector3f& velocityDir, f32 force);
|
|
bool isCollidedGround(const LiveActor* actor);
|
|
void calcJumpInertiaWall(sead::Vector3f* outJumpInertia, LiveActor* actor, f32 force);
|
|
bool isCollidedWall(const LiveActor* actor);
|
|
void scaleVelocityInertiaWallHit(LiveActor* actor, f32 velocityScaleH, f32 maxVelocityH,
|
|
f32 maxScaledVelocityH);
|
|
const sead::Vector3f& getCollidedWallNormal(const LiveActor* actor);
|
|
void calcCollidedNormalSum(const LiveActor* actor, sead::Vector3f* outNormal);
|
|
void calcGroundNormalOrUpDir(sead::Vector3f*, const LiveActor* actor);
|
|
const sead::Vector3f& getCollidedGroundNormal(const LiveActor* actor);
|
|
void calcGroundNormalOrGravityDir(sead::Vector3f*, const LiveActor* actor);
|
|
void setColliderFilterTriangle(LiveActor* actor, const TriangleFilterBase* triangleFilter);
|
|
void setColliderFilterCollisionParts(LiveActor* actor,
|
|
const CollisionPartsFilterBase* collisionPartsFilter);
|
|
void createAndSetColliderFilterExistActor(LiveActor* actor);
|
|
void createAndSetColliderFilterExistActor(LiveActor* actor, LiveActor* filterActor);
|
|
void createAndSetColliderFilterSubActor(LiveActor* actor);
|
|
void createAndSetColliderSpecialPurpose(LiveActor* actor, const char* name);
|
|
void createAndSetColliderSpecialPurposeForCollisionActor(LiveActor* actor, const char* name);
|
|
void createAndSetColliderIgnoreOptionalPurpose(LiveActor* actor, const char* name);
|
|
void createAndSetColliderSpecialAndIgnoreOptionalPurpose(LiveActor* actor, const char* name,
|
|
const char* ignoreName);
|
|
ActorCollisionController* createActorCollisionController(LiveActor* actor);
|
|
void setColliderRadius(ActorCollisionController* collisionController, f32 radius);
|
|
void setColliderRadiusScale(ActorCollisionController* collisionController, f32 scale);
|
|
void setColliderOffsetY(ActorCollisionController* collisionController, f32 offsetY);
|
|
void resetActorCollisionController(ActorCollisionController* collisionController, s32 delay);
|
|
void updateActorCollisionController(ActorCollisionController* collisionController);
|
|
const char* getCollidedFloorMaterialCodeName(const LiveActor* actor);
|
|
const char* getCollidedFloorMaterialCodeName(const Collider* collider);
|
|
const char* getCollidedWallMaterialCodeName(const LiveActor* actor);
|
|
const char* getCollidedCeilingMaterialCodeName(const LiveActor* actor);
|
|
bool isCollidedFloorCode(const LiveActor* actor, const char* name);
|
|
bool isCollidedCollisionCode(const LiveActor* actor, const char* sensorName, const char* name);
|
|
bool isCollidedWallCode(const LiveActor* actor, const char* name);
|
|
bool isCollidedCameraCode(const LiveActor* actor, const char* name);
|
|
bool isCollidedMaterialCode(const LiveActor* actor, const char* name);
|
|
bool isCollidedGroundFloorCode(const LiveActor* actor, const char* name);
|
|
bool isCollidedGroundCollisionCode(const LiveActor* actor, const char* sensorName,
|
|
const char* name);
|
|
bool isCollided(const LiveActor* actor);
|
|
bool isCollidedCeiling(const LiveActor* actor);
|
|
bool isCollidedWallFace(const LiveActor* actor);
|
|
bool isCollidedVelocity(const LiveActor* actor);
|
|
bool isCollidedWallVelocity(const LiveActor* actor);
|
|
bool isCollidedCeilingVelocity(const LiveActor* actor);
|
|
const sead::Vector3f& getCollidedCeilingNormal(const LiveActor* actor);
|
|
const sead::Vector3f& getCollidedGroundPos(const LiveActor* actor);
|
|
const sead::Vector3f& getCollidedWallPos(const LiveActor* actor);
|
|
const sead::Vector3f& getCollidedCeilingPos(const LiveActor* actor);
|
|
f32 calcSpeedCollideWall(const LiveActor* actor);
|
|
f32 calcSpeedCollideGround(const LiveActor* actor);
|
|
f32 calcSpeedCollideCeiling(const LiveActor* actor);
|
|
const CollisionParts* getCollidedGroundCollisionParts(const LiveActor* actor);
|
|
const CollisionParts* tryGetCollidedGroundCollisionParts(const LiveActor* actor);
|
|
const CollisionParts* getCollidedWallCollisionParts(const LiveActor* actor);
|
|
const CollisionParts* tryGetCollidedWallCollisionParts(const LiveActor* actor);
|
|
const CollisionParts* getCollidedCeilingCollisionParts(const LiveActor* actor);
|
|
const CollisionParts* tryGetCollidedCeilingCollisionParts(const LiveActor* actor);
|
|
HitSensor* getCollidedGroundSensor(const LiveActor* actor);
|
|
HitSensor* tryGetCollidedGroundSensor(const LiveActor* actor);
|
|
HitSensor* getCollidedWallSensor(const LiveActor* actor);
|
|
HitSensor* tryGetCollidedWallSensor(const LiveActor* actor);
|
|
HitSensor* getCollidedCeilingSensor(const LiveActor* actor);
|
|
HitSensor* tryGetCollidedCeilingSensor(const LiveActor* actor);
|
|
HitSensor* tryGetCollidedSensor(const LiveActor* actor);
|
|
bool tryGetCollidedPos(sead::Vector3f*, const LiveActor* actor);
|
|
void setForceCollisionScaleOne(const LiveActor* actor);
|
|
void followRotateFrontAxisUpGround(LiveActor* actor);
|
|
void followRotateFrontAxisUp(LiveActor* actor, const CollisionParts* collisionParts);
|
|
|
|
} // namespace al
|