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