OdysseyDecomp/lib/al/include/Library/LiveActor/ActorCollisionFunction.h
2023-08-13 19:00:58 +02:00

111 lines
5.6 KiB
C++

#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*, unsigned int);
bool isOnGroundFace(const LiveActor*);
bool isCollidedGroundEdgeOrCorner(const LiveActor*);
bool isOnGroundNoVelocity(const LiveActor*, unsigned int);
bool isOnGroundDegree(const LiveActor*, float, unsigned int);
bool isOnGroundFaceDegree(const LiveActor*, float);
bool isOnGroundNoVelocityDegree(const LiveActor*, float, unsigned int);
void getOnGroundNormal(const LiveActor*, unsigned int);
void setColliderRadius(LiveActor*, float);
void setColliderOffsetY(LiveActor*, float);
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&, float);
bool isCollidedGround(const LiveActor*);
void calcJumpInertiaWall(sead::Vector3f*, LiveActor*, float);
bool isCollidedWall(const LiveActor*);
void scaleVelocityInertiaWallHit(LiveActor*, float, float, float);
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*, float);
void setColliderRadiusScale(ActorCollisionController*, float);
void setColliderOffsetY(ActorCollisionController*, float);
void resetActorCollisionController(ActorCollisionController*, int);
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