| 1 | #pragma once |
| 2 | |
| 3 | #include <math/seadBoundBox.h> |
| 4 | #include <math/seadMatrix.h> |
| 5 | #include <math/seadQuat.h> |
| 6 | #include <math/seadVector.h> |
| 7 | |
| 8 | namespace al { |
| 9 | class LiveActor; |
| 10 | class HitSensor; |
| 11 | struct ActorParamMove; |
| 12 | |
| 13 | void resetPosition(LiveActor* actor); |
| 14 | void resetPosition(LiveActor* actor, const sead::Vector3f& trans); |
| 15 | void resetRotatePosition(LiveActor* actor, const sead::Vector3f& rot, const sead::Vector3f& trans); |
| 16 | void resetQuatPosition(LiveActor* actor, const sead::Quatf& quat, const sead::Vector3f& trans); |
| 17 | void resetMtxPosition(LiveActor* actor, const sead::Matrix34f& mtx); |
| 18 | void resetActorPosition(LiveActor* actor, const LiveActor* target); |
| 19 | bool trySetPosOnGround(LiveActor* actor); |
| 20 | const sead::Vector3f& getVelocity(const LiveActor* actor); |
| 21 | sead::Vector3f* getVelocityPtr(LiveActor* actor); |
| 22 | void separateVelocityHV(sead::Vector3f* horizontal, sead::Vector3f* vertical, |
| 23 | const LiveActor* actor); |
| 24 | void separateVelocityDirHV(sead::Vector3f* horizontal, sead::Vector3f* vertical, |
| 25 | const LiveActor* actor, const sead::Vector3f& dir); |
| 26 | void separateVelocityParallelVertical(sead::Vector3f* parallel, sead::Vector3f* vertical, |
| 27 | const LiveActor* actor, const sead::Vector3f& dir); |
| 28 | void setVelocity(LiveActor* actor, const sead::Vector3f& vel); |
| 29 | void setVelocity(LiveActor* actor, f32 x, f32 y, f32 z); |
| 30 | void setVelocityX(LiveActor* actor, f32 x); |
| 31 | void setVelocityY(LiveActor* actor, f32 y); |
| 32 | void setVelocityZ(LiveActor* actor, f32 z); |
| 33 | void setVelocityZero(LiveActor* actor); |
| 34 | void setVelocityZeroX(LiveActor* actor); |
| 35 | void setVelocityZeroY(LiveActor* actor); |
| 36 | void setVelocityZeroZ(LiveActor* actor); |
| 37 | void setVelocityZeroH(LiveActor* actor); |
| 38 | void setVelocityZeroH(LiveActor* actor, const sead::Vector3f& gravity); |
| 39 | void setVelocityZeroV(LiveActor* actor); |
| 40 | void setVelocityZeroV(LiveActor* actor, const sead::Vector3f& gravity); |
| 41 | void setVelocityJump(LiveActor* actor, f32 speed); |
| 42 | void setVelocityToFront(LiveActor* actor, f32 speed); |
| 43 | void setVelocityToUp(LiveActor* actor, f32 speed); |
| 44 | void setVelocityToSide(LiveActor* actor, f32 speed); |
| 45 | void setVelocityToDirection(LiveActor* actor, const sead::Vector3f& dir, f32 speed); |
| 46 | void setVelocityToGravity(LiveActor* actor, f32 speed); |
| 47 | void setVelocitySeparateHV(LiveActor* actor, const sead::Vector3f& h, const sead::Vector3f& v, |
| 48 | f32 speedH, f32 speedV); |
| 49 | void setVelocitySeparateHV(LiveActor* actor, const sead::Vector3f& h, f32 speedH, f32 speedV); |
| 50 | void calcVelocitySeparateHV(sead::Vector3f* velocity, const LiveActor* actor, |
| 51 | const sead::Vector3f& h, f32 speedH, f32 speedV); |
| 52 | void setVelocitySeparateUp(LiveActor* actor, const sead::Vector3f& h, f32 speedH, f32 speedV); |
| 53 | void setVelocityOnlyDir(LiveActor* actor, const sead::Vector3f& dir, f32 speed); |
| 54 | void setVelocityOnlyV(LiveActor* actor, f32 speed); |
| 55 | void setVelocityOnlyGravity(LiveActor* actor, f32 speed); |
| 56 | void addVelocity(LiveActor* actor, const sead::Vector3f& vel); |
| 57 | void addVelocity(LiveActor* actor, f32 x, f32 y, f32 z); |
| 58 | void addVelocityX(LiveActor* actor, f32 x); |
| 59 | void addVelocityY(LiveActor* actor, f32 y); |
| 60 | void addVelocityZ(LiveActor* actor, f32 z); |
| 61 | void addVelocityDump(LiveActor* actor, const sead::Vector3f& dir, f32 force); |
| 62 | void addVelocityJump(LiveActor* actor, f32 force); |
| 63 | void addVelocityToFront(LiveActor* actor, f32 force); |
| 64 | void addVelocityToUp(LiveActor* actor, f32 force); |
| 65 | void addVelocityToSide(LiveActor* actor, f32 force); |
| 66 | void addVelocityToDown(LiveActor* actor, f32 force); |
| 67 | void addVelocityToDirection(LiveActor* actor, const sead::Vector3f& dir, f32 force); |
| 68 | void addVelocityToGravity(LiveActor* actor, f32 force); |
| 69 | void addVelocityToGravityLimit(LiveActor* actor, f32 force, f32 limit); |
| 70 | void addVelocityToGravityFittedGround(LiveActor* actor, f32 force, u32 maxAirTime); |
| 71 | void addVelocityToGravityNaturalOrFittedGround(LiveActor* actor, f32 force); |
| 72 | void calcGravityDir(sead::Vector3f* gravity, const LiveActor* actor); |
| 73 | void addVelocityToTarget(LiveActor* actor, const sead::Vector3f& target, f32 force); |
| 74 | void addVelocityToTarget(LiveActor* actor, const sead::Vector3f& target, f32 minForce, f32 maxForce, |
| 75 | f32 minDistance, f32 maxDistance); |
| 76 | void addVelocityToTargetH(LiveActor* actor, const sead::Vector3f& target, f32 force); |
| 77 | void addVelocityToTargetHV(LiveActor* actor, const sead::Vector3f& target, f32 forceH, f32 forceV); |
| 78 | void addVelocityDampToTarget(LiveActor* actor, const sead::Vector3f& target, f32 forceDamp); |
| 79 | void addVelocityDampToTarget(LiveActor* actor, const sead::Vector3f& target, f32 force, f32 damp); |
| 80 | bool addVelocityToPlayer(LiveActor* actor, f32 force, const sead::Vector3f& offset); |
| 81 | bool addVelocityToPlayerHV(LiveActor* actor, f32 forceH, f32 forceV, const sead::Vector3f& offset); |
| 82 | void addVelocityFromTarget(LiveActor* actor, const sead::Vector3f& target, f32 force); |
| 83 | void addVelocityFromTargetHV(LiveActor* actor, const sead::Vector3f& target, f32 forceH, |
| 84 | f32 forceV); |
| 85 | bool addVelocityFromPlayer(LiveActor* actor, f32 force, const sead::Vector3f& offset); |
| 86 | bool addVelocityFromPlayerHV(LiveActor* actor, f32 forceH, f32 forceV, |
| 87 | const sead::Vector3f& offset); |
| 88 | void addVelocityClockwiseToDirection(LiveActor* actor, const sead::Vector3f& dir, f32 force); |
| 89 | bool calcVelocityClockwiseToDirection(LiveActor* actor, sead::Vector3f* dirVelocity, |
| 90 | const sead::Vector3f& dir); |
| 91 | void addVelocityClockwiseToTarget(LiveActor* actor, const sead::Vector3f& target, f32 force); |
| 92 | void addVelocityJumpGroundInertia(LiveActor* actor, const sead::Vector3f& velocity, f32 force); |
| 93 | void tryAddVelocityLimit(LiveActor* actor, const sead::Vector3f& velocity, f32 limit); |
| 94 | void subVelocityExceptDirectionLimit(LiveActor* actor, const sead::Vector3f& direction, f32 subVel, |
| 95 | f32 limit); |
| 96 | void scaleVelocity(LiveActor* actor, f32 factor); |
| 97 | void scaleVelocityLimit(LiveActor* actor, f32 factor, f32 limit); |
| 98 | void scaleVelocityX(LiveActor* actor, f32 factorX); |
| 99 | void scaleVelocityY(LiveActor* actor, f32 factorY); |
| 100 | void scaleVelocityZ(LiveActor* actor, f32 factorZ); |
| 101 | void scaleVelocityHV(LiveActor* actor, f32 factorH, f32 factorV); |
| 102 | void scaleVelocityDirection(LiveActor* actor, const sead::Vector3f& direction, f32 factor); |
| 103 | void scaleVelocityExceptDirection(LiveActor* actor, const sead::Vector3f& direction, f32 factor); |
| 104 | void scaleVelocityParallelVertical(LiveActor* actor, const sead::Vector3f& direction, f32 parallel, |
| 105 | f32 vertical); |
| 106 | void limitVelocity(LiveActor* actor, f32 limit); |
| 107 | f32 calcSpeed(const LiveActor* actor); |
| 108 | void limitVelocityX(LiveActor* actor, f32 limitX); |
| 109 | void limitVelocityY(LiveActor* actor, f32 limitY); |
| 110 | void limitVelocityZ(LiveActor* actor, f32 limitZ); |
| 111 | void limitVelocityH(LiveActor* actor, f32 limitH); |
| 112 | void limitVelocityHV(LiveActor* actor, f32 limitH, f32 limitV); |
| 113 | void limitVelocityUpGravityH(LiveActor* actor, f32 limitDown, f32 limitUp, f32 limitH); |
| 114 | void limitVelocityDir(LiveActor* actor, const sead::Vector3f& dir, f32 limit); |
| 115 | void limitVelocityDirSign(LiveActor* actor, const sead::Vector3f& dir, f32 limit); |
| 116 | void limitVelocityDirV(LiveActor* actor, const sead::Vector3f& dir, f32 limit); |
| 117 | void limitVelocityDirVRate(LiveActor* actor, const sead::Vector3f& dir, f32 limit, f32 rate); |
| 118 | void limitVelocityParallelVertical(LiveActor* actor, const sead::Vector3f& dir, f32 parallel, |
| 119 | f32 vertical); |
| 120 | void limitVelocitySeparateHV(LiveActor* actor, const sead::Vector3f& dir, f32 horizontal, |
| 121 | f32 vertical); |
| 122 | u32 reboundVelocityPart(LiveActor* actor, f32 rebound, f32 threshold); |
| 123 | u32 reboundVelocityPart(LiveActor* actor, f32 ground, f32 wall, f32 ceiling, f32 threshold); |
| 124 | bool reboundVelocityFromEachCollision(LiveActor* actor, f32 ground, f32 wall, f32 ceiling, |
| 125 | f32 threshold); |
| 126 | bool reboundVelocityFromCollision(LiveActor* actor, f32 reboundStrength, f32 reboundMin, |
| 127 | f32 friction); |
| 128 | bool reboundVelocityFromTriangles(LiveActor* actor, f32 reboundStrength, f32 reboundMin); |
| 129 | bool reboundVelocityFromActor(LiveActor* actor, const LiveActor* target, f32 reboundStrength); |
| 130 | bool reboundVelocityFromActor(LiveActor* actor, const LiveActor* target, |
| 131 | const sead::Vector3f& targetVelocity, f32 reboundStrength); |
| 132 | bool reboundVelocityFromSensor(LiveActor* actor, const HitSensor* sensor, f32 reboundStrength); |
| 133 | bool reboundVelocityFromSensor(LiveActor* actor, const HitSensor* sensor, |
| 134 | const sead::Vector3f& targetVelocity, f32 reboundStrength); |
| 135 | bool calcDirToActor(sead::Vector3f* dir, const LiveActor* actor, const LiveActor* target); |
| 136 | bool reboundVelocityBetweenActor(LiveActor* actor, LiveActor* target, f32 reboundStrength); |
| 137 | bool reboundVelocityBetweenSensor(HitSensor* sensorA, HitSensor* sensorB, f32 reboundStrength); |
| 138 | void calcVelocityKeepLengthBetweenActor(sead::Vector3f* vel, const LiveActor* actor, |
| 139 | const LiveActor* target, f32 targetLength, f32 force); |
| 140 | void addVelocityKeepLengthBetweenActor(LiveActor* actor, LiveActor* target, f32 targetLength, |
| 141 | f32 force); |
| 142 | void addVelocityDumpKeepLengthBetweenActor(LiveActor* actor, LiveActor* target, f32 targetLength, |
| 143 | f32 lenForce, f32 dumpForce); |
| 144 | void calcVelocityBlowAttack(sead::Vector3f* velocity, const LiveActor* actor, |
| 145 | const sead::Vector3f& trans, f32 speedH, f32 speedV); |
| 146 | void addVelocityBlowAttack(LiveActor* actor, const sead::Vector3f& trans, f32 speedH, f32 speedV); |
| 147 | void addVelocityBlowAttack(LiveActor* actor, const HitSensor* sensor, f32 speedH, f32 speedV); |
| 148 | void setVelocityBlowAttack(LiveActor* actor, const sead::Vector3f& trans, f32 speedH, f32 speedV); |
| 149 | void setVelocityBlowAttack(LiveActor* actor, const HitSensor* sensor, f32 speedH, f32 speedV); |
| 150 | void setVelocityBlowAttackAndTurnToTarget(LiveActor* actor, const sead::Vector3f& target, |
| 151 | f32 speedH, f32 speedV); |
| 152 | bool isVelocityFast(const LiveActor* actor, f32 threshold); |
| 153 | bool isVelocityFastH(const LiveActor* actor, f32 threshold); |
| 154 | bool isVelocitySlow(const LiveActor* actor, f32 threshold); |
| 155 | bool isVelocitySlowH(const LiveActor* actor, f32 threshold); |
| 156 | f32 calcSpeedH(const LiveActor* actor); |
| 157 | f32 calcSpeedV(const LiveActor* actor); |
| 158 | f32 calcSpeedDirection(const LiveActor* actor, const sead::Vector3f& dir); |
| 159 | f32 calcSpeedExceptDir(const LiveActor* actor, const sead::Vector3f& dir); |
| 160 | bool isNear(const LiveActor* actor, const LiveActor* target, f32 threshold); |
| 161 | bool isNear(const LiveActor* actor, const sead::Vector3f& trans, f32 threshold); |
| 162 | bool isNearXZ(const LiveActor* actor, const sead::Vector3f& trans, f32 threshold); |
| 163 | bool isNearH(const LiveActor* actor, const sead::Vector3f& trans, f32 threshold); |
| 164 | f32 calcDistanceH(const LiveActor* actor, const sead::Vector3f& trans); |
| 165 | bool isNearV(const LiveActor* actor, const sead::Vector3f& trans, f32 threshold); |
| 166 | f32 calcDistanceV(const LiveActor* actor, const sead::Vector3f& trans); |
| 167 | bool isNearHV(const LiveActor* actor, const sead::Vector3f& trans, f32 threshH, f32 threshV); |
| 168 | bool isNearHV(const LiveActor* actor, const sead::Vector3f& trans, f32 threshH, f32 minV, f32 maxV); |
| 169 | f32 calcHeight(const LiveActor* actor, const sead::Vector3f& trans); |
| 170 | bool isFar(const LiveActor* actor, const LiveActor* target, f32 threshold); |
| 171 | bool isFar(const LiveActor* actor, const sead::Vector3f& trans, f32 threshold); |
| 172 | f32 calcDistance(const LiveActor* actor, const LiveActor* target); |
| 173 | f32 calcDistance(const LiveActor* actor, const sead::Vector3f& trans); |
| 174 | f32 calcDistanceV(const LiveActor* actor, const LiveActor* target); |
| 175 | f32 calcDistanceH(const LiveActor* actor, const LiveActor* target); |
| 176 | f32 calcDistanceH(const LiveActor* actor, const sead::Vector3f& trans1, |
| 177 | const sead::Vector3f& trans2); |
| 178 | f32 calcHeight(const LiveActor* actor, const LiveActor* target); |
| 179 | f32 calcDistanceFront(const LiveActor* actor, const sead::Vector3f& trans); |
| 180 | f32 calcDistanceFront(const LiveActor* actor, const LiveActor* target); |
| 181 | void addRotateAndRepeatX(LiveActor* actor, f32 deg); |
| 182 | void addRotateAndRepeatY(LiveActor* actor, f32 deg); |
| 183 | void addRotateAndRepeatZ(LiveActor* actor, f32 deg); |
| 184 | void addRandomRotateY(LiveActor* actor); |
| 185 | void calcQuatSide(sead::Vector3f* side, const LiveActor* actor); |
| 186 | void calcQuatUp(sead::Vector3f* up, const LiveActor* actor); |
| 187 | void calcQuatFront(sead::Vector3f* front, const LiveActor* actor); |
| 188 | void calcQuatLocalAxis(sead::Vector3f* local, const LiveActor* actor, s32 axis); |
| 189 | void calcTransOffsetFront(sead::Vector3f* offset, const LiveActor* actor, f32 len); |
| 190 | void calcTransOffsetUp(sead::Vector3f* offset, const LiveActor* actor, f32 len); |
| 191 | void calcTransOffsetSide(sead::Vector3f* offset, const LiveActor* actor, f32 len); |
| 192 | void setTransOffsetLocalDir(LiveActor* actor, const sead::Quatf& quat, |
| 193 | const sead::Vector3f& globalOffset, f32 localOffset, s32 axis); |
| 194 | void addTransOffsetLocal(LiveActor* actor, const sead::Vector3f& localOffset); |
| 195 | void addTransOffsetLocalDir(LiveActor* actor, f32 localOffset, s32 axis); |
| 196 | void rotateQuatXDirDegree(LiveActor* actor, f32 deg); |
| 197 | void rotateQuatXDirDegree(LiveActor* actor, const sead::Quatf& quat, f32 deg); |
| 198 | void rotateQuatYDirDegree(LiveActor* actor, f32 deg); |
| 199 | void rotateQuatYDirDegree(LiveActor* actor, const sead::Quatf& quat, f32 deg); |
| 200 | void rotateQuatZDirDegree(LiveActor* actor, f32 deg); |
| 201 | void rotateQuatZDirDegree(LiveActor* actor, const sead::Quatf& quat, f32 deg); |
| 202 | void rotateQuatLocalDirDegree(LiveActor* actor, s32 axis, f32 deg); |
| 203 | void rotateQuatLocalDirDegree(LiveActor* actor, const sead::Quatf& quat, s32 axis, f32 deg); |
| 204 | void rotateQuatYDirRandomDegree(LiveActor* actor); |
| 205 | void rotateQuatYDirRandomDegree(LiveActor* actor, const sead::Quatf& quat); |
| 206 | bool turnQuatFrontToDirDegreeH(LiveActor* actor, const sead::Vector3f& dir, f32 deg); |
| 207 | bool turnQuatFrontToPosDegreeH(LiveActor* actor, const sead::Vector3f& pos, f32 deg); |
| 208 | bool turnQuatFrontFromPosDegreeH(LiveActor* actor, const sead::Vector3f& pos, f32 deg); |
| 209 | void turnFront(LiveActor* actor, f32 deg); |
| 210 | void turnFront(LiveActor* actor, const sead::Vector3f& up, f32 deg); |
| 211 | void turnFrontToPos(LiveActor* actor, const sead::Vector3f& pos, f32 deg); |
| 212 | void turnFrontToDir(LiveActor* actor, const sead::Vector3f& dir, f32 deg); |
| 213 | bool turnFrontToDirGetIsFinished(LiveActor* actor, const sead::Vector3f& dir, f32 deg); |
| 214 | bool turnDirectionDegree(const LiveActor* actor, sead::Vector3f* vec, const sead::Vector3f& dir, |
| 215 | f32 deg); |
| 216 | void turnFrontToTarget(LiveActor* actor, const LiveActor* target, f32 deg); |
| 217 | void turnFrontFromTarget(LiveActor* actor, const LiveActor* target, f32 deg); |
| 218 | bool turnFrontToPlayer(LiveActor* actor, f32 deg); |
| 219 | bool turnFrontFromPlayer(LiveActor* actor, f32 deg); |
| 220 | bool turnDirection(const LiveActor* actor, sead::Vector3f* vec, const sead::Vector3f& dir, f32 cos); |
| 221 | bool turnDirectionToTarget(const LiveActor* actor, sead::Vector3f* vec, |
| 222 | const sead::Vector3f& target, f32 cos); |
| 223 | bool turnDirectionToTargetDegree(const LiveActor* actor, sead::Vector3f* vec, |
| 224 | const sead::Vector3f& target, f32 deg); |
| 225 | bool turnDirectionFromTargetDegree(const LiveActor* actor, sead::Vector3f* vec, |
| 226 | const sead::Vector3f& target, f32 deg); |
| 227 | void turnDirectionAlongGround(const LiveActor* actor, sead::Vector3f* vec); |
| 228 | void turnDirectionAlongGround(LiveActor* actor); |
| 229 | bool turnToDirectionAxis(LiveActor* actor, const sead::Vector3f& horizontal, |
| 230 | const sead::Vector3f& vertical, f32 deg); |
| 231 | bool turnFrontSpherical(const LiveActor* actor, sead::Vector3f* vec, |
| 232 | const sead::Vector3f& targetFront, f32 cos); |
| 233 | bool turnFrontSphericalToTarget(const LiveActor* actor, sead::Vector3f* vec, |
| 234 | const sead::Vector3f& target, f32 cos); |
| 235 | bool turnFrontSphericalToTargetDegree(const LiveActor* actor, sead::Vector3f* vec, |
| 236 | const sead::Vector3f& target, f32 deg); |
| 237 | bool turnToDirection(LiveActor* actor, const sead::Vector3f& dir, f32 deg); |
| 238 | void turnLocalDirToDirection(LiveActor* actor, const sead::Vector3f& localDir, |
| 239 | const sead::Vector3f& targetDir, f32 deg); |
| 240 | bool turnToTarget(LiveActor* actor, const sead::Vector3f& target, f32 deg); |
| 241 | bool turnToTarget(LiveActor* actor, const LiveActor* target, f32 deg); |
| 242 | void faceToDirection(LiveActor* actor, const sead::Vector3f& dir); |
| 243 | void faceToDirectionSupportUp(LiveActor* actor, const sead::Vector3f& dir); |
| 244 | void faceToTarget(LiveActor* actor, const sead::Vector3f& target); |
| 245 | void faceToTarget(LiveActor* actor, const LiveActor* target); |
| 246 | void faceToSensor(LiveActor* actor, const HitSensor* sensor); |
| 247 | void faceToVelocity(LiveActor* actor); |
| 248 | void calcDirClockwiseToDir(sead::Vector3f* out, const LiveActor* actor, const sead::Vector3f& dir); |
| 249 | void calcDirClockwiseToPos(sead::Vector3f* out, const LiveActor* actor, |
| 250 | const sead::Vector3f& target); |
| 251 | void calcDirToActorH(sead::Vector3f* out, const LiveActor* actor, const LiveActor* target); |
| 252 | void calcDirToActorH(sead::Vector3f* out, const LiveActor* actor, const sead::Vector3f& dir); |
| 253 | f32 calcAngleToTargetH(const LiveActor* actor, const sead::Vector3f& target); |
| 254 | f32 calcAngleToTargetV(const LiveActor* actor, const sead::Vector3f& target); |
| 255 | bool isFaceToTargetDegree(const LiveActor* actor, const sead::Vector3f& target, |
| 256 | const sead::Vector3f& face, f32 threshDeg); |
| 257 | bool isFaceToTargetDegree(const LiveActor* actor, const sead::Vector3f& target, f32 threshDeg); |
| 258 | bool isFaceToTargetDegreeHV(const LiveActor* actor, const sead::Vector3f& target, |
| 259 | const sead::Vector3f& face, f32 degH, f32 degV); |
| 260 | bool isFaceToTargetDegreeH(const LiveActor* actor, const sead::Vector3f& target, |
| 261 | const sead::Vector3f& face, f32 degH); |
| 262 | bool isInSightCone(const LiveActor* actor, const sead::Vector3f& target, const sead::Vector3f& face, |
| 263 | f32 maxDist, f32 threshDeg); |
| 264 | bool isInSightConeTarget(const LiveActor* actor, const LiveActor* target, f32 maxDist, |
| 265 | f32 threshDeg); |
| 266 | bool isInSightConePlayer(const LiveActor* actor, f32 maxDist, f32 threshDeg); |
| 267 | bool isInSightFan(const LiveActor* actor, const sead::Vector3f& target, const sead::Vector3f& face, |
| 268 | f32 maxDist, f32 angleH, f32 angleV); |
| 269 | bool isInSightFanTarget(const LiveActor* actor, const LiveActor* target, f32 maxDist, f32 angleH, |
| 270 | f32 angleV); |
| 271 | bool isInSightBox(const LiveActor* actor, const sead::Vector3f& pos, const sead::BoundBox3f& box); |
| 272 | void walkAndTurnToDirection(LiveActor* actor, const sead::Vector3f& dir, f32 forceFront, |
| 273 | f32 forceGravity, f32 decay, f32 deg, bool turnAlongGround); |
| 274 | void walkAndTurnToDirection(LiveActor* actor, sead::Vector3f* front, const sead::Vector3f& dir, |
| 275 | f32 forceFront, f32 forceGravity, f32 decay, f32 deg, |
| 276 | bool turnAlongGround); |
| 277 | void walkAndTurnPoseToDirection(LiveActor* actor, const sead::Vector3f& dir, |
| 278 | const ActorParamMove& param, bool turnAlongGround); |
| 279 | void walkAndTurnToTarget(LiveActor* actor, const sead::Vector3f& target, f32 forceFront, |
| 280 | f32 forceGravity, f32 decay, f32 deg, bool turnAlongGround); |
| 281 | void flyAndTurnToDirection(LiveActor* actor, sead::Vector3f* front, const sead::Vector3f& dir, |
| 282 | f32 forceFront, f32 forceGravity, f32 decay, f32 deg); |
| 283 | void flyAndTurnToDirection(LiveActor* actor, const sead::Vector3f& dir, f32 forceFront, |
| 284 | f32 forceGravity, f32 decay, f32 deg); |
| 285 | void flyAndTurnToTarget(LiveActor* actor, const sead::Vector3f& target, f32 forceFront, |
| 286 | f32 forceGravity, f32 decay, f32 deg); |
| 287 | bool walkAndTurnToDirectionFittedGroundGravity(LiveActor* actor, sead::Vector3f* front, |
| 288 | const sead::Vector3f& dir, f32 forceFront, |
| 289 | f32 forceGravity, f32 decay, f32 deg, |
| 290 | bool turnAlongGround); |
| 291 | bool walkAndTurnToDirectionFittedGroundGravity(LiveActor* actor, const sead::Vector3f& dir, |
| 292 | f32 forceFront, f32 forceGravity, f32 decay, f32 deg, |
| 293 | bool turnAlongGround); |
| 294 | bool walkAndTurnToTargetFittedGroundGravity(LiveActor* actor, const sead::Vector3f& target, |
| 295 | f32 forceFront, f32 forceGravity, f32 decay, f32 deg, |
| 296 | bool turnAlongGround); |
| 297 | bool tryKillByDeathArea(LiveActor* actor); |
| 298 | void rotateAndKeepColliderPosRate(LiveActor* actor, const sead::Vector3f& up, |
| 299 | const sead::Vector3f& front, f32 rate); |
| 300 | void calcSpringMovement(LiveActor* actor, const sead::Vector3f& pos, f32 springPos, f32 sinStrength, |
| 301 | const sead::Vector3f& offset, f32 constStrength, f32 sinAmpl); |
| 302 | bool addVelocityClockwiseToPlayer(LiveActor* actor, f32 force); |
| 303 | bool calcDirClockwiseToPlayer(sead::Vector3f* dir, const LiveActor* actor); |
| 304 | bool flyAndTurnToPlayer(LiveActor* actor, const ActorParamMove& param); |
| 305 | bool escapeFromPlayer(LiveActor* actor, f32 forceFront, f32 forceGravity, f32 decay, f32 deg); |
| 306 | bool escapeFromPlayer(LiveActor* actor, sead::Vector3f* front, f32 forceFront, f32 forceGravity, |
| 307 | f32 decay, f32 deg); |
| 308 | bool walkAndTurnToPlayer(LiveActor* actor, f32 forceFront, f32 forceGravity, f32 decay, f32 deg, |
| 309 | bool turnAlongGround); |
| 310 | bool isPlayerInSightFan(const LiveActor* actor, f32 maxDist, f32 angleH, f32 angleV); |
| 311 | bool isFallOrDamageCodeNextMove(const LiveActor* actor, const sead::Vector3f& velocity, f32 gravity, |
| 312 | f32 searchDist); |
| 313 | bool isFallNextMove(const LiveActor* actor, const sead::Vector3f& velocity, f32 gravity, |
| 314 | f32 searchDist); |
| 315 | |
| 316 | } // namespace al |
| 317 | |